Estructuras de repetición



Documentos relacionados
Tema 4: Estructuras de Control Estructura y Contenidos

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Estructuras de repetición hacer-mientras y repita hasta

Informática FACULTAD DE FÍSICAS

8.1 Un primer bucle FOR Varias formas de utilizar el bucle FOR Calcular el factorial de un número mediante un bucle FOR...

Curso 0 de Informática

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Informática I. While & do While

Estructuras de Repetición Repita Mientras

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

Tema: Arreglos de Objetos en C++.

Fundamentos de programación

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

Práctica 2: Simón dice

Capítulo 4 Procesos con estructuras de repetición

Prof. Dr. Paul Bustamante

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas

Funciones. Parámetros por valor

Fundamentos de Programción (I)

ZCARTAS: Iniciación a la suma y resta de números enteros Introducción Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

CI 2125, Computación I

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Ejemplos de conversión de reales a enteros

Examen escrito de Programación 1

Enunciado unidades fraccionarias fracción fracciones equivalentes comparar operaciones aritméticas fracciones propias Qué hacer deslizador vertical

PRÁCTICA 5. SENTENCIAS DE CONTROL REPETITIVAS.

Introducción al tipo de dato ARRAY

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO)

ETS Caminos Santander. Curso Ejercicios de introducción a la programación.

Tema: Sobrecarga de Operadores.

Práctica 1 El juego de los chinos

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

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

Titulo: Suma de N primeros números

LINUX - Los archivos de órdenes I

Problema - Votación. Entrada. Salida. Primera Olimpiada de Informática 1

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

Universidad Nacional del Santa F A C U L T A D D E I N G E N I E R I A E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0

Hoja de problemas Estructuras de Control

INSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++

TEMA 4 FRACCIONES MATEMÁTICAS 1º ESO

Operaciones con vectores

Para dudas, comentarios escribe a: C BASICO

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

PHP y MySQL. Indice: Switch Bucles For While do...while

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

Operaciones con vectores

col Type mismatch cadena vacía fila 1 z + i 4 1 fila 2

1. Juego del Ahorcado

MANUAL DE REFERENCIA DE C++

PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04)

Estructuras de Control en C

REGLA DE RUFFINI. FACTORIZACIÓN DE POLINOMIOS

Soporte lógico de computadoras

U.T. 6.- Lenguaje Javascript - DOM. Parte Práctica

NÚMEROS NATURALES Y NÚMEROS ENTEROS

Sistemas de numeración

Programa completo de resolución de ecuaciones de 2º grado

Capítulo 1. MANUAL DE USUARIO

Centro de Capacitación en Informática

Se introduce en la Ventana de Álgebra la expresión cuya primitiva queremos calcular. Con la expresión seleccionada

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>

PRACTICA 6. VECTORES Y MATRICES.

Programación 1 Tema 3. Información, datos, operaciones y expresiones

SOLUCIONES. Matemáticas 3 EDUCACIÓN SECUNDARIA , 4 2,3 + : a) Expresamos N = 2,3 en forma de fracción: 10 N = 23,333 N = 2, = + = =

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras.

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

CLASE # 5 TÉCNICAS DE CAJA BLANCA

Funciones vectoriales de variable vectorial. Son aplicaciones entre espacios eucĺıdeos, IR n, f : X IR n Y IR m

Unidad 1 números enteros 2º ESO

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Programación. Ejercicios Tema 5. Funciones

Ecuaciones de primer grado con dos incógnitas

3 Polinomios y fracciones algebráicas

Tema 7: Programación con Matlab

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios. Álgebra y Matemática Discreta Sesión de Prácticas 1

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES

Funciones: Pasos por Referencia Recursividad

Control de Inventarios SisMod

INTEGRALES DEFINIDAS Y CÁLCULOS DE ÁREAS

FICHERO DE AYUDA DEL PROGRAMA MEGAEURO

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

4º ESO MATEMÁTICAS Opción A 1ª EVALUACIÓN

Polinomios y fracciones algebraicas

Ecuación ordinaria de la circunferencia

LECCIÓN 4ª Operaciones Numéricas

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97

Entorno de trabajo y funciones matemáticas en Excel

Transcripción:

Estructuras de repetición Fundamentos de Programación Fundamentos de Programación I FP-PFI Curso 2005-2006 1 Estructuras iterativos Sentencia for for(inic; cond; increm) sentencia1; sentencia2; Sentencia while while( expresion logica) sentencia1; sentencia2; Sentencia do..while do sentencia1; sentencia2; while (expresión lógica); Recomendaciones de uso??? FP-PFI Curso 2005-2006 2 1

Ejercicio 1: Sumar n números enteros introducidos por teclado, siendo n un valor entero también introducido por teclado. Entradas: el número de enteros a sumar (n) y esos números (num) Salidas: el resultado de la suma (suma) Análisis: utilizaremos una estructura de repetición,...pero cuál?? FP-PFI Curso 2005-2006 3 //Programa que suma n numeros enteros //declaración de variables int n; int x; int suma; int i; cout << Introducir el valor de n: ; cin >> n; suma = 0; cout << Introducir << n << numeros enteros\n ; for (i=0 ;i < n; i++) cin >> x; suma = suma + x; //acumulo x en la suma cout << Resultado de la suma: << suma; FP-PFI Curso 2005-2006 4 2

Ejercicio 2: Sumar todos los números introducidos por teclado antes de introducir un 0. Entradas: Números que se quieren sumar... Salidas: El resultado de la suma Análisis: se van introduciendo números y cuando se introduce un 0 Se debe parar...que estructura de repetición nos conviene utilizar?? FP-PFI Curso 2005-2006 5 //Programa que suma numeros hasta introducir un 0=fin #include <iostream.h> //declaración de variables int x; int suma; bool fin; //Inicializar variables fin = false; suma = 0; cout << Introducir los numeros enteros a sumar (0 = fin)\n ; do cin >> x; if (x!= 0) suma = suma + x;//acumulo x en la suma else fin = true; while (fin!= true); cout << Resultado de la suma: << suma; FP-PFI Curso 2005-2006 6 3

Ejercicio 3: Encontrar el primer valor de n para el cual 2 n es mayor que 1000 Entradas: Ninguna Salidas: el valor de n que cumpla la condición anterior 2 n > 1000 Análisis: Qué estructura de repetición puedo utilizar? FP-PFI Curso 2005-2006 7 //Programa calcula el numero n tal que 2 n > 1000 //declaración de variables int n; //lo que hay que buscar int pot_2; //para calcular la potencia de dos //Valores iniciales para empezar a buscar n = 0; pot_2 = 1; while (pot_2 <= 1000) //Calculo la potencia pot_2 = pot_2 * 2; //siguiente potencia n = n + 1; cout << Resultado << n << endl; FP-PFI Curso 2005-2006 8 4

Ejercicio 4: Calcular cuantas vocales se han introducido por teclado antes de aparecer el carácter # Entradas: Una secuencia de caracteres terminados con el carácter # Salidas: El número de vocales que hay en la secuencia (total) Análisis: Se van leyendo caracteres y si es una vocal se incrementa un contador (cont), como sabemos si es una vocal??? FP-PFI Curso 2005-2006 9 //Programa que cuenta el numero de vocales en una secuencia de carácteres //declaración de variables char ch; int cont; //numero de vocales //lectura de datos cout << Introducir caracteres (# = fin) ; cont = 0; //todavia no hay vocales do cin >> ch; //leo carácter switch(ch) case a : case A : case e : case E : case i : case I : case o : case O : case u : case U : cont = cont + 1; break; while( ch!= # ); cout << Vocales introducidas: << cont << endl; FP-PFI Curso 2005-2006 10 5

Ejercicio 5: Escribir un programa que muestre los valores de la recta y = mx + b en el rango [r0..r1]. Los valores de los coeficientes m y b, así como el rango deben ser introducidos por teclado. Por pantalla deben aparecer una secuencia de líneas según el siguiente formato: Recta: y= 2x+1 Rango:[1..3] Valor de x = 1, Valor de y = 3 Valor de x = 2, Valor de y = 5 Valor de x = 3, Valor de y = 7 Entradas: coeficientes m y b, y el rango [r0..r1] Salidas: Los puntos (x,y) por los que pasa la recta en el rango [r0..r1] Análisis: Que operaciones se repiten y cuantas veces??? FP-PFI Curso 2005-2006 11 int m, b; //coeficientes de la ecuacion de la recta int r0,r1; //puntos extremos del intervalo int x, y; //para el bucle for cout << Introducir coeficientes de la recta: y=mx+b\n ; cin >> m >> b; cout << Recta: << y= << m << x + << b ; cout << \trango: [ << r0 << << r1 << ] ; //Calculo los puntos de la recta for (x = r0 ; x <= r1; x++) //Calculo valores de y para cada valor de x y = m * x + b; //Muestro resultado cout << Valor de x: << x <<, Valor de y: << y <<endl; FP-PFI Curso 2005-2006 12 6

Ejercicio 6: Escribir un programa que dibuje los puntos por los que pasa una circunferencia especificada por su radio. Asumimos que la circunferencia esta centrada en el origen de coordenadas. FP-PFI Curso 2005-2006 13 #include <stdlib.h> #include <math.h> //Declaración de variables float x, y; float R; //introduce el radio de la circuenferencia a dibuja cout << "Introduce el radio de la circunferencia\n"; cin >> R; //Calculo los distintos puntos por los que pasa for (x = -R ; x <= R; x++) y = sqrt( (R*R) - (x*x) ); //Muestro los puntos cout << "x =" << x << "->" << y << "," << -y << endl; system("pause"); FP-PFI Curso 2005-2006 14 7

