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

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

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

Programación en Pascal

Fundamentos de programación

Estructuras de Control

Nota: Se entiende que el usuario no introducirá un divisor igual a cero.

Estructuras de Repetición (Repita para)

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

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

Estructuras de Control. Secuencia y Selección

Estructuras de Repetición (Hacer-Mientras)

Estructuras de control

SUBRANGO ENUMERADOS CONJUNTOS

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

Departamento de Informática Universidad Técnica Federico Santa María. Tema 1: Algoritmos

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Estructura de datos (arreglos) Vectores y Matrices

001. Interpreta correctamente códigos (teléfonos, matrículas, NIF ).

BOLETÍN 5: Algoritmos II

UNIDAD DOS FACTORIZACIÓN

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

ESTRUCTURAS REPETITIVAS

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

Módulo 8: Primitivas en Pascal

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

3. Estructuras iterativas

ALGORITMOS Y ESTRUCTURAS DE DATOS. Ejercicios Resueltos CUADERNILLO DE PRACTICA

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

Academia técnica de computación A.T.C.

Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)

Estructura general de un programa

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

Estructuras de repetición

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.

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

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.

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

ESTRUCTURA DE DATOS: ARREGLOS

UNIDAD: NÚMEROS Y PROPORCIONALIDAD. Los elementos del conjunto IN = {1, 2, 3, 4, 5, 6, 7,...} se denominan números

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

APENDICE CODIFICACION DE LAS ESTRUCTURAS BASICAS

RESUMEN DE CONCEPTOS

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A.

UTN FRLP Ing. en Sistemas de Información Algoritmos y Estructura de Datos Trabajos Prácticos Curso 2010

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

TEMA Nº 1. Conjuntos numéricos

TEMA 4. ESTRUCTURAS DE CONTROL

Semántica Denotacional

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD


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

FACTORIZACIÓN. De acuerdo con lo anterior, el resultado de una factorización siempre será un producto.

Manual de turbo pascal

TEMA 1 NÚMEROS NATURALES

FUNDAMENTOS DE INFORMÁTICA

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

Capítulo 1. Numeración 1 Variables... 2 Números naturales... 2 Números enteros... 3 Números reales Ejercicios Orden y valor absoluto...

Tema 3.- Predicados y sentencias condicionales

DIVISIBILIDAD: Resultados

Capítulo 5. Los números reales y sus representaciones Pearson Education, Inc. Diapositiva 5-4-1

Divisibilidad I. Nombre Curso Fecha

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

DIVISIBILIDAD NÚMEROS NATURALES

24 = = = = = 12. 2

FICHAS DE TRABAJO REFUERZO

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

Números reales Conceptos básicos Algunas propiedades

Representación de los números naturales

Ejercicios Pendientes Matemáticas 2º ESO Curso Números Enteros Los Números Enteros

Teoría (resumen) Por ejemplo, los múltiplos de 3 son: 3, 6, 9, 12, 15, 18, ; los múltiplos de 2 son: 2, 4, 6, 8, 10, 12, ; o sea los números pares.

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

Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A)

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

LICEO Nº1 JAVIERA CARRERA 2012 MATEMATICA Benjamín Rojas F. FACTORIZACIÓN

RESUMEN DE CONCEPTOS TEÓRICOS MATEMÁTICAS 1º ESO. CURSO

Potencias y raíces Matemáticas 1º ESO

SERIE INTRODUCTORIA. REPASO DE ALGEBRA.

Estructura de Datos: Archivos

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

TEMA 3 POTENCIAS Y RAÍCES

REFERENCIA DEL LENGUAJE

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

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

FICHAS REPASO 3º ESO. Para restar números enteros, se suma al minuendo el opuesto del sustraendo y después se aplican las reglas de la suma.

El Conjunto de los Números Naturales

LENGUAJE DE PROGRAMACION UNO.

ARCHIVOS de TEXTO en PASCAL

[ GUÍA DIDÁCTICA: DESARROLLO DE ALGORITMOS PSEINT] 11 de julio de 2013

PASAPALABRA BLOQUE NÚMEROS

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

Números Naturales. Cero elemento neutro: = 12 Sucesión fundamental : se obtiene el siguiente número = 9

RADICACIÓN EN LOS REALES

Operaciones de números racionales

Preparación para Álgebra 1 de Escuela Superior

Algorítmica y Lenguajes de Programación. Ordenación (i)

5. Subprogramas Fundamentos de Informática

TEMA 3. NÚMEROS RACIONALES.

Transcripción:

