Académique Documents
Professionnel Documents
Culture Documents
CÁTEDRA DE COMPUTACIÓN I
DISEÑO DE ALGORITMOS
Evaluación Diagnóstica
1. Enumere los pasos para la resolución de problemas usando la computadora
2. ¿Cuáles son las tres preguntas del análisis del problema a ser aplicadas al enunciado del
problema?
3. De estas preguntas, ¿Cuál de ellas genera una síntesis?
Ahora bien, para poder diseñar algoritmos es necesario disponer de una notación, que llamaremos
‘notación algorítmica’, que permita:
Para poder describir cualquier tipo de acción de las que intervienen en un algoritmo, diversos autores
proponen el uso de un conjunto de construcciones lógicas (secuencia, decisión e iteración), también
llamadas estructuras, con las que es posible escribir cualquier programa. Lo que sigue a continuación es
la descripción de las diferentes construcciones disponibles para el diseño de algoritmos.
1.- D E S C R I B I R L A S O P E R A C I O N E S P U E S T A S E N J U E G O .
Para los efectos de esta guía de estudio, estas operaciones se denominarán Acciones a las acciones,
instrucciones, comando y otros que puedan ejecutar la computadora en forma directa o la forma como
ellas deben ser descritas para su correcta ejecución. Se clasifican en:
a. Acciones Elementales
b. Secuencia de Acciones
c. Acción de Decisión
d. Acción iterativa
ACCIONES ELEMENTALES
Se entiende por acciones elementales aquellas que el ordenador es capaz de realizar y que serán de dos
tipos:
Aritmético – lógicas: Operaciones que, a partir de unos determinados datos, realizan un cálculo
aritmético (suma, resta, multiplicación, ...) o un cálculo lógico (mayor que, menor que, igual que, ...).Las
primeras devuelven un valor numérico (4, -5.67, ...) y las segundas un valor lógico: SI (True); No (false).
DISEÑO DE ALGORITMOS
De entrada – salida: Acciones que permiten capturar datos para su posterior tratamiento (las de entrada)
y guardar los resultados de dicho tratamiento (las de salida).
Esta acción se logra mediante el uso de operadores. Según la cantidad de datos sobre los que opera
(llamados operandos) se clasifican en:
• Aritméticos: son los que permiten realizan cálculos numéricos, dando como resultado un valor
numérico.
• Relacionales: son los que permiten verificar si una relación, expresado en forma de inecuación, se
cumple o no, dando como resultado un valor lógico: SI (True); No (false).
• Lógicos: son los que permiten unir los resultados lógicos de las relaciones y generar un nuevo
resultado lógico: SI (True); No (false).
Operador Lógico AND: El operador AND responde SI (True) únicamente cuando los resultados
lógicos de ambas relaciones responden SI (True); en cualquier otro caso, responde NO (False)
Relación 1
Relación 2 SI (True) NO (False)
SI (True) SI (True) NO (False)
NO (False) NO (False) NO (False)
Operador Lógico OR: El Operador OR siempre responde SI (True) excepto cuando los resultados
lógicos de ambas relaciones responden NO (False).
Relación 1
Relación 2 SI (True) NO (False)
SI (True) SI (True) SI (True)
NO (False) SI (True) NO (False)
DISEÑO DE ALGORITMOS
Operador Lógico NOT: Es un operador unario que invierte el resultado lógico de la relación.
Relación
Operador SI (True) NO (False)
NOT NO (False) SI (True)
Más adelante se verán las expresiones y como se involucran estos operadores en el cálculo y verificación
de relaciones. También se verá cual es el orden de prioridad que se les asigna a estos operadores, a fin
de que los resultados de las expresiones coincidan con la realidad esperada.
Entrada: sirve para obtener la información del mundo exterior, trasformarlo en dato y almacenarlo
en la memoria.
Salida: sirve para transferir los datos almacenados en la memoria hacia el mundo exterior,
transformándolos en información.
Para ejecutar esta acción, se utiliza cualquiera de los siguientes verbos: Imprimir, ImprimirLN
La diferencia entre estas acciones es que Imprimir al finalizar la impresión se queda en la misma
línea, de forma que la próxima impresión se haga al lado de la anterior; mientras que ImprimirLN al
finalizar la impresión se ubica al comienzo de la siguiente línea, de forma que la próxima impresión
se haga debajo de la anterior.
LN se forma de quitarle las vocales a la palabra Línea, para así recordar la acción de cambio de
línea de la acción de salida ImprimirLN.
SECUENCIA DE ACCIONES
Cuando en un algoritmo se deben ejecutar varias acciones sucesivamente, éstas se describen una detrás
de otra según el orden en que deban ejecutarse. Si se desea se puede emplear algún tipo de símbolo
para separar dos acciones consecutivas. En el siguiente ejemplo se muestra la descripción de n acciones
sin uso de separadores.
Acción 1
Acción 2
:
Acción n
ACCIÓN DE DECISIÓN
La Acción de Decisión, como su nombre lo indica, decide cual es la próxima Acción que se ejecutará en
la computadora. La decisión depende de una operación lógica, llamada Condición, que se construye
usando relaciones y operadores lógicos; por lo tanto, la respuesta de una condición será un valor lógico:
SI (True) ó NO (False), indicando SI se cumple o NO se cumple la Condición respectivamente.
DISEÑO DE ALGORITMOS
Se clasifica en:
Se utiliza cuando en un algoritmo se quiere indicar que cierta acción sólo se debe ejecutar bajo el
cumplimiento de cierta condición. Si la condición no se cumple, se omite la ejecución de dicha acción.
Si Condición Entonces
Acción
FinSi
Si la Condición (operación lógica) responde SI (True), es decir, se cumple, se ejecuta la Acción y luego se
pasa la ejecución a la Acción siguiente al FinSi. Si la condición responde NO (false), es decir, no se
cumple, se omite la ejecución de la Acción y se pasa directamente la ejecución a la Acción siguiente al
FinSi. La Acción puede referirse tanto a una acción como a un conjunto de acciones.
Se utiliza cuando en un algoritmo, en base a una Condición (Operación Lógica), se decide cual de las
dos Acciones disponibles será ejecutada.
Si Condición Entonces
Acción A
SiNo
Acción B
FinSi
Si la Condición (operación lógica) responde SI (True), es decir, se cumple, se ejecuta la Acción A y luego
se pasa la ejecución a la Acción siguiente al FinSi. Si la condición responde NO (false), es decir, no se
cumple, se ejecuta la Acción B y luego se pasa la ejecución a la Acción siguiente al FinSi. De forma
análoga a como ocurría en el caso anterior, tanto la Acción A como la Acción B pueden referirse a una
acción o a un conjunto de acciones.
ACCIÓN ITERATIVA
Cuando una acción o conjunto de acciones debe ejecutarse varias veces se recurre a una acción
iterativa. En este tipo de acción se requiere de una condición que determine cuando terminan las
iteraciones o repeticiones de la acción o conjunto de acciones. Dependiendo de si esa condición se
evalúa al principio o al final de la acción se pueden definir dos construcciones iterativas distintas:
DISEÑO DE ALGORITMOS
CON CONDICIÓN AL INICIO - MIENTRAS
En este caso la condición se coloca primero en la definición de la acción iterativa y se evalúa antes de
ejecutar la acción o conjunto de acciones.
Es importante hacer notar que si la Condición (operación lógica) responde NO (false) la primera vez que
se evalúa, no se ejecuta la acción o conjunto de acciones e inmediatamente pasa la ejecución a la
siguiente acción luego del FinMientras
En este caso la condición se coloca al final de la definición de la acción iterativa y se evalúa después de
ejecutar la acción o conjunto de acciones.
Repetir
Acción
Hasta Condición
Al comenzar la ejecución de esta acción iterativa, se ejecutará la Acción primero; luego se evalúa la
Condición (operación lógica) y sólo si la condición responde NO (False), se repite la ejecución de la
acción; si la Condición responde SI (True) la acción iterativa termina y pasa la ejecución a la acción
siguiente al Hasta. En cualquier caso, la Acción contenida en la acción iterativa puede referirse tanto a
una acción como a un conjunto de acciones.
Es importante hacer notar que si la Condición (operación lógica) responde SI (True) la primera vez, sin
importar este hecho, previo se ejecutó la acción o las acciones contenidas dentro de la acción y luego
al evaluar la condición inmediatamente pasa la ejecución a la acción siguiente al Hasta. En este caso, la
acción o acciones contenidas en al acción iterativa se ejecutan, al menos, una vez.
REFLEXIÓN
Analice el funcionamiento de las dos acciones iterativas utilizando un cuadro comparativo y concluya
cuales son las principales diferencias entre ellas. Esta conclusión le permitirá, luego, reconocer cual debe
utilizar en la resolución de un problema usando un algoritmo.
DISEÑO DE ALGORITMOS
2.- D E S C R I B I R L O S O B J E T O S M A N I P U L A D O S P O R E L A L G O R I T M O
El primer objeto que debe manipular un algoritmo es la información que almacenará en la memoria de la
computadora. Por razones técnicas es necesario indicar a la computadora cual es la naturaleza de la
información, para así poder transformarla en dato y establecer cuales son los tipos de procesos de
manipulación o acciones que se pueden utilizar con ella.
T I P O S D E D A T O S (N A T U R A L E Z A )
• Entero
• Real: números con decimales
• Cadena: concatenaciones de letras, dígitos y símbolos (Nombres, Direcciones, entre otros)
• Lógico: el dato que nace como respuesta de una relación o de un operador lógico (True, False)
La computadora manipula de forma diferente los números enteros de los números con decimales. La
razón es que los números con decimales, a medida que el número es más grande, se ignoran los
decimales menos significativos y se les asigna un valor nulo. Matemáticamente esto trae un problema de
precisión de los cálculos que realiza la computadora y ya existen técnicas y artificios estándares. En
cambio, en los números enteros, todos sus dígitos son importantes y no se pueden asumir nulos. De esta
manera los procesos aritméticos utilizados por la computadora para los números enteros, son totalmente
diferentes a los utilizados por los números con punto decimal (Real).
Los datos tipo cadena se utilizan para almacenar nombres de personas, empresas, artículos, entre otros;
pueden contener cualquier símbolo disponible en el teclado español.
Los datos lógicos se manejan en forma transparente al programador, pero si se desea, se puede
almacenar cualquiera de los valores lógicos (True, False).
VARIABLE
Ahora bien, es necesario establecer algún mecanismo que permita ubicar cualquier dato almacenado
cuando un programa lo solicite. La forma mas simple es bautizar cada lugar de memoria que almacena
un dato con un nombre. La única diferencia con el ser humano es que la memoria de la computadora
no permite lugares de memoria que sean tocayas, es decir, que tengan el mismo nombre. Cada lugar de
la memoria que contenga un dato tendrá un nombre único y diferente al de otros lugares que
contengan datos.
Memoria
C
A “Buen día” Programa
-14.3051
DISEÑO DE ALGORITMOS
En la práctica, los datos almacenados en la memoria no son fijos, sino que, pueden ser sustituidos por
otros datos de la misma naturaleza. Dentro de la Matemática este tipo de situación, donde un nombre
puede tomar un conjunto finito de valores se le conoce como Variable.
Por lo tanto, una Variable es un lugar de la memoria, bautizada con un nombre único, cuyo contenido
puede cambiar durante la ejecución de un programa.
El conjunto de reglas que sirven para bautizar variables se conoce como identificador. El conjunto de
reglas son:
1. Un identificador debe comenzar por una letra de alfabeto norteamericano, es decir, no se puede
usar la Ñ o la ñ.
2. Puede continuar con combinaciones de letras del alfabeto norteamericano, dígitos y el símbolo
de piso o subrayado. No se pueden usar otros símbolos.
3. El nombre de un identificador no puede ser igual a ninguna de las palabras que sirven para definir
acciones en un programa.
4. No pueden existir dos identificadores iguales dentro de un programa.
CONSTANTE
En contraste a la variable, la computadora también maneja constante, las cuales no cambian de valor
durante la ejecución de un programa en la computadora, ya que no poseen un contenido ni un nombre
dentro de la memoria, aunque si poseen una naturaleza. Las constantes residen en la memoria, dentro
del programa, como parte de las acciones que se ejecutaran.
Las constantes tipo cadena reciben el nombre de Literales y siempre se encierra la palabra o conjunto
de ellas entre comillas.
Sólo existen dos constantes lógicas que son las palabras True y False; estas palabras no deben ser
encerradas entre comillas o ningún otro símbolo.
EXPRESIONES
Una expresión es una combinación de constantes, variables o funciones, que es interpretada (evaluada)
de acuerdo a las normas particulares de precedencia y asociación para un lenguaje de programación
en particular. Como en matemáticas, la expresión es su "valor evaluado", es decir, la expresión es una
representación de ese valor.
DISEÑO DE ALGORITMOS
Existen dos tipos expresiones, según el tipo de dato que den como resultado:
• Numéricas: aquellas que al ser evaluadas dan como resultado un valor numérico entero o real.
• Lógicas: aquellas que al ser evaluadas dan como resultado un valor lógico true o false.
Como se expresó al comienzo del tema, las normas particulares de precedencia y asociación de objetos
y operadores dependen del lenguaje de programación que se utilice. Como primer ejemplo se mostrará
continuación las reglas de evaluación de expresiones del interpretador de algoritmos ALGOR.
Notas: En el caso de los operadores ^, ∗, + y – los operandos son numéricos, es decir, enteros o reales, y el
resultado estará en función de si ambos operandos son del mismo tipo o no. Si son del mismo tipo
entonces el resultado sigue siendo de ese mismo tipo. Si uno de los operandos es real y el otro
entero, entonces el entero se convierte a real y resultado es real.
El operador de división / siempre realiza una división real, independientemente de si sus operandos lo son
o no; mientras que el operador DIV siempre realiza una división entera (sin decimales, ni redondeo) con
operandos únicamente enteros.
En el caso de los operadores relacionales = y <> sus operandos pueden ser ambos: numéricos, cadenas ó
lógicos; mientras que los operadores <, <=, > y >= sus operandos únicamente pueden ser numéricos.
Los operadores – (negativo) y NOT, tienen un solo operando y se evalúan de derecha a izquierda.
El resto de los operadores tienen dos operandos, y se evalúan de izquierda a derecha, para el caso de los
que tienen igual precedencia.
Los paréntesis pueden ser utilizados para agrupar subexpresiones y alterar el orden de evaluación de una
expresión.
DISEÑO DE ALGORITMOS
REGLAS DE EVALUACIÓN DEL LENGUAJE DE PROGRAMACIÓN PASCAL
1. Los paréntesis se evalúan primero dentro una expresión. Si existen paréntesis dentro de paréntesis
(subexpresiones), se evalúan de adentro hacia fuera.
2. Jerarquía de operadores, ordenados en orden decreciente de precedencia, sería:
Notas: En el caso de los operadores ∗, + y –, si los operandos son numéricos, es decir, enteros o reales, el
resultado estará en función de si ambos operandos son del mismo tipo o no. Si son del mismo tipo
entonces el resultado sigue siendo de ese mismo tipo. Si uno de los operandos es real y el otro
entero, entonces el entero se convierte a real y resultado es real.
EL HECHO DE QUE CADA LENGUAJE DE PROGRAMACIÓN ESTABLEZCA SUS PROPIAS NORMAS, PUEDE CONVERTIRSE EN UN PROBLEMA
PARA AQUELLAS PERSONAS QUE, COMO LOS ESTUDIANTES DE COMPUTACIÓN I, SE INICIAN EN EL ÁREA DE LA PROGRAMACIÓN DE
COMPUTADORAS.
EN VISTA A QUE EL LENGUAJE DE PROGRAMACIÓN SELECCIONADO HASTA AHORA PARA LAS ASIGNATURAS COMPUTACIÓN I Y
COMPUTACIÓN II ES PASCAL, PARA FACILITAR LA INICIACIÓN EN LA PROGRAMACIÓN, SE USARÁN LAS REGLAS DE EVALUACIÓN DEL
LENGUAJE PASCAL DESDE EL COMIENZO DE LAS CLASES, YA QUE LAS DEL INTERPRETADOR DE ALGORITMOS ALGOR NO SE VEN
AFECTADAS DE NINGUNA FORMA POR ESTA DECISIÓN.
Los siguientes ejemplos muestran la expresión a evaluar y luego en negritas resaltan la parte de la
expresión que será evaluada hasta obtener un resultado.
1. 5 + 2∗3 = 5 + 2∗
∗3 = 5 + 6 = 11
2. (5 + 2)∗3 = (5 + 2)∗3 = 7∗
∗3 = 21
DISEÑO DE ALGORITMOS
3. 7 DIV 2 MOD 5 = 7 DIV 2 MOD 5 = 3 MOD 5 = 3
4. 3.5 + 5.09 – 14.0/4 = 3.5 + 5.09 – 14.0/4 = 3.5 + 5.09 – 3.5 = 8.59 – 3.5 = 5.09
5. 10 + 20 < 30 = 10 + 20 < 30 = 30 < 30 = False
6. (10 < 20) and (20 < 30) = (10 < 20) and (20 < 30) = True and (20 < 30) = True and True = True
7. (10 < 20) or (20 > 30) and (-3 < -1) = (10 < 20) or (20 > 30) and (-3 < -1) =
True or (20 > 30) and (-3 < -1) = True or False and (-3 < -1) = True or False and True =
True or False = True
CONSTRUCCIÓN DE EXPRESIONES:
7*3
1. 3+ = 3 + 7∗3/2
2
7−3
2. 3 + = 3 + (7 – 3)/2
2
7−3
3+
3. 2 = (3 + (7 – 3)/2)/(5^2 – 2/(9 – 5)^(1/2))
1
2 2
52 −
9 − 5
1
4.
(
− B + B2 − 4 * A * C )
2
= (-B + (B^2 – 4∗A∗C)^(1/2))/(2∗A)
2* A
3
3 7 17
5. < y 9> = ( 3/4 < 7/8 ) AND ( 9 >(17/5)^3 )
4 8 5
1
1
17 2
3
ó 3 > 17 = ( 2 > ( (17/5)^2)^(1/3) ) OR ( (17/5)^(1/2) )
2
6. 2 >
5 5
1
1
17 2 3 17 2
1
7.
2> ó3> y 2 > 19 3 =
5 5
1
1
17 2 3 17 2
1
Observe los dos últimos ejemplos; son casi idénticos, excepto que en la última, la subexpresion que usa el
operador lógico OR para unir dos subexpresiones lógicas está encerrada entre paréntesis. Recuerde que
los paréntesis se usan para alterar, a nuestra conveniencia, el orden establecido por el lenguaje. En el
penúltimo ejemplo, después de evaluarse todas las subexpresiones lógicas, primero opera el operador
DISEÑO DE ALGORITMOS
AND, dando un resultado lógico que se usa para que después opere el operdador OR. Si revisa la tabla
de jerarquía de operadore, notará que primero opera el AND y luego el OR, dentro de una expresión.
En la último ejemplo, después de evaluarse todas las subespresiones lógicas, debido al paréntesis que
encierra al operador, éste opera primero dando un resultado lógico, que se usa para que opere el
operador AND.
De esta manera, se puede evidenciar la utilidad del uso de los paréntesis para cambiar la jerarquía de los
operadores, cuando así se requiera por la expresión a evaluar.
3.- C O N T R O L A R L A R E A L I Z A C I Ó N D E L A S A C C I O N E S D E S C R I T A S , I N D I C A N D O L A F O R M A E N Q U E
ESTAS SE ORGANIZAN EN EL TIEMPO
Hasta el momento, se han descrito todas las acciones y objetos que pueden ser utilizados para la solución
de un problema usando la computadora. Ahora bien, primero se debe conocer cual es la forma y las
normas de codificación que el lenguaje de programación exige para el uso de las acciones y los objetos
que manipulan la información.
F O R M A T O D E C O D I F I C A C I Ó N ALGOR
1. Encabezamiento
2. Definición de funciones
3. Variables
4. Instrucciones (llamadas acciones anteriormente)
La definición de funciones en ALGOR es materia que corresponde a la asignatura Computación II, y será
omitida del curso por los momentos. A continuación se describe la forma correcta (también llamada
sintaxis) de estas secciones.
SECCIÓN DE ENCABEZAMIENTO
algoritmo identificador
Ejemplos:
1. algoritmo promedio
2. algoritmo calculo_del_promedio
3. algoritmo tarea1
Recuerde que un identificador está formado por secuencias de letras y/o dígitos que debe comenzar
obligatoriamente por una letra. También puede usarse el carácter _ (piso, subrayado o underscore).
DISEÑO DE ALGORITMOS
SECCIÓN DE VARIABLES
Las variables que se usan en un algoritmo deben ser declaradas antes de ser usadas dentro de las
instrucciones (acciones) del algoritmo. La declaración de variables consiste en indicar el nombre de
cada variable (su identificador) y el tipo de dato que tendrá cada una(entero, real, cadena ó logico).
variables
Comienza con la palabra variables seguidas de una lista de una o más declaraciones. Cada declaración
es una secuencia de una o más variable separadas por coma, seguida de dos puntos, seguida del tipo.
Ejemplo:
variables
i, contador, N : entero
suma, dato : real
mensaje : cadena
continuar : logico
Observe la sangría que existe antes de la declaración de la variable o conjunto de ellas. Esta sangría es
importante para resaltar la palabra variables y de esa forma se puede, rápidamente ubicar la zona de
declaración de variables.
Los tipos permitidos en la versión actual son simples: entero, real, cadena y logico.
SECCIÓN DE INSTRUCCIONES
Esta sección contiene las instrucciones ejecutables del algoritmo. Comienza con la palabra
(identificador) inicio, le siguen las instrucciones y termina con la palabra (identificador) fin
DISEÑO DE ALGORITMOS
• Entrada
• Salida
• Asignación
• Condicional Simple
• Condicional Completa
• Iterativa con condición al inicio
• Iterativa con condición al final
• Iterativa Para
Todas estas instrucciones, excepto de asignación y la iterativa Para, fueron descritas anteriormente.
En los algoritmos se puede incluir comentarios (texto que se ignora durante la ejecución). Los comentarios
comienzan con el carácter punto y coma (;) y tienen un alcance hasta el fin de la línea:
Ejemplo:
; algoritmo para calcular el promedio de dos
; numeros ingresados por el usuario
INSTRUCCIÓN DE ASIGNACIÓN
Permite asignarle a una variable simple ó escalar una constante o el resultado de una expresión. Su
sintaxis es el nombre de la variable (identificador) seguida de <- (símbolo menor que y símbolo guión),
seguida de la constante o expresión.
Ejemplos:
Algunas consideraciones:
1. A las variables de tipo entero se le pueden asignar expresiones de tipo entero ó de tipo real. En el
último caso se convierte de real a entero antes de la asignación. Ejemplo: Considerando a i,
declarada como entero, la instrucción i <- 1.5 le asigna 1 a la variable i.
2. A las variables de tipo real se le pueden asignar expresiones de tipo entero ó de tipo real.
3. A las variables de tipo cadena, solo se le pueden asignar cadenas. En la versión actual del
lenguaje no hay operadores para cadenas.
4. A las variables de tipo logico se le pueden asignar expresiones de tipo logico.
A partir de este momento se puede decir que se conocen todo lo necesario para la construcción de
soluciones a problemas utilizando el interpretador de algoritmos ALGOR. Falta aún la instrucción iterativa
Para, pero se verá en su momento
El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente
aceptadas como requisitos para un algoritmo:
DISEÑO DE ALGORITMOS
1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar
a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el
algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas
de conjuntos específicos de objetos".
4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con
las entradas".
5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las
operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en
principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz
y papel".
Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto
que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no
ambigua", o "suficientemente básicas", y así sucesivamente.
A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de
entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los
algoritmos probabilistas.
L OS PRIMEROS EJERCICIOS
Los siguientes ejercicios tienen como finalidad reforzar todo lo concerniente a algoritmos hasta la
instrucción selectiva. Aunque los ejercicios parezcan demasiado sencillos, son importantes para
comenzar en el área de la programación. De los pasos para la resolución de problemas usando la
computadora, se usaran únicamente los dos primeros: Análisis del Problema y Diseño del Algoritmo.
1. Dados dos números cualesquiera, desarrolle el algoritmo de un programa que determine la suma de
dichos números
Tabla de Variables:
Descripción del dato Nombre de la Variable Tipo de Dato
Primer Valor A O Entero ⊗ Real O Lógico O Cadena
Segundo Valor B O Entero ⊗ Real O Lógico O Cadena
Suma de ambos valores S O Entero ⊗ Real O Lógico O Cadena
Algoritmo uno
Variables
A, B, S: Real;
Inicio
Imprimir "Primer Valor:"
Leer A
Imprimir "Segundo Valor:"
Leer B
S <- A+B
Imprimirln "La suma es:", S
Fin
DISEÑO DE ALGORITMOS
2. Dadas las longitudes de la hipotenusa y los catetos de un triángulo, desarrolle el algoritmo de un
programa que, usando el teorema de Pitágoras (H2=C12+C22), imprima una constante literal que
indique si es o no un triángulo rectángulo.
Tabla de Variables:
Descripción del dato Nombre de la Variable Tipo de Dato
Longitud de la Hipotenusa H O Entero ⊗ Real O Lógico O Cadena
Longitud de un cateto C1 O Entero ⊗ Real O Lógico O Cadena
Longitud del otro cateto C2 O Entero ⊗ Real O Lógico O Cadena
Valor del Lado Derecho LD O Entero ⊗ Real O Lógico O Cadena
Valor del Lado Izquierdo LI O Entero ⊗ Real O Lógico O Cadena
Algoritmo dos1
Variables
H, C1, C2, LI, LD: Real
Inicio
Imprimir "Longitud de la Hipotenusa:"
Leer H
Imprimir "Longitud de un cateto:"
Leer C1
Imprimir "Longitud del otro cateto:"
Leer C2
LI <- H*H
LD <- C1*C1+C2*C2
Si LI=LD entonces
Imprimirln "El triangulo es rectangulo"
Sino
Imprimir "El triangulo no es rectangulo"
Finsi
Fin
Tabla de Variables:
Descripción del dato Nombre de la Variable Tipo de Dato
Longitud de la Hipotenusa H O Entero ⊗ Real O Lógico O Cadena
Longitud de un cateto C1 O Entero ⊗ Real O Lógico O Cadena
Longitud del otro cateto C2 O Entero ⊗ Real O Lógico O Cadena
DISEÑO DE ALGORITMOS
Algoritmo dos1
Variables
H, C1, C2, LI, LD: Real
Inicio
Imprimir "Longitud de la Hipotenusa:"
Leer H
Imprimir "Longitud de un cateto:"
Leer C1
Imprimir "Longitud del otro cateto:"
Leer C2
Si H*H=C1*C1+C2*C2 entonces
Imprimirln "El triangulo es rectángulo"
Sino
Imprimir "El triangulo no es rectángulo"
Finsi
Fin
A UTOEVALUACIÓN
1. Enumere los tres pasos para lograr el diseño del algoritmo
2. ¿Qué representa una acción para un algoritmo?
3. ¿Cuál es la diferencia entre una Acción de Decisión y una Acción iterativa?
4. ¿Cuál es la diferencia entre un valor numérico y un valor lógico?
5. Enumere las principales diferencias entre las acciones iterativas Mientras y Repita
6. ¿Cuál es la razón por la que la computadora obliga a indicar el tipo de dato de cada variable?
7. De un ejemplo que demuestre la necesidad de diferenciar el tipo de dato entero y el tipo de dato real.
8. ¿Por qué las variables se les bautiza con un nombre único?
9. Enumere las tres características esenciales de una variable en la computadora
10. Elabore dos listas de ejemplos con identificadores válidos y no válidos
11. ¿Qué es una constante literal?
12. Con sus propias palabras, indique el por qué las constantes lógicas True y False no pueden encerrarse entre
comillas.
13. ¿Por qué una constante no puede cambiar de valor a través de las acciones de un programa?
14. ¿Cuál es la diferencia entre “Nombre” y Nombre?
15. Usando sus propias palabras, diga cual es la diferencia entre un algoritmo y un programa.
16. Elabore un esquema de las Acciones que se pueden utilizar para resolver un problema utilizando la
computadora
17. ¿Qué es una variable? ¿Cuáles son sus principales características?
18. En la computadora, ¿Qué diferencia una constante de una variable?
19. ¿Por qué “Area” y Area no representan eL mismo objeto que puede manipular la computadora?
20. ¿Qué es una expresión?
21. ¿Cuál es la diferencia entre una expresión numérica y una expresión lógica?
22. Diga en sus propias palabras, por qué es importante que el lenguaje imponga normas de evaluación de
expresiones
23. Enumere y describe las secciones en que se divide un algoritmo escrito para ALGOR
24. En sus palabras, cual es la utilidad de escribir comentarios en un algoritmo
25. ¿Cuál es el objetivo fundamental de la instrucción de asignación?
REFERENCIAS:
Fernandez R., Manuel R.(2007). Material de Apoyo a clases. Departamento de Computación. Facultad de Ingeniería.
Universidad de Carabobo. Venezuela