Problema: División entera de dos números Entrada: Dos números, dividendo (dendo) y divisor (disor) Salida: Dos números, cociente (C) y resto (R) #include <stdlib.h> int dendo, disor; int cociente,resto; cout << " INTRODUCE DIVIDENDO DIVISOR\n"; cin >> dendo >> disor; cociente = 0; //resto = dendo; while ( dendo >= disor) cociente = cociente +1 ; dendo = dendo - disor; resto = dendo; cout << cociente << " " << resto<< endl; system ("PAUSE"); Qué pasa si disor==0? Modificar el algoritmo Para que tenga en cuenta Ese caso. FP-PFI Curso 2005-2006 15 Ejercicio 6: Escribir un programa para jugar al master mind. El jugador 1 introduce una combinación de cuatro números del 1 al 4, sin posibilidad de repetirlos. Posteriormente se borra la pantalla, y el jugador 2 debe introducir combinaciones hasta acertar la combinación original introducida por el jugador 1. Tras la introducción de cada combinación por el jugador 2, se debe mostrar el número de aciertos obtenidos (es decir, cuantas posiciones han sido acertadas). Al terminar el programa, se debe mostrar como resultado el número de intentos empleados en resolverlo Entradas: Combinaciones de 4 números del jugador 1 y n combinaciones del jugador 2 (hasta que acierte) Salidas: Número de aciertos en cada jugada y número de intentos al final. Análisis: El programa pedirá una combinación al jugador 2, comprobará cuantos numeros ha acertado de la combinacion del jugador 1. Si el numero de aciertos no es igual a 4, volverá a solicitar una nueva combinacion (se repite el proceso anterior) hasta que acierte. FP-PFI Curso 2005-2006 16 8

//Declaracion de variables int c1, c2, c3, c4; int n1, n2, n3, n4; int intentos, aciertos; bool terminar = false; cout << Jugador 1: Introduce 4 numeros de la combinacion (c1 c2 c3 c4)\n ; cin >> c1 >> c2 >> c3 >> c4; //limpio la pantalla system( CLS ); intentos = 0; do cout << Jugador 2: introduce jugada ( c1 c2 c3 c4)\n ; cin >> n1 >> n2 >> n3 >> n4; intentos = intentos + 1; aciertos = 0; if (c1 == n1) aciertos = aciertos + 1; if (c2 == n2) aciertos = aciertos + 1; if (c3 == n3) aciertos = aciertos + 1; if (c4 == n4) aciertos = aciertos + 1; //Compruebo si ya se termina el juego if (aciertos == 4) terminar = true; cout << Numero de aciertos: << aciertos << endl; while(terminar!=true); cout << Numero de intentos: << intentos; FP-PFI Curso 2005-2006 17 Ejercicio 7: Utilizando la serie de Taylor para e x, hacer un programa que calcule dicha función con una precisión dada por el número de términos que se suman FP-PFI Curso 2005-2006 18 9

#include <stdlib.h> #include <math.h> int x, n; float potencia, factorial, termino, res; int i; cout << "Este programa la potencia de e elevado a x\n"; cout << "Introduce el exponente\n"; cin >> x; cout << "Introduce el numero de terminos de la serie a calcular\n"; cin >> n; //Calculos a realizar res = 1; potencia = 1; factorial = 1; for (i = 1; i < n; i++) potencia = potencia * x; //potencia factorial = factorial * i; //factorial termino = potencia / factorial; res = res + termino; cout << "La aproximacion es: "<< res << " con numero de termino " << n<< endl; system("pause"); FP-PFI Curso 2005-2006 19 Ejercicio 8: Escribir un programa que genere y muestre x ( 1 < x < 6) números aleatorios no repetidos enteros entre 0 y 9 y calcule cual es el máximo, cual es el mínimo y cual es la media de los números. El valor de x se introducirá por teclado al iniciar la ejecución del programa. Entradas: La cantidad de números aleatorios que se van a generar (n) Salidas: máximo, mínimo y media de esos (n) números Análisis: Cómo se calcula un número aleatorio?? Ayuda: Existe una funcion rand() que devuelve un numero aleatorio en el intervalo [0, RAND_MAX] FP-PFI Curso 2005-2006 20 10

#include <stdlib.h> //Declaracion de variables int N, i, n_ale, xr; int maximo, minimo, suma; float media; cout << "Introduce la cantidad de numeros aleatorios a generar\n"; cin >> N; //inicializo el maximo y el minimo maximo = -1; minimo = 10; for (i=0; i < N; i++) xr = rand(); //Calculo el numero aleatorio n_ale = xr % 10; //Lo cambio de rango cout << n_ale << " "; //muestro el resultado if ( maximo < n_ale) //Compruebo si es el maximo maximo = n_ale; if (minimo > n_ale) //Compruebo si es el minimo minimo = n_ale; suma = suma + n_ale; media = suma / N; //Calculo la media cout << endl << minimo<< endl; cout << maximo << endl; cout << media << endl; FP-PFI Curso 2005-2006 21 #include <stdlib.h> //Declaracion de variables int a, b, cociente, resto; cout << "Este programa calcula la division entera entre dos numeros\n"; cout << "Introduce el dividendo y el divisor\n"; cin >> a >> b; cociente = 0; if ( b == 0) cout << " divisor igual a cero\n"; else while (a >= b) a = a - b; cociente = cociente + 1; resto = a; cout << a << "/" << b << '=' << cociente << " Resto = " << resto; system("pause"); FP-PFI Curso 2005-2006 22 11