Informática Tema 5 - Estructuras de Control Estructuras de Repetición.

Slides:



Advertisements
Presentaciones similares
ESTRUCTURAS DE CONTROL
Advertisements

Sesión 3 Estructuras Repetitivas
Pippy (Python para niños)‏ 1.
Estructuras Repetitivas para
Estructuras de Repetición Algoritmos
PHP-MYSQL OPERADORES EN PHP
CICLOS EN C – PARTE 2.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
CICLOS EN C.
Estructuras de control
Estructuras de Repetición
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.
Estructuras de repetición
Fundamentos de Programación

Ingeniero Anyelo Quintero
Estructuras de Control de Repetición
ESTRUCTURAS ITERATIVAS
ESTRUCTURAS DE CONTROL
Tema 3 Entrada y Salida.
Estructuras de Control Iterativas
ESTRUCTURAS CONTROL SECUENCIAL
Programación de Computadores
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
Programación en Matlab
Control de flujo: Bucles
ESTRUCTURAS DO-WHILE Y FOR.
Capítulo 1 “Elementos de Programación”
WHILE Estructuras Repetitivas
Informática Ingeniería en Electrónica y Automática Industrial
Teoría – Alejandro Gonzalez
EXPRESIONES Y SENTENCIAS
ESTRUCTURAS REPETITIVAS

Estructuras de Control.
Informática Tema5- Estructuras de Control en C:
Estructuras de Repetición (Hacer-Mientras)
Sentencias de repetición
Estructuras de control Resolución de problemas y algoritmos.
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
Estructuras repetitivas e iterativas  Son herramientas que permiten ejecutar operaciones que se deben aplicar un número repetido de veces. El conjunto.
Estructuras de Repetición (Hacer-Mientras)
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.
Operadores Lógicos Y (Conjunción): Tanto P como Q (Ambas). O (Disyunción): Puede ser que P o Q o ambas (mínimo 1)
UNIVERSIDAD LATINA INTRODUCCION A LA PROGRAMACION INSTRUCCIONES INTERATIVAS.
Estructuras de Control en Visual Basic.net
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
El lenguaje de programación C - Control de flujo y bucles -
“variables , sentencia if y bucles”
LENGUAJE “C” Programación.
Práctica Profesional PHP.
Estructuras de Decisión
2011/1 - CLASE 12. AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados.
CICLOS EN C – PARTE 3.
int cantidad, horas, cuota; float precio, peso; cantidad = 5; // Le asigno un número a la variable Cantidad; horas = // Le asigno 30 a la variable.
Conceptos Generales Programación I Docente: Ing. Marleny Soria M.
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
Programación I Docente: Ing. Marleny Soria M..  Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar.
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
Conceptos Generales PROGRAMACIÓN I DOCENTE: ING. MARLENY SORIA M. 1.
Ciclos en Visual Basic Yaimira Pérez. Los ciclos son estructuras de repetición que ejecutan una o varias instrucciones durante la cantidad de veces que.
Tipos de ciclos en Visual Basic. Dinámicos y fijos. 6.1 Foro. Wuilson Valencia, Desarrollo de aplicaciones I y Laboratorio. 1.
Este material ha sido desarrollado para alumnos que cursan la asignatura de Programación Básica impartida en el primer semestre en la Facultad de Ingeniería.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
Ciclos de Repeticion Yoel Gutierrez Unidad 6. Contenido DefinicionExplicacionEjemplosReferencias.
Ciclos condicionales y exactos Estructura de control de ciclos
Estructuras Repetitivas Consideraciones. Estructuras Repetitivas  Son aquellas que van a ejecutar un número determinado de veces una instrucción o un.
Transcripción de la presentación:

Informática Tema 5 - Estructuras de Control Estructuras de Repetición

Índice Necesidad Conceptos El while Bucle infinito El do...while El for

Necesidad En ciertos problemas es necesario ejecutar una instrucción o bloque de instrucciones más de una vez: P.e: “Hacer un programa en C que calcule la suma de N números enteros leídos desde teclado” Hay veces que conocemos el número de veces que deben repetirse y otras veces finalizará cuando se satisfaga una condición.

Conceptos A las estructuras de repetición se les conoce con el nombre de “bucle”. A cada repetición de las instrucciones de un bucle se le denomina “iteración”. Así se habla de primera iteración del bucle, segunda iteración, etc...

El while Sintaxis: while (exp_condicional) bloque ¿exp? Bloque Resto de instrucciones Cierto(1) Falso(0) while

Ejemplo 1: “Hacer un programa en C que calcule la suma de N números enteros leídos desde teclado” Algoritmo: –Pedir el valor que va a tener N. –Poner a cero una variable acumulador. –Mientras n sea distinto de cero: Pedir un valor Acumular el valor en la variable –Mostrar el resultado de la variable acumulador.

/* ejemplo 1*/ main(){ int N,suma,numero; prinft(“Deme la cantidad de numeros a leer: ”); scanf(“%d”,&N); /* numero de veces a ejecutarse */ suma=0; /* guarda la suma */ while (N!=0) { printf(“Deme el valor del numero: “); scanf(“%d”,&numero); suma=suma+numero; /*se van acumulando valores*/ N=N-1; /* se decrementa el contador*/ } printf(“el valor de la suma es: %d\n”,suma); }

Ejemplo 2: “ Hacer un programa en C que muestre por pantalla la tabla de multiplicar de un numero introducido por teclado” Algoritmo: –Pedir el número. –Poner un contador a cero. –Mientras que el contador sea menor o igual a 10: Sacar por pantalla el resultado del numero multiplicado por el contador. Incrementar el contador.

/* ejemplo 2*/ main(){ int num,contador; prinft(“Deme el numero: ”); scanf(“%d”,&num); /* obtener el numero */ contador=0;/* iniciamos el contador a cero */ while (contador<=10) { printf(“%4d por %4d es %4d“,num,contador,num*contador); contador=contador+1; /* se incrementa el contador*/ }

En ambos ejemplos se conoce cuantas veces se debe ejecutar el bloque de instrucciones del while. La expresión del while se convierte normalmente en una compro- bación del valor del contador. (contador<=10) y (N!=0) Se define el contador como una variable que se incrementa o decrementa un valor constante en cada iteración del bucle y que nos permite contabilizar en que iteración nos encontramos del bucle.

Puede ser que no conozcamos el número de veces a ejecutar: –P.e.: “Calcular la suma de números introdu- cidos desde teclado hasta introducir un cero” En este caso no hay contador, no conocemos la iteración en la que nos encontramos en cada momento y es el valor del número introducido el que determina el final del bucle. En la expresión deberemos controlar el valor del numero introducido, es decir: “Mientras que el número sea distinto de cero”

Algoritmo: –Pedir el número. –Poner a cero la variable que va a acumular los valores. –Mientras que el número sea distinto de cero: Acumular el valor del número en la variable. Pedir un nuevo numero –Mostrar por pantalla el contenido de la variable donde se han ido acumulado los números.

/* ejemplo 3*/ main(){ int n,suma,numero; printf(“Deme el valor del numero: “); scanf(“%d”,&numero); suma=0; /* guarda la suma */ while (numero!=0) { suma=suma+numero; printf(“Deme el valor del numero: “); scanf(“%d”,&numero); } printf(“el valor de la suma es: %d\n”,suma); }

Bucle infinito Un bucle infinito es un bucle que se repite infinitas veces, típicamente, nunca deja de cumplirse la condición del bucle. P.e: Si en el ejemplo 1 nos olvidamos de decrementar la variable contador. while (n!=0) { printf(“Deme el valor del numero: “); scanf(“%d”,&numero); suma=suma+numero; /*se van acumulando valores*/ }

El do...while Sintaxis: do bloque while (exp_condicional); ¿exp? Bloque Resto de instrucciones Cierto(1) Falso(0) do while

Características Se ejecuta el bloque de instrucciones al menos una vez. Ello lo hace especialmente indicado para validar datos de entrada. (Ver ejemplo, pag. siguiente) Aunque es parecido al while no siempre existe una correspondencia entre ellos. –P.e.: intentar hacer el ejemplo 3.

/*ejemplo 2 comprobando la entrada entre 1 y 9*/ main(){ int num,contador; do { prinft(“Deme el numero entre 1 y 9: ”); scanf(“%d”,&num); /* obtener el numero */ } while ((num 9)); /* comprueba si num está fuera del intervalo 1-9*/ contador=0;/* iniciamos el contador a cero */ while (contador<=10) { printf(“%4d por %4d es %4d“,num,contador,num*contador); contador=contador+1; /* se incrementa el contador*/ }

El for Se suele emplear cuando se conoce el número de iteraciones a realizar. Sintaxis: for(exp1;exp2;exp3) bloque La exp1 suele contener inicializaciones de vbles. Las instrucciones que se encuentren en esta parte del for sólo se ejecutarán una vez antes de cualquier iteración del bucle, si tiene más de una deberá ser separadas por una coma.

La exp2 contiene una expresión condicional al estilo del while que controla la ejecución o no del bloque de instrucciones. La exp3 contiene instrucciones que se deben ejecutar en cada iteración del bucle. p.e. El incremento/decremento de un contador, si contiene más de una instrucción, deberán ir separadas por comas. Estas instrucciones se ejecutan al final de cada iteración. P.e: for(i=0;i<10;i++) for(i=0,j=N;i<N;i++,j--)

¿exp2? exp1 Resto de instrucciones Cierto(1) Falso(0) for bloque exp3

/*ejemplo 2 comprobando la entrada entre 1 y 9*/ main(){ int num,contador; do { prinft(“Deme el numero entre 1 y 9: ”); scanf(“%d”,&num); /* obtener el numero */ } while ((num 9)); /* comprueba si num está fuera del intervalo 1-9*/ for(contador=0;contador<=10;contador++) { printf(“%4d por %4d es %4d“,num,contador,num*contador); }

Correspondencia for-while Un for siempre se puede substituir por un while y viceversa exp1 for(exp1;exp2;exp3)while (exp2) {bloque exp3 }

Algunos for’s y while’s singulares for(;;) /*bucle infinito*/ for(;exp2;) /*sin exp1 y sin exp3*/ while(1) /*bucle infinito*/

Problemas Realizar un programa en C que calcule la multiplicación de dos números enteros a y b empleando sólo la operación suma. Realizar un programa en C que calcule a elevado b siendo a y b enteros y empleando sólo la operación multiplicación. Realizar un programa en C que calcule la a elevado b siendo a y b enteros y empleando sólo la operación suma.

main () { int a,b,mult; printf ("deme dos numeros enteros: "); scanf("%d%d",&a,&b); mult=0; while (b>0) { mult=mult+a; b--; } printf("el resultado es %d\n",mult); }

Finalización anticipada de un bucle Escribir un programa en C para determinar si un numero entero es primo o no. –Pedir un numero entero. –Comprobar si es divisible por el 2, el 3, 4, 5, etc hasta llegar al numero. –Si he llegado al numero es primo, sino es que he encontrado un numero por el que es divisible.

/* solucion 1*/ main() { int num,i,primo; printf(“deme un numero entero positivo: ”); scanf(“%d”,&num); i=2; primo=1; while (i<num) { if ((num%i)==0) primo=0; i++; } if (primo) printf(“El numero es primo”); else printf(“El numero no es primo”); }

/* solucion 2*/ main() { int num,i,primo; printf(“deme un numero entero positivo: ”); scanf(“%d”,&num); i=2; primo=1; while ((i<num) && (primo)) { if ((num%i)==0) primo=0; i++; } if (primo) printf(“El numero es primo”); else printf(“El numero no es primo”); }

/* solucion 3*/ main() { int num,i; printf(“deme un numero entero positivo: ”); scanf(“%d”,&num); i=2; while ((i<num) && ((num%i)!=0)) i++; if (i==num) printf(“El numero es primo”); else printf(“El numero no es primo”); }

/* solucion 4*/ main() { int num,i; printf(“deme un numero entero positivo: ”); scanf(“%d”,&num); for(i=2;((i<num) && ((num%i)!=0));i++) { } if (i==num) printf(“El numero es primo”); else printf(“El numero no es primo”); }

Problema Hacer un programa en C que calcule el factorial de un numero i!=i-1*i-2*i-3*…*1 Hacer programa que calcule e x segun Tailor: