Tema 6: Estructuras de Control

Slides:



Advertisements
Presentaciones similares
Programación de Computadores
Advertisements

Programación de Computadores
Programación de Computadores
Estructura selectiva anidada
Sesión 2 Programación Estructurada
Estructuras Repetitivas para
Estructuras de decisión
Bucles o Estructura repetitivas
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Algoritmos & Estructuras de Datos
Fundamentos de Programación
Estructura General de Un Programa Programación Estructurada
Seminario de Actualización - Excel Avanzado y Macros
Estructuras de Control
INFORMÁTICA PROGRAMACIÓN.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Curso de Programación I Parte III
INTRODUCCIÓN A LA COMPUTACIÓN 14va Semana – 24va Sesión Miércoles 01 de Junio del 2005 Juan José Montero Román
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
Departamento de Informática Universidad Técnica Federico Santa María Tema 7: Subprogramas Programación de Computadores (IWI-131) Luis Pizarro Q.
Trabajo práctico Programación y Análisis de datos. Alumnas: María Agustina Macchi y María Sol Pérez Fernández. Año: 1B Fecha de entrega: 14 de Noviembre.
ESTRUCTURAS DE CONTROL
ESTRUCTURAS CONTROL SECUENCIAL
Programación de Computadores
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2.
LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
Introducción a la Programación
SENTENCIAS DE CONTROL Ing. José Antonio Poma G..
COMPUTACION 2009 Clase 6 Clase 7.
Capítulo 2 – Estructuras de Control
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Teoría – Alejandro Gonzalez
Estructura de Control Repeticiones(Loops) Ejercicios
Tema 5: Sentencias Básicas
Estructuras de Control.
Departamento de Informática Universidad Técnica Federico Santa María Programación de Computadores (IWI-131) Luis Pizarro Q.
Programación I Arreglos. Los elementos de un arreglo son todos del mismo tipo de dato (todos integer o real o char o registros o aún arreglos)
Tema 8: Tipos de Datos Estructurados I
Estructura general de un programa en el servidor de Bases de Datos.
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
Estructuras de control Resolución de problemas y algoritmos.
Programación de Computadores (IWI-131)
Departamento de Informática Universidad Técnica Federico Santa María Ejercicios Certamen 1: Programación de Computadores (IWI-131) Luis Pizarro Q.
COMPUTO III Ing. Jimmy Ojeda Arnica.
For variable = Valor_Inicial to Valor_Final Step Incremento Una o más instrucciones (1) Next Step Incremento, permite especificar si se requiere un incremento.
Sesión 13: Python (4) – Estructura Repetición. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
“variables , sentencia if y bucles”
Estructuras de Decisión
CICLOS EN C – PARTE 3.
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Estructuras de Decisión en Visual Basic 6.0
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
Diego Hernández R Pascal Variables Diego Hernández R
Estructuras de Control Ciclos
Estructuras de Control
Estructuras de Control 2 Ciclos
Estructuras de Control 3 Ciclos
Transcripción de la presentación:

Tema 6: Estructuras de Control Programación de Computadores (IWI-131) Tema 6: Estructuras de Control Luis Pizarro Q. Luis.Pizarro@inf.utfsm.cl www.labmc.inf.utfsm.cl/~lpizarro/IWI-131

1. Estructuras de Control Selectivas Existen 4 tipos de estructuras de control selectivas: 1. IF THEN 2. IF THEN ELSE 3. IF’s anidados 4. CASE OF Luis Pizarro Q. ©2003

1. Estructuras de Control Selectivas IF THEN (si entonces) Simple IF <condición> THEN acción; cond acción TRUE FALSE Si <condición> = TRUE se ejecuta la acción. Compuesto IF <condición> THEN BEGIN acción1; .... acciónN END; cond acción1 TRUE FALSE acciónN . Sin punto y coma la acción antes de END Luis Pizarro Q. ©2003

Ejemplo de Programa Selectivo Escriba un programa que calcule el valor absoluto de la diferencia del cuadrado de 2 cantidades si la primera es múltiplo de 3 y su raíz no es mayor que el doble de la segunda cantidad. Aquí se utiliza un IF THEN simple PROGRAM Calculo; VAR x, y: REAL; BEGIN WRITE(‘Ingrese 2 cantidades: ’); READLN(x,y); IF (x MOD 3 = 0) AND NOT (SQRT(x) > 2*y) THEN WRITELN(‘El resultado es: ’,ABS(SQR(x)-SQR(y))) END. Si la condición no se cumple el programa no devuelve resultado alguno. Luis Pizarro Q. ©2003

1. Estructuras de Control Selectivas IF THEN ELSE (si entonces, si no) Simple IF <condición> THEN acción1 ELSE acción2; Si <condición> = TRUE se ejecuta la acción. Sin punto y coma la acción antes de ELSE cond acción2 FALSE TRUE acción1 Caso compuesto se deduce de lo anterior. Luis Pizarro Q. ©2003

