LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

Documentos relacionados
Sentencias iterativas

Dobles: Es el caso de la instrucción if-else (punto 1.2).

LABORATORIO 5 FUNCIONES

WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)

Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE

Tema 3. Estructuras de control

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Operadores aritméticos

SESIÓN DE EJERCICIOS E1

Boletín de ejercicios de la asignatura de INFORMÁTICA para la realización de las prácticas de laboratorio. Ejercicios de Estructuras de Control

Ejercicios de Programación

Fundamentos de programación

EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F)

Estructuras de Repetición: Repita Mientras.

TEMA 4. ESTRUCTURAS DE CONTROL

Estructuras de Repetición (Hacer-Mientras)

TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES.

Sentencias de Procesamiento Iterativo: while y do-while

Formatos para prácticas de laboratorio

Capítulo 4. Estructuras Iterativas

Estructuras de Decisión Simples y Dobles

Programación en Lenguaje C

Fundamentos de Informática 6. Estructuras de control (y sus algoritmos)

Capítulo 3. Sentencias condicionales

Si un número es múltiplo de otro, u dicho de forma, comprobar si un número es divisor de otro.

SESIÓN DE EJERCICIOS E1

CONDICIONALES SWITCH CASE DEFAULT BREAK EN C. ELEGIR ENTRE VARIAS OPCIONES. EJEMPLO. (CU00532F)