6. Estructuras básicas de control 1 Acciones Pseudocódigo Slide 1 Estructuras de control Secuencia Selección simple (si... entonces... ) doble (si... entonces... si no... ) múltiple (según el caso... ) Iteración con condición al principio (mientras... hacer... ) con condición al final (repetir... hasta que... ) controlada por contador (para... )... Slide 2 Iteración con condición al principio (mientras... hacer... ) con condición al final (repetir... hasta que... ) controlada por contador (para... )... <sentencia iterativa> ::= <sentencia while> <sentencia repeat> <sentencia for>

6. Estructuras básicas de control 2 Slide 3 Condición de permanencia/terminación del bucle Número de veces que se realizan las acciones Número de veces que se evalúa la condición Corrección parcial: Si el bucle termina, obtiene el resultado deseado Terminación: El bucle termina Iteración mientras Slide 4 mientras <condición> hacer <acciones> accion T condicion? F while <expresión lógica> do <sentencia>

6. Estructuras básicas de control 3 Slide 5 program MCD (input, output); (* Entrada: 2 números enteros positivos m y n Salida : el máximo común divisor de ambos Método : algoritmo de Euclides Suposiciones: los números de entrada son positivos y m>=n. Si no, no funciona. *) var BEGIN m, n : integer; r : integer; writeln (output, Escriba dos enteros positivos, primero >= segundo ); readln (input, m, n); r := m MOD n; while r <> 0 do Slide 6 m := n; n := r; r := m MOD n END. writeln (output, El máximo común divisor es, n)

6. Estructuras básicas de control 4 Slide 7 END. (*V MCD (m0, n0) = MCD (m, n) *) r := m MOD n; (*V m=nq+r, 0<=r<n, MCD (m0, n0) = MCD (m, n) *) while r <> 0 do (*V m=nq+r, 0<r<n, MCD(m0,n0) = MCD(n,r) *) m := n; n := r; (*V 0<n MCD(m0,n0) = MCD(m,n) *) r := m MOD n (*V m=nq+r, 0<=r<n, MCD(m0,n0)=MCD(m,n) *) (*V m=nq+r, 0 =r<n, MCD(m0,n0) = MCD(m,n) *) writeln (output, El máximo común divisor es, n) Ejemplo: Suma de dos enteros sin usar el signo + (* x = x 0, y = y 0 x, y,: enteros, suma: entero *) Slide 8 suma := y; while x <> 0 do suma := succ(suma); x := pred(x) ; end (* x = 0, y = y 0 suma = x 0 + y 0 *) (* Termina sii x 0 0 *)

6. Estructuras básicas de control 5 Ejemplo: cálculo de n=0 1/2n, hasta un término pequeño : no suma términos estrictamente menores que un cierto ɛ (* suma, term, epsilon: reales, expon: entero *) Slide 9 {leer epsilon} suma := 0; expon := 0; term := 1 (* term := 1/2^0 *); while term >= epsilon do suma := suma + term ; expon := expon + 1 ; {term := 1/2^expon} writeln (output, Suma aproximada:, suma) Cálculo de 1/2 expon (* i: entero (contador de multiplicaciones) *) Slide 10 term := 1; i := 1; while i<= expon do term := term * 1/2; i := i+1 end o aprovechando el cálculo realizado en una pasada del bucle para la siguiente: term := term /2

6. Estructuras básicas de control 6 Slide 11 Ejemplo: cálculo de la unidad de redondeo: program UniRed (output); (* Calcula la Unidad de Redondeo: mayor número de la forma 1/2^n tal que 1+1/2^n, para la máquina, es 1. Salida : exponente n y el correspondiente 1/2^n *) var uno, u: real; n: integer; BEGIN uno := 1.0; u := 1; n := 0; while uno+u > uno do n := n+1; u := u/2; (* uno + u = uno *) writeln ( Exponente:, n, Unidad de redondeo:, u) END. Ejemplo: Muestra del número asociado a cada letra minúscula: Slide 12 program NumDeLetras (output); var c : char; BEGIN c := a ; while c <= z do writeln (output, c, ord(c)); c := succ(c) END.

6. Estructuras básicas de control 7 Acumulador: (aditivo, multiplicativo... ) Iniciación al elemento neutro de la operación. Una vez. Actualización: n veces: <var> := <var> <op> <expresión> Slide 13 Contador: (sobre tipo ordinal) Iniciación al valor inicial. Una vez. Actualización: n veces: <var> := succ (<var>) ó <var> := pred (<var>) Sucesión explícita o calculada: a i = f(i) i 0 Sucesión implícita o recurrente: a 0 := valor base a i := f(i, a i 1 ) i 1 Slide 14 Ejemplo: Suma de los pares hasta uno dado program SumaDePares (input, output); (* Entrada : n entero positivo y par Salida : suma de todos los pares hasta n Sup : la entrada es válida *) var n, suma: integer; p : integer; (* contador *) BEGIN write (output, escriba n. par ); readln (input, n); suma := 0; p := 2; while p <= n do suma := suma + p; p := p+2 writeln (output, Suma pares hasta, n, :, suma) END.

6. Estructuras básicas de control 8 Ejemplo: cálculo del menor divisor de un entero mayor que 1. Slide 15 Entrada: un número entero mayor que 1 Salida : su divisor más pequeño mayor que 1 Observaciones: Si es primo, la salida es él mismo Suposiciones: La entrada es válida (entero mayor que 1) Variables: n : entero de entrada candidato : (a divisor) entero Inicio leer n candidato 2 mientras n mod candidato 0 hacer candidato +1 mostrar candidato fin Mejora del algoritmo anterior: sólo se buscan candidatos hasta la raíz cuadrada del número: Slide 16 Inicio leer n candidato 2 mientras (n mod candidato >0) and(candidato n) hacer candidato +1 (* candidato divide a n ó candidato demasiado grande *) si n mod candidato = 0 entonces mostrar candidato si no mostrar n fin

6. Estructuras básicas de control 9 Iteración repeat Slide 17 repetir <acciones> hasta que <condición> accion F condicion? T repeat <sentencias> until <expresión lógica> Slide 18 Algoritmo: factorizar un entero >1 Entrada : entero n > 1 Salida : lista de factores primos Subalgoritmos : PrimerDivisor Método : Mostrar el primer divisor de n y reducir a n/divisor Variables: n : entero de entrada m : entero, primer divisor Inicio leer n repetir m primer divisor de n mostrar m n n div m hasta que n=1 fin

6. Estructuras básicas de control 10 Accion 1 Slide 19 c? F T Accion 2 Slide 20 Ejemplo: números de Fibonacci: Dado un entero estrictamente positivo n, escribir los números de Fibonacci hasta alcanzar uno que supere estrictamente a n. variables: n: entero de entrada f1, f2, f3 : enteros de cálculo Inicio leer n f1 0; f2 1 mostrar f1, f2 repetir f3 f1 + f2 mostrar f3 f1 f2; f2 f3 hasta que f3>n fin

6. Estructuras básicas de control 11 Slide 21 Ejemplo: Versión con mientras números de Fibonacci: Inicio leer n f1 0; f2 1 mostrar f1, f2 f3 f1 + f2 mientras f3 n hacer mostrar f3 f1 f2; f2 f3 f3 f1 + f2 (* f3 >n f3 es el primero que lo supera *) mostrar f3 fin Control de bucles por centinela Slide 22 obtener dato mientras dato centinela hacer tratar dato obtener dato

6. Estructuras básicas de control 12 Control de bucles por último dato Slide 23 repetir obtener dato tratar dato hasta que dato (antes del tto.) = último dato Control de bucles por índice Slide 24 iniciar índice con la expresión inicial mientras índice expresión final hacer realizar acción (cuidado con lo que se modifica) actualizar el índice Caso frecuente: contador contador expresión inicial mientras contador expresión final hacer realizar acción (cuidado con lo que se modifica) incrementar el contador (contador contador + expresión)

6. Estructuras básicas de control 13 Slide 25 Control de bucles por bandera 1 o mas veces repetir proceso mostrar Quiere repetir? leer respuesta hasta que respuesta sea negativa 0 o mas veces mostrar Quiere realizar el proceso? leer respuesta mientras respuesta sea afirmativa hacer proceso mostrar Quiere seguir realizando el proceso? leer respuesta Control por fin de datos En el archivo Slide 26 mientras haya datos (not eof) hacer leer dato procesar dato En la línea mientras haya datos (not eoln) hacer leer dato procesar dato

6. Estructuras básicas de control 14 Slide 27 mientras haya líneas (not eof) hacer (* procesar línea: *) proceso previo a la línea mientras haya datos (not eoln) hacer leer dato procesar dato proceso de final de línea Slide 28 Ejemplo: Contar el número de zetas en un texto de teclado. program cuentazetas (input, output); var nzetas : integer; c : char; BEGIN nzetas := 0; while not eof do while not eoln do read (c); if (c= z ) or (c= Z ) then nzetas := nzetas +1 readln; writeln ( De momento:, nzetas) writeln ( En total, nzetas) END.