Sei sulla pagina 1di 13

IUPSM Prof.

Mayra Lanza Curso: Informática Periodo: 2-2009

UNIDAD II. ALGORITMOS Y DIAGRAMAS DE FLUJO

ORIGEN.
La palabra Algoritmo procede del vocablo "algoritm", que, a su vez, es la traducción latina del
nombre árabe de Al-Khwarizmi , matemático árabe del siglo IX (Abu Ja'far Muhammad ibn
Musa Al-Khwarizmi quien nació en Bagdad en 780 y murió en 850). Consistió en el enunciado
de las reglas para sumar, restar, multiplicar y dividir números decimales y el concepto de cero.
Fibonacci, tradujo su obra al latín y la inició con las palabras: Algoritmi dicit. Euclides, el gran
matemático griego (del siglo IV antes de Cristo) ( Inventor método para encontrar el máximo
común divisor de dos números), se considera el otro gran padre de la algoritmia (ciencia que
trata de los algoritmos).

CONCEPTO.

“Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema”.


Diccionario de la Real Academia Española
En general, es un conjunto de acciones o secuencia de operaciones que ejecutadas en un
determinado orden resuelven un problema.

CARACTERISTICAS DE LOS ALGORITMOS


 Precisión: el algoritmo debe indicar el orden de realización de cada acción, de
forma clara y sin ambigüedades.
 Definido: Cada vez que se repita, en las mismas condiciones, el resultado debe
ser idéntico.
 Finitud: tiene un inicio y un final.

ESTRUCTURA DE UN ALGORITMO

 ENTRADA: Son datos necesarios para resolver el problema


 PROCESO: operaciones y cálculos necesarios para resolver el problema.
 SALIDA: son los resultados esperados

1
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

FASES DE RESOLUCIÓN DEL PROBLEMA


La resolución de un problema con ayuda del computador se puede dividir en dos fases:

 ANÁLISIS DEL PROBLEMA.


• Formular claramente el problema
Responder: ¿Qué información debe proporcionar la resolución del problema?
(Salidas) y ¿Qué datos se necesitan para resolver el problema? (Entradas)

• Diseño del algoritmo. se busca una forma de resolver el problema, es decir, un


algoritmo. Empleando técnicas como: Partición o divide y vencerás (diseño
descendente) y Resolución por analogía

• Verificación del algoritmo. ejecución manual del algoritmo con datos


significativos que abarquen todo el posible rango de valores y comprobaremos que
la salida coincide con la esperada en cada caso.

 FASE DE IMPLEMENTACIÓN: Codificación, ejecución, verificación y depuración,


Mantenimiento.

ELEMENTOS DE UN ALGORITMO

 VARIABLES: es una identificación, asignada por el programador, a una dirección de


memoria, donde se aloja un dato.
 CONSTANTES: es un dato almacenado en una variable cuyo contenido no puede ser
modificado durante la ejecución de un programa

DECLARACION DE VARIABLES Y CONSTANTES:

Esta operación implica la asignación de un espacio de memoria de trabajo que


estará asociado a ella. El tamaño dependerá del tipo de dato y lenguaje de
programación con el que se trabaje.

2
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

Sintaxis Variables: TIPO nombre_variable ;


Ejemplo: entero numero1; se pueden inicializar o no entero numero1←0

Sintaxis Constantes: TIPO nombre_variable←valor; Ejemplo: entero numero1←2;

Al declarar una variable o una constante se liga al dato con un nombre o


identificador, por el cual se accederá a tal posición de memoria de allí en
adelante. Ciertos lenguajes de programación, exigen que todas las variables y
constantes de un programa sean previamente declaradas antes de ser
utilizadas. Cuando se desea inicializar o modificar el valor de una variable se
realiza una operación de asignación. Se la simboliza con el símbolo "←". Asignar
significa asociar un valor determinado a un identificador o nombre de
variable/constante.

Para dar nombres a las variables hay que seguir ciertas reglas:
 Pueden tener hasta 40 caracteres
 Debe empezar obligatoriamente con una letra (a-z o A-Z)
 No pueden contener espacios en blanco
 El resto de los dígitos pueden ser números
 Se pueden incluir caracteres especiales como el guión o el punto

 EXPRESIONES: es un conjunto de variables, constantes (operandos) y operadores,


describen un cálculo a efectuar cuyo resultado es un valor único. En informática existen
tres tipos de expresiones:

*Numéricas: Generan un resultado numérico y se construyen mediante operadores


aritméticos:
Ejemplo: (X+Y) *Z*4.15+X
*Alfanuméricas: Resultados alfanuméricos, se construyen mediante operadores
alfanuméricos:
Ejemplo: N←”Juan” “Don ” + N ← “Don Juan”

*Booleanos: Resultados verdaderos o falso, se construyen mediante operadores


relacionales y lógicos:
Ejemplo: A>3 y B<5.

3
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

OPERADORES: Todos los símbolos que enlazan argumentos en una operación se


llaman operadores y se utilizan para construir expresiones.
Ejemplo: a + b = c
Aquí: el signo + y el signo = son operadores.
Los operadores son:
 Aritméticos: suma (+), resta (-), multiplicación (*), división (/),
mod (resto de división).
 Relacionales: mayor (>), menor (<), Mayor que (>=), Menor que
(<=), igual (=), diferente (<>).
 Logicos: Y (and), O (or), NO (not).

OR u O: es un operador binario, afecta a dos operadores. La expresión que forma es verdadera


cuando al menos uno de sus operandos es verdadero.
Ejemplo: estudiamos o vamos al Cine
AND o Y: también es un operador binario. La expresión formada es cierta cuando ambos operadores
son ciertos al mismo tiempo. Es el operador lógico de conjunción.
Ejemplo: si conduces y hablas por el celular te estrellas
NOT o NO: es un operador unario, afecta a un solo operando. Cambia el estado lógico de la
expresión; si es verdad la transforma en falso y al revés.
Ejemplo: no es verde.

El orden de prioridad de estos operadores es: NOT, AND y OR.

El orden de prioridad es el siguiente:


 paréntesis, comenzando por el más interno
 potencias
 productos y divisiones
 sumas y restas
 concatenación
 relacionales
 lógicos

La evaluación de operadores con la misma prioridad se realizara siempre de izquierda a


derecha

 DATOS: es un tipo especial de información no elaborada. En general valores sin


características asociadas. Objetos con los cuales opera el algoritmo.

Tipo de un dato: determina cómo se almacena y qué operaciones se pueden efectuar con él:
 Entero: precisos, pero limitados en tamaño. son todos los números positivos y negativos
 Real: imprecisos y limitados en tamaño. números decimales
 Lógico: es aquel que puede tomar por valor sólo uno de los dos siguientes: { verdadero,
falso }

4
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

 Carácter: alfanuméricos y otros.


 Cadena: serie finita de caracteres

 INSTRUCCIONES: Son las órdenes que conforman un algoritmo.

CLASIFICACIÓN DE LAS INSTRUCCIONES


 Instrucciones de entrada: Son instrucciones que se utilizan para tomar datos desde
la entrada al sistema, por ejemplo, el teclado y que se guardaran en Variables.
 Asignación: Permite ingresar un valor a una variable para realizar procesos.
 Instrucciones de salida: Sirven para presentar en pantalla o en impresora
comentarios, constantes, contenidos de las variables y resultados de expresiones.
 Instrucciones de control de decisión: Las instrucciones condicionales o tomas de
decisión permiten realizar acciones alternativas. Significa que la ejecución de una línea o
grupos de líneas del programa depende de sí se cumple o no alguna condición.

 FUNCIONES: En los lenguajes de programación existen ciertas funciones predefinidas


o internas que aceptan unos argumentos y producen un valor denominado resultado.

Como funciones numéricas, normalmente se usarán:

Función Descripción
abs(x) Valor Absoluto
cos(x),sin(x) Coseno,Seno
cuadrado(x) x2
exp(x) exponente
ln(x) Ln(x)
log(x) Log10(x)
raiz(x) Raiz Cuadrada

 SENTENCIAS: son unidades completas ejecutables en sí mismas. Pueden se simples


(expresión de algún tipo terminada con un carácter (;) de finalización) o compuestas
(grupo de acciones agrupadas entre llaves).

Ejemplo Simple: espacio = espacio_inicial + velocidad * tiempo;


Compuesta: { velocidad=espacio/tiempo ;
velocidad=velocidad+media_velocidad ;
m=masa*velocidad_media ; }

5
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

 ACUMULADOR: Es una variable que nos permite guardar un valor que se incrementa
o decrementa en forma NO constante durante el proceso. En un momento determinado
tendrá un valor y al siguiente tendrá otro valor igual o distinto. Se deben inicializar
fuera de un ciclo.

Sintaxis: Nombre_Acumulador= Nombre_Acumulador+Nombre_Variable


Nombre_Acumulador es la variable en la que se almacena el resultado.
Nombre_Variable contiene el número que estamos incrementando o decrementando

Ejemplo: dados Nombre_Acumulador: ACUM y Nombre_Variable: X=2, en donde


ACUM=0 (se inicializa en Cero.)

Memoria El computador toma el valor de la variable ACUM


X ACUM ACUM contenido en memoria (0), le suma el valor contenido
en la variable X (2) y el valor resultante se deposita en
2 0+2 2 →
memoria en la zona correspondiente a la Variable
ACUM, sustituyendo el valor que había anteriormente.

 CONTADOR: es una variable destinada a contener valores que se van incrementando o


decrementando cada vez que se ejecuta la acción que lo contiene. El incremento o
decremento es llamado paso de contador y es siempre constante.

Sintaxis: contadorcontador+1

Memoria El computador toma el valor de la variable contador


contenido en memoria (0), le suma el valor constante
contador contador (en este caso 1) y el valor resultante se deposita en
memoria en la zona correspondiente a la Variable
0+1 →
1 contador, sustituyendo el valor que había anteriormente.

6
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

REPRESENTACION DE ALGORITMOS
Para representar un algoritmo se debe utilizar algún método que permita la independencia
entre dicho algoritmo y el lenguaje de programación elegido. Esto permitirá que el algoritmo
pueda ser codificado indistintamente en cualquier lenguaje.
Los métodos más usados son:
 Diagrama de Flujo
 Pseudocódigo

A. DIAGRAMA DE FLUJO: Consta de una serie de símbolos estándar, que representan


las distintas acciones del algoritmo, conectados mediante líneas que indican el orden en
el cual deben realizarse las operaciones. Los símbolos están estandarizados por ANSI
(American National Standars Institute).

Inicio Fin Indican el inicio y el fin del algoritmo. Del primero solo puede salir una línea
y al segundo solo puede llegar una línea.
Indica una acción a realizar. Tiene una única línea de entrada y otra de
Proceso/Acción
salida.
Indica una acción de entrada (lectura de datos desde teclado) o salida
Entrada/Salida
(escritura de datos por pantalla). Tiene una única línea de entrada y otra de
salida.
Se usa para tomar una decisión, esta depende si se cumple o no la
Condición condición establecida. Tiene una línea de entrada y dos de salida (verdadero
y falso)

Se usan para conectar símbolos y establecer la dirección del flujo de control


del algoritmo (orden en que se ejecutan las instrucciones de un programa
siendo las propias instrucciones las que determinan o controlan dicho flujo).

Se usa para conectar distintos puntos de los diagramas y evitar el cruce de


flechas.
Conector. Se usa para conectar bloques entre distintas paginas

Entrada de datos por teclado

Salida de datos por pantalla

Salida de datos por impresora

7
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

Algunas recomendaciones para el diseño de Diagramas de Flujo


 No deben quedar líneas de flujo sin conectar.
 Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda
a derecha.
 Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de
muchas palabras.
 Se deben usar solamente líneas de flujo horizontales y/o verticales.
 Se debe evitar el cruce de líneas utilizando los conectores.
 Se deben usar conectores sólo cuando sea necesario

B. PSEUDOCODIGO: describe un algoritmo utilizando una mezcla de frases en lenguaje


común, instrucciones de lenguaje de programación y palabras claves.

A pesar de su flexibilidad el pseudocódigo tiene que atenerse a una serie de normas para que
los algoritmos construidos resulten legibles, claros y fácilmente codificables, con este fin se le
imponen algunas restricciones tales como:
• Los identificadores usados han de tener un significado de acuerdo a su contenido.
• El conjunto de sentencias debe ser completo, en el sentido de permitir especificar cualquier
tarea a realizar con suficiente detalle.
• Contener un conjunto de palabras reservadas.
Las palabras básicas reservadas, es decir, aquellas que pueden ser traducidas a palabras
de un lenguaje de Programación se presentan en minúscula cursivas o en negrita.
Tipo de Instrucción Pseudocódigo
Fin de proceso fin
Entrada (Lectura) leer
Salida (Escritura) imprimir o escribir
Asignación ← ejemplo: suma ← a+b;
Comentarios // ejemplo:// Declaración de variables

8
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

CUADRO RESUMEN
Tipo de Instrucción Pseudocódigo Diagrama de Flujo

COMIENZO DE PROCESO Inicio Inicio

FIN DE PROCESO Fin Fin

ASIGNACIÓN: Permite ingresar un valor var←exp o var=exp


a una variable para realizar procesos. Suma ← a + b

OPERACIONES DE E/S Leer ejemplo: leer(x) o


ENTRADA (LECTURA): Se usa para leer leer x Leer a,b
un dato del teclado.
SALIDA (ESCRITURA): Se usa para imprimir o escribir
escribir un dato por pantalla ejemplo: escribir (“Introducir el valor de
la base”);
Escribir “la suma
escribir (“El resultado es:”, suma); es:”, suma
imprimir (“la base ”,b,”por la altura ”,a,”es
la superficie ”,s);
ESTRUCTURAS SECUENCIALES: Algoritmo Suma
Sucesión de dos o más operaciones inicio
(acciones) cuya ejecución coincide con el Variables entero: a, b, c;
orden de aparición de las instrucciones leer a,b;
(acciones) c ←a + b;
escribir c;
fin
ESTRUCTURAS DE DECISIÓN o Simple:
Alternativas si (condición) entonces
Simple: sentencia;
Ejecuta una determinada acción cuando se fin-si
cumple una determinada condición. Se
evalúa la condición y -si la condición es
verdadera, entonces ejecuta la acción (o Compuesta:
acciones) y si la condición es falsa,
entonces no hace nada y el programa si (condición) entonces
continua con la siguiente instrucción. Sentencias_ en_ caso_ de_ verdad_S2;
sino
Doble: Permite elegir entre dos opciones Sentencias_ en_ caso_ de_ falso_S1;
o alternativas posibles, en función del fin-si
cumplimiento o no de la condición: Si el
resultado de evaluar la condición es según_sea ( <expresión> )
Verdadera se ejecutará un determinado <listadevalores_1>:
grupo de instrucciones Acciones S2. Sino, <bloque_de_instrucciones_1>
si al evaluar la condición es FALSO se <listadevalores_2:
ejecutará otro grupo de instrucciones <bloque_de_instrucciones_2>
Acciones S1 y continúa con la siguiente .
sentencia del programa. <listadevalores_n>
<bloque_de_instrucciones_n>
Selección Múltiple: [sino : <bloque_de_instrucciones_n+1>
Una instrucción alternativa múltiple ]
dependiendo del valor obtenido al evaluar fin_segun_sea
la expresión, se ejecutará un bloque de
instrucciones u otro.

9
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

Estructuras Repetitivas: Mientras: Se  Mientras -Hacer


repite mientras la condición sea cierta. mientras (condición) hacer
Donde la condición puede ser cierta o falsa acciones;
Hacer mientras: Se realizan al menos fin-mientras
una vez las instrucciones ya que estas se
llevan a cabo y luego se verifica si se  Hacer mientras
cumple la condición. hacer
 Para: Las acciones del cuerpo del bucle <Instrucciones>;
se realizan un número de veces mientras(<condición>)
especificado de antemano.
*para variable=inicio hasta fin
<<incremento/decremento>> hacer
<cuerpo_bucle>;
fin_para

**Ejercicio resuelto:
Calcular el pago neto semanal de un trabajador conociendo el número de horas trabajadas, el
valor de la hora, y la tasa de impuesto.

ANALISIS DEL PROBLEMA

Se debe conocer las horas que trabajo durante la semana, cuánto se le cancela al trabajador por hora
y cual es el porcentaje de impuesto que se le debe descontar. En base a estos datos básicos, se calcula
primero el pago bruto, que es salario que le corresponde al trabajador por el total de horas trabajadas
a la semana sin el descuento por concepto de impuesto. Luego, se calcula el impuesto que se le va a
aplicar a ese salario o pago bruto. Posteriormente, el pago neto del trabajador, que es el salario final
que le corresponde al que ya se hizo el descuento correspondiente, resulta de restar el pago bruto
menos el impuesto calculado anteriormente.

Por tanto,
Salidas: el resultado que se espera obtener es el pago neto semanal del trabajador
Entradas: los datos que permitirán calcular el pago neto son: horas trabajadas, valor de
la hora, y la tasa de impuesto.

DISEÑO DEL ALGORITMO


Algoritmo Pago_semanal
1. inicio
2. leer horatrab, valorhora, tasaI

10
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

3. calcular pagobruto  horatrab * valorhora


4. calcular impuesto  pagobruto*tasaI
5. calcular pagoneto  pagobruto – impuesto
6. mostrar pagobruto, impuesto, pagoneto
7. fin

VERIFICAR ALGORITMO PROPUESTO


Se realiza entonces una prueba en “frío” o de “escritorio”. Simulando la memoria del
computador realice una tabla con las variables del algoritmo, asignándole valores a las
variables de entrada y siguiendo cada una de las instrucciones del algoritmo diseñado.

Variables de entrada: Para un trabajador que trabajo a la semana 24 horas las cuales se le
cancelaran a razón de 5 Bs la hora, y la tasa de impuesto que le corresponde sea de 12%
(0,12). Calcule el pago neto correspondiente.

horatrab valorhora tasaI pagobruto impuesto pagoneto


24 5 0,12 120 14,4 105,6

Siguiendo el algoritmo diseñado, El pago bruto será igual a 24*5=120, el impuesto será igual
a 120*0,12=14,4 y por ultimo el pago neto será igual a 120-14,4= 105,6 es lo que recibirá el
trabajador

Pseudocódigo:

Algoritmo Pago_semanal
inicio
Declaración de Variables:
Real: horatrab, valorhora, tasaI
escribir (“ingrese horas trabajadas, valor de la hora y tasa de impuesto”)
leer horatrab, valorhora, tasaI
pagobruto  horatrab * valorhora
impuesto  pagobruto*tasaI
pagoneto  pagobruto – impuesto
escribir (“El pago bruto es:”, pagobruto)
escribir (“El impuesto a pagar es:”, impuesto)
escribir (“El pago neto es:”, pagoneto)
fin

11
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

Diagrama de Flujo Pago_semanal

Inicio

leer horatrab, valorhora,


tasaI

pagobruto  horatrab * valorhora


impuesto  pagobruto*tasaI
pagoneto  pagobruto – impuesto

escribir pagobruto,
impuesto, pagoneto

Fin

12
IUPSM Prof. Mayra Lanza Curso: Informática Periodo: 2-2009

Ejercicios propuestos
1. Ordenar los pasos para pescar:

___ El pez se traga el anzuelo.


___ Enrollar el sedal.
___ Tirar el sedal al agua.
___ Llevar el pescado a casa.
___ Quitar el Anzuelo de la boca del pescado.
___ Poner carnada al anzuelo.
___ Sacar el pescado del agua.

2. Realice un algoritmo para resolver los siguiente problemas:


 Cambiar las cuatro ruedas de un automóvil
 Inscribirse en su Universidad
 Usar el telecajero de un banco

3. Escribir un algoritmo para:


 Sumar dos números enteros
 Calcular el área de un triangulo rectángulo.
 Determinar si un número es positivo, igual a cero o negativo.
 Sumar los números pares del 1 al 20.
 Determinar el mayor y el menor de tres números enteros considerar si son
iguales.
 Calcular la tabla de multiplicar del numero 9

13

Potrebbero piacerti anche