Pro Ge Structur Ada
-
Upload
guadalupe-flores-diaz -
Category
Documents
-
view
38 -
download
3
Transcript of Pro Ge Structur Ada
Programación Estructurada
Lic. Guadalupe Flores Díaz
¿Qué es lo que observas?
Un nuevo semestre, cosas nuevas que aprender, cosas nuevas que hacer...¿que observas en el presente semestre?... ¿Cómo te sientes?...¿Que te gustaría?
Todo depende de ti……Video motivacional
Forma de Evaluación
Actividades en Clase 20%Tareas 15%Examen 30%Participación 10%Diagramas de flujo / programas 25%
SISTEMAS DE PROCESAMIENTO DE INFORMACION
Computadora: Maquina o aparato electrónico capaz de ejecutar operaciones repetitivas a muy alta velocidad.
Entrada = Datos Salida = InformaciónPROCESADOR
Representación de algún hecho, concepto o entidad real (los datos pueden tomar diferentes formas; por ejemplo palabras escritas o habladas, números y dibujos).
Datos procesados y organizados.
COMPONENTES DE UN SISTEMA DE PROCESAMIENTO DE INFORMACION
SISTEMAS DE PROCESAMIENTO DE INFORMACION
Ejemplos:• El termostato.• Arturito• Nosotros mismos.
¿Cómo el procesador transforma esos datos de entrada en información procesada?
Algoritmo: Conjunto de instrucciones que especifica la secuencia de operaciones a realizar, en orden, para resolver un problema especifico, en otras palabras un algoritmo es una formula para la resolución de un problema.
SISTEMAS DE PROCESAMIENTO DE INFORMACION
HARDWARE: Conjunto de componentes físicos de la computadora (equipo físico)
SOFTWARE: Conjunto de programas que controlan el funcionamiento de una computadora (equipo lógico).
Memoria central
Unidad central de
procesamiento
Dispositivos de
entrada/salida E/s
(Periféricos)
Almacenamiento secundario (memoria auxiliar)
1.7
La computadora manipula únicamente información digital:
Datos e instrucciones se codifican como dígitos binarios (0’s y 1’s)
¿Por qué no se usa una representación de otro tipo? Problema tecnológico (es más fácil representar ceros y
unos) ¿A qué nos conduce la solución adoptada para
evitar el problema tecnológico? La máquina sólo puede trabajar con cadenas de ceros
y unos
¿Qué entiende la computadora?
Lenguajes de Programación Sirven para escribir programas que
permitan la comunicación usuario y maquina. Unos programas especiales llamados traductores convierten las instrucciones escritas en lenguajes de programación en instrucciones escritas en lenguajes de maquina que este pueda entender.
Estos lenguajes de programación se clasifican en:
Maquina: Código maquina. Bajo Nivel: Ensamblador. Alto Nivel: Son los mas usados por
los programadores, son los mas fáciles de transportar a maquinas diferentes y la escritura de programas es mas sencilla.
1.9
a = (b + c)/(d + e)Pasos
sumar b y c, y guardar el resultado en una dirección de memoria temporal X
sumar d y e, y guardar el resultado en una dirección de memoria temporal Y
dividir el contenido de X por el de Y y guardar el resultado en la dirección de memoria de a
Ejemplo de código máquina codigoOp direccOp1 direccOp2 direccRes
0000 00001000 00001100 000011100000 00011000 00011100 000111100101 00011110 00001110 00000100
Código de la división
Direcc. Temporal X
Direcc. Temporal Y
Código de la suma
Lenguaje máquinax y
1.10
Lenguaje máquina (cont.)
InconvenientesGrandes posibilidades de errorPortabilidad: máquina-dependiente
No se puede llevar el programa a otra máquina porque, entre otras cosas, el repertorio de instrucciones es distinto
TediosoNula capacidad de abstracción
Es muy complicado formular una solución a problemas del mundo real con ese lenguaje tan específico
Lenguaje Máquina
En los primeros tiempos del desarrollo de los ordenadores era necesario programarlos directamente de esta forma, sin embargo, eran máquinas extraordinariamente limitadas, con muy pocas instrucciones por lo que aún era posible; en la actualidad esto es completamente irrealizable por lo que es necesario utilizar lenguajes más fácilmente comprensibles para los humanos que deben ser traducidos a código máquina para su ejecución.
Actividad. Codificación con números binarios
Escribir tu nombre con el siguiente código binario
A 0 0 0 0 0 L 0 1 0 1 1 W 1 0 1 1 0
B 0 0 0 0 1 M 0 1 1 0 0 X 1 0 1 1 1
C 0 0 0 1 0 N 0 1 1 0 1 Y 1 1 0 0 0
D 0 0 0 1 1 O 0 1 1 1 0 Z 1 1 0 0 1
E 0 0 1 0 0 P 0 1 1 1 1
F 0 0 1 0 1 Q 1 0 0 0 0
G 0 0 1 1 0 R 1 0 0 0 1
H 0 0 1 1 1 S 1 0 0 1 0
I 0 1 0 0 0 T 1 0 0 1 1
J 0 1 0 0 1 U 1 0 1 0 0
K 0 1 0 1 0 V 1 0 1 0 1
1.13
Lenguaje ensamblador
Ejemplo de instrucción de código ensamblador
codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes
Códigos simbólicos de las operacionesSUM = La suma DIV = La división
a = (b + c)/(d + e)
SUM B, C, XSUM D, E, YDIV X, Y, A
Lenguaje Ensamblador
Los lenguajes ensambladores son en esencia una versión simbólica de los lenguajes máquina; por cada instrucción de la máquina o cada elemento capaz de almacenar datos se crea un símbolo que puede utilizar el programador; así, las instrucciones anteriores se escribirían como:add. i c a bsub. f c a b
Cuestiones ¿Cómo entiende la máquina el lenguaje ensamblador? Si las direcciones de memoria son simbólicas ¿en qué
direcciones de memoria se colocan los datos?
Programa ensamblador Traducción a código binario de códigos simbólicos de
operación Traducción de las direcciones simbólicas a direcciones reales
de memoria Inconveniente: sigue siendo dependiente de la máquina
1.15
Lenguaje ensamblador (cont.)
Código fuente(lenguaje ensamblador)
Programa ensamblador Código objeto(lenguaje máquina)
1.16
Lenguajes de alto nivel
Lenguaje que permite representar el mecanismo de resolución de los problemas usando instrucciones independientemente de la computadora Cercanía conceptual al programador Pascal, C, Java, etc. son lenguajes de alto
nivel
Lenguaje de Programación
Un lenguaje de programación es aquel elemento dentro de la informática que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposición del programador para que este pueda comunicarse con los dispositivos hardware y software existentes. Algunos ejemplos son:
LENGUAJES DE PROGRAMACION
LENGUAJE DE ALTO NIVEL• Diseñados para que las personas
entiendan y escriban los programas de un modo mas fácil que usando lenguajes de maquina y ensamblador.
• Es independiente de la maquina pues las instrucciones no dependen del hardware o maquina en particular.
• Los programas escritos en lenguaje de alto nivel son portables o transportables, es decir que pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de maquinas.
C, C++, COBOL, FORTRAN, Pascal, Java, Phyton.
LENGUAJES DE PROGRAMACION
Alto Nivel
Bajo Nivel
Maquina
;Lenguaje ensamblador, sintaxis Intel para procesadores x86mov eax,1 ;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro ebx int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal)
{Lenguaje Pascal} program suma;
var x,s,r:integer; {declaración de las variables} begin {comienzo del programa principal} writeln('Ingrese 2 números enteros');{imprime el texto} readln(x,s); {lee 2 números y los coloca en las variables x y s} r:= x + s; {suma los 2 números y coloca el resultado en r} writeln('La suma es ',r); {imprime el resultado} readln; end.{termina el programa principal}
Lenguajes de Programación
Un LP posee dos componentes:Léxico. Conjunto de símbolos que se
pueden usar en un lenguaje. Sintaxis. Conjunto de reglas formales que
especifican la composición de programas a partir de ciertas unidades de construcción (Caracteres)
Semántica. Especifica el significado de un programa sintácticamente válido escrito en el lenguaje
Léxico
Identificadores: nombres que se le darán a ciertos elementos de programación (p.e. nombres de variables, tipos, módulos, etc.).
Constantes: datos que no cambiarán su valor a lo largo del programa.
Operadores: símbolos que representarán operaciones entre variables y constantes.
Instrucciones: símbolos especiales que representarán estructuras de procesamiento, y de definición de elementos de programación.
Comentarios: texto que se usará para documentar los programas
Sintaxis
Consta de unas definiciones, denominadas reglas sintácticas o producciones que especifican la secuencia de símbolos que forman una frase del lenguaje. Estas reglas dicen si una frase está bien escrita o no.
Actividad
Dadas las siguientes expresiones, ordénelas, aplicando la sintaxis adecuada, de tal manera que el mensaje sea entendible.orientarse Es saber importante iba el saco ladrón a meterla en El lección El explica los niños a maestro la para tinta La escribir sirve prisa Ven tengo porque pronto
Actividad. Pon los signos de puntuación donde corresponda
En base al texto proporcionado por el docente, escribe los signos de puntuación según corresponda, de tal manera que quede de acuerdo a lo que se indica:
Escribe los signos de puntuación según corresponda, de tal manera que en la primera vez le quede al sobrino Juan, en el segundo intento le quede a Luís, en el tercero al Sastre, el cuarto a los Jesuitas y en el último caso no le quede a ninguna persona.
Texto a poner puntuación
“Dejo mis bienes a mi sobrino Juan no a mi hermano Luis tampoco jamás se pagará la cuenta al sastre nunca de ningún modo para los jesuitas todo lo dicho es mi deseo”
Solución para Juan:
Dejo mis bienes a mi sobrino Juan. No a mi hermano Luis. Tampoco, jamás, se pagará la cuenta al sastre. Nunca, de ningún modo, para los jesuitas. Todo lo dicho es mi deseo
Solución para Luis:
¿Dejo mis bienes a mi sobrino Juan? No. ¡A mi hermano Luis!. Tampoco, jamás, se pagará la cuenta al sastre. Nunca, de ningún modo, para los jesuitas. Todo lo dicho es mi deseo
Solución para el Sastre:
¿Dejo mis bienes a mi sobrino Juan? No. ¿A mi hermano Luis? Tampoco, jamás. Se pagará la cuenta al sastre. Nunca, de ningún modo, para los jesuitas. Todo lo dicho es mi deseo
Solución para los jesuitas:
¿Dejo mis bienes a mi sobrino Juan? No. ¿A mi hermano Luis? Tampoco, jamás. ¿Se pagará la cuenta al sastre? Nunca, de ningún modo. Para los jesuitas todo. Lo dicho es mi deseo
Solución para ninguno:
¿Dejo mis bienes a mi sobrino Juan? No. ¿A mi hermano Luis? Tampoco. Jamás se pagará la cuenta al sastre. Nunca, de ningún modo, para los jesuitas. Todo lo dicho es mi deseo
¿Cómo entiende la maquina los lenguajes de prog.?
Un Lenguaje de programación requiere 0’s y 1’s.
Un lenguaje de alto nivel son palabras fácilmente entendibles.
Se requieren Traductores
TRADUCTORES DE LENGUAJE
Traductores de lenguaje Son los programas que
traducen a su vez los programas fuente escritos en lenguajes de alto nivel a código de maquina.
Clasificación: Compiladores: Lenguaje de
alto nivel --> Lenguaje de maquina.
Interprete: Un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
Traductores de Lenguaje
Para que un procesador ejecute un programa escrito en un lenguaje de alto nivel es necesario que lo transforme a su equivalente en lenguaje máquina. Para ello existen dos posibilidades, la interpretación y la traducción.
Interpretación
Un intérprete traduce y ejecuta sentencia a sentencia el programa original (programa fuente.)
Compilación
Traduce el programa original en un programa escrito en lenguaje máquina.
Comparación compiladores -intérpretes
Un intérprete puede ejecutar un programa directamente, incluso sin estar completo. Un compilador ha de traducirlo completamente antes de ejecutarlo.
Un programa interpretado ocupa poca memoria.
Un programa compilado es más rápido. El compilador crea un ejecutable
independiente del propio compilador. Un programa interpretado necesita siempre su intérprete.
OPERADORESSon elementos que relacionan de forma diferente, los valores, es decir, los operadores nos permiten manipular valores. Existen tres operadores utilizados por las computadoras:
AritméticosRelacionales Lógicos
Aritméticos
Operadores aritméticos: Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores a utilizar
Operadores lógicos
Operadores que permiten comparar dos valores o variables. Se dividen en operadores lógicos relacionales y operadores lógicos boléanos
Operadores lógicos relacionales: Se utilizan para establecer una relación entre dos valores. Compara estos valores entre si y esta comparación produce un resultado de Verdadero o Falso. Los operadores relaciónales comparan valores del mismo tipo, tienen el mismo nivel de prioridad en su evaluación y tienen menor prioridad que los aritméticos. Los operadores relaciónales son
Operadores Relacionales
OPERADORES LÓGICOS
Estos operadores se utilizan para establecer relaciones entre valores lógicos.
Estos valores pueden ser resultado de una expresión relacional. Los operadores lógicos son:And ( y)Or (ó)Not (Negación)
Jerarquía de los operadores
Para resolver cualquier operación o ejercicio se debe desarrollar teniendo en cuenta el siguiente orden:
Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan desde el centro hacia fuera, el paréntesis mas interno se evalúa primero. Dentro de una misma expresión los operadores se evalúan en el siguiente orden.
1. Exponenciación2. Multiplicación, División (Con decimales)3. División Entera y División Modular.4. Suma y resta
Jerarquía de los operadores
Cuando se encuentran operadores del mismo nivel, estos se desarrollan de izquierda a derecha. Cuando se encuentran varios paréntesis, se empiezan a desarrollar por el más interno. Un paréntesis, sólo desaparece, cuando queda un solo término en medio de ellos
Jerarquía de los operadores
Para desarrollar cualquier operación algorítmica es necesario utilizar la jerarquía de los operadores, ya que ella indica el orden e importancia de cada uno de los operadores aritméticos
Jerarquía de operadores
Tomaremos como ejemplo la expresión
2 * 5 + 3 = ?
Y si ponemos :
2 + 5 * 3 = ?
Jerarquía de Operadores
2 * 5 + 3
10 + 3
13 Resultado Correcto
Ejemplo1. 40 / 5 + 8 ^ 2 * 3 ------> 1° es la exponenciación
2. 40 / 5 + 64 * 3 ---------> Primero se resuelve la división (de izquierda a derecha)
3. 8 + 64 * 3 --------------> Luego división (mismo nivel jerárquico de multiplicación)
4. 8 + 192-----------------> Por último se realiza la suma
5. 200
Jerarquía de Operadores
51 / 2 + 3 ---> La división ( / ) indica que se manejan decimales. 51 / 2= 25.5
25.5 + 3 -----> Luego se realiza la suma de los dos valores 28.5
51 \ 2 + 3 ---> La división ( \ ) indica que sólo se maneja la parte entera. 51 \ 2= 25
Jerarquía de operadores
25 + 3 -----> Luego se realiza la suma de los dos valores 28
51 mod 2 + 3 ---> (mod) indica que se usa el residuo de la división 51 mod 2 = 1
1 + 3 -----> Luego se realiza la suma de los dos valores 4
Observe lo distinto de los resultados. La división modular toma sólo el residuo de la división: El 2 en el 51 está 25 veces. 25 x 2 = 50. Por lo tanto de 50 a 51 hay 1 (este es el residuo de la división). Para entender mejor observemos los siguientes Ejercicios
Ejercicios con Operadores Relacionales:
Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa.
Ejemplo:
Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true, 8<4 (ocho menor que cuatro) es falsa, false.
Ejemplos Sencillos
Operador nombre ejemplo resultado
< menor que 5<7 Verdadero
> mayor que 6>3 Verdadero
== igual a 3==5 Falso
!= no igual a 5!=7 Verdadero
<= menor que o igual a
8<=10 Verdadero
>= mayor que o igual a
10>=12 Falso
Ejercicios para resolver
(4*4+10/2)+5*4+8/2*5 < 6*(5+10*4-22)*2
(16+10/2)+5*4+8/2*5 < 6*23*2
(16+5)+20+4*5 < 138* 2
21+20+20 < 276
61 < 276
Verdadero
Ejercicios para resolver
5*5+10*50+120*3+8*5/2+10 >= 5*5+(10*50+12) *3+8*5/2+10+120
25+10*50+120*3+8*5/2+10 >= 5*5 + (500+12)*3+8*5/2+10+120
25+500+120*3+8*5/2+10 >= 5*5 + 512*3 + 8/2+10+120
25+500+360+8*5/2+10 >= 25+512*3+8/2+10+120
25+500+360+40/2+10 >= 25+1536+8/2+10+120
25+500+360+20+10 >= 25+1536+4+10+120
525+360+20+10 >= 1561+4+10+120
885+20+10 > =1565+10+120
1005+10 > = 1575+120
1015 >= 1690
Falso
5*5+10*5+20*3(+8*5/2+10) <= 5(*5+(10*50+12)) *3+8*5/2+10 5*2+(10*50+120*3+8*5)/2+10 != 8*5+(10*5+100) *3+(8*5/2+10+120) 3+10*50/2+10*3+(8*5/2+10) < 5*3+(5*3+12*2) *2+8*5/2+15+100 5*5+10*50+120*3+8*5/2+10 == 120/2*3+8*4+(10/5*3-10+85) 5*5+10*50+120*3+8*5/2+10 >= 5*5+(10*50+10) *3+(8*5/2+10)/10
Operadores Lógicos
Los operadores lógicos permiten unir valores o expresiones lógicas, obteniendo como resultado si es verdadera o falsa la expresión combinada. Son los siguientes:&& (Y lógico - conjunción) || (O lógico - disyunción) ! (NO lógico)
Tablas de Verdad: Conector and(&&)
Tabla de verdad:Conector lógico or (||)
Ejemplos de Uso de conectores
6 >= 5 && 7 != 8 && 4<=6
V && V && V = Verdadero
6 >= 5 && 7 != 8 && 4>=6
V && V && F = Falso
Ejemplo de uso de conectores
6 >= 5 || 7 != 8 || 4<=6
V || V || V = Verdadero
6 >= 5 || 7 == 8 || 4>=6
V || F || F = Verdadero
6 >= 5 || 7 != 8 || 4>=6
V || V || F = Verdadero
Ejemplo de uso de conectores
6 >= 5 && 7 == 8 || 4>=6
V && F || V = Verdadero
F || V
6 >= 5 || 7 == 8 && 4>=6
V || F && F = FALSO
V && F
Introducción a los algoritmos
Ejemplo 1.
¿Cuáles son los pasos para que una persona pueda caminar adelante suponiendo que está sentado?1. Tomar impulso para levantarse
2. Ponerse de pie
3. Mover una pierna hacia adelante
4. Mover la otra pierna delante de la primera
5. Repetir pasos 3 y 4 hasta que ya no se quiera caminar
Ejercicio 1.
Escriba los pasos necesarios para hacer un agua de limón, considere que cuenta con los siguientes utensilios y alimentos:Cuchillo, Jarra, Cuchara exprimidorLimones lavados enterosAzúcar
Ejercicio 2.
Escriba la serie de pasos para llamar de un teléfono público a un teléfono celular. Suponga que ya se encuentra en el lugar donde está el teléfono y ya cuenta con tarjeta.
Definición de algoritmos
GENERALIDADES SOBRE LOS ALGORITMOS
Metodología de programación: Consiste en la metodología aplicada para la resolución de problemas mediante programas.
Problema Diseño del algoritmo
Programa de
computador
Descripción ordenada de la secuencia de pasos (sin ambigüedades) que conducen a la solución de problema dado (Análisis del problema y desarrollo del algoritmo).
Expresar el algoritmo como un programa en el lenguaje de programación adecuado.
Ejecución y validación del programa de computadora.
Tarea que se desea resolver.
La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un sancocho.
Programa de Aplicación
Programa que permite resolver la ecuación de primer grado
73
Programa que permite resolver la ecuación de primer grado
a x + b = 0
?a
bx = -b / a
#include <stdio.h>int a,b,x;main(){ printf(“Ingrese valores de EC”); scanf(“%d %d”,&a,&b); if a ==0 printf (“error”); else { x = -b / a; printf(“La solución es %d:”,x); } printf(“Fin programa”);}
Algoritmo EC 1er GradoVariables a,b,x de tipo enteroInicio Escribir(“Ingrese valores de EC”) Leer (a,b) Si a = 0 entonces escribir (“Error”) sino Inicio x=-b/a Escribir (“La solución es:”,x) Fin Escribir(“Fin programa”)
Fin
ALGORITMO
Programa
¿Qué es un problema?
Es una situación concreta sobre la cual se quiere implementar una solución (ejemplos)
Solución: procedimiento que nos lleva a satisfacer ciertos requerimientos
Esquema básico para la resolución de un problema a través de un programa con un enfoque sistémico
74
ProcesoEntrada Salida
• Datos Externos• Datos auto generados• Lectura de dispositivo
de almacenamiento
• Informes• Datos para otro
programa• Datos grabados en
dispositivos externos de almacenamiento
Pasos en la resolución de un problema
Entender el problema Conceptualización Objetivo Contexto
Buscar soluciones Elegir solución Diseñar solución
Descomposición Especificar tareas Modelar solución
Implementar solución Validar solución
75
Datos y Variables
Datos: objetos simbólicos que representan objetos del mundo real.Ejemplos: 10 de Marzo de 2003, 3.14
Variables: no hace referencia a un objeto explícitoEjemplos: velocidad del móvil, factor de
crecimiento
76
¿Qué es un Modelo?
Estructura para dar razón y abstraer una realidad
Ejemplo:
77
Asignaturas
Carrera
Estudiantes
EstudiaPlan de Estudios
Inscrita
¿Qué es un algoritmo?
Procedimiento detallado para resolver un problema en pasos y en un tiempo finito.
Se especifican en base a operaciones básicas que controlan las variables y el flujo del algoritmo
El algoritmo lleva desde un estado inicial a un estado final
El algoritmo recibe Entradas y entrega Salidas
78
¿Cómo desarrollar un algoritmo?
ImaginaciónNo reinventar la ruedaDividir para conquistarPara ser efectivo se requiere practicar
constantementeEl diseño de algoritmos es una rama de la
Ciencia de la Computación
79
¿Cómo se describe un algoritmo?
Lenguaje naturalPseudo códigoLenguaje de programaciónLa precisión es importante
Un algoritmo no puede ser descrito de forma ambigua:
Todos tienen que entender lo mismo (incluido el computador!)
80
Llamada telefónica
Se desea conceptualizar el problema de efectuar una llamada telefónica en un teléfono público que recibe monedas de $10, $50 y $100. El costo mínimo de la llamada es de $100 por 5 minutos. El proceso se inicia desde que se levanta el auricular y finaliza cuando se cuelga.
81
Árboles de decisión
Herramienta útil para describir algoritmos que involucran gran cantidad de decisiones
82
Conceptos Básicos de Algoritmos
La forma en que se ejecutan las operaciones básicas en un computador, es similar a lo que ocurre en nuestro cerebro.
Por ejemplo, para sumar dos valores: Primero debemos pedirle a alguien que nos diga el
primer valor. Luego de que conocemos este valor, debemos
almacenarlo (para recordarlo después) en una neurona (Suponemos que un valor se puede almacenar en una neurona).
Ya conocemos el primer valor y está almacenado en nuestro cerebro.
Conceptos Básicos de Algoritmos
Ahora debemos pedir el segundo valor. Una vez conocido, lo almacenamos en otra neurona
distinta de la anterior. ¿ Por qué? Ahora que conocemos los dos valores procedemos a
sumarlos, y dicho resultado lo almacenamos en otra neurona distinta de las anteriores.
Por último, le decimos el resultado a la persona que nos entrego los números.
Conceptos Básicos de Algoritmos
De lo anterior, al menos necesitamos 3 neuronas para sumar dos números.
Le pedimos explícitamente que nos dijeran dichos valores.
Le asignamos dichos valores a las neuronas
La suma la realizó nuestro cerebro de forma mecánica. Note que no existen detalles de la operaciones básicas (*,/,+, -).
Finalmente se da el resultado
Conceptos Básicos de Algoritmos
Algoritmo para sumar dos números: Definimos tres neuronas Pedimos el primer valor Almacenamos ese valor en la neurona 1. Pedimos el segundo valor Almacenamos ese valor en la neurona 2. Almacenamos la suma de las neuronas 1 y 2 en la
neurona 3 Entregamos el resultado que se encuentra en la
neurona 3.
Conceptos Básicos de Algoritmos
Sin embargo, en los lenguajes no se pueden usar neuronas, pero podemos definir variables (Recuerde que las variables pueden tomar cualquier valor)
En lugar de usar neurona 1 y neurona 2, se utilizan espacios de memoria que llamaremos “var 1” y “var 2”, y así sucesivamente. También las podemos llamar “x1” y “x2” ó “x” e “y” ….
Conceptos Básicos de AlgoritmosEjercicio: Cree un algoritmo que multiplique tres
números.• Algoritmo para multiplicar tres números:
– Definimos cuatro variables– Pedimos el primer valor– Almacenamos ese valor en var 1.– Pedimos el segundo valor– Almacenamos ese valor en var 2.– Pedimos el tercer valor– Almacenamos ese valor en var 3.– Almacenamos la multiplicación de las variables en var 4– Entregamos el resultado que se encuentra en var 4.
Conceptos Básicos de Algoritmos
La manera en que hemos detallado nuestros dos algoritmos se llama PSEUDO-CÓDIGO. Y este pseudo-código fue escrito en lenguaje natural.
Otra manera de poder detallar nuestros algoritmos es a través de los diagrama de flujo. Un diagrama de flujo es una representación simbólica de la lógica del algoritmo.
Diagrama de Fujo
Nomenclatura: Inicio del algoritmo Término del algoritmo Impresión de
mensajes Receptor de datos Operación de datos Bifurcación (Decisión) Definición de variables Conector
Inicio
Termino
?F V
Diagrama de Flujo y Pseudo-Código
Inicio
Escribir“Mensaje 1”
Fin
Leervar1,x, y
a = 3 * x + yb = a / var1
Entero var1, x , yReal a, b
Si a > bVF
Inicio de Algoritmo
Definición de variables
Impresión de mensajes
Lectura de mensajes
Transformación de datosOperaciones sobre los datos
Bifurcación en la ejecución de instrucciones
Conector
Fin de algoritmo
DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO
Inicio
Variables Entero var1, x, y Real a, b
Escribir (“Mensaje 1”)
Leer (var1, x, y)
a = 3 * x + yb = a / var1
Si a > b Entonces Inicio Instrucciones FinSino Inicio Instrucciones Fin
Fin
Diagrama de Fujo para el algoritmo que suma dos valores
Inicio
Termino
var1,var,var3
Ingrese el primer valor
var 1
Ingrese el segundo valor
var 2
var3=var1+var2
El resultado es : var3
Se pide ingresar el segundo valor
Se pide ingresar el primer valor
Se asocia el número ingresado a var1
Se definen las variables var1, var2, var3
Se asocia el número ingresado a var1
Se asigna el resultado de la suma entre var1 y var2 a var3
Se muestra el resultado
Diagrama de Flujo
Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica tres números y muestre el resultado
Ejercicio: Cree el diagrama de flujo para que divida dos números y muestre el resultado
¿Preguntas?
Algoritmos
Ejercicio. Usando diagrama de Flujo. Cree un algoritmos donde una persona ingrese su edad y muestre por pantalla si es mayor de edad.
AlgoritmosInicio
Edad
Ingrese suedad
Edad
Edad>=18Usted esmayor de
edad
Usted esmenor de
edad
Fin
si
No
Algoritmos
Del ejemplo anterior podemos observar que la bifurcación permite seguir el flujo adecuado dada una condición.
Las condiciones que se evalúan en las bifurcaciones son siempre verdaderas o falsas.
Por ende, hay que colocar las instrucciones adecuadas a los valores que se evaluan en las bifurcaciones.
Algoritmos
También es posible que existan bifurcaciones contiguas.
En las bifurcaciones o estructura de control, se evalúan proposiciones utilizando:
Operadores lógicosOperadores aritméticosOperadores Relacionales
Algoritmos
Operadores Aritméticos: * multiplicación / División + Suma - Resta % Módulo
Ejemplo de módulo (o residuo de la división):
5%2 es 1
4%2 es 0
Algoritmos
Operadores Lógicos: Y, And, && Y V F
V V F
F F F
Algoritmos
Operadores Lógicos: O, Or, || O V F
V V V
F V F
Algoritmos
Operadores Lógicos: No, Not, !
No V F
F V
Algoritmos
Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var1*var1)/var3
var4>=1 && var1!=0
Si
No
var4=1
Si
Algoritmos
Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var3%var1)
(var4!=0 || var2>0) && (var3==4)
Si
No
var4=0
No
Algoritmos
• Analicemos los siguientes casos
var1=2, var4=1,var3=4
var4=(var4+var1)
!(var1 && (var4>=var1))
Si
No
var4=3
No
Cualquier proposición distinta de ceroEs VERDADERO
Algoritmos
Es importante notar que existen prioridades entre los operadores. Por lo tanto deben utilizarse paréntesis en los casos que correspondan
Algoritmos
Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros ingresados desde teclado.
Inicio
var1,var,var3
Ingrese elprimer valor
var1
Ingrese elsegundo
valor
var2
Ingrese eltercer valor
var3
1
1
var1>var2 &&var1>var3
var2>var3El orden esvar1,var2,
var3
El orden esvar1,var3
var2
Fin
var2>var3 var1>var3El orden esvar2,var1,
var3
El orden esvar2,var3
var1
var2>var1El orden esvar3,var2
var1
El orden esv3,var1
var2
si
No
si
si si
si
No
No No
No
Diagrama de Flujo Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica
tres números y muestre el resultado Ejercicio: Cree el diagrama de flujo para que divida dos números y
muestre el resultado Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de
primer grado y muestre el resultado Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de
segundo grado, para valores reales e imaginarios, y muestre el resultado
Ejercicio: Cree el diagrama de flujo permita sumar tres números ingresados por teclado y muestre el resultado
Ejercicio: Cree el diagrama de flujo que permita sumar “n” números y muestre el resultado. El valor de “n” debe ser ingresado por teclado al igual que los números que se sumarán.
Algoritmos
Repaso de BifurcacionesAprendizajes Esperados
Conceptos de CiclosCuándo se aplican los ciclos
Algoritmos
Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros ingresados desde teclado
Inicio
var1,var,var3
Ingrese elprimer valor
var1
Ingrese elsegundo
valor
var2
Ingrese eltercer valor
var3
1
1
var1>var2 &&var1>var3
var2>var3El orden esvar1,var2,
var3
El orden esvar1,var3
var2
Fin
var2>var3 var1>var3El orden esvar2,var1,
var3
El orden esvar2,var3
var1
var2>var1El orden esvar3,var2
var1
El orden esv3,var1
var2
si
No
si
si si
si
No
No No
No
Concepto de CicloUn ciclo es la repetición de un conjunto de
instrucciones. Dicho ciclo culmina cuando se cumple una condición de termino.
Cuándo se aplican los CiclosSe aplican cuando queremos ejecutar un
conjunto de instrucciones varias veces.
Algoritmos
Algoritmos
Estructura de un ciclo
Inicialización
Condición de Termino
Instrucción 1
Instrucción 2
Instrucción N
Incremento/Decremento
V
F
Algoritmos
Ejemplo: Crear un algoritmo que sume N elementos y muestre el resultado
N var cont suma
02 11
122
33
Inicio
N,var,cont,Suma=0
Ingrese cuantos
números va a sumar
N
cont=1
cont<=NIngrese elcont valor
var
suma=suma+var
cont=cont+1
V
El resultado es suma
Fin
Algoritmos
Ejemplo: Crear un algoritmo que encuentre el número mayor de N números enteros positivos ingresados por teclado.
= -1
Inicio
N,var,cont,mayor
Ingrese cuantos
números va a sumar
N
cont=1
cont<=NIngrese elcont valor
var
cont=cont+1
V
El resultado es mayor
Fin
cont==1 || var>mayor
mayor=var
V
F
Algoritmos
Ejemplo: Crear un algoritmo que calcule
n
i1
GENERALIDADES SOBRE LOS ALGORITMOS
• Describir los pasos para cruzar la calle.
• Describa los pasos para llevar a una amiga a cine.
• Describa los pasos para cambiar la llanta pinchada de una cicla.
• Describa los pasos para cambiar un bombillo quemado.