Estructuras de repetición
|
|
|
- Mercedes Lara Peña
- hace 9 años
- Vistas:
Transcripción
1 Estructuras de repetición Las estructuras de repetición sirven, como su nombre lo indica, para repetir porciones de código. Imagínense que no existieran y quisieramos mostrar todos los números del 1 al 5. Habría que hacer algo así: int num = 1; printf("%d", num); printf("%d", num+1); printf("%d", num+2); printf("%d", num+3); printf("%d", num+4); Demás está decir que con 5 números no hay problema, pero si se piden 100, ahí el tema se complica. En este caso siempre estamos haciendo lo mismo, "repitiendo" lo mismo. Lo que las estructuras de repetición nos permiten es no tener que escribir n veces el mismo bloque de código. Entonces, usando un FOR por ejemplo, quedaría así: int num; for (num = 1; num <=5; num++) printf("%d\n", num); Usando un WHILE: int num = 1; while (num <= 5) printf("%d\n", num); num++; El printf sólo lo escribimos una vez en el código, en lugar de cinco. Esto es lo básico. Lo importante acá es que vean que el tema no es tan complicado como parece, y que la única magia de los ciclos de repetición es eso, repetir.
2 Ahora yendo un poco más al detalle. Hay tres tipos distintos de estructuras de repetición: FOR WHILE DO-WHILE La gran diferencia que existe entre FOR y WHILE es lo que se podría llamar "control de repetición". Al WHILE se lo llama ciclo de repetición no controlada, porque, de antemano, no se sabe cuántas veces se va a repetir, es decir, no se tiene control sobre eso. Al FOR se lo llama ciclo de repetición controlada, porque para usarlo se necesita definir exactamente el intervalo de repetición. Se sabe cuándo inicia y cuándo termina, o sea, se tiene control sobre la repetición. Ojo acá, que estas definiciones no son tan rígidas como aparentan. Generalmente, para resolver un problema se puede usar tanto uno como otro tipo de ciclo (enfatizando el generalmente), pero en algunos casos es más correcto usar uno, y en otros casos resulta más correcto usar el otro. WHILE La sintaxis del WHILE es la siguiente: while (condición) Bloque de código a ejecutar mientras se cumpla la condición Un problema para resolver con WHILE sería: "Ingresar un número y multiplicarlo sucesivamente por 2, mientras el resultado sea menor a Mostrar las multiplicaciones sucesivas." Acá, inicialmente, no se sabe cuántas veces se va a tener que multiplicar el valor ingresado por 2. Incluso la cantidad de veces va a depender de qué tan grande sea el valor ingresado (no va a ser lo mismo ingresar un 2 que ingresar un 450). Es decir, la repetición es "no controlada" desde el punto de vista que, a priori, no hay un intervalo de repetición definido, por lo que es incierta la cantidad de veces que el proceso se va a repetir. El programa quedaría así: int num; printf("ingrese un numero: ");
3 scanf("%d", &num); while (num < 1000) printf("multiplicando... %d\n", num); num = num * 2; Mientras el resultado de multiplicar por 2 sea menor que 1000, el ciclo WHILE se va a seguir ejecutando. En el momento en que el resultado sea mayor que 1000, el WHILE termina. DO-WHILE La sintaxis del DO-WHILE es la siguiente: do Bloque de código a ejecutar mientras se cumpla la condición while (condición); El DO-WHILE es similar al WHILE, excepto en el hecho de que la condición se evalúa al final de cada repetición, en lugar de al principio. En el WHILE, si la condición no se cumple al principio, lo que está dentro del ciclo nunca se ejecuta. En cambio, en el DO-WHILE lo que está dentro del ciclo se va a ejecutar al menos una vez. Después se evalúa la condición: si se cumple, sigue, sino, termina. Un ejemplo: "Ingresar números enteros hasta que se ingrese un cero." Acá puede pasar: que se ingresen muchos números y por último un cero que el primer número que se ingrese sea un cero Entonces, hay que pedir el ingreso del número, al menos una vez. Con el código espero quede más claro: int num; do printf("ingrese un numero (cero para terminar): "); scanf("%d", &num); while (num!= 0);
4 Acá, primero se ejecuta el bloque de código (printf y scanf en este caso). Una vez que en la variable num se encuentra almacenado el número ingresado, recién ahí el programa se pregunta num!= 0?. Si la respuesta es VERDADERO, el ciclo se repite (solicitando otro número), si es FALSO, el ciclo termina. FOR La sintaxis del FOR es la siguiente: for (iterador = ini_intervalo; iterador < fin_intervalo; inc_iterador) Bloque de código a ejecutar siempre que el iterador se encuentre dentro del intervalo definido El "iterador" es una variable propia de la sintaxis del FOR, que: especifica el inicio del intervalo de repetición, indica el final del intervalo de repetición, se va a ir incrementando cada vez que se repita el ciclo. Por ejemplo: "Mostrar en pantalla la tabla del 3." Acá vamos a tener que mostrar, para cada número del 1 al 10, cuál es el resultado de multiplicarlo por 3 (la tablita que aprendimos en primaria). El programa quedaría así: int i, resultado; for (i = 1; i <= 10; i++) resultado = 3 * i; printf("%d * %d = %d\n", 3, i, resultado); Se utiliza el FOR porque se conoce que la tabla de multiplicar va de 1 a 10, entonces se va a tener que repetir el proceso 10 veces. Usamos la variable i como iterador, que irá tomando los valores 1, 2, 3,.., 10. Una vez que i supera a 10, el FOR termina. Y cómo hace para ir tomando un valor distinto e incremental en cada repetición? Eso está especificado en la última parte del FOR, cuando se especifica i++. Ahí lo que se está diciendo es que el i se incremente en 1 cada vez que se ejecuta el bloque de código dentro del FOR.
5 Una cosa a tener en cuenta: usualmente, por cada iteración el i se incrementa en 1. Pero en realidad ahí se puede especificar cualquier tipo de incremento o decremento. Se puede hacer que el i vaya de 2 en dos: i = i + 2. O que vaya de mayor a menor: i. Todo depende del problema a resolver. Hasta acá, ejemplos típicos de uso de cada ciclo/estructura de repetición. Acumuladores Muchas veces los ciclos de repetición se utilizan para acumular valores y después mostrarlos. Un ejemplo sería: "Hacer un programa que permita ingresar números, hasta que se hayan ingresado diez números pares. Luego mostrar el promedio de dichos números." Cuando tenemos cualquier problema, lo primero que tenemos que definir es lo que se llama "estrategia de resolución", es decir, a grandes razgos cuáles van a ser los pasos a seguir para resolver el problema. En este caso serían: 1. Ir pidiendo el ingreso de los números, uno por vez. 2. Por cada número, chequear si es o no par. 3. Si es par, lo acumulo. Si no es par, no hago nada. 4. Una vez que tengo los diez números, calculo el promedio. El programa quedaría así: int num, cant_pares = 0, suma = 0; double promedio; do printf("ingrese un numero: "); scanf("%d", &num); if (num % 2 == 0) cant_pares = cant_pares + 1; suma = suma + num; num++;
6 while (cant_pares < 10); promedio = suma / 10.0; printf("el promedio de los numeros pares ingresado es: %.2lf\n", promedio); Por qué se usa un ciclo de tipo DO-WHILE? Porque al principio no se sabía cuántas veces se iba a tener que pedir al usuario que ingresara un número. Y por qué no usar un ciclo WHILE? Se podría haber resuelto con un WHILE, pero hay que tener en cuenta que en este problema, al usuario había que pedirle que ingrese un número al menos una vez (de hecho, como mínimo va a tener que ingresar diez números, si se da el caso de que todos sean pares). Por otro lado está la variable suma, que acumula los números pares, mientras se van ingresando los números. La acumulación se realiza sumando el nuevo número a lo que ya estaba almacenado en la variable: suma = suma + num. Una vez que termina el DO-WHILE se la utiliza para calcular el promedio. Con este tipo de variables hay que tener especial cuidado de inicializarlas antes de usarlas: si suma no hubiese estado inicializada en 0, al hacer suma = suma + num, estaríamos sumando num a "basura" (el contenido de suma, o más bien el no contenido de suma). Otro ejercicio: Imprimir en pantalla el producto de todos los múltiplos de 3, que hay entre 9 y 60. Acá habría que recorrer todos los números, de tres en tres, e ir acumulándolos. Entonces: int i, producto = 1; for (i = 9; i <= 60; i = i + 3) producto = producto * i; printf("\nel producto es: %d", producto); El detalle acá es la definición del incremento: en lugar de ser i++, es i = i + 3, logrando que por cada repetición (o iteración) la i se incremente en 3. Caracteres Hasta acá hicimos ejercicios con números. Pero también existen los caracteres. No hay una
7 diferencia real muy grande en cuanto a los conceptos a aplicar para resolver un ejercicio con caracteres, y al final, la mecánica es la misma. Por ejemplo: "Ingresar una frase, terminada en un '.' y contar cuántas mayúsculas contiene." Cuando trabajábamos con números, los ingresábamos usando scanf(), con los caracteres, en cambio, usamos getche(). Entonces, en este ejercicio, si se tipea por ejemplo: "Bart, no quiero asustarte, pero tal vez el Coco, el Coco esta en la casa!." el programa tendría que ir ingresando cada caracter, uno a uno con el getche() y contar todas las mayúsculas. Al final tendría que informar que hay 3. La condición que se tiene que cumplir para que el programa siga aceptanto caracteres es que el caracter ingresado sea distinto de '.', entonces eso mismo se especifica en la condición del WHILE. char letra; int cant_mayusc = 0; letra = getche(); while (letra!= '.') if (letra >= 'A' && letra <= 'Z') cant_mayusc++; letra = getche(); printf("cantidad de mayusculas: %d\n", cant_mayusc); De a poco, en estos ejercicios se van incorporando todas las distintas estructuras vistas hasta ahora. Figuras El tema de las figuras no es uno sencillo, pero como todo, es cuestión de agarrarle la mano. Vamos a empezar por una simple: **** **** **** ****
8 Acá lo que tenemos es un cuadrado de 4 x 4. Entonces: tenemos que dibujar 4 filas por cada fila, 4 asteriscos O sea, esto se puede plantear con dos ciclos for, uno dentro del otro: el primero va a controlar la cantidad de filas que tenemos que dibujar el segundo (interno) va a controlar la cantidad de asteriscos a dibujar Algo a tener en cuenta. Una vez que se termina de dibujar la fila, tenemos que "dibujar" un \n, para poder pasar al renglón siguiente. Si no lo ponemos, todas las filas se van a dibujar en el mismo renglón. El programa quedaría así: int base, altura; printf("ingrese la base: "); scanf("%d", &base); printf("ingrese la altura: "); scanf("%d", &altura); int i, j; // la altura nos indica la cantidad de líneas for (i = 0; i < altura; i++) // la base nos indica la cantidad de asteriscos por línea for (j = 0; j < base; j++) printf("*"); printf("\n"); Esta es la figura más simple que uno puede llegar a dibujar: la cantidad de asteriscos por fila es siempre la misma y no hay que agregar espacios en blanco en ningún lado. Compliquemos un poco la cosa: ahora vamos a dibujar un triángulo rectángulo. Se tendría que ver así: **** *** ** * Acá la cantidad de asteriscos por fila se va incrementando, uno más por cada fila que dibujamos.
9 Conociendo la base del triángulo (el dato se ingresa por teclado), podemos saber cuántas filas vamos a tener que dibujar, por lo que se puede usar un ciclo for que vaya desde 0 hasta la cantidad de filas. Ahora analicemos cómo dibujar cada fila. Usamos un for para dibujar la cantidad de asteriscos necesarios por fila. El intervalo del for va a ir de 0 a cantpint (variable que define la cantidad de asteriscos a dibujar por fila). Se puede ver en el dibujo que en la primera fila dibujamos 4 asteriscos, en la segunda 3, en la tercera 2, y así sucesivamente hasta dibujar todas las filas. Es decir, por cada fila, se va dibujando un asterisco menos. Entonces, lo que tenemos que hacer es decrementar cantpint cada vez que terminamos de dibujar una fila. El código quedaría así: int base; printf("ingrese la base: "); scanf("%d", &base); int f, c; int cantpint = base; for (f = 0; f < base; f++) for (c = 0; c < cantpint; c++) printf("*"); printf("\n"); cantpint ; Un for externo para dibujar las filas, y, por cada fila un for interno para dibujar los asteriscos de la fila. Planteemos ahora una figura con espacios en blanco. Algo así, por ejemplo: **** 0 espacios 4 asteriscos *** 1 espacio 3 asteriscos ** 2 espacios 2 asteriscos * 3 espacios 1 asterisco Es un triángulo rectángulo como el anterior, pero sobre el margen derecho. Acá el problema es que no podemos hacer que los asteriscos se dibujen a partir de tal lugar automáticamente. Para hacer que un asterisco se dibuje en la segunda columna, hay que
10 rellenar la primera columna con un espacio. Para que se dibuje en la tercera columna, hay que rellenar la primera y la segunda con espacios, y así sucesivamente. Entonces, volviendo al problema, hay que analizar cómo se dibuja cada fila: 1º fila: 0 espacios - 4 asteriscos 2º fila: 1 espacio - 3 asteriscos 3º fila: 2 espacios - 2 asteriscos 4º fila: 3 espacios - 1 asteriscos Esto significa que, además de tener un for para dibujar los asteriscos, vamos a tener otro para dibujar los espacios. La estrategia sería: plantear un for externo para ir dibujando cada fila, por cada fila dos for internos: el primero para dibujar los espacios y el segundo para dibujar los asteriscos. En cuanto a los espacios, por cada fila se va incrementando en 1 la cantidad de espacios a dibujar (empezando de 0). En cuanto a los asteriscos, por cada fila se va decrementado en 1 la cantidad de asteriscos a dibujar (empezando de 4, que sería el dato de base del triángulo). En resumen, el código quedaría así: int base; printf("ingrese la base: "); scanf("%d", &base); int f, c; int cantblancos = 0; int cantpint = base; for (f = 0; f < base; f++) for (c = 0; c < cantblancos; c++) printf(" "); for (c = 0; c < cantpint; c++) printf("*"); printf("\n"); cantblancos++; cantpint ; La variable f es el iterador del ciclo for externo. Controla cada fila que se dibuja.
11 La variable c es el iterador de cada ciclo for interno. Sirve para dibujar cada espacio o asterisco respectivamente. Por qué cantblancos está inicializada en 0? Porque en la primera fila que hay que dibujar, no hay ningún espacio. Por qué cantpint está inicializada en base? Porque la primera fila dibuja una cantidad de asteriscos igual a la base del triángulo. Hasta ahora, los dibujos los planteamos usando contadores y buscando "reglas" que definen cómo se incrementan o decrementan esos contadores. Después, era sólo cuestión de imprimir espacios y asteriscos. Hay otra manera de dibujar: planteando regiones. Básicamente, se define una región en base a cierta condición: si el par fila:columna (f:c) cumple la condición se dibuja un *, si no, un espacio. El quid de la cuestión está en encontrar esa condición. Por ejemplo, volviendo al primer triángulo rectángulo: **** *** ** * Imaginándonos que el triángulo está dentro de una tabla con filas y columnas, si planteamos f + c, nos quedaría algo así: f + c Lo que a nosotros nos interesa dibujar es lo que está pintado. Entonces, lo que hay que hacer ahora es encontrar una relación que "defina" de alguna manera a todas esas celdas pintadas. Analizando un poco se puede ver que sólo están pintadas las celdas donde la suma de fila y columna f + c es menor a la base del triángulo. Es decir, que para todos los pares (f:c) que cumplan la condición f + c < base, tendríamos que dibujar un *, para los que no, un espacio. A partir de esto, ya se podría plantear el código.
12 int base; printf("ingrese la base: "); scanf("%d", &base); int f, c; for (f = 0; f < base; f++) for (c = 0; c < base; c++) if (f + c < base) printf("*"); else printf(" "); printf("\n"); El for externo sirve para recorrer todas las filas. El for interno nos sirve para recorrer, por cada fila, todas las columnas. Haciendo que ambos ciclos varíen entre 0 y base, logramos recorrer la tabla completa. Ahora lo único que nos queda es decidir en qué celda dibujamos un espacio y en cuál un asterisco. Usando un if podemos plantear la condición que habíamos encontrado. Si se cumple, se dibuja un *, si no, un espacio. Este método de dibujo tiene su pro y su contra. Pro: los límites de los ciclos son siempre los mismos, por lo que no hace falta estar pensando en incrementar o decrementar contadores. Contra: a veces resulta difícil identificar la condición que define a la región que queremos dibujar. Ahora con el otro triángulo: **** *** ** * Si planteamos f + c, nos quedaría algo así:
13 f + c Se puede ver que la suma no nos sirve, porque tenemos iguales valores a veces pintados y a veces no. Planteemos entonces, f c: f - c Acá sí podemos obtener una condición que cumplan sólo las celdas que nos interesan: f c <= 0, o poniéndolo de otra manera, f <= c. Definido esto, ya podemos armar el programa: int base; printf("ingrese la base: "); scanf("%d", &base); int f, c; for (f = 0; f < base; f++) for (c = 0; c < base; c++) if (f <= c) printf("*"); else printf(" "); printf("\n");
14 Hasta acá, figuras relativamente simples, en el sentido de que se pueden dibujar de una sola pasada, ya que las relaciones entre espacios y asteriscos se mantienen en toda la figura, desde la primera fila hasta la última. Hay otras en la que esto no ocurre, por lo cual para dibujarlas es necesario dividirlas en subfiguras más pequeñas, donde las relaciones sean simples. Un ejemplo de figura un poco más compleja, sería un reloj de arena, de base impar, dibujado de la siguiente manera: ***** *** * *** ***** En esta figura, hasta llegar a la mitad, la cantidad de asteriscos va disminuyendo mientras que la de espacios va aumentando. Después de la mitad, la cosa se invierte. Entonces, en lugar de complicar el tema, es mejor dividir el problema en dos subfiguras, que seguramente van a ser más fáciles de resolver. En este caso, podemos plantear el dibujo del triángulo de arriba y a continuación el dibujo del triángulo de abajo. Sólo quedaría resolver un detalle: la fila de la mitad, en qué triángulo la incluímos? Por una cuestión de manejo de contadores, en este caso conviene dibujarla con el triángulo de abajo. Pero, se puede resolver tanto de una manera como de otra. Analizando, Primera mitad: la cantidad de asteriscos comienza con un número igual a la base, decrementándose en 2 por cada fila dibujada no hay espacios en la primera fila, incrementándose después en 1 con cada fila dibujada la cantidad de filas a dibujar es igual a dividir la base sobre 2 Segunda mitad: la cantidad de asteriscos comienza en uno, incrementándose en 2 por cada fila dibujada la cantidad de espacios comienza en un valor igual a dividir la base sobre 2, y se decrementa de a 1 por cada fila dibujada la cantidad de filas a dibujar es igual a dividir la base sobre 2 y sumarle 1 A partir este análisis de las partes de la figura podemos empezar a codificar la solución como sigue a continuación:
15 int base; // validamos el ingreso de una base impar do printf("ingrese la base (impar): "); scanf("%d", &base); while (base % 2 == 0); int c, f; int cantblancos, cantpint; // inicializamos los contadores cantblancos = 0; cantpint = base; // dibujamos el triángulo de arriba for (f = 0; f < base / 2; f++) for (c = 0; c < cantblancos; c++) printf(" "); cantblancos++; for (c = 0; c < cantpint; c++) printf("*"); cantpint = cantpint 2; printf("\n"); // dibujamos el triángulo de abajo for (f = 0; f < (base / 2) + 1; f++) for (c = 0; c < cantblancos; c++) printf(" "); cantblancos ; for (c = 0; c < cantpint; c++) printf("*"); cantpint = cantpint + 2; printf("\n");
16 Lo primero que hacemos es pedir el ingreso de una base impar, cosa que se repetirá mientras el número ingresado sea par. Luego definimos e inicializamos los contadores. Y por último, el dibujo propiamente dicho, con un for para el triángulo de arriba y otro for para el triángulo de abajo. Tanto los valores iniciales de los contadores como los intervalos de repetición de todos los ciclos for están basados en el análisis previo de la figura. Algo a tener en cuenta: al dividir la figura en dos partes, logramos que la resolución se simplificase. Por qué? Porque logramos expresar una figura compleja, como dos figuras más simples de analizar y dibujar. Plateemos la solución utilizando regiones. Analicemos la región superior, planteando f c y f + c f c <= 0 f + c < base Intersección de ambas condiciones De la misma manera, analizamos la región inferior, planteando f c y f + c f c >= 0 f + c >= base - 1 Intersección de ambas condiciones Si sumamos las dos intersecciones, obtenemos la figura que queremos dibujar. En otras palabras, si una celda cumple la condición de la primera intersección o de la segunda, la tenemos que pintar, si no, hay que dejarla en blanco. Una vez establecido esto, podemos pasar al código.
17 int base; do printf("ingrese la base (impar): "); scanf("%d", &base); while (base % 2 == 0); int f, c; for (f = 0; f < base; f++) for (c = 0; c < base; c++) if (((f <= c) && (f + c < base)) ((f + c >= base 1) && (f >= c))) printf("*"); else printf(" "); printf("\n"); En este caso el código es muchísimo más corto, pero tal vez un poco más difícil de plantear en cuando a las condiciones de dibujo. Uno en general termina eligiendo el método con el cual se siente más cómodo, sea uno u otro.
Arreglos. Donde en cada posición del array se puede guardar un elemento. tipo_dato nombre_array[cant_elem];
Arreglos Los arreglos o arrays son colecciones de datos del mismo tipo. De esta manera, podemos encontrar arrays de números enteros, arrays de números double, arrays de caracteres. Tradicionalmente, la
5. ESTRUCTURAS DE REPETICIÓN
5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque
Algoritmo, Estructuras y Programación I Ing. Marglorie Colina
Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona
Estructuras de Repetición
1 Estructuras de Repetición 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Objetivos Aprender a construir grandes y complejos problemas a través de la ejecución
Tipos de Datos de python (2ª parte):
Tipos de Datos de python (2ª parte): Enteriormente hemos visto algunos de los tipos de datos que maneja python. Vimos: int, float, chr, str, bool También vimos como convertir datos a cada uno de estos
Tema 3. Estructuras de control
Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)
LABORATORIO 5 FUNCIONES
LABORATORIO 5 FUNCIONES 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Utilizar en la función main funciones matemáticas predefinidas. Entender que es posible aislar subtareas o subcálculos dentro
Sentencias iterativas
Sentencias iterativas 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Utilizar adecuadamente la sentencia while para generar la repetición en la ejecución de grupos de sentencias 2. Motivación
SESIÓN DE EJERCICIOS E1
SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a) #define N=25; b) #define N 25 c) int N=25; d) int N 25 Ejercicio 2 La expresión
Dobles: Es el caso de la instrucción if-else (punto 1.2).
1 1.Introducción Las estructuras de control son instrucciones que nos permiten controlar el flujo de ejecución del programa. Las instrucciones de control se pueden agrupar en instrucciones condicionales
Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas ([email protected]) Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS 1 OBJETIVOS Conocer las
Estructuras de Repetición: Repita Mientras.
Estructuras de Repetición: Repita Mientras. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 Programación
Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.
ESTRUCTURAS ITERATIVAS 1 ESTRUCTURAS ITERATIVAS OBJETIVOS Aprender a resolver problemas mediante la ejecución repetida de una secuencia de proposiciones llamados bucle o estructuras repetitivas o iterativas.
Reales. Caracteres. Cadenas de Caracteres (String)
Conceptos preliminares para la programación Algoritmo: Conjunto de pasos lógicos, secuenciales y finitos para dar solución a un problema general. Dato: Es una característica de un objeto o entidad, que
Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Estructuras de control: Las variables: Fuertemente tipado: Tipado dinámico: Variables booleanas: Qué son las estructuras de control?
Estructuras de control: Qué son las estructuras de control? Las estructuras de control nos permiten modificar el flujo del programa. Piensa en el programa como una piedra que baja por un tubo, entra por
Operadores aritméticos
Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado
EJERCICIOS RESUELTOS: DIAGRAMAS DE FLUJO DOCENTE: ING. ALEXIS MASSÓN. Programación I - UTN-FRC Ing. Alexis Massón Ejercicios resueltos
EJERCICIOS RESUELTOS: DIAGRAMAS DE FLUJO DOCENTE: ING. ALEXIS MASSÓN [email protected] Página 1 INTRODUCCIÓN El presente documento pretende ser una guía práctica para la comprensión y
Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE
Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE 1. Qué es un bucle? 2. A que se denomina cuerpo de un bucle? 3. Define iteración de un bucle. 4. Cuál es el cuerpo de un bucle? 5. Qué es
GENERALIDADES DEL LENGUAJE C
GENERALIDADES DEL LENGUAJE C La cadena con formato debe ir encerrada entre comillas dobles, no simples. El carácter de retorno de carro (\n) es obligatorio si se desea finalizar la impresión con un salto
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Ejercicios de Programación
Ejercicios de Programación ESTRUCTURAS DE CONTROL Ejercicios resueltos: If 1 Leer dos valores numéricos enteros y almacenarlos en dos variables de nombre `x' y `z', mostrando en aquellos casos en los que
Conceptos. Generales ALGORITMOS
Conceptos 1 Generales ALGORITMOS Que es un Algoritmo? 2 Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio
Estructuras Repetitivas
Estructuras Repetitivas Se solicita al operador que ingrese tres números enteros cualesquiera. En base a estos números, mostrar por pantalla cual es el mayor de todos. Diag. De Flujos Pseudocódigo Matlab
Programación: Estructuras de Control
Programación: 2 Estructuras de Control Contenido 2.1.- Introducción 2.2.- Estructuras de Selección 2.2.1.- Sentencia if 2.2.2.- Sentencia switch 2.3.- Estructuras de Iteración 2.3.1.- Sentencia while 2.3.2.-
ESTRUCTURAS REPETITIVAS EN PHP
ESTRUCTURAS REPETITIVAS EN PHP Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición. Sentencia while
TEMA 5. PROGRAMACIÓN BÁSICA EN MATLAB /OCTAVE
BLOQUE TEMÁTICO II TEMA 5 TEMA 5. PROGRAMACIÓN BÁSICA EN MATLAB /OCTAVE 5.1. Introducción a Matlab y Octave 5.2. Entrada y salida con formato 5.3. Programas: script y funciones 5.4. Estructuras alternativas
Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.
Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras
Estructura repetitiva while
Estructura repetitiva while Hasta ahora hemos empleado estructuras SECUENCIALES y CONDICIONALES. Existe otro tipo de estructuras tan importantes como las anteriores que son las estructuras REPETITIVAS.
Tema: Estructuras de Repetición en C# [For].
Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada Tema: Estructuras de Repetición en C# [For]. Objetivos Utilizar las estructuras de repetición para ejecutar
Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7
Estructuras selectivas Programación I Ingeniería Técnica Informática Ejercicios de los Temas 4, 5, 6 y 7 24.- Elabore un programa para determinar si una hora leída en la forma horas, minutos y segundos
Lógica de programación
Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta Sentencias Repetitivas
ESTRUCTURAS DE CONTROL REPETITIVAS
ESTRUCTURAS DE CONTROL REPETITIVAS Lenguajes de Programación III Estructuras de repetición.- Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de sentencias se repiten
Lógica de programación
Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta La característica fundamental
GENERALIDADES DEL LENGUAJE C. Nota: Los ejemplos y ejercicios especifican el tipo de archivo a enviar a
GENERALIDADES DEL LENGUAJE C Nota: Los ejemplos y ejercicios especifican el tipo de archivo a enviar a [email protected] La cadena con formato debe ir encerrada entre comillas dobles, no
La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.
Pseudocódigo Introducción La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que estos se puedan utilizar como resolución de problemas similares en muchos casos,
Sentencias de control de flujo
Bucles Sentencias de control de flujo Departamento de Electrónica Fundación San Valero Bucles Hasta ahora los programas que hemos visto eran lineales. Comenzaban por la primera instrucción y acababan por
Formato para prácticas de laboratorio
CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5032 Programación Estructurada PRÁCTICA No. 4 LABORATORIO DE NOMBRE DE LA PRÁCTICA Ingeniero en Computación DURACIÓN (HORA) Ciclos
Autor: Ing. Nahuel González INTRODUCCIÓN A C. Clase 1
INTRODUCCIÓN A C Clase 1 Introducción al lenguaje C 1967 1970 1971 1972 1989 BCPL Lenguaje B Pascal 1era versión de C ANSI C Introducción al lenguaje C Librería estandar de C: contiene módulos o funciones
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
Tema: Estructuras de Repetición en C# [For].
Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada Objetivos Tema: Estructuras de Repetición en C# [For]. Utilizar las estructuras de repetición para ejecutar
GUIA DE EJERCICIOS N 1 LENGUAJE C# Página 1 de 5. Instructor: Ing. Néstor Raúl Suarez Perpiñan
Página 1 de 5 GUIA DE EJERCICIOS N 1 LENGUAJE C# Realizar para cada ejercicio un programa tipo consola en lenguaje C# que satisfaga con los requerimientos propuestos: PARTE I. EJERCICIOS BASICOS 1. Programa
Sentencias de salto: break, continue, goto Sentencia de Salto: break
1.9.4. Sentencias de salto: break, continue, goto 1.9.4.1.- Sentencia de Salto: break La sentencia break se utiliza para terminar la ejecución de bucles o salir de una sentencia switch. Se puede utilizar
WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)
Bucles en lenguaje C Bucle while y forzar detención con break APRENDERAPROGRAMARCOM WHILE Y DO WHILE BREAK EN LENGUAJE C BUCLES MIENTRAS FORZAR SALIDA O TERMINACIÓN EJEMPLO (CU00534F) Sección: Cursos Categoría:
Conocimientos previos
Tema: Estructuras de control de ciclos repetitivos Ficha de aprendizaje 15 n Logro Utiliza estructuras de control de ciclos repetitivos For Next y Loop while @ # Conocimientos previos Qué conjunto de sentencias
Capítulo 4. Estructuras Iterativas
Capítulo 4. Universidad del País Vasco / Euskal Herriko Unibertsitatea 95 Índice del capítulo 1. Introducción........................................ 97 2. Objetivos...........................................
Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com
Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -. Introducción. Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.- El presente documento busca ser una referencia para
Estructura repetitiva do while
Estructura repetitiva do while La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.
Tema 3. Estructuras de Datos
Tema 3! Estructuras de Datos Estructuras Simples, Doble, Anidada y Múltiple En este tema veremos las sentencias selectivas: IF (Si) IF - Then (Si - Entonces) IF - Then - Else ( Si - Entonces - Sino) Switch
Repetición Condicional
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
SESIÓN DE EJERCICIOS E1
SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test (soluciones al final) A resolver antes de comenzar la sesión en el aula Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a)
EJERCICIOS PARA EMPEZAR CON PHP
EJERCICIOS PARA EMPEZAR CON PHP EJERCICIO 1: MOSTRAR VALORES Cargar en dos variables tu nombre, tu apellido y tu edad e insertarlos en la frase Mi nombre es y tengo años EJERCICIO 2: CALCULAR UN PORCENTAJE
Estructuras de Repetición (Repita para)
Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar
Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
suma de los n>0 primeros números que se lean del teclado. El número n es un dato y es
EJERCICIOS.. 1. Escribe un algoritmo que usando un bucle for infinito, y una sentencia break calcule la suma de los n>0 primeros números que se lean del teclado. El número n es un dato y es el primero
Tema: Estructuras de Repetición en C#.
Programación I, Guía 5 1 Tema: Estructuras de Repetición en C#. Objetivos Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Utilizar las estructuras de repetición para
Tema: Estructuras de Repetición en C#.
Programación I, Guía 4 1 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Tema: Estructuras de Repetición en C#. Objetivos Utilizar las estructuras de repetición para
Capítulo 4. Estructuras de control. Profra. Catalina Trevilla Román Profr. Armando Valera Paulino
Capítulo 4 Estructuras de control Estructuras de Control 2 CONTENIDO INTRODUCCIÓN... 3 4.1 ESTRUCTURA SECUENCIAL... 3 4.2 ESTRUCTURA CONDICIONAL... 5 4.2.1 SELECCIÓN SIMPLE (if)... 7 4.2.2 SELECCIÓN DOBLE
Universidad Tecnológico Ecotec. Fundamento de programación. Deber
Universidad Tecnológico Ecotec Fundamento de programación Deber Nombre: Jesús Gabriel Burga Gaybor EJERCICIO 1 // OBJETIVO: REALIZAR LA CODIFICACION DE UN PROGRAMA QUE LEA N NUMEROS // E IMPRIMA EL PORCENTAJE
TEMA 4: Estructuras de Control
TEMA 4: Estructuras de Control Fundamentos de Informática (Grados en Ingenierías Industriales) Índice de contenidos 1. Estructuras de Selección (Condicionales) 1.1. Sentencias if, if-, if- múltiple 1.2.
PYTHON. Programación estructurada
PYTHON Programación estructurada Estructuras selectivas Hasta ahora los programas que hemos hecho siguen todos una secuencia fija de operaciones: muestran datos por pantalla y/o piden datos al usuario,
Control de Flujo II. Estructuras Repetitivas
Control de Flujo II. Estructuras Repetitivas Fundamentos de programación Plan general... Introducción... Control de flujo toma de decisiones... Estructuras condicionales. Resumen. OBJETIVOS Presentar unos
Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa
Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,
Tema 06: Estructuras y sentencias de control en C
Tema 06: Estructuras y sentencias de control en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A.
Programación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
MÚLTIPLES Estructuras condicionales anidadas if(expresion1 o condición1){ Sentencias1 } else { if (expresion2){ Sentencias2
MÚLTIPLES Estructuras condicionales anidadas if(expresion1 o condición1){ Sentencias1 else { if (expresion2){ Sentencias2 else { if (expresion3){ Sentencia3 else{ Sentencia 4 SELECCIÓN MÚLTIPLE CON SENTENCIA
Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL
Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos
MICROSOFT WORD. Más opciones de edición de documentos
MICROSOFT WORD Más opciones de edición de documentos Listas de viñetas Son listas no numeradas de elementos. En Word 2003 están en el menú Formato > Numeración y viñetas En Word 2010 están en la ficha
FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO
FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO 3.2 Variables, tipos, expresiones y asignación 3.3 Estructuras de control condicional e iterativo. MODIFICADORES DE ALCANCE CONST Y STATIC
Tema 2: Elementos básicos de un programa. Tipos de datos, variables y constantes Asignación Operadores y expresiones
Tema 2: Elementos básicos de un programa Tipos de datos, variables y constantes Asignación Operadores y expresiones Ejemplo de programa Dados dos números, leídos desde el teclado, visualizar el mayor #include
Principal material bibliográfico utilizado
Vectores y Punteros Principal material bibliográfico utilizado www.jorgesanchez.net Fundamentos de Programación C/C++ - Ernesto Peñaloza Romero. Lenguaje C Adolfo Beltramo, Nélida Matas. En C el primer
Estructura de Datos ARREGLOS
Estructura de Datos ARREGLOS ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen
Método Egipcio Mejorado
Especialidad La enseñanza de las matemáticas en secundaria Grupo B: Celaya Método Egipcio Mejorado Uno de los algoritmos que aprendimos para multiplicar lo conocemos como Método Egipcio. Para poder usarlo
Práctico 2: Funciones y Punteros en C La teoría general para este práctico puede consultarse en los Capítulos 4 y 5 Notas de Clase
Práctico 2: Funciones y Punteros en C La teoría general para este práctico puede consultarse en los Capítulos 4 y 5 Notas de Clase 1. Ejecute el siguiente programa y diga que hace la función calcula: #include
Programación Estructurada. Sesión 2:El lenguaje de programación C
Programación Estructurada Sesión 2:El lenguaje de programación C Contextualización Una parte importante del lenguaje C son las palabras reservadas, son identificadores con un significado predefinido. Estas
Práctica Guiada: Vectores y Matrices
Práctica Guiada: Vectores y Matrices 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Escribir la declaración de vectores y matrices de tipos básicos. 2. Escribir el código necesario para recorrer
INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION
INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION DIIAGRAMAS DE FLUJO Un diagrama de flujo es un dibujo que utiliza símbolos estándar de diagramación de algoritmos para
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 4 Nombre: Estructuras de control Contextualización En la actualidad los programas buscan un objetivo común, que es: Automatizar tareas de
Sentencias DO-WHILE EN C++
Sentencias DO-WHILE EN C++ La estructura do-while se utiliza para ejecutar varias veces un bloque de instrucciones mientras una determinada condición sea falsa, si es verdadera en automático el programa
Lección 5: Ecuaciones con números naturales
GUÍA DE MATEMÁTICAS I Lección 5: Ecuaciones con números naturales Observe la siguiente tabla y diga cuáles son los números que faltan. 1 2 3 4 5 6 7 8 9 10 11 12 3 6 9 12 Es sencillo encontrar la regla
1110111-1001 1110 +0110 10100 + 1 101011-1001 01011 + 0110 10001 + 1 100101-1001 001011-1001 001011 + 0110 010001 + 1 010010 Resultado 1101 110110 54-1100 -12 101010 42 Con complemento 001100 12-110110
ARREGLOS INTRODUCCIÓN
ARREGLOS INTRODUCCIÓN En este capitulo vamos a introducirnos en el importante tema del manejo de las estructuras de datos. Frecuentemente como diseñadores de software se van a encontrar ante el problema
Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.
Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Sentencias de Control repetitivas (o bucles) Al igual que las estructuras selectivas, el bucle
Sumar o restar porcentajes en Excel
Licenciatura en Gestión Universitaria Informática II Práctica Pag. 1 Sumar o restar porcentajes en Excel Los porcentajes representan una cantidad dada como una fracción de cien y son ampliamente utilizados
ASIGNATURA PROGRAMACIÓN EN C++ GUÍA: 1 DOCENTE. LIZETH CORTÉS VARIABLES C++
ASIGNATURA PROGRAMACIÓN EN C++ GUÍA: 1 DOCENTE. LIZETH CORTÉS VARIABLES C++ Identificadores son conjuntos de letras y/o números que se utilizan para simbolizar todos los elementos que en un programa, son
