0% encontró este documento útil (0 votos)
43 vistas20 páginas

Diseño de Algoritmos y Lógica de Programación

Cargado por

Nahir Barros
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas20 páginas

Diseño de Algoritmos y Lógica de Programación

Cargado por

Nahir Barros
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Tecnológica Nacional-Facultad Regional Córdoba-

Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-


Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

Recopilación De Temas Editados Por La Cátedra


Asignatura: Fundamentos de Informática
Especialidad: Ing. Eléctrica
Profesor: Ing. Carlos Víctor Coyos
[email protected]

JTP: Ing. Horacio Pablo Lezin


[email protected]

Contenido:

UNIDAD TEMATICA 4: Introducción al diseño de algoritmos y lógica de


programación.

4.1 Diseño o construcción de Algoritmos, conceptos fundamentales. Tipos de Datos,


numéricos, alfanuméricos y lógicos. Identificadores, constantes y variables.
Operaciones y operadores aritméticos. Expresiones lógicas. Operadores
relacionales y lógicos. Precedencia o jerarquía de Operadores. Tabla de verdad de
operadores lógicos. Bloque de asignación. Tabla de datos y resultados.

4.2 Programas: definición. Lenguaje de programación. Programación Estructurada.


Estructuras de Control o algorítmicas selectivas: Simple Si...entonces, Doble
Si...Sino, Múltiple Si...múltiple, En cascada o anidadas. Estructuras de Control o
algorítmicas repetitivas: Repetir...hasta, Mientras....hacer.

Página 1 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

DISEÑO O CONSTRUCCIÓN DE ALGORITMOS, CONCEPTOS FUNDAMENTALES

TIPOS DE DATOS
Los diferentes objetos de información con los que un programa trabaja, se denominan
datos.
La gran variedad de datos que trae consigo un lenguaje de programación hace que el
programador escoja el tipo mas adecuado para la aplicación que esté desarrollando.
Todos los datos tienen un tipo asociados con ellos que nos servirá para poder conocer
con que información trabajaremos. Es decir, cuando ingresemos el sueldo de un
trabajador necesitamos que este contenga decimales, o al solicitar la edad de una
persona está tiene que estar con números enteros, etc.. Además la suma entre
caracteres no tiene sentido.
La asignación de tipos a los datos tiene dos objetivos principales:
• Detectar errores de operaciones aritméticas en los programas
• Determinar como ejecutar las operaciones

Los tipos de datos mas utilizados en los lenguajes de programación son:


• NUMÉRICOS
• CARACTERES o ALFANUMERICOS
• LÓGICOS

NUMÉRICOS
Dentro de estos tipos se puede hacer mención de los tipos enteros y de los reales o de
coma flotante.
Tipos enteros
Los tipos enteros largos son más precisos, pero los enteros cortos son más simples,
rápidos y ocupan menos memoria.
El valor extremo del rango de cada uno de los enteros está dado por el espacio que
ocupa dicho entero en memoria, veamos:
Un byte de memoria esta formado por 8 bits. Cada uno de estos bit pueden ser un bit 0
o un bit 1.
Las combinaciones que podemos tener en un byte (8 bit) podrían ir desde:

00000000 a 11111111
(8 bits ceros) (8 bits unos)

Si se pasa el conjunto de bits (Sistema Binario) a Sistema decimal tenemos que el rango
que se maneja ahora irá desde:
0 a 255
(decimal correspondiente a los 8 bits ceros) (decimal correspondiente a los 8 bits unos)

Como el rango anterior está utilizando todos los ocho bits del byte para almacenamiento
de datos, sólo toma datos enteros positivos, no hay forma de reservar ningún campo bit
para el signo.
En el caso del entero corto, por utilizar siete bits para almacenamiento de datos, el
octavo es usado para signar datos (signo mas o menos). Por tanto solo dispone en
memoria de 7 bit para almacenar (bits unos) o (bits ceros). El rango manejado en
Página 2 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

sistema binario con siete (7) bit irá desde 0000000 hasta el 1111111, que en sistema
decimal corresponde al rango de 0 al 127, o sea 128 datos enteros positivos. Como se
deja un bit reservado para manejo de signo, entonces los datos negativos serán 128
también que irán en rango desde el -1 al -128.
El rango definitivo de enteros positivos y negativos para el tipo de dato entero corto será
desde -128 al 127.

Tipo Reales o de coma flotante


Los números reales son aquellos datos que tienen parte decimal.
Un real se caracteriza porque siempre tiene dígitos antes y después del punto.
Cada uno de los lenguajes de programación tiene un grupo para este tipo de datos.
Al igual que los enteros, los reales se diferencian unos de otros por el rango que cada
uno de ellos maneja.

CARACTER o ALFANUMÉRICO
Los tipos caracter se dividen también en caracteres Char, como por ejemplo: a A & * ,
etc.. y los cadenas de caracteres o strings, como por ejemplo:"Hola Mundo".

Tipo Char
Se define como Char a cualquier carácter o símbolo que conforman la tabla denominada
ASCII (American Standard Code for Informatión Interchange). Una variable que se
defina como tipo Char puede almacenar un solo carácter especificado entre apóstrofes.
{'A'}.
Cada carácter se almacena en memoria RAM como un byte o dicho de otra manera
cada carácter se almacena en una posición de memoria.
Para asignar cualquier carácter ASCII a una variable de tipo Char existen varias formas:
A = 'g' {Se asigna el carácter g a la variable A}
B=A {Se asigna el valor de A, a la variable B}
C = ‘65’ {Se asigna el carácter numero 65 de la tabla ASCII a la variable C}

Tipo cadena de caracteres o String


Los tipos de datos cadena de caracteres {String} son secuencia de caracteres que
pueden llegar a tener una longitud máxima de 255 caracteres.
Cada caracter de esta cadena ocupa un byte en memoria, y la cadena ocupa tantos
Bytes como caracteres le hayan asignado.
Las cadenas se pueden definir del tamaño que se necesite. El comportamiento de los
String es :
Nombre = 'Pedro Pérez';
La anterior cadena tiene 11 caracteres, por tanto va a ser una variable que ocupa 11
Bytes en memoria. Una variable de tipo cadena al ser definida en la sección de variables
se le está asignando un tamaño fijo en cuanto al número máximo de caracteres que
puede almacenar en un momento determinado.

TIPOS LÓGICOS O BOOLEAN


Este tipo de datos solamente pueden tomar uno de dos valores, verdadero o falso.
Algunos lenguajes de programación poseen este tipo de datos.
Página 3 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
El tipo booleano sólo tiene dos valores posibles: False (00) ó True(01). Una variable que
se declare de tipo boolean tendrá asignado siempre uno de los dos valores, o verdadero
o falso, y ocupa un solo byte de memoria RAM.

IDENTIFICADORES
Los identificadores representan los nombres de los objetos de un programa (constantes,
variables, tipos de datos, funciones, etc.).
Es una secuencia de caracteres que puede ser de cualquier longitud, aunque ciertos
lenguajes de programación requieren ciertas reglas que hay que seguir, las cuales son:
• Debe comenzar con una letra y no puede contener espacios en blanco o
completarlo con "_".
• Letras, dígitos y caracteres subrayados ("_") están permitidos después del primer
carácter.
En síntesis, un identificador es un método para nombrar a las celdas de memoria en la
computadora, en lugar de memorizarnos una dirección de memoria.
Se utilizan para nombrar constantes, variables y funciones.

CONSTANTES, VARIABLES Y FUNCIONES


Constantes: Las constantes son valores que no pueden cambiar en la ejecución del
programa. Recibe un valor en el momento de la compilación del programa y este no
puede ser modificado.
Variables: Las variables son valores que se pueden modificar durante la ejecución de
un programa. Al contrario de las constantes estos reciben un valor, pero este valor
puede ser modificado durante la ejecución o la compilación del programa.
Funciones: Una función es un subprograma que recibe como argumentos o
parámetros, datos de tipos numérico o no numérico, y devuelve un resultado.

EXPRESIONES Y OPERADORES UTILIZADOS EN PROGRAMACIÓN

Expresiones
En todos los lenguajes de programación se utilizan expresiones donde por medio de
combinaciones de operadores, variables y constantes se pueden efectuar operaciones
aritméticas y lógicas.

Una expresión es un conjunto de datos o funciones unidos por operadores aritméticos


y/o lógicos.
Se pueden construir expresiones:
Aritméticas: (operando numérico operador aritmético operando numérico)
Arroja valor numérico

Relacionales: (operando num. o char operador relacional operando num. o char)


Arroja valor lógico (V o F)

Lógicas: (valor lógico operador lógico valor lógico)


Arroja valor lógico (V o F)

Página 4 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
Operadores
Son elementos que relacionan de forma diferente, los valores de una o mas variables
y/o constantes. Es decir, los operadores nos permiten manipular valores.

Tipos de operadores:

• Aritméticos

• Relacionales

• Lógicos

OPERADORES Y OPERACIONES ARITMÉTICAS

Escritura De Fórmulas
Las fórmulas matemáticas se deben escribir en formato lineal. Esto obliga al uso
frecuente de paréntesis que indiquen el orden de evaluación correcto de las
operaciones.
Por ejemplo, si deseamos codificar la fórmula de la raíz positiva de una ecuación
cuadrática, tendríamos que escribirla así:
(-b+(b⊥ ⊥2-4*a*c)⊥
⊥(1/2))/(2*a)

Donde a,b,c son números reales.

Operadores Aritméticos
Los operadores aritméticos permiten la realización de operaciones matemáticas con los
valores (variables y constantes).
Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si
ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es
real.
Operando (Operador) Operando

Valor constante o variable signo Valor constante o variable

Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
mod Modulo (residuo de la división entera)

Ejemplos:
Expresión Resultado
7/2 3.5
12 mod 7 5
4+2*5 14

Página 5 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
Precedencia De Operadores aritméticos
Cuando una expresión aritmética se evalúa, el resultado es un número. Ahora bien,
cuando aparecen dos o mas expresiones aritméticas, ¿qué operaciones se realizan
primero?
2
Una expresión aritmética tiene una sintaxis de la forma: x +1/2
Hay que observar que esta expresión es totalmente diferente a esta otra (x2+1)/2, por lo
que es importante codificar las expresiones aritméticas correctamente.
Para realizar esto se deberán conocer las reglas de evaluación de los operadores, que
se estudian a continuación.

Reglas de Evaluación
Todas las subexpresiones entre paréntesis se evalúan primero. Las subexpresiones
entre paréntesis anidados se evalúan de adentro hacia afuera, es decir, que el
paréntesis mas interno se evalúa primero.
Prioridad de Operaciones: Dentro de una misma expresión o subexpresión, los
operadores se evalúan en el siguiente orden:
1) ⊥ Potenciación
2) * y / Multiplicación y división
3) + y - Suma y Resta
Los operadores en una misma expresión o subexpresión con igual nivel de prioridad se
evalúan de izquierda a derecha
Ejemplos:
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

OPERADORES RELACIONALES Y LÓGICOS

Operadores Relacionales
Se utilizan para establecer una relación entre dos valores. Luego compara estos valores
entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o
falso) denominado valor lógico.
Los operadores relacionales comparan valores del mismo tipo (numéricos o caracter).

Tipos de operadores Relacionales


Seudocódigo Matlab
> Mayor que > Mayor que
< Menor que < Menor que
>= Mayor o igual que >= Mayor o igual que
<= Menor o igual que <= Menor o igual que
<> Diferente que ~= Diferente que
= Igual que == Igual que
Ejemplos:
Si tenemos: a = 10, b = 20, c = 30
(a – b) = c Falso
(a * b) < > c Verdadero

Página 6 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
Ejemplo no lógico:
’T’ > 5 (no es lógico porque tiene operandos de diferentes tipo)

Operadores Lógicos
Estos operadores se utilizan para establecer relaciones entre valores lógicos.
Estos valores pueden ser resultado de una expresión relacional.
Tipos de operadores Lógicos

Operador lógico seudocódigo Matlab


Conjunción Y &
Disyunción O |
Negación NO ~

Ejemplo:
Para los siguientes ejemplos V significa verdadero y F falso.
(a<b) Y (b<c)
(10<20) Y (20<30)
V Y V
V
Tablas de verdad de operadores lógicos.

Operador NO
Operando Resultado
V F
F V

Operador Y
Operando1 Operador Operando2 Resultado
V Y V V
V Y F F
F Y V F
F Y F F

Operador O
Operando1 Operador Operando2 Resultado
V O V V
V O F V
F O V V
F O F F

Prioridad de los Operadores Lógicos


1. NO
2. Y
3. O

Página 7 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

Prioridad de los Operadores en General


1. ( )
2. ^
3. *, /, Mod, No
4. +, -, Y
5. >, <, > =, < =, < >, =, O

Ejemplos:
Sea: a = 10 b = 12 c = 13 d =10

((a>b)O(a<c))Y((a=c)O(a>=b))
F V F F
V F
F

((a>=b)O(a<d))Y((a>=d)Y(c>d))
F F V V
F V
F

NO(a=c)Y(c>b)
F V
V
V

BLOQUE DE ASIGNACIÓN
Se utiliza para asignar o almacenar valores a variables o constantes. Es una operación
que sitúa un valor determinado en una posición de memoria. Se indica en seudocódigo
con el símbolo  (Una flecha apuntando hacia el identificador, donde se desea guardar
el valor).
variable  expresión
El tipo de expresión debe ser del mismo tipo que el de la variable, en caso contrario en
la fase de compilación se produciría un error de tipos. Aunque a la fecha existen
lenguajes de programación con una potente herramienta para la conversión de datos (tal
es el caso de Visual Basic), no es recomendable asignar valores de un tipo diferente a
variables de otro tipo.

Reglas de Asignación
Una variable en el lado derecho de una sentencia de asignación debe tener un valor
antes de que la sentencia de asignación se ejecute. Hasta que un programa le da un
valor a una variable, esa variable no tiene valor.
Por ejemplo:
Si x no tiene un valor antes de ejecutar “y  x+1”, se producirá un error lógico.

Página 8 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
En la izquierda de una sentencia de asignación solo puede existir un identificador. Por
consiguiente no es valido lo siguiente:

Valor + Tasas  34015

Además hay que recordar que la operación de asignación es una operación destructiva
debido a que el valor almacenado en una variable se pierde o se destruye y se sustituye
por el nuevo valor con la sentencia de asignación.

LENGUAJES DE PROGRAMACIÓN
Se puede definir un lenguaje de programación como un conjunto de reglas ó normas,
símbolos y palabras especiales utilizadas para construir un programa y con él, darle
solución a un problema determinado.
El lenguaje de programación es el encargado de que la computadora realice paso a
paso las tareas que el programador a diseñado en el algoritmo.
Se puede decir que un lenguaje de programación es el intermediario entre la máquina y
el usuario para que este último pueda resolver problemas a través de la computadora
haciendo uso de palabras (funciones) que le traducen dicho programa a la computadora
para la realización de dicho trabajo.

Niveles De Los Lenguajes


Desde que se desarrollaron las máquinas programables se han desarrollado lenguajes
con los cuales las personas puedan dar órdenes a éstas. A través del tiempo
transcurrido los lenguajes de programación se pueden analizar según la siguiente
evolución:

Lenguaje de máquina: Las primeras computadoras se programaban en código de


máquina. Se puede decir que los programas eran diseñados en código binario. Eran
difíciles de leer, difíciles de entender y por supuesto difíciles de corregir. Los programas
se caracterizaban por ser pequeños.

Lenguajes de Bajo Nivel: Para dar solución a lo difícil que era programar en código de
máquina, se desarrolló un lenguaje conocido como lenguaje ensamblador. Este lenguaje
era encargado de tomar algunas palabras comunes a una persona y traducirlas al
código máquina. Lo anterior facilitaría un poco la escritura de programas.

Lenguajes de alto nivel: Como las personas resuelven problemas y se comunican en


lenguajes naturales (español, ingles, francés, etc.), se desarrollaron lenguajes de
programación que estuvieran mas cerca de ésta manera de resolver problemas.
De los lenguajes de alto nivel se puede citar el Basic, Cobol, Fortran, Pascal, Turbo
Pascal, C, Modula, Ada. Como se hace necesario traducir el programa a lenguaje de
máquina, en los lenguajes de alto nivel esa operación la realiza algo que se conoce con
el nombre de Compilador.

Otra clasificación
Una clasificación muy importante de los lenguajes es la de hacer dos grupos en base a
su funcionamiento, esto es considerarlos como intérpretes y compilados, según se
describe seguidamente:

Página 9 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

Lenguaje intérprete: por ejemplo los BASIC, para ejecutar un programa el lenguaje ha
de leer y traducir al lenguaje de la máquina las instrucciones una por una. Como es
lógico el proceso se enlentece, por ejemplo si una operación está dentro de la estructura
conocida como ciclo y este se repite 100 veces, el lenguaje tiene que traducirlo 100
veces al código de la máquina.
No todo es desventaja, pues la parte buena de este tipo de lenguajes es que los errores
se pueden corregir al momento y seguir fácilmente la ejecución del programa, por lo cual
son favorables para aprender a programar, proceso en el que da lo mismo la lentitud.

Lenguaje compilado: cuando el programa entero se traduce mediante el compilador de


dicho lenguaje al lenguaje de máquina correspondiente y el resultado se almacena de
manera permanente en un archivo. De esta forma el programa se ejecutará de forma
mucho más rápida que con un intérprete, sobre todo si hay estructuras que se repiten,
caso de los ciclos.
La principal desventaja es cuando se produce un error, que muchas veces se detecta en
el momento de la ejecución y la corrección no se puede hacer de inmediato, sino que
hay que realizar todo el proceso de compilado desde el principio. Un ejemplo típico de
lenguaje de este tipo es el C++, ampliamente usado en el desarrollo de programas.

PROGRAMACIÓN INTERACTIVA
En la programación interactiva el usuario del programa puede interactuar con el
programa e introducir datos mientras se ejecuta el programa.
Al objeto de facilitar esta entrada de datos, la computadora debe indicar al usuario el
momento en que debe introducir los datos. Para ello se deben visualizar mensajes
interactivos con indicaciones al usuario.

Ejemplo: Suma de dos números ingresados por el usuario

Algoritmo Suma
Inicio
escribir('Introduce el primer número:')
leer(numero1)
escribir('Introduce el segundo número:')
leer(numero2)
escribir('El total es: ',numero1 + numero2)
Fin

Esto debe visualizar en pantalla lo siguiente:


Introduce el primer número:
89 Intro (presionado por el usuario)
Introduce el segundo número
1 Intro (presionado por el usuario)
El total es: 90

Página 10 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
PROGRAMACIÓN ESTRUCTURADA

Dependiendo del lenguaje de programación que se elija, se puede hablar del tipo de
programación que se va a realizar.

Secuencial : Se considera programación secuencial a los programas que se diseñan


con instrucciones que van unas detrás de otras. Las líneas se ejecutan una a una en
secuencia.

Estructurada: Se considera programación estructurada a la programación secuencial y


que además permite la programación de módulos. Cada módulo realiza alguna tarea
específica y cuando se necesite esa tarea simplemente se hace el llamado a ese
módulo independiente de que se tengan que ejecutar los demás. Ejemplos tales como:
Turbo PASCAL, C, Matlab.

Orientada a Objetos: Se considera programación orientada a objetos aquellos


lenguajes que permiten la utilización de objetos dentro del diseño del programa y el
usuario puede pegar a cada objeto código de programa. Ejemplos de estos lenguajes se
pueden mencionar el Visual Basic de la Microsoft, C Builder de la Borland Internacional,
Java, Xml entre otros.

Lógica o de lenguaje natural: son aquellos programas que se diseñan con interfaces
tal que la persona o usuario puede ordenar a la máquina tareas en un lenguaje natural.
Pueden interactuar como una persona pero nunca llegan a producir conocimiento.
Ejemplo como Prolog (Programming Logic). Estos lenguajes se desarrollaron con base
en las estructuras de sus antecesores. Recorren o navegan las bases de datos
obedeciendo a reglas.

Inteligencia Artificial: Los programas de inteligencia artificial son programas que se


acercan a la inteligencia humana. Estos programas son capaces de desarrollar
conocimiento. Este tipo de lenguajes trabajan similar a la mente humana.

Ejemplo De Programación Secuencial


En los programas con frecuencia debemos enfrentarnos con situaciones en las que se
deben proporcionar instrucciones alternativas que pueden o no ejecutarse, dependiendo
de los datos de entrada, reflejándose el cumplimiento o no de una determinada
condición.
Por ejemplo, supongamos que queremos diseñar un programa para calcular el salario
semanal de un empleado que trabaja por horas, la empresa paga una tasa de 1,5 veces
el valor de la hora normal por todas las horas trabajadas mayores a 40.
Para realizar el algoritmo anterior se necesita realizar conocer el valor de la hora normal,
la cantidad de horas trabajadas y formularse la pregunta: Son las horas trabajadas
mayores a 40?, para luego proceder a la liquidación correspondiente
Esto se puede realizar a través de almacenar datos por medio de sentencia de lectura,
evaluación de expresiones lógicas comparando y asignando a una variable el valor de
una expresión aritmética.
Recordemos que una expresión lógica es una expresión que puede ser verdadera o
falsa.

Página 11 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
Diagrama de flujo

Seudocódigo
Inicio
Leer valor_hora;
Leer horas_trab;
Si (horas_trab>40)
pagavalor_hora*40+1.5*valor_hora*(horas_trab-40);
Sino
pagavalorhora*horastrab;
FinSi
Escribir paga;
Fin

En Matlab
valor_hora=input('ingrese el valor de la hora')
horas_trab=input('ingrese las horas trabajadas')
if(horas_trab>40)
pagar=valor_hora*40+1.5*valor_hora*(horas_trab-40)
else
pagar=valor_hora*horas_trab
end

Como se vé, la solución del problema requiere el uso de estructuras de control


selectivas: si(if), sino(else).

Página 12 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
ESTRUCTURAS DE CONTROL

Las estructuras de control de un lenguaje de programación se refieren al orden en que


las instrucciones de un algoritmo se ejecutarán. El orden de ejecución de las sentencias
o instrucciones determinarán el flujo de control.
Estas estructuras de control son por consiguiente fundamentales en los lenguajes de
programación y en los diseños de algoritmos, especialmente los pseudocódigos.

Las tres estructuras de control básicas son:


• Secuencial
• Selección
• Repetición

La programación basada en estructuras de control hace los programas mas fáciles de


escribir, verificar, leer y mantener, utiliza un número limitado de estructuras de control
que minimizan la complejidad de los problemas.

Un programa se define como estructurado si cumple lo siguiente:


• Posee un solo punto de entrada y salida o fin para control del programa.
• Existen caminos desde la entrada hasta la salida que se pueden seguir y que
pasan por todas las partes del programa.
• Todas las instrucciones son ejecutadas y no existen lazos o bucles infinitos.

En síntesis la programación estructurada significa:


• El programa completo tiene un diseño modular
• Los módulos se diseñan con metodología descendente (método top-down)
• Cada módulo se codifica utilizando las 3 estructuras de control
básicas: secuenciales, selectivas, repetitivas.

En el ámbito general, un programa codificado o escrito bajo cualquier lenguaje de


programación estructurado consta básicamente de dos secciones:
• Sección encabezado
• Sección cuerpo de programa

La sección de encabezado es usada para declarar, mencionar o identificar las variables


con sus respectivos tipos o formatos y/o las constantes que se vayan a utilizar en el
desarrollo del programa, así como también el nombre de las funciones que ejecutarán
las instrucciones de los diferentes algoritmos que va a tener dicho programa.
En la sección cuerpo de programa realmente se describen las funciones que se van a
ejecutar dentro del programa. Como cuerpo de programa es indispensable que haya
parte principal mientras que las funciones son opcionales.

Estructura Secuencial

Las instrucciones siguen una secuencia fija que normalmente viene dada por el número
de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Las
instrucciones se ejecutan dependiendo de la condición dada dentro del algoritmo.

Página 13 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

instrucción 1
instrucción 2 Instrucción 1
instrucción 3
.................
................. Instrucción 2
.................
instrucción n-1 Instrucción 3
instrucción n

Estructuras de Control selectivas

Las estructuras selectivas representan instrucciones que pueden o no ejecutarse, según


el cumplimiento de una condición la cual es una expresión lógica que debe arrojar un
único resultado, Falso o Verdadero.

• Estructura selectiva simple Si.. (If)

si (condición)
instrucciones
fin si

Cuando la expresión lógica contenida por los


paréntesis es verdadera, se ejecutan las
instrucciones dentro de la estructura de
selección, cuando es falsa, el programa ignora la
estructura y se sigue ejecutando la instrucción
siguiente a la estructura de control.
Por ejemplo:

Seudocodigo Matlab
Si nota >= 60 if nota>=60
escribir (‘Aprobado’) disp('Aprobado')
fin Si end

Muestra "Aprobado", si la calificación del alumno


es mayor o igual a 60, o se ejecutará el
enunciado siguiente al Si si la calificación es
menor que 60.

Página 14 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
• Estructura selectiva doble Si/Sino (if/else)

Si (condición)
instrucciones 1
sino
instrucciones 2
fin Si/Sino

La estructura de selección Si ejecuta una acción indicada


solo cuando la condición es verdadera, de lo contrario la
acción es pasada por alto. La estructura de selección
Si/Sino permite que el programador especifique la
ejecución de una acción distinta cuando la condición es
falsa.
Por ejemplo:
Si (nota >= 60) if nota>=60
escribir (‘Aprobado’) disp('Aprobado')
sino else
escribir (‘No Aprobado’) disp('No Aprobado')
fin Si/Sino end

Muestra "Aprobado", si la calificación del alumno es mayor o igual a 60, o muestra "No
aprobado" si la calificación es menor que 60. En cualquiera de los casos, después de
haber mostrado alguno de los mensajes, se ejecutará el enunciado siguiente al Si/Sino.

• Estructura selectiva múltiple o anidadas

También es común el uso de una estructura de selección múltiple que equivaldría a


anidar varias estructuras de selección simple o doble.
Dentro de las sentencias que figuran en una sentencia if, pueden colocarse también
otras sentencias selectivas de esta manera:
Supongamos que deseamos mostrar en pantalla la nota de un alumno, clasificándolo en
"aprobado", "no aprobado", y "libre". El algoritmo quedaría de esta manera.

Página 15 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

si (nota >= 60) if nota>=60


escribir (‘aprobado’) disp('aprobado')
sino elseif (nota<60)&(nota>=30)
si ((nota < 60) Y (nota >= 30)) disp('no aprobado')
escribir (‘no aprobado’) else
sino disp('libre')
escribir (‘libre’) end
fin si/sino
fin si/sino.

Es muy importante utilizar un buen sangrado en cada sentencia selectiva, para que sea
mas legible el código, y además que se comente el código, para que no se pierdan si
llevan escritas varias líneas, y también por si alguna otra persona, desea actualizar su
código.

• Estructura selectiva Según Sea (Case)

Esta sentencia se utiliza para elegir entre diferentes alternativas. Esta se compone de
varias sentencias simples, cuando se ejecuta, una y solo una de las sentencias simples
se selecciona y ejecuta.
La sintaxis es la siguiente:
según sea (selector)
caso1
hacer sentencia1
.....
.....
caso n
hacer sentencia n
otro caso
hacer sentencia
fin según sea

El selector debe ser un identificador que según el valor que tome ejecutará la sentencia
al caso seleccionado.
Se pueden utilizar sentencias Si anidadas, pero la sentencia según sea es mas legible.
Vamos a realizar el ejemplo anterior, pero esta vez utilizando la sentencia según sea.

Página 16 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
según_sea nota switch nota>=0
caso (nota>60) case (nota>=60)
escribir (‘aprobado’) disp('aprobado')
caso ((nota<60) Y (nota>= 30)) case ((nota>=30)&(nota<60))
escribir (‘no aprobado’) disp('no aprobado')
otro caso otherwise
escribir (‘libre’) disp('libre')
fin según_sea end

Estructuras de Control o algorítmicas repetitivas.

Las computadoras están especialmente diseñadas para ejecutar tareas repetidamente.


Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de
sentencias se repiten muchas veces.
Una estructura de control que permite la repetición de una serie determinada de
sentencias se denomina bucle (lazo o ciclo). El cuerpo del bucle contiene las sentencias
que se repiten.
La acción o acciones que se repiten en un bucle se denomina el cuerpo del bucle, y
cada repetición del cuerpo del bucle se denomina iteración.

• Sentencia Mientras (while)

La estructura repetitiva mientras es aquella en la que el número de iteraciones no se


conoce por anticipado y el cuerpo del bucle se repite mientras la condición (exp. lógica)
sea cierta. Por esta razón a estos bucles se les denomina bucles condicionales.
Si al llegar el programa por primera vez al bucle mientras, la condición es falsa, el
cuerpo del bucle no se ejecuta ninguna vez

El seudocódigo sería:
Mientras exp. lógica
acciones
fin mientras

En matlab sería:
while expresión lógica
acciones
end

