Repetición Condicional

Documentos relacionados
Estructuras de Control. Secuencia y Selección

ESTRUCTURAS REPETITIVAS

Estructuras de Control

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Estructuras de control

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Estructuras de Repetición (Repita para)

Fundamentos de programación

Manual de turbo pascal

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Flujo del programa. Este flujo puede alterarse mediante: El ordenador ejecuta cada sentencia y va a la siguiente hasta el final del programa.

Parte 4: Estructuras de Control

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

Estatutos de Control C# Estatutos de Decisión (Selección)

FUNDAMENTOS DE INFORMÁTICA

fundamentos de programación (unidad 4) programación estructurada en Java

Estructuras de repetición

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Fundamentos de Programación. Flujo de Control I: Estructuras selectivas

Programación Orientada a Objetos

Nota:Simule el programa paso a paso en su cuaderno para entender la lógica de ejecución. Clase Lenguaje de programación 1 Ing Eddy ruiz Largaespada.

Curso de Programación 1

TEMA 4. ESTRUCTURAS DE CONTROL

Java para no Programadores

Estructuras de Repetición (Hacer-Mientras)

Operadores de comparación

Microprocesadores. Introducción al Lenguaje C - Parte III. Prof. Luis Araujo. Universidad de Los Andes

GENERALIDADES DEL LENGUAJE C

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Tema 2. El lenguaje JAVA

PHP: Lenguaje de programación

4.- Leer tres números y escribirlos en orden decreciente

FUNDAMENTOS DE INFORMÁTICA

6. Estructuras básicas de control 1. Pseudocódigo

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

EJERCICIOS EN PASCAL 1.- Área de un triángulo (Entrada y salida estándar - Pascal) 1.- Escribir un programa (en Pascal) que:

Estructuras en LabVIEW.

Guía práctica de estudio 03: Algoritmos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

ALGORITMOS Y ESTRUCTURAS DE DATOS. Ejercicios Resueltos CUADERNILLO DE PRACTICA

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

ESTRUCTURAS REPETITIVAS EN PHP

3. Estructuras iterativas

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Estructuras de repetición

CI 2125, Computación I

Universidad de Managua

Estudiemos el siguiente problema, propuesto por Wirth y desarrollado por Dijkstra: Una lista de las primeras secuencias que cumplen es:

Curso de Java Introducción a la Programación III

Estructuras de Control 3

Introducción a la Programación en Visual Basic y su aplicación en Excel. M.I. Jaime Alfonso Reyes Cortés

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática

Guía práctica de estudio 03: Algoritmos

UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO

Introducción a los Computadores Estructuras de control repetitivas en C

Estructuras Repetitivas

Tema 3.- Predicados y sentencias condicionales

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

REFERENCIA DEL LENGUAJE

Funciones. Parámetros por valor

Ejercicios resueltos Visual Basic y.net con arrays (arreglos), Do While, For, mod, ficheros, Ubound. Cálculo serie numérica (CU00344A)

El lenguaje C. 1. Identificadores, constantes y variables

UNIDAD DIDÁCTICA #1 CONTENIDO

Lenguaje de programación C. Introducción

5. Subprogramas Fundamentos de Informática

Algoritmos y Programación Clase 8

Módulo 8: Primitivas en Pascal

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Opuesto de un número +3 + (-3) = (+5) = 0. N = 0,1, 2,3,4, Conjunto de los números naturales

Generación de variables aleatorias continuas Método de rechazo

índice MÓDULO 1: Introducción a Visual Basic 6.0 MÓDULO 2: Fundamentos de programación TEMA 1. Introducción a Visual Basic 6.0

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

Programación Estructurada

Programas ejemplo. Lenguaje de Programación PASCAL. Miguel Murguía

Ejercicio 1.- En las construcciones siguientes para qué valores de la variable RangoI se ejecutará la sentencia de asignación?

Comencemos a programar con. Entrega 09

Hoja de ejercicios del Tema 3

Computación II. Introducción a Visual Basic

Shell Script Sistemas Operativos III - ITS EMT - CETP

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

Programación en Pascal

Programación y Computación Ingenierías. Dr. Eric Jeltsch F. FUNCIONES Y PROCEDIMIENTOS. Universidad de La Serena.

Diagramas de secuencia

PASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015

Transcripción:

Repetición Condicional InCo - FING Programación 1 InCo - FING Repetición Condicional Programación 1 1 / 20

La instrucción while InCo - FING Repetición Condicional Programación 1 2 / 20

Ejemplo Leer números naturales de la entrada y calcular su suma. El fin de la entrada está indicado por un número negativo var numero,suma : integer; (* lectura inicial *) ReadLn(numero); (* inicializacion *) suma:= 0; while numero >= 0 do (* acumulacion *) suma:= suma + numero; (* siguiente lectura *) ReadLn(numero) end; (* mostrar resultado *) WriteLn('La suma de los numeros es: ', suma) end. InCo - FING Repetición Condicional Programación 1 3 / 20

Sintaxis de la instrucción while sentencia_while = 'while' expresión 'do' instrucción Donde: expresión es una expresión de tipo boolean instrucción es cualquier instrucción. while y do son palabras reservadas. InCo - FING Repetición Condicional Programación 1 4 / 20

Semántica La ejecución de una instrucción: while exp do instr procede de la siguiente manera: 1 Evaluar la expresión (la condición del while) Si resulta false, terminar. 2 Ejecutar la instrucción instr Volver al paso 1. InCo - FING Repetición Condicional Programación 1 5 / 20

Indentación (* correcto *) while condición do hacer_algo; hacer_otra_cosa end (* incorrecto *) while condición do hacer_algo; hacer_otra_cosa end (* incorrecto *) while condición do hacer_algo; hacer_otra_cosa end InCo - FING Repetición Condicional Programación 1 6 / 20

Lectura con centinela Un centinela es un valor especial usado para indicar el final de una lista de datos. El esquema de la lectura con centinela es como sigue: (* lectura adelantada *) ReadLn(dato); {inicialización de acumuladores }... (* iteración *) while "dato no es centinela" do (* procesar dato *)... (* acumular *)... (* siguiente lectura *) ReadLn(dato) end Notar que el centinela no es tratado. InCo - FING Repetición Condicional Programación 1 7 / 20

Determinar si un número es primo Un número natural es primo si es mayor que uno y es divisible únicamente entre si mismo y la unidad. Ejemplos de números primos son: 2, 5, 11, 29, 31, 47. Un procedimiento para determinar si un número n es primo es recorrer todo el intervalo entre 2 y n-1 buscando si hay divisores de n. InCo - FING Repetición Condicional Programación 1 8 / 20

Determinar si un número es primo Un número natural es primo si es mayor que uno y es divisible únicamente entre si mismo y la unidad. Ejemplos de números primos son: 2, 5, 11, 29, 31, 47. Un procedimiento para determinar si un número n es primo es recorrer todo el intervalo entre 2 y n-1 buscando si hay divisores de n. El procedimiento anterior no es eficiente. Una primera forma de mejorarlo es buscar únicamente en el intervalo entre 2 y n div 2 ya que luego de n div 2 no hay divisores de n. InCo - FING Repetición Condicional Programación 1 8 / 20

Determinar si un número es primo Un número natural es primo si es mayor que uno y es divisible únicamente entre si mismo y la unidad. Ejemplos de números primos son: 2, 5, 11, 29, 31, 47. Un procedimiento para determinar si un número n es primo es recorrer todo el intervalo entre 2 y n-1 buscando si hay divisores de n. El procedimiento anterior no es eficiente. Una primera forma de mejorarlo es buscar únicamente en el intervalo entre 2 y n div 2 ya que luego de n div 2 no hay divisores de n. La búsqueda se puede hacer en forma más eficiente como se muestra en el siguiente programa. InCo - FING Repetición Condicional Programación 1 8 / 20

Determinar si un número es primo La solución utilizando for la consideramos incorrecta. var fin,numero, divisor : integer; ReadLn(numero); fin:= trunc(sqrt(numero)); divisor:= 2; while (divisor <= fin) and (numero mod divisor <> 0) do divisor:= divisor + 1; if divisor <= fin then WriteLn('El numero ',numero,' no es primo') else WriteLn('El numero ',numero,' es primo') end. InCo - FING Repetición Condicional Programación 1 9 / 20