Ejemplo de Programa Selectivo Determinar si un número entero es par o impar. PROGRAM Par_o_Impar; VAR x: INTEGER; BEGIN WRITE(‘Ingrese Número: ’); READLN(x); IF x MOD 2 = 0 THEN WRITELN(‘El número es par’) ELSE WRITELN(‘El número es impar’) END. Aquí se utiliza un IF THEN ELSE simple Luis Pizarro Q. ©2003

1. Estructuras de Control Selectivas IF’s anidados Simple IF <cond 1> THEN IF <cond 2> THEN acción1 ELSE acción2 IF <cond 3> THEN acción3 acción4; No se coloca punto y coma en las acciones antes de ELSE y END c1 acc2 FALSE TRUE acc1 c2 c3 acc4 acc3 Caso compuesto se deduce de lo anterior. Luis Pizarro Q. ©2003

Ejemplo de Programa Selectivo Buscar el mínimo de tres números. PROGRAM Minimo; VAR x,y,z,min: INTEGER; BEGIN WRITE(‘Ingrese tres números: ’); READLN(x,y,z); IF x < y THEN IF x < z THEN min:=x ELSE min:=z IF y < z THEN min:=y min:=z; WRITELN(‘El mínimo es: ’,min) END. Aquí se utilizan IF’s anidados Luis Pizarro Q. ©2003

1. Estructuras de Control Selectivas CASE OF (en caso de). Selección Múltiple CASE <variable> OF altern1: acción1; altern2: BEGIN acción21; ...... acción2N END; . . . . alternM: acciónM ELSE acciónElse var acc1 alt1 acc21 acc2N . accM alt2 altM accelse ELSE . . . Luis Pizarro Q. ©2003

Ejemplo de Programa Selectivo Múltiple Escribir un programa que permita obtener la nota de alguno de sus tres certámenes, asumiendo que éstas ya han sido ingresadas al programa. PROGRAM Notas; VAR numero: INTEGER; BEGIN WRITE(‘Ingrese número de certamen: ’); READLN(numero); CASE numero OF 1: WRITELN(‘Certamen 1: ’,60); 2: WRITELN(‘Certamen 2: ’,70); 3: WRITELN(‘Certamen 3: ’,80); ELSE WRITELN(‘Debe ingresar un número entre 1 y 3’) END END. Luis Pizarro Q. ©2003

Ejemplo de Programa Selectivo Múltiple Ver si un dígito ingresado es par o impar. PROGRAM Par_o_Impar; VAR caracter: CHAR; BEGIN WRITE(‘Ingrese un dígito: ’); READLN(caracter); CASE caracter OF ‘0’, ‘2’, ‘4’, ‘6’, ‘8’: WRITE(‘Par’); ‘1’, ‘3’, ‘5’, ‘7’, ‘9’: WRITE(‘Impar’) ELSE WRITE(‘No es dígito’) END END. Luis Pizarro Q. ©2003

Ejemplo General Calcular área y perímetro de alguna de las siguientes figuras: cuadrado, círculo, triángulo equilátero; a pedido del usuario. PROGRAM Area_y_Perimetro; TYPE figura = (cuadrado,circulo,triangulo); VAR f: figura; A, P: REAL ; L: REAL; R: REAL ; BEGIN WRITE(‘Seleccione una de las siguientes figuras ’); WRITE(‘cuadrado, circulo, triangulo: ’); READLN(f); A := 0; P := 0; CASE f OF cuadrado: BEGIN WRITE(‘Ingrese lado del cuadrado: ’); READLN(L); IF L > 0 THEN A := SQR(L); P := 4*L END ELSE WRITELN(‘El lado debe ser positivo.’) END; Entre el BEGIN y el END hay 3 sentencias: WRITE, READLN y IF THEN ELSE. Luis Pizarro Q. ©2003

Ejemplo General circulo: BEGIN WRITE(‘Ingrese radio del círculo: ’); READLN(R); IF R > 0 THEN BEGIN A := 3.14*SQR(R); P := 2*3.14*R END ELSE WRITELN(‘El radio debe ser positivo.’) END; triangulo: BEGIN WRITE(‘Ingrese lado del triángulo: ’); READLN(L); IF L > 0 THEN A := SQRT(3) / 4 * SQR(L); P := 3*L WRITELN(‘El lado debe ser positivo.’) ELSE WRITELN(‘Nombre no válido.’) END; {fin del CASE} IF (A > 0) AND (P > 0) THEN WRITELN(‘Area: ’, A, ‘ Perímetro: ’, P) END. Luis Pizarro Q. ©2003

Ejercicios de Programación Escriba un programa que calcule el promedio de sus certámenes y le permita averiguar si ud. aprobará el curso o no. Escriba un programa que ordene de mayor a menor 3 números. Escriba un programa que resuelva la ecuación ax2+bx+c=0. Escriba un programa que permita resolver un sistema de ecuaciones de 2x2. Control 1: Miércoles 19 en clases. Luis Pizarro Q. ©2003

