La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación de Computadores

Presentaciones similares


Presentación del tema: "Programación de Computadores"— Transcripción de la presentación:

1 Programación de Computadores
Lenguaje Pascal Sesión 2: Algoritmos Prof:Eridan Otto

2 Programación de Computadores Lenguaje Pascal
Sesión 2: Algoritmos TEMARIO Estructuras de control: Introducción Selección Repetición Problemas resueltos Quiz #1

3 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Introducción La ejecución un paso tras otro de un algoritmo sigue una cierta pauta o estructura, ya se vió la estructura secuencial. Esta estructura es la más simple, pero muy rígida, sólo da a la capacidad de procesamiento, de una calculadora sencilla. (Hasta las calculadoras modernas hacen algo mas....). A veces es necesario ejecutar un grupo de sentencias u otro (Boloques en PASCAL), dependiendo de diversos factores condicionantes, o en función del valor que tome una variable de entre un conjunto de ellos. O tal vez necesitemos ejecutar unas sentencias determinadas un número dado de veces antes de que continúe la ejecución secuencial normal del código. Es en éste entorno en el que toman toda su importancia las estructuras de control, ya que nos van a permitir hacer precisamente eso, detener o condicionar ésta ejecución secuencial predeterminada en función de unos requisitos que podemos configurar a nuestra conveniencia. Las estructuras de control podemos dividirlas en dos clases fundamentales: las estructuras condicionales y los bucles (lo mismo que selección y repetición).

4 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Selección Ejemplo: diseñar un algoritmo que ingresada una edad de una persona, entregue por pantalla si esta persona es mayor o menor de edad. Con las instrucciones hasta ahora aprendidas, no se puede realizar esto, pues se necesita una bifurcación en la secuencia. Para lograr esto se introduce una nueva clase de instrucciones de tipo selección que permiten ejecutar un conjunto de sentencias u otras dependiendo de las condiciones que fijemos. Formato en pseudocódigo: SI <condición> ENTONCES     instrucción 1     instrucción 2         instrucción n   SI-NO       instrucción a     instrucción b           instrucción z   FIN-SI La instrucción que permite tomar una decisión, basada en una condición es Si...Entonces. Al evaluar la condición, Si...entonces puede devolver solo dos resultados posibles: Verdadero o Falso; es decir, Si o No.

5 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Selección, diagrama de flujo Inicio Inicio Instrucciones antes de la bifircación Instrucciones antes de la bifircación VERDADERO FALSO condición Todo este complejo se puede considerar como un bloque Instrucción 1 Instrucción a Instrucción 2 Instrucción b Instrucción n Instrucción xx Instrucciones después de la bifircación Instrucciones después de la bifircación Fin Fin

6 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Selección Algoritmo que resuelve el problema planteado ALGORITMO mayor de edad; VARIABLES edad :ENTERO; INICIO ingresar(‘por favor ingrese edad persona:’,edad); SI (edad < 18) ENTONCES escribir(‘La persona es menor de edad’ ); SI-NO escribir(‘La persona es mayor de edad’ ); FIN-SI FIN. Operador relacional Esta instrucción se ejecuta si la condición es VERDADERA Esta instrucción se ejecuta si la condición es FALSA. Es opcional.

7 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Selección Operadores relacionales: estos operadores funcionan con lógica booleana estándar y generan después de la evaluación de una expresión condicional un valor de verdad último, este evaluado permite ,en caso de ser verdadera ,bifurcar el control a un grupo de instrucciones y seguir ( SI xxx ENTONCES) el flujo normal o a un grupo alternativo en caso de ser falsa (SI .... SI-NO xxx FIN-SI). Los operadores relacionales se evaluan siempre entre tipos enteros , reales y en algunos casos de carácter. El resultado es booleanoy se puede combinar en expresiones con operadores booleanos (AND,OR y NOT): > : mayor que < : menor que = : igual a <> : distinto >= : mayor o igual que <=: menor o igual que Paréntesis para agrupar condiciones simples en exprsiones condicionales: (, )

8 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Selección Ejemplo 2. Dados dos números, establecer cuál es mayor . Comenzamos leyendo ambos números, que en el ejemplo se llamarán NumeroA y NumeroB. Luego debemos comparar como es uno contra el otro (puede ser NumeroA contra NumeroB o bien comparar NumeroB contra NumeroA): ALGORITMO comparaciones; VARIABLES NumeroA , NumeroB :ENTERO; INICIO ingresar(‘por favor ingrese valor primer número:’, NumeroA ); ingresar(‘por favor ingrese valor segundo número:’, NumeroB ); SI (NumeroA > NumeroB ) ENTONCES escribir(‘primer número es el mayor’); SI-NO SI (NumeroA <> NumeroB ) ENTONCES escribir(‘segundo número es el mayor’); escribir(‘los números son iguales’); FIN-SI FIN.

9 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Repetición La estructura repetitiva se utiliza cuando se quiere que un conjunto de instrucciones se ejecuten un cierto número finito de veces. Llamamos bucle o ciclo a todo proceso que se repite un cierto número de veces dentro de un pseudocódigo o un programa. Existen varias estructuras de control que realizan ciclos, por el momento nos concentraremos en una clase que se divide en dos sentencias. Mientras: La primera es una estructura de bucle que nos permite ejecutar un conjunto de instrucciones mientras se cumpla una condición, no siendo necesario conocer el número de veces que se tiene que iterar. Se producirá la iteración una y otra vez mientras se cumpla la condición fijada. Formato en pseudocódigo: MIENTRAS (condición) instrucción 1 instrucción 2 instrucción instrucción n FIN MIENTRAS NOTA: El ciclo puede repetirce 0, 1 o más veces dependiendo de la condición (si siempre es verdadera se da una anomalía llamada loop infinito)

10 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Repetición, diagrama de flujo, mientras Inicio Inicio Instrucciones antes de mientras Instrucciones antes de mientras VERDADERO condición Todo este complejo se puede considerar como un bloque Instrucción 1 FALSO Instrucción 2 Instrucción n Instrucciones después de mientras Instrucciones después de mientras Fin Fin

11 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Repetición Repita: La segunda es una estructura de bucle cumple la misma función que la estructura mientras. La diferencia está en que la estructura mientras comprueba la condición al inicio y repetir lo hace al final; por eso la estructura repetir se ejecuta por lo menos una vez.. Formato en pseudocódigo: REPITA istrucción 1 istrucción 2 istrucción istrucción n HASTA (condición) NOTA: Las repeticiones terminan cuando la condición es FALSA

12 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Repetición, diagrama de flujo, repita-hasta Inicio Inicio Instrucciones antes de repita Instrucciones antes de repita Instrucción 1 Instrucción 2 Todo este complejo se puede considerar como un bloque Instrucción n FALSO condición VERDADERO Instrucciones después de repita Instrucciones después de repita Fin Fin

13 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Repetición, diagrama de flujo, repita-hasta Ejercicio1: Leer una serie de notas que deben finalizar con –9999. Calcular e imprimir el promedio de las notas ingresadas. No se requiere validar ingreso. ALGORITMO media; VARIABLES N,contador, suma: ENTERO; promedio:REAL; INICIO contador 0 escribir(‘Ingrese notas [0..100], para terminar ingrese número “); ingresar( N); MIENTRAS (N <> -9999) contador  contador + 1 suma  suma + N ingresar (N); FIN MIENTRAS SI (contador = 0) entonces promedio  0 SI-NO promedio  suma / contador FIN-SI escribir (‘El promedio de los números ingresados es: ‘, promedio); FIN

14 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Repetición Ejercicio2: Escribir un pseudocódigo que determine si un número ingresado es primo.  Un número es primo cuando es divisible solamente por sí mismo y por 1. Haga un ruteo para 2, 4 y 5. Puede escibirse otro algoritmo que haga lo mismo?? Para resolver este problema, se usará la función RESTO, pues si el resto de la división de el número por un numero inferior es 0, no es, entonces primo. ALGORITMO media; VARIABLES Bandera,contador, numero: ENTERO; INICIO Bandera  0 contador  2 ingresar(‘Ingrese entero para verificar si es primo:’, numero ); REPITA SI (numero MOD contador = 0 AND numero <> contador ) ENTONCES Bandera  1 FIN-SI contador  contador + 1 HASTA (contador >= numero OR Bandera=1) SI (Bandera = 1 ) ENTONCES escribir (‘El número no es primo”) SIN-NO escribir (‘El número es primo”) FIN

15 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Ruteo Def: Es una técnica ordenada que permite seguir los valores de las variables paso a paso, suponiendo la ejecución del algoritmo. Sirve para saber qé hace un algoritmo y también para comprobar su correctitud. Para numero=5 Variables Valores iniciales Bandera contador numero 2 5 Sale de repita Y como Bandera no es 1 se ejecuta la instrucción SI-NO, esto es, escribe en pantalla:el número es primo 3 4 5 Sale de repita Y como Bandera es 1 se ejecuta la instrucción SI ENTONCES, esto es, escribe en pantalla:el número no es primo Para numero=4 2 4 1 3 Para numero=2 2 2 Sale de repita Y como Bandera no es 1 se ejecuta la instrucción SI-NO, esto es, escribe en pantalla:el número es primo 3

16 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Repetición Puede escibirse otro algoritmo que haga lo mismo??. Si, usando la instrucción mientras. ALGORITMO media; VARIABLES Bandera,contador, numero: ENTERO; INICIO Bandera  0 contador  2 ingresar(‘Ingrese entero para verificar si es primo:’, numero ); MIENTRAS (contador < numero AND Bandera=0) SI (numero MOD contador = 0) ENTONCES Bandera  1 FIN-SI contador  contador + 1 FIN MIENTRAS SI (bandera = 1) ENTONCES escribir (‘El número no es primo”) SI-NO escribir (‘El número es primo”) FIN

17 Programación de Computadores Lenguaje Pascal
Estructuras de control : Selección y Repetición Ejercicios (Hoja, nombre, rol, fecha) 1. Leer un número entero positivo menor que 35 y calcular su factorial. Rutee su algoritmo para entero 1, 3 y 4. Está correcto???

18 Fin Clase 2 MIENTRAS (N >= 35 OR N < 0)
ALGORITMO factorial; VARIABLES N,producto, I: ENTERO; INICIO ingresar(N) MIENTRAS (N >= 35 OR N < 0) escribir (‘El numero debe ser positivo y menor que 35 !!`) ingresar (N) FIN MIENTRAS producto  1 I  1 MIENTRAS (I <= N) producto  producto * I I  I+1 escribir (‘El factorial de’, N, ‘es: ‘, producto) FIN Fin Clase 2


Descargar ppt "Programación de Computadores"

Presentaciones similares


Anuncios Google