Cuando la sentencia mientras se ejecuta, el primer paso es la evaluación de la


expresión lógica. Si se evalúa a falso, ninguna acción se realiza y el programa prosigue
en la siguiente sentencia después del bucle. Si la expresión lógica se evalúa a
verdadera, entonces se ejecuta las sentencias contenidas dentro del cuerpo del bucle y
se evalúa de nuevo la expresión. Este proceso se repite mientras que la expresión lógica
sea verdadera.
Después de cada iteración, la expresión lógica se evalúa y se verifica de nuevo, y si es
verdadera, el bucle se repite de nuevo; si cambia de verdadera a falsa, la sentencia
mientras finaliza y el programa prosigue en la siguiente sentencia del programa.

Página 17 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)
• Sentencia Repetir/hasta que

Una variante de la sentencia mientras, es la sentencia repetir/hasta que. Vimos que


una de las características de la sentencia mientras (while), es que la condición lógica se
evalúa al principio de cada iteración y que en particular si la condición es falsa cuando la
comienza la sentencia, entonces el bucle no se ejecuta nunca.
La sentencia Repetir/hasta que especifica un bucle condicional que se repite hasta que
la condición se hace verdadera.
Después de cada iteración el cuerpo del bucle evalúa la condición. Si la condición es
verdadera, el bucle se termina y se sale de él, ejecutándose la siguiente sentencia. Si la
condición es falsa el bucle se repite.
El seudocódigo es el siguiente:
Repetir
Acciones
Hasta que exp.lógica
fin Repetir

En Matlab no disponemos de ésta


sentencia.

• Sentencia Para (For)

En numerosas ocasiones se desea un bucle que se ejecute un número deseado de


veces, y cuyo número de iteraciones se conozca por anticipado. Para este tipo de
aplicaciones se utiliza la sentencia Para.
La sentencia Para requiere que conozcamos por anticipado el número de veces (Vf) que
se ejecutan las sentencias del interior del bucle.
Siendo Vf el nº de iteraciones deseadas:

El seudocódigo es el siguiente
Para cont =1:1:Vf
acciones
fin Para

Al ejecutarse la sentencia Para la primera vez, el valor inicial Vi = 1 se asigna a cont,


que se denomina variable de control, y a continuación se ejecutan las acciones del
interior del bucle. Al llegar al final del bucle se verifica si cont es igual al valor final Vf; en
caso negativo se incrementa el valor de la variable de control en el valor p (por lo
general p=1) y se vuelven a ejecutar todas las acciones del interior del bucle, hasta que
la variable de control cont sea mayor que el valor final Vf, en cuyo momento se termina
el bucle y se sigue con la siguiente sentencia fuera del mismo

Página 18 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

En algunos casos es necesario que la variable de control aumente su valor con


incremento distinto de 1. Por ejemplo

Para cont =1:0,5:10


sentencias
fin Para

En este caso cont tomará como valor


inicial el valor igual a 1 y en cada ciclo
se incrementará de a 0,5 hasta que cont
tome un valor mayor a 10 dando por
terminado el bucle.
Esto nos permite utilizar el valor de la
variable de control para intervenir en una
expresión que contenga su valor.

En Matlab sería:
for con=1:0.5:10
sentencias
end

Regla: Es ilegal intentar modificar el valor de la variable de control, valor inicial y el valor
final dentro del bucle.

Página 19 de 20
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 4: Introducción al diseño de algoritmos y lógica de programación.(Año 2013)

FUNCIONES

Una función, al igual que una función matemática, recibe uno o varios valores de
entrada y regresa una salida

Es necesario dejar en claro cuáles son las entradas para la función, esto se hace
comúnmente colocando estos valores entre paréntesis al principio o bien declarándolo
explícitamente con un enunciado.

También es necesario colocar una palabra como regresar o devolver para indicar cuál
es la salida generada por la función.

Por ejemplo, el seudocódigo de una función que permite calcular un número a elevado a
n
la n ( f(n) = a ).

%Comentario : ésta función calcula an con a y n números naturales


función potencia ( a , n )
i=n
r=1
x=a
mientras (i>0)
Si i es impar
r = r *x
Fin Si
x=x*x
i=i/2
fin mientras
devolver r
fin función

Página 20 de 20

También podría gustarte