Factorial de un número Todo problema resuelto con for se puede resolver con un while. var factorial,i,numero : integer; ReadLn(numero); factorial:= 1; i:= 2; while i<=numero do factorial:= factorial * i; i:= i+1 end; WriteLn('El factorial es: ', factorial) end. Esto se considera una mala práctica de programación, la solución apropiada es con for. InCo - FING Repetición Condicional Programación 1 10 / 20

División entera por restas Se puede calcular la división entera solo usando restas: var dividendo, resto, divisor, cociente : integer; ReadLn(dividendo,divisor); resto:= dividendo; cociente:= 0; while resto >= divisor do resto:= resto - divisor; cociente:= cociente + 1 end; WriteLn('El resto es: ', resto); WriteLn('El cociente es: ', cociente) end. InCo - FING Repetición Condicional Programación 1 11 / 20

Banderas booleanas Leer números de la entrada y terminar cuando aparecen 2 números consecutivos iguales o cuando aparece un negativo. Calcular la cantidad de pares. var numero,cantidadpares,anterior : integer; repetidos : boolean; ReadLn(numero); repetidos:= false; cantidadpares:= 0; while not repetidos and (numero > 0) do if numero mod 2 = 0 then cantidadpares:= cantidadpares + 1; anterior:= numero; ReadLn(numero); repetidos:= numero = anterior end; WriteLn('La cantidad es: ', cantidadpares) end. InCo - FING Repetición Condicional Programación 1 12 / 20

Condición compuesta Advinar un número en menos de 10 intentos: const NUMERO = 39; (* algun valor *) var intentos, numleido : integer; Write('Numero: '); ReadLn(numLeido); intentos:= 1; while (numleido <> NUMERO) and (intentos < 10) do WriteLn('Incorrecto. ', intentos:2, ' intentos'); Write('Numero: '); ReadLn(numLeido); intentos:= intentos + 1 end; if numleido = NUMERO then WriteLn('Correcto. ', intentos:2,' intentos') else WriteLn('Incorrecto. No quedan mas intentos') end. InCo - FING Repetición Condicional Programación 1 13 / 20

La instrucción repeat InCo - FING Repetición Condicional Programación 1 14 / 20

Sintaxis de la instrucción repeat. sentencia_repeat = repeat instrucción { ; instrucción } until expresión Donde expresión es una expresión de tipo boolean El cuerpo de un repeat puede ser una secuencia de instrucciones, sin necesidad de delimitarlas por un y un end. repeat y until son palabras reservadas. InCo - FING Repetición Condicional Programación 1 15 / 20

Semántica del repeat. La ejecución de una instrucción: repeat instrucción;... instrucción until expresión procede de la siguiente manera: 1 Se ejecuta el cuerpo (siempre al menos una vez) 2 Se evalúa la expresión. Si es false se vuelve al paso 1. Si es true, termina. InCo - FING Repetición Condicional Programación 1 16 / 20

Relación con while La instrucción: repeat S until C es equivalente a: S; while not C do S end InCo - FING Repetición Condicional Programación 1 17 / 20

Procesamiento de palabras Deseamos contar las palabras contenidas en un texto. Las palabras están seperadas por espacios. El final del texto se señaliza con un carácter de punto. El punto está precedido por al menos un espacio. InCo - FING Repetición Condicional Programación 1 18 / 20

Esquema del procesamiento const ESPACIO = ' '; FIN = '.'; var caracter : Char; cantidadpalabras : Integer; cantidadpalabras:= 0; [avanzar comienzo de palabra] while [quedan palabras] do [leer-palabra] cantidadpalabras:= cantidadpalabras + 1 [avanzar siguiente palabra] end; {while} WriteLn('La cantidad de palabras es: ', cantidadpalabras) end. InCo - FING Repetición Condicional Programación 1 19 / 20

Versión final (* inicializar contadores *) cantidadpalabras:= 0; (* saltear espacios *) repeat read(caracter) until caracter <> ESPACIO; while caracter <> FIN do (* leer palabra *) repeat read(caracter); until caracter = ESPACIO; (* incrementar contador *) cantidadpalabras:= cantidadpalabras + 1; (* avanzar siguiente palabra *) repeat read(caracter) until caracter <> ESPACIO end; {while} InCo - FING Repetición Condicional Programación 1 20 / 20