Está en la página 1de 9

Unidad II. Algoritmos y Diagramas de flujo Prof.

Mayra Lanza
Curso: Introducción a la informática

1. PROBLEMA: El diccionario de la Real Academia Española lo define como:

 “Conjunto de hechos o circunstancias que dificultan la consecución de algún fin”.


 “Planteamiento de una situación cuya respuesta desconocida debe obtenerse a través de
métodos científicos”.
 “Una necesidad inicial, que tiene un objetivo o solución a alcanzar mediante una serie de
operaciones, actividades o métodos bien definidos”.

2. FASES PARA LA RESOLUCION DE PROBLEMAS


Ayudado por el computador, la resolución de un problema se puede dividir en dos fases:

a. FASE DE RESOLUCIÓN DEL PROBLEMA:


 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.

b. FASE DE IMPLEMENTACIÓN: Codificación, ejecución, verificación y depuración, Mantenimiento.

3. ALGORITMOS.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).

4. ALGORITMOS.CONCEPTO
“Conjunto ordenado y finito de operaciones
que permite hallar la solución de un
problema”. Diccionario de la Real Academia
Española

Es un conjunto de acciones o secuencia de


operaciones que ejecutadas en un
determinado orden resuelven un problema.

1
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

4.1CARACTERISTICAS 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.

4.2 CALIDAD DE LOS ALGORITMOS


• Validez. El algoritmo construido hace exactamente lo que se pretende hacer.

• Eficiencia. El algoritmo debe dar una solución en un tiempo razonable. (Directo).

• Optimización. Se trata de dar respuesta a la cuestión de si el algoritmo diseñado para


resolver el problema es el mejor. En este sentido debe prevalecer un algoritmo sencillo que
no uno complejo, siempre que el primero no sea extremadamente ineficiente.

5. 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.
Tipos de datos básicos:
 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 }
 Carácter: alfanuméricos y alfabéticos.
 Cadena: serie finita de caracteres

6. ELEMENTOS DE UN ALGORITMO

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


memoria, donde se aloja un dato.

2
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

6.2 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.

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, junto con la buena práctica del oficio, 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.
Ejemplos de Ejemplos de
Para dar nombres a las variables hay que seguir NOMBRES VÁLIDOS nombres de
ciertas reglas: de variables: variables NO
 Pueden tener hasta 40 caracteres válidos:

 Debe empezar obligatoriamente con una letra FechaNueva Fecha nueva


(a-z o A-Z) C1 1contador
totalGuaranies 24ABC
 No pueden contener espacios en blanco CONTADOR-5 primer-valor N
 El resto de los dígitos pueden ser números H123
cantidad_de_Alumnos
 Se pueden incluir caracteres especiales como el
guión o el punto.

6.3 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.

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.

3
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

El orden de prioridad es el siguiente:


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 estadio
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 es verano y hace calor vamos a la playa
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 verano.
El orden de prioridad de estos operadores es: NOT, AND y OR.

• 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.
6.3.1 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 ;
}
6.4 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) Raíz Cuadrada

7. 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.
4
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

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.)
El computador toma el valor de la variable ACUM
Memoria contenido en memoria (0), le suma el valor
X ACUM ACUM
→ contenido en la variable X (2) y el valor resultante
2 0+2 2
actualiza en memoria el valor correspondiente a la
Variable ACUM, es decir, sustituyendo el valor que
había anteriormente.
8. 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
contador contadorcontenido en memoria (0), le suma el valor constante
0+1 → (en este caso 1) y el valor resultante se deposita en
1
memoria en la zona correspondiente a la Variable
contador, sustituyendo el valor que había
9. REPRESENTACION DE ALGORITMOS
anteriormente.
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 salida.
Proceso/Acción

Entrada/Sali Indica una acción de entrada (lectura de datos desde teclado) o salida (escritura
da 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


Condi establecida. Tiene una línea de entrada y dos de salida (verdadero y falso)
ción

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).

5
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

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
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 flujos 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.

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.

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.

6
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

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.
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

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 a una var←exp o var=exp


variable para realizar procesos. Suma ← a + b

OPERACIONES DE E/S Entrada


Leer a,b

ENTRADA (LECTURA): Se usa para leer Leer ejemplo: leer(x) o leer x


un dato del teclado.
imprimir o escribir
ejemplo: escribir (“Introducir el valor de la
SALIDA (ESCRITURA): Se usa para base”);
Escribir “la suma es:”, suma

escribir un dato por pantalla escribir (“El resultado 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;
Leer a,b;
orden de aparición de las instrucciones
c ←a + b;
(acciones) escribir c;
fin

ESTRUCTURAS DE DECISIÓN o Alternativas Simple:


Simple: si (condición) entonces
Ejecuta una determinada acción cuando sentencia;
se cumple una determinada condición. Se fin-si
evalúa la condición y -si la condición es
verdadera, entonces ejecuta la acción (o
acciones) y si la condición es falsa, Compuesta:
entonces no hace nada y el programa
continua con la siguiente instrucción. si (condición) entonces
Sentencias_ en_ caso_ de_ verdad_S2;
Doble: Permite elegir entre dos opciones sino
o alternativas posibles, en función del Sentencias_ en_ caso_ de_ falso_S1;
cumplimiento o no de la condición: Si fin-si
el resultado de evaluar la condición es
Verdadera se ejecutará un determinado según_sea ( <expresión> )
grupo de instrucciones Acciones S2. Sino, <listadevalores_1> :
si al evaluar la condición es FALSO se <bloque_de_instrucciones_1>
ejecutará otro grupo de instrucciones <listadevalores_2> :
Acciones S1 y continúa con la siguiente <bloque_de_instrucciones_2>
sentencia del programa. . ..
<listadevalores_n> :
Selección Múltiple: <bloque_de_instrucciones_n>
Una instrucción alternativa múltiple [ sino : <bloque_de_instrucciones_n+1> ]
dependiento del valor obtenido al evaluar fin_segun_sea

7
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

la expresión, se ejecutará un bloque de


instrucciones u otro.

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 acciones;
falsa fin-mientras

• Hacer mientras
Hacer mientras: Se realizan al menos hacer
una vez las instrucciones ya que estas se <Instrucciones>;
llevan a cabo y luego se verifica si se mientras(<condic
cumple la condición. ión>)

*para
• Para: Las acciones del cuerpo del bucle variable=inicio
se realizan un número de veces hasta fin
especificado de antemano.

<<incremento/decremento>> hacer
<cuerpo_bucle>;
fin_para

EJERCICIOS

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.

8
Unidad II. Algoritmos y Diagramas de flujo Prof. Mayra Lanza
Curso: Introducción a la informática

___ Sacar el pescado del agua.

1. Supongamos que tenemos un robot que funciona como criado del hogar y queremos que pueda preparar una taza de
café instantáneo. Diseñe algoritmo correspondiente
2. Diseñe un algoritmo para hacer una llamada desde un teléfono publico
3. Una farmacia aplica al precio de sus productos un 10% de descuento, Realizar un algoritmo (pseudocódigo y
diagrama de flujo), que permita imprimir y calcular el descuento y el precio final.
4. Diseñar un algoritmo (seudocódigo y diagrama de flujo) para calcular el Producto de 2 números naturales X e Y.
5. Leer tres números del teclado, calcular el mayor de ellos y escribir éste por pantalla.
6. Algoritmo que lee dos valores numéricos ‘X’ e ‘Y’, determina si son iguales y, en caso de no serlo, indica cuál de ellos
es el mayor.
7. Elabore un algoritmo y DF que permita determinar si una persona es Niño, Adolescente, Joven o Mayor. Para ello considere que
Niño será hasta la edad de 14 años, Adolescente de 15 a los 20, joven de los 21 hasta los 40 y mayor en adelante.
8. Algoritmo que lee cinco valores numéricos y calcula su producto
9. Leer dos números y una operación (+ - * / ) y mostrar el resultado
10.Un programa que lea números, los sume y termine cuando que el usuario introduzca el número 0, mostrando la suma
y la media
11.Se desea que Usted realice el algoritmo que permita dada un dato de valor entero, determinar si este dato es positivo
o negativo o cero
12.Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, su suma y su media aritmética
13.Diseñar un algoritmo que lea dos valores reales y nos muestre los resultados de sumar, restar, dividir y multiplicar
dichos números.
14.Realice un algoritmo que sume los números pares desde el 2 hasta el 50
15.Realice un algoritmo que permita encontrar el menor de 3 números enteros
16.Leer una secuencia de números y sumar solo los pares mostrando el resultado del proceso

También podría gustarte