2. Estructuras de Control Repetitivas Existen 3 tipos de estructuras de control repetitivas: 1. WHILE 2. REPEAT 3. FOR TO (FOR DOWNTO) Luis Pizarro Q. ©2003

2. Estructuras de Control Repetitivas WHILE (mientras) Simple WHILE <condición> DO acción; Compuesto WHILE <condición> DO BEGIN acción1; .... acciónN END; Si <condición> es TRUE se ejecuta la acción. cond acción TRUE FALSE cond acción1 TRUE FALSE acciónN . Luis Pizarro Q. ©2003

Ejemplo: Uso de WHILE Escribir un programa que sume todos los números ingresados por el usuario hasta que se lea el 0. PROGRAM Sumar; VAR numero,suma: INTEGER; BEGIN suma:=0; WRITE(‘Ingrese número: ’); READLN(numero); WHILE numero <> 0 DO suma:=suma + numero; END; WRITELN(‘La suma es: ’,suma) END. Luis Pizarro Q. ©2003

Ejemplo: Uso de WHILE Escribir un programa que sume todos los números ingresados por el usuario hasta que se lea el 0. (Otra manera) PROGRAM Sumar; VAR numero,suma: INTEGER; seguir: BOOLEAN; BEGIN suma:=0; seguir:=TRUE; WHILE seguir DO WRITE(‘Ingrese número: ’); READLN(numero); IF numero <> 0 THEN suma:=suma + numero ELSE seguir:=FALSE END; WRITELN(‘La suma es: ’,suma) END. Luis Pizarro Q. ©2003

2. Estructuras de Control Repetitivas REPEAT (repetir) REPEAT acción1; ..... acciónN; UNTIL <condición>; Si <condición> = TRUE termina su ejecución. cond acción1 TRUE FALSE acciónN . Obs: no necesita BEGIN ni END. Luis Pizarro Q. ©2003

Ejemplo: Uso de REPEAT Escribir un programa que determine si un número es perfecto. (cuando la suma de sus divisores es el mismo número) PROGRAM Perfecto; VAR numero,suma,divisor: INTEGER; BEGIN suma:=1; {ya que 1 siempre es divisor} WRITE(‘Ingrese número: ’); READLN(numero); IF numero > 0 THEN divisor:=2; REPEAT IF numero MOD divisor = 0 THEN suma:=suma+divisor; divisor:=divisor+1; UNTIL divisor >= numero-1; IF suma = numero THEN WRITELN(‘El número ’,numero, ‘ es perfecto’) ELSE WRITELN(‘El número ’,numero, ‘ no es perfecto’) END WRITELN(‘Debe ingresar un número positivo ’) END. Luis Pizarro Q. ©2003

2. Estructuras de Control Repetitivas FOR (para) Compuesto FOR variable := inicio TO (DOWNTO) final DO BEGIN acción1; .... acciónN END; acción1 acciónN . Inicializa-actualiza variable Obs: variable se va incrementando (decrementando) en 1 (-1) desde inicio hasta final. Luis Pizarro Q. ©2003

Ejemplo: Uso de FOR Calcular la sumatoria PROGRAM Sumatoria; VAR n,i: INTEGER; suma: REAL; BEGIN suma:=0; WRITE(‘Ingrese límite superior de la sumatoria: ’); READLN(n); FOR i:= 1 TO n DO suma:= suma + 1/i; WRITELN(‘La sumatoria es: ’,suma:5:2) END. Luis Pizarro Q. ©2003

Ejemplo: Uso de FOR Escribir un programa que calcule el factorial de un número. PROGRAM Factorial; VAR numero,factorial,contador: INTEGER; BEGIN factorial:=1; WRITE(‘Ingrese un número positivo: ’); READLN(numero); IF numero > 1 THEN FOR contador:= numero DOWNTO 1 DO factorial:= factorial * contador; WRITELN(‘El factorial de ’,numero, ‘ es: ’,factorial) END. Luis Pizarro Q. ©2003

Ejemplo: Uso de FOR Calcular la productoria de todos los números pares hasta 30. PROGRAM Productoria; VAR producto,i: INTEGER; BEGIN producto:=1; FOR i:= 2 TO 30 STEP 2 DO producto:= producto * i; WRITELN(‘La productoria es ’,producto) END. Luis Pizarro Q. ©2003

Ejercicios de Programación Escriba un programa que imprima N términos de la serie de Fibonacci 1,1,2,3,5,8,13,21,... Calcule la potencia de un número, por ejemplo, xy. Hacerlo mediante 2 formas distintas (WHILE, REPEAT, FOR) Calcule cuántos términos debe tener al menos la sumatoria para que se cumpla donde L es ingresado por el usuario. Luis Pizarro Q. ©2003

Tema 6: Estructuras de Control Programación de Computadores (IWI-131) Tema 6: Estructuras de Control Luis Pizarro Q. Luis.Pizarro@inf.utfsm.cl www.labmc.inf.utfsm.cl/~lpizarro/IWI-131