for(i = 0; i <= 45; i+=5) { x = (i*3.1416)/180; printf( seno(%d) = %f\n,i,seno(x));

Reales. Caracteres. Cadenas de Caracteres (String)

Tema 3. Estructuras de Datos

= RETURN =3 7-. ELSE K

GUIÓN DE PRÁCTICAS 3: ESTRUCTURAS CONDICIONALES

Realizar el ejercicio anterior utilizando Punteros

Práctica de Fundamentos de Programación Curso

Estructuras de control

Programación. Test Autoevaluación Tema 4

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Formatos para prácticas de laboratorio

1000+(4/100)*1000 =1000 * (1+4/100) =1000 * 1.04 = Al finalizar el segundo año, el 4% se aplica sobre los 1040, y obtenemos:

Autor: Ing. Nahuel González INTRODUCCIÓN A C. Clase 1

Lenguaje de programación C. Introducción

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

ESTRUCTURAS DE CONTROL

Sentencias de control de flujo

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

PYTHON. Programación estructurada

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

INSTRUCCIÓN GOTO EN C. ETIQUETAS O LABELS. POR QUÉ NO DEBE USARSE (HARMFUL). EJEMPLOS (CU00546F)

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

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

TEMA 4: Programación estructurada

Estructuras de Repetición

ALGORITMO: LENGUAJE C++: # include <iostream.h> # include <math.h> int main () Int num 1=0, num =0, d=0; Cout << ingrese primer numero: ;

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

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

8. Vectores (arrays)

INTRODUCCIÓN A LA PROGRAMACIÓN. 1º Bachillerato

PROGRAMACIÓN PRÁCTICA AUTOR: JUAN LUIS ARELLANO ESCAMILLA

Tema 07: Programación estructurada en C

Cuales son los tipos de instrucciones que se utilizan en la programación?

6. Visualizar error, ingrese un numero que no sea cero

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

Capítulo 12 INSTRUCCIONES DE CONTROL ALTERNATIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Estructuras de Control

Estructuración del programa en partes más pequeñas y sencillas

FINALIZAR PROGRAMAS EN C CON EXIT. CAMBIAR FLUJO EN BUCLES BREAK Y CONTINUE. EJEMPLOS (CU00544F)

Estructuras de Decisión Simples y Dobles. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Sintaxis de los aspectos generales de un lenguaje de programación

Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Área de Programación

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación

GUÍA DE LABORATORIO #3 ESTRUCTURAS ALGORÍTMICAS CONDICIONALES SIMPLES, DOBLES Y MÚLTIPLES

Sentencias DO-WHILE EN C++

Formato para prácticas de laboratorio

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C

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

PROGRAMAS PARA LA CLASSPAD MANAGER.

Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (mientras)

Al igual que las instrucciones alternativas, las instrucciones repetitivas también se pueden anidar, permitiendo las siguientes combinaciones de

Introducción a la Programación

Estructuras de Repetición (Repita para)

1. Qué se muestra en pantalla si se ejecutan las siguientes sentencias (suponiendo que el resto del programa que no se presenta es correcto)?

Transcripción:

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Entender el funcionamiento de las estructuras iterativas en general; la(s) condición(es) para finalizar, que ha de ejecutarse en cada vuelta, la(s) actualizacion(es) de las variables para que en alguna de las iteraciones se produzca la salida de la estructura iterativa, etc. Entender la diferencia existente entre utilizar un while o un do-while. 2 MOTIVACIÓN La iteración es una estructura básica de casi todos los lenguajes de programación. Nos permite resolver programas complejos a través de la repetición de acciones más sencillas. El while en C while (condición) Conjunto de instrucciones que han de repetirse Mientras la condición sea cierta ejecutar una y otra vez las instrucciones que aparecen entre llaves El Do-while en C. do Conjunto de instrucciones que han de repetirse while (condición); Ejecutar una vez la instrucciones que aparecen entre llaves y luego Mientras la condición sea cierta ejecutarlas una y otra vez. 3 EJERCICIO EJEMPLO (lo encontraremos en los apuntes también) Programa que presenta en pantalla los primeros n números naturales. El programa deberá pedir al usuario que introduzca un número n tal que (n 1 y n<=10). El programa deberá imprimir los número desde 1 hasta n. Si el usuario introdujese un valor para n que no cumplise la condición entonces se le escribirá al usuario un mensaje diciéndole que el valor de n no es correcto y el programa acabará. 1

#include <stdio.h> #include <stdlib.h> void main() int n, num; printf("\nintroduce un número entre 1 y 10"); scanf("%d", &n); if ((n < 1) (n > 10)) printf("\nel número no es adecuado."); else num = 1; /* p.q. en la primera vuelta del while queremos imprimir el 1 */ while (num < n) printf("\n%d", num); num = num + 1; /* incrementamos el valor de num para que en la siguiente vuelta del while valga uno más */ /*final del while, es decir final de las acciones a repetir*/ /*el final del else*/ system( PAUSE ); 4 EJERCICIOS 4.1 Ejercicio 1 4.1.1 Objetivo: El objetivo del ejercicio 1 consiste en experimentar con soluciones de fuerza bruta. fuerza bruta en el sentido de que consiste en generar todas las posibilidades (es decir consiste en presuponer que todo numero < n es en principio un posible divisor). filtrando (o imprimiendo en este caso) las que nos resultan interesantes (es decir los que sean divisores). 4.1.2 Ayuda para el enunciado 1: Para descubrir cuales son los divisores de un número n generaremos de forma ciega todos los números desde el 1 a n (o n/2) y por cada número generado comprobaremos si es divisor del número que nos dan. Utilizar el ejemplo inicial para ir generando los números. La diferencia consistirá en que por cada número que se genere (en cada vuelta del while se generará 1), tendremos que decidir si es divisor o no. Para saber si un numero es divisor de otro utilizar la operación aritmética %, que nos calcula el resto de una división, si a%b==0, entonces podremos decir que b es divisor de a). 4.1.3 Enunciado 1 Pedir un número al usuario y determinar cuales son sus divisores. 2

Ejemplo de pantalla. 14: sus divisores son el 7, el 2 y el 1 4.2 Ejercicio 2 4.2.1 Objetivo: El objetivo del ejercicio 2 consiste en además de experimentar con soluciones de fuerza bruta, introducir el concepto de flag (bandera o chivato). fuerza bruta otra vez, porque generaremos todos los posibles divisores y en este caso marcando (a través de uso de un flag o chivato) las que nos resultan interesantes (en este caso los que sean divisores entre 2 y n-1). Existen varias versiones para solucionar este ejercicio, algunas pueden ser más eficientes que otras. 4.2.2 Ayuda para el enunciado 2: Para descubrir si un número es primo generaremos de forma ciega todos los números desde el 2 a n-1 y por cada número generado comprobaremos si es divisor del número que nos dan. Si en ese rango [2,n-1] algún número fuese divisor, entonces el número no sería primo. Utilizar el ejemplo anterior para ir generando los posibles divisores, pero en este caso partiendo del 2 como primer posible divisor. 4.2.3 Enunciado 2 Hacer un programa que permita que el usuario que introduzca un número que determine si es primo o no. Ejemplo de lo que debería aparecer en pantalla si el usuario introdujese un 13 o bien un 14. 13, el 13 es primo 14, el 14 no es primo (Recordemos que un número es primo cuando sólo es divisible por sí mismo y por la unidad). 4.3 Ejercicio 3 4.3.1 Objetivo: El objetivo del ejercicio 2 consiste ver cual es la opción más apropiada, si utilizar While o Do-while. 4.3.2 Ayuda para el enunciado 3: Recordar que para leer un carácter haremos fflush(stdin); scanf( %c,&variable); y recordar también que si queremos comprobar si el usuario ha introducido una s deberemos escribirla entre comillas simples s. La condición debería de parecerse a esto (variable == s ) 3

Utilizar el ejemplo anterior para descubrir cuando un número es primo. 4.3.3 Enunciado 3 Hacer un programa que permita que el usuario introduzca un número y el programa determine si el número es primo o no, y después le pregunte si quiere seguir introduciendo más números ( Quieres seguir introduciendo números?(s/n) ) de forma que se le vayan pidiendo números mientras el usuario responda afirmativamente (s). Ejemplo de lo que debería aparecer en pantalla si el usuario introdujese un 13 o bien un 14. Introduce un número:13 el 13 es primo Quieres seguir introduciendo más números?(s/n): s Introduce un número:14 el 14 no es primo Quieres seguir introduciendo más números?(s/n): n (Recordemos que un número es primo cuando sólo es divisible por sí mismo y por la unidad). 4.4 Ejercicio 4 4.4.1 Objetivo: El objetivo del ejercicio 4 es aprender a desglosar un número en sus distintas cifras, para lo cual será muy importante fijarnos que el hacer la operación num/10 no modifica la variable num, (por ejemplo a=num/10, aquí num no queda modificado) a no ser que explícitamente así lo decidamos (comparar a=num/10 con num=num/10). Lo dicho, la estrategia en este caso será desglosar un número en sus distintas cifras ( a través de la iteración). Pasos: Ir consiguiendo las cifras que forman el número para poder al mismo tiempo construyendo el mismo número dado la vuelta. Así finalmente sabremos si el número inicial es capicúa comparando si el número inicial y el mismo número dado la vuelta SON IGUALES. 1221 dado la vuelta es 1221 como son iguales es capicúa 1321 dado la vuelta es 1231 como no son iguales no son capicúa 4.4.2 Ayuda para el enunciado 4: Para dar la vuelta al número 1321 10 1 132 10 2 13 10 3 1 10 1 0 4

el número dado la vuelta se forma cogiendo los restos y acumulándolos y es 1231 4.4.3 Enunciado 4 Pedir un número al usuario y determinar si es capicúa. Ejemplo de lo que debería aparecer por pantalla si el usuario introdujese 1221 o bien 1 o 1321 1221 es capicúa 1 es capicúa 1321 no es capicúa 4.5 Ejercicio 5 4.5.1 Objetivo: Ver que calcular el máximo de una secuencia se puede ir haciendo a medida que el usuario va introduciendo los números sin necesidad de almacenarlos todos aplazándolo hasta que todos los números hayan sido introducidos. 4.5.2 Ayuda para el enunciado 5: utilizaremos una variable que ira manteniendo el máximo que se vaya encontrando HASTA EL MOMENTO. Una variable que bien podríamos llamar max_hasta_el_momento. Por ejemplo: Numero introducido 5 max_hasta_el_momento 5 Numero introducido 7 max_hasta_el_momento 7 Numero introducido 10 max_hasta_el_momento 10 Numero introducido 2 max_hasta_el_momento 10 Numero introducido -4 max_hasta_el_momento 10 Numero introducido -15 max_hasta_el_momento 10 Numero introducido 15 max_hasta_el_momento 15 Numero introducido 8 max_hasta_el_momento 15 Numero introducido 9 max_hasta_el_momento 15 Numero introducido 0 max_hasta_el_momento 15 4.5.3 Enunciado 5 Hacer un programa que permita que el usuario vaya introduciendo números (cuando el usuario introduzca un 0 el programa acabará). Nuestro programa deberá sacar por pantalla el número máximo de entre los números introducidos por el usuario. Ejemplo. Si el usuario a metido 1 3 imprimir el 2000. 4-2 6 1000 2000, nuestro programa debería 5