Sei sulla pagina 1di 14

ALGORITMOS Y PROGRAMAS

La principal razn para que las personas aprendan lenguajes de programacin es utilizar la
computadora como una herramienta para la resolucin de problemas. Dos fases pueden ser
identificadas en el proceso de resolucin de problemas ayudados por computadora:
Fase de resolucin de problemas.
Fase de implementacin en la computadora.
El resultado de la primera fase es el diseo de un algoritmo para resolver al problema. Un
algoritmo es un conjunto de instrucciones que conducen a la solucin del problema, el cual puede
expresarse en cualquier idioma. Siempre encierra una secuencia de pasos, exentos de
ambigedades, que lleva a la solucin de un problema.
Una de las herramientas de programacin empleada como lenguaje algortmico son los diagramas
de flujo, que es un dibujo con palabras que utiliza smbolos estndar, en el que cada paso del
algoritmo se visualiza dentro del smbolo adecuado y el orden en que estos pasos se ejecutan se
indica conectndolos con flechas llamadas lneas de flujo.
Los smbolos utilizados en los diagramas de flujo han sido normalizados por las organizaciones
ANSI (American National Institute) y por ISO (International Standard Organization), algunos de
ellos son:
1.- Terminal: representa el comienzo "inicio" y el fina "fin".


2.- Entrada/salida: introduccin de datos o registro de la informacin.


3.- Proceso: cualquier tipo de operacin que puede originar cambio de valor.



4.- Decisin: indica operaciones lgicas o de comparacin entre datos.

5.- Decisin mltiple: se seguir uno de los diferentes caminos.




6.- Conector: conexin en la misma pgina de dos partes de un organigrama.


7.- Lnea de flujo: indica el sentido de ejecucin de la operaciones.


8.- Lnea conectora: sirve de unin entre dos smbolos.

9.- Conector: conexin entre dos puntos de organigrama situado en pginas diferentes.












Ejemplo 1: Realice el diagrama que representa la resolucin de un problema que deduce el salario
neto de un trabajador a partir de la lectura del nombre, horas trabajadas, precio de la hora y
sabiendo que los impuestos aplicados son el 10% sobre el salario bruto.























Inicio
Leer:
Nombre,
Horas,
Precio_hora
Calcular:
Jornal_bruto=horas*precio_hora
Jornal_neto=0.9*Jornal_bruto
Escribir:
Nombre,
Horas,
Jornal_bruto,
Jornal_neto
Fin
Ejemplo 2: Realice el algoritmo en un diagrama de flujo que resuelva el siguiente problema:
Calculo de los salarios semanales de los empleados de una empresa, sabiendo que estos se
calculan en base a las horas semanales trabajadas y de acuerdo a un precio especificado por cada
hora. Si se pasan de 40 horas semanales, las horas extraordinarias se pagarn a razn de 1.5 veces
la hora ordinaria.





















Si
No
Inicio
Leer:
Horas
Precio_hora
Calcular:
Salario=Horas*Precio_hora
Datos?
Horas<=40
Calcular:
Salario=Precio_hora*(1.5*Horas-20)
Escribir:
Salario
Inicio
Ejemplo 3: Dados tres nmeros determinar si la suma de una pareja de ellos es igual al tercer
nmero, si se cumple esta condicin escribir "Iguales" y en caso contrario escribir "Distintas".


Ejemplo 4: Se desea calcular el salario neto semanal de un trabajador en funcin del nmero de
horas trabajadas y la tasa de impuestos de acuerdo a la siguiente hiptesis.
1.- Las primeras 35 horas se pagan a tarifa normal.
2.- Las horas que pases de 35 se pagan a 1.5 veces la tarifa normal.
3.- Las tasas de impuestos son:
Los primeros 50 dlares son libres de impuestos.
Los siguientes 40 dlares tienen un 25% de impuestos.
Los restantes un 45% de impuestos.
Escribir as mismo el nombre, salario bruto, tasas, salario neto.

DATOS Y OPERACIONES BSICAS
1.- DATOS:
Son los objetos sobre los que opera una computadora y pueden ser:
Numricos: enteros, reales.
Carcter (cadena string): alfabticos, dgitos. Los caracteres se organizan en cadenas con ' o ".
Lgicos: O booleanos son los que toman valores de cierto (true) y falso (false).
Otros tipos de datos: arrays (vectores y matrices), record (registros), file (archivos o ficheros).
2.- CONSTANTES:
Son valores que no cambian durante la ejecucin de un programa.
3.- VARIABLES:
Objetos que pueden cambiar su valor durante la ejecucin del programa.
4.- OPERACIONES ARITMTICAS:
Las variables y constantes pueden ser procesadas utilizando operaciones y funciones adecuadas a
sus tipos, pueden ser:
Exponenciacin : ^
Multiplicacin : *
Divisin : /
Suma : +
Resta : -
Mdulo (resto) : mod
5.- EXPRESIONES LGICAS:
Son aquellas que pueden tomar dos valores, verdadero (true) falso (false), pueden ser:
Operadores relacionales:
Igual : =
Diferentes a : <>
Menor o igual que : <=
Mayor o igual que : >=
Mayor que : >
Menor que : <
Operadores lgicos:
no : not
y : and
o : or
6.- FUNCIONES INTERNAS:
La mayora de los lenguajes incorporan funciones predefinidas. Para utilizar estas funciones se
requiere la constante, variable o expresin denominado argumento encerrado entre parntesis.
Valor absoluto de x : abs(x)
Arco tangente de x : arctan(x)
Coseno de x : cos(x)
Seno de x : sen(x)
Tangente de x : tan(x)
Parte entera de x : ent(x)
Exponencial de x : exp(x)
Logaritmo neperiano de x : ln(x)
Logaritmo decimal de x :log10(x)
Raz cuadrada de x : raiz_cuadrada(x)
x se redondea al entero ms prximo: redondeo(x)

ESTRUCTURA GENERAL DE UN PROGRAMA
1.- PROGRAMA.
Un programa de computadora es un conjunto de instrucciones, rdenes dadas a la mquina, que
producirn la ejecucin de una determinada tarea.



2.- TIPOS DE INSTRUCCIONES:
Comienzo de proceso: begin
Fin de proceso: end
Entrada (lectura): read (input)
Salida (escritura): write (print)
Asignacin: A 5
Bifurcacin: pueden ser hacia adelante o hacia atrs.
3.- ELEMENTOS BSICOS DE UN PROGRAMA.
Los elementos bsicos constructivos de un programa o algoritmo son:
Entrada
Programa (algoritmo
de resolucin)
Salida
Palabras reservadas (inico, fin, si-entonces, etc.)
Identificadores (nombres de variables, procedimientos, etc.)
caracteres especiales (coma, punto y coma, apstrofo, etc.)
Constantes
Variables
Expresiones
Instrucciones
Adems de estos existen otros elementos que son:
a) Bucles e iteraciones:
Un bucle es un segmento de un algoritmo o programa, cuyas instrucciones se repiten un nmero
determinado de veces mientras se cumple una determinada condicin (existe o es verdadera la
condicin). Se debe establecer un mecanismo para terminar las tareas repetitivas. Los pasos del
bucle son las iteraciones.














No
Si
Inicio
Suma 0
Leer N
N=0
SumaSuma+N
Escribir Suma
Inicio

b) Contadores:
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada
iteracin.
Ejemplo de algoritmo con incremento.





















No
Si
Inicio
CONT1
CONT>20?
Cuerpo del bucle
CONTCONT+1
Inicio

Ejemplo de algoritmo con decremento.
























No
Si
Inicio
Producto1
Contn
Leer m,n
Cont>0?
ProductoProducto*m
ContCont-1
Escribir:
m,n,Producto
Fin
c) Acumulador:
Un acumulador es una variable cuya misin es almacenar cantidades variables resultantes de
sumas sucesivas. Realiza la misma funcin de un contador con la diferencia de que el incremento o
decremento de cada suma es variable en lugar de constante como en el caso del contador.
El siguiente diagrama de flujo representa la suma de los k nmeros enteros.





















Si
No
Inicio
N0
Suma0
Leer k
NN+1
SumaSuma+N
N=k
Escribir:
k,Suma
Fin
d) Estructuras de decisin o seleccin:
Cuando el programador desea especificar dos o ms caminos alternativos en un algoritmo o
programa.
Instruccin alternativa con dos posibles caminos.








Instruccin con alternativa mltiple.







PROGRAMACIN ESTRUCTURADA
Es el conjunto de tcnicas para desarrollar programas fciles de escribir, verificar, leer y mantener.
El teorema de Bohm y Jacopini (1966) establece que un programa propio puede ser escrito
utilizando slo tres tipos de estructuras de control:
Estructuras secuenciales:
Es aquella en que una accin sigue a otra en secuencia.
No Si
Condicin?
Accin 1 Accin 2
Condicin?
Accin 2 Accin 4 Accin 3 Accin 1 Accin 5
Estructuras selectivas:
Se utilizan para tomar decisiones lgicas, se clasifican en:
Estructura si-entonces-sino (IF-THEN-ELSE).
Estructura si-entonces (IF-THEN).
Estructura segn/caso (CASE).
Estructuras repetitivas.
Es la construccin y uso de bucles para implementar acciones que se deben ejecutar
repetidamente, los ms importantes son:
Estructura mientras (WHILE).
Estructura repetir (REPEAT).
Estructura desde (FOR).

PROBLEMAS:

Potrebbero piacerti anche