Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INDICE DE CONTENIDO
CAPTULO I. CONCEPTOS GENERALES
1.1 Introduccin
2.2 Expresiones
4
5
9
10
12
12
12
Datos de
entrada
Proceso
Datos de
salida
ALGORITMO
Preciso
Definido
Finito
formado por
SENTENCIAS
Debe ser general, es decir, soportar la mayora de las variantes que se puedan
presentar en la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.
Existen varias herramientas para hacerlo, entre ellas Pseudocdigo.
CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS
2.1 Tipos De Datos
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple
carcter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza
del conjunto de valores que puede tomar una variable.
2.2 Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de
operacin, parntesis y nombres de funciones especiales. Por ejemplo:
a+(b + 3)/c
Cada expresin toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecucin de las operaciones indicadas.
Una expresin consta de operadores y operandos. Segn sea el tipo de datos
que manipulan, se clasifican las expresiones en:
- Aritmticas
- Relacinales
- Lgicas
2.3 Operadores y Operandos
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.
Aritmticos
Relacinales
Lgicos
Tipos de Operadores
Todas las expresiones entre parntesis se evalan primero. Las expresiones con
parntesis anidados se evalan de dentro a fuera, el parntesis mas interno se evala
primero.
Dentro de una misma expresin los operadores se evalan en el siguiente orden.
1.- ^ Exponenciacin
2.- *, /, Multiplicacin, divisin, modulo.
3.- +, - Suma y resta.
Los operadores en una misma expresin con igual nivel de prioridad se evalan de
izquierda a derecha.
2.3.2 Operadores Relacinales:
Se utilizan para establecer una relacin entre dos valores.
Compara estos valores entre si y esta comparacin produce un resultado de certeza
o falsedad (verdadero o falso).
Los operadores relacinales comparan valores del mismo tipo (numricos o
cadenas)
Tienen el mismo nivel de prioridad en su evaluacin.
Los operadores relacinales tiene menor prioridad que los aritmticos.
Operadores Relacinales
>
Mayor que
<
Menor que
>=
Mayor o igual que
<=
Menor o igual que
<>
Diferente
=
Igual
Ejemplos:
Si a = 10, b = 20 y c = 30
a+b>c
a-b<c
a-b=c
a*b<>c
Falso
Verdadero
Falso
Verdadero
And
Or
Not
Operadores Lgicos
Y
O
Negacin
Operador AND
Operando1 Operando2 Resultado
V
V
V
V
F
F
F
V
F
F
F
F
Operador OR
Operando1 Operando2 Resultado
V
V
V
V
F
V
F
V
V
F
F
F
Operador NOT
Operando Resultado
T
F
F
T
Ejemplos:
Si a = 10, b = 20 y c = 30
(a < b) and (b < c)
V and
V
V
2)
2.4 Identificadores
Los identificadores representan los datos de un programa (constantes, variables,
tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar
una posicin en la memoria de la computadora, que nos permite acceder a su contenido.
Ejemplo:
Nombre
Num_hrs
Calif2
almacenado es el VALOR DE LA VARIABLE. Las variables pueden ser de todos los tipos
de datos conocidos: entero, decimal, carcter, cadena de carcter.
Variables y constantes se unen por medio de los operadores aritmticos,
relacionales y lgicos constituyendo lo que se denomina una EXPRESIN.
2.5.2 Constante
Dato invariable a lo largo del programa. Es un valor que no puede cambiar
durante la ejecucin del programa; recibe un valor en el momento de la compilacin del
programa y este valor no puede ser modificado.
Literales: es un valor de cualquier tipo que se utiliza como tal
Ejemplo:
sup-triangulo base * altura * 1/2
1 y 2 son constantes literales
numricas: 5 , 3.14 , 4/3
carcter: S , N
cadena: Positivo
Nota: las constantes de carcter se escriben entre apstrofes o comillas simples y las de
cadena entre comillas. De este modo se las diferencia de los nombre de las variables.
Con nombre o declaradas. Se les asigna un nombre y un valor y no se lo modifica
durante el transcurso del porgrama. En C se acostumbra nombrar esta clase de
constantes con maysculas
Ejemplo:
Define constante PI valor 3.14
sup-circulo PI * r * r
El uso de constantes literales limita la flexibilidad del programa. Es conveniente el uso de
constantes con nombre.
Tipeadas. Nos referimos a los textos que aparecen como mensajes de salida en un
programa. Dichos mensajes son inalterables.
Ejemplo: Mostrar ("Hola")
Estructuras
algortmicas
Secuenciales
Asignacin
Entrada
Salida
Condicionales
Simples
Compuestas
Mltiples
Cclicas o
repetitivas
50
A
(receptora)
B
(emisora)
A B
50
50
- Entender
- Corregir
- Mantener
Ms fcil de:
Seguir las siguientes sugerencias:
Si <condicin> entonces
Accin(es)
Fin-si
3.3.2. Dobles
Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en funcin del cumplimiento o no de una determinada condicin. Se
representa de la siguiente forma:
Si <condicin>
entonces
Accin(es)
Fin-entonces
Sino
Accin(es)
Fin-si
Donde:
Si
Condicin
entonces..
accin(es)
sino
condicin
Ejemplo
COMIENZO
I1
MIENTRAS ( I < 7 ) HACER
CON-SELECCIN ( I ) HACER
CASO 2:
CASO 4:
CASO 6:
MOSTRAR(I ES PAR)
ROMPER
CASO 1:
CASO 3:
CASO 5:
MOSTRAR(I ES IMPAR)
ROMPER
OTROS CASOS:
MOSTRAR(I VALE 0)
FIN-SELECCIN
II+1
FIN-MIENTRAS
FIN
3.3.4 Uso de estructuras selectivas
Razonemos a partir de un ejemplo. Realizar un algoritmo que permita ingresar un
nmero e informe Nmero mayor a cero o Nmero menor o igual a cero segn
corresponda.
Anlisis del problema. El algoritmo deber:
1. Leer el nmero que ingresa el usuario
2. Seleccionar mediante una condicin si ese numero es o no mayor a cero
3. Informar con una de las leyendas enunciadas
Desarrollo del algoritmo en pseudocdigo
COMIENZO
{ declaro las variables a utilizar}
NUMERO
{ Ingreso de datos}
MOSTRAR (Ingrese un nmero:)
LEER (NUMERO)
{ Proceso de seleccin}
SI ( NUMERO > 0)
ENTONCES
MOSTRAR(Nmero mayor a cero)
FIN-ENTONCES
SINO
MOSTRAR(Nmero menor o igual a cero)
FIN-SI
FIN
Problemas Condicionales
Problemas Selectivos Simples
1) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su
promedio de tres calificaciones es mayor o igual a 7; reprueba en caso contrario.
Comienzo
Leer ( nota1 )
Leer ( nota2 )
11
Leer ( nota3 )
prom nota1 +nota2 + nota3 )/3
Si ( prom >= 7 )
entonces
Mostrar ( alumno aprobado )
Fin-entonces
si no
Mostrar ( alumno reprobado )
Fin-si
Fin
2) En un almacn se hace un 20% de descuento a los clientes cuya compra supere los
$1000 Cual ser la cantidad que pagara una persona por su compra?
Comienzo
Leer ( compra )
Si ( compra > 1000 )
entonces
desc compra * 0.20
fin-entonces
si no
desc 0
fin-si
tot_pag compra - desc
Mostrar ( tot_pag )
fin.
3) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja mas de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20
por cada hora extra.
Comienzo
Leer (horas-trab )
Si ( horas-trab > 40 )
entonces
horas-extras horas-trab - 40
salario-sem horas-extras * 20 + 40 * 16
fin-entonces
si no
salario-sem horas-trab * 16
Fin-si
Mostrar ( salario-sem )
Fin
4) Que lea dos nmeros y los imprima en forma ascendente
Comienzo
Leer ( num1 )
Leer ( num2 )
Si ( num1 < num2 )
entonces
Mostrar ( num1, num2 )
Fin-entonces
si no
Mostrar ( num2, num1 )
fin-si
fin
12
fin
3.4. Estructuras Cclicas o Repetitivas
Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es
necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad
especifica de veces. Esta cantidad puede ser fija (previamente determinada por el
programador) o puede ser variable (estar en funcin de algn dato dentro del
programa).Los ciclos se clasifican en:
3.4.1 Ciclos con un Numero Indeterminado de Iteraciones (Mientras, HacerMientras)
Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya
que esta dado en funcin de un dato dentro del programa.
Mientras: Esta es una estructura que repetir un proceso durante N veces, donde
N puede ser fijo o variable. Para esto, la instruccin se vale de una condicin que es la
que debe cumplirse para que se siga ejecutando. Cuando la condicin ya no se cumple,
entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:
Mientras <condicin> Hacer
Accion1
Accion2
.
.
AccionN
Fin-mientras
3.4.2 Uso de estructuras repetitivas
Realizar un algoritmo que permita realizar 3 veces lo siguiente: ingresar 2 nmeros
calcular su suma e informar el resultado.
El algoritmo deber:
1. Leer el nmero que ingresa el usuario
2. Efectuar la suma y almacenarla
3. Mostrar el resultado almacenado
Para efectuar esto una sola vez bastara con el siguiente algoritmo:
COMIENZO
{ Ingreso de datos}
MOSTRAR (Ingrese primer nmero:)
LEER (NUMERO1)
MOSTRAR (Ingrese segundo nmero:)
LEER (NUMERO2)
{ Proceso de suma}
RESULTADO NUMERO1 + NUMERO2
{ Informe por pantalla}
MOSTRAR (El resultado de la suma es:)
MOSTRAR (RESULTADO)
FIN
Pero el algoritmo anterior slo efecta una vez la suma de dos nmeros, para que pueda
hacerlo ms veces deberamos repetir las sentencias de entrada, proceso y salida de
datos tantas veces como se solicite.
{ Ingreso de datos}
MOSTRAR (Ingrese primer nmero:)
LEER (NUMERO1)
MOSTRAR (Ingrese segundo nmero:)
LEER (NUMERO2)
{ Proceso de suma}
14
15
16
media sum / 2
Mostrar ( media, baja )
fin
6) Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el
multiplicando, el multiplicador y el producto.
Comienzo
Leer ( num )
Para ( X 1 a 10 ) Hacer
resul num * x
Mostrar ( num, * , X, = , resul )
Fin-para
fin.
CAPITULO iV. ALGORITMOS DE EJEMPLO
4.1 Ejemplo de uso de contadores y acumuladores
Ingresar 10 nmeros distintos de cero e informar el resultado de la suma de los
positivos y el producto de los negativos
COMIENZO
CONTADOR 0
SUMA 0
PRODUCTO 1
BORRAR PANTALLA
MIENTRAS(CONTADOR<10) HACER
MOSTRAR("Ingrese nmero:")
LEER(NUM)
{ bucle mientras que valida que el numero no sea cero}
MIENTRAS( NUM = 0) HACER
MOSTRAR("ERROR. Vuelva a ingresar")
LEER(NUM)
FINMIENTRAS
SI(NUM>0)
ENTONCES
SUMA SUMA+NUM
FIN-ENTONCES
SINO
PRODUCTOPRODUCTO*NUM
FINSI
CONTARCONTAR+1
FINMIENTRAS
MOSTRAR("Suma de positivos:", SUMA)
MOSTRAR("Producto de negativos:", PRODUCTO)
FIN
4.2 Uso de distintas estructuras repetitivas
Ingresar 10 nmeros distintos de cero. Sumar los positivos y obtener el producto de los
negativos
1. Uso de la estructura MIENTRAS
COMIENZO
canti0
suma0
18
prod1
MIENTRAS( canti<10) HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
canticanti+1
FINMIENTRAS
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
2. Uso de la estructura HACER...MIENTRAS
COMIENZO
canti0
suma0
prod1
HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
canticanti+1
MIENTRAS( canti<10)
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
3. Uso de la estructura PARA
COMIENZO
suma0
19
prod1
PARA(canti 0; canti<10;canti canti+1) HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
FINPARA
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
4. Ingresar nmeros distintos de 0 (no se sabe cuntos). Sumar los positivos y
multiplicar los negativos.
COMIENZO
seguir 'S'
suma0
prod1
MIENTRAS( seguir = 'S' ) HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
{sentencias de validacin de seguir}
HACER
MOSTRAR("Desea continuar(S/N):")
LEER(seguir)
MIENTRAS(seguir<>'S' AND seguir <> 'N')
FINMIENTRAS
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
20
21
PSEUDOCDIGO
- (resta)
(suma)
(divisin)
(multiplicacin)
Mod (resto de divisin entre enteros)
OPERADORES
(menor)
(menor o igual)
RELACIONALES
(mayor)
(mayor o igual)
(igual)
(distinto)
OPERADORES
Y (and)
LGICOS
O (or)
NO (not)
ENTRADA / SALIDA
MOSTRAR (nombre de variable o constante)
LEER (nombre de variable)
ESTRUCTURA
SI ( condicin )
SELECTIVA SIMPLE
ENTONCES
Sentencias
FINSI
ESTRUCTURA
SI ( condicin )
SELECTIVA COMPUESTA
ENTONCES
Sentencias
SINO
Sentencias
FINSI
ESTRUCTURAS
MIENTRAS ( condicin ) HACER
REPETITIVAS
Sentencias
FIN MIENTRAS
HACER
ESTRUCTURA DE
SELECCIN MLTIPLE
MANEJO DE PANTALLA
OTRAS NOTAS
Sentencias
MIENTRAS ( condicin )
CON-SELECCIN ( variable ) HACER
CASO constante1:
Sentencias
ROMPER
CASO constante2:
Sentencias
ROMPER
CASO constante3:
Sentencias
ROMPER
OTROS-CASOS:
Sentencias
FIN-SELECCIN
BORRAR PANTALLA
Las constantes de tipo carcter se colocan entre apstrofes (comillas
simples) y las constantes de cadena entre comillas. Es para diferenciar las
constantes de las variables
Para salir de una estructura repetitiva antes de que finalice (por su
condicin) o alcance el nmero de iteraciones indicados (en el para)
utilizamos la sentencia ROMPER.
Los comentarios los consignamos entre llaves { .... }
22
Que es un algoritmo.
Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que
permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien
deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos
sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el
objeto de estudio de la algoritmia.1
DEFINICION DE ALGORITMO
DEFINICION DE ALGORITMO:
entrada, nico punto de salida: A los algoritmos y a los mdulos que lo integran se
entra por un slo punto, inicio, y se sale por un slo punto tambin, fin.
Caractersticas de los Algoritmos:
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.
Unalgoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en
algnmomento; o sea, debe tener un numero finito de pasos.
La definicin de un algoritmo debe definir tres partes: Entrada, Proceso y Salida.
En el algoritmo de receta de cocina citado anteriormente se tendr:Entrada:
ingrediente y utensilios empleados.
Proceso: elaboracin de la receta en la cocina.
Salida: terminacin del plato (por ejemplo, cordero).
caractersticas de un algoritmo
- Finitos: Debe acabar en algn momento.
- Eficientes: Deben ocupar la mnima memoria y minimizar el tiempo de
ejecucin.
TIPOS DE ALGORITMOS
Cualitativos: Son aquellos en los que se describen los pasos
utilizando palabras.
24
25