Introducción a los Computadores ITTELSI. Curso

Documentos relacionados
Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación 1 Tema 5. Instrucciones simples y estructuradas

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Introducción a c++ Introducción a la programación EIS Informática III

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

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

Estructuras de control. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Programación: Estructuras de Control

Lección 3 Sentencias de control

TEMA 4: Programación estructurada

Informática PRÀCTICA 2 Curs

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

TEMA 4: Estructuras de Control

Introducción a C++ y Code::Blocks

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

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

ESTRUCTURAS DE CONTROL

Funciones. Parámetros por valor

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

VGOC"6<"Rtqitcocekôp"guvtwevwtcfc

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Trayecto II Desarrollo de Software

Estructuras de control selectivas

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

Tema 3. Estructuras de control

1.9. SENTENCIAS DE CONTROL DE PROGRAMA

Tipos de Datos de python (2ª parte):

Sentencias de control de flujo

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

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

Clase 2: Tipos de Datos y Condiciones. Profesora de Cátedra: Jocelyn Simmonds

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

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Programación 1 Problemas 3. Composición condicional

Programación Orientada Objetos. Estructuras de control if, If else, switch

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

Capítulo 4. Control de flujo. Continuar

Técnicas Informáticas PRÁCTICA 7 Curso PRÁCTICA 7: Cadenas y Estructuras.

Estructuras de Control 3

República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI. Introducción a lenguaje C++. Parte IV Ciclos iterativos

Introducción a C++ y Code::Blocks

PYTHON. Programación estructurada

Funciones I. Fundamentos de Programación Fundamentos de Programación I

Tema 3. Estructuras de control en C++

UE#04 PROBLEMAS DE ANÁLISIS DE CASOS CONTROL DE ALTERNATIVAS

Programación 1 Problemas del Composición condicional

Funciones: Pasos por Referencia Recursividad

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

Tema: Estructuras de Selección en C#.

Informática. ETSIGCT curso 2017/2018 Boletín 2 de prácticas J. Javier Ibáñez González

Tipos de datos y operadores en C++

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa

5. Sentencias selectivas o condicionales

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

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

Tema: Estructuras de Selección en C#.

Programación estructurada. Programación estructurada

Introducción rápida a la programación (estructurada ) con C++

Cristian Blanco

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa

Cadenas y Estructuras

Operadores aritméticos

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

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

Sentencias iterativas

Introducción a las sentencias de control

Fundamentos de la programación

ESTRUCTURAS DE CONTROL

Tema: Plantillas en C++.

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

FACULTAD DE INGENIERÍA

Programación (PRG) PRACTICA 4. Elementos de programación: estructuras de control.

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Preliminares: programación con C++

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

Lenguaje de Programación: C++ Repaso de Material C++

Guía práctica de estudio 05: Estructuras de selección

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

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

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

SESIÓN DE EJERCICIOS E1

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

Capítulo 4. Estructuras Iterativas

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle

Capítulo 3. Sentencias condicionales

fundamentos de programación (unidad 4) programación estructurada en Java

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

Cadenas (strings) y Estructuras

Programación 1 Tema 7. Desarrollo modular y descendente de programas

Tema 6 Control de Flujo

Fundamentos de la programación

Introducción al lenguaje C

Unidad 2. La lógica de programación. Tema 4. Arreglos y estructuras de repetición

Programación en Lenguaje C

Estructuras de repetición

Estructuras de Repetición: Repita Mientras.

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Transcripción:

Introducción a los Computadores ITTELSI. Curso 2004-2005 PRÁCTICA 2: ESTRUCTURAS DE CONTROL Y SUBPROGRAMAS (I) Hoy vamos a practicar más conceptos sencillos del lenguaje, que nos permitan decidir qué sentencias ejecutar en función de que se cumplan o no ciertas condiciones. Además, crearemos nuestras propias funciones para usar dentro del programa principal, al igual que hacíamos al incluir otras desde las librerías estándar. La sentencia IF Cuando se cumple la condición del IF (condicional en inglés: si ), el programa pasa a ejecutar el denominado cuerpo del IF. Pero sólo si se cumple! if( a > 100){ /*Ejecuto este bloque de código si la variable a es mayor que 100. Observad las llaves, que se abren y cierran*/ También se puede utilizar ELSE (en inglés: si no), para indicar que se ejecute otro bloque de código si no se cumple la condición if( a > 100){ /*Ejecuto este bloque de código si la variable a es mayor que 100. Observad las llaves, que se abren y cierran*/ else{ /*Ejecuto este bloque de código si la variable a es menor o igual a 100. Observad también las llaves */ Daos cuenta que la condición es una expresión lógica (booleana), que debe devolver verdadero o falso. Ejemplos claros son: a > 100, b!= 7, c (siempre que esta variable se definiera como booleana, equivalente a poner c==true), ((a > 100) && (b!=7)). El juego de adivinar números Os acordáis cuando jugábamos a que alguien pensaba un número y un amiguete tenía que acertarlo? Vale, reconozco que eso fue antes de la Play Station, pero como de nostalgias también se vive, vamos a implementar este juego en C++, en el que el compañero introduce un número secreto, y el otro lo intenta acertar. El ordenador dará pistas de si el sugerido es mayor o menor que el correcto. Aquí va el pseudo código, implementadlo en C++: PROGRAMA N secreto, sugerido INICIO 1

Escribe por pantalla: Jugador 1, introduzca numero secreto. Recoger valor introducido por teclado en variable secreto Limpiar pantalla (en C++ y Windows es system( cls )) Escribe por pantalla: Jugador 2 adivina el numero Recoger valor introducido por teclado en variable sugerido SI (sugerido == secreto) ENTONCES Escribe por pantalla: has acertado!!! SI (sugerido > secreto) ENTONCES Escribe por pantalla: Te has pasado por arriba!! Escribe por pantalla: Te has pasado por abajo!! FIN PROGRAMA Qué tal? Acertáis mucho? La verdad es que a no ser que tengáis poderes paranormales, es muy difícil acertar a la primera qué estafa de juego! Nó habría alguna manera de dejar que el jugador 2 hiciera todos los intentos que fueran necesarios? Pues vamos a ello. La sentencia WHILE En inglés significa mientras, y nos permite permanecer ejecutando un bloque de código continuamente (en bucle), mientras que la condición de chequeo sea verdadera while( condición){ sentencia 1; sentencia N; De esta forma, si la condición es verdadera, se entra a ejecutar de la sentencia 1 a la N. Pero lo más importante es que, cuando termina la ejecución de la N, se vuelve al principio del while, se chequea de nuevo la condición y así, si vuelve a ser verdadera, se vuelve a ejecutar la sentencia 1, etc. Mucho cuidado, porque se entiende que la condición alguna vez será falsa, si queremos salir del bucle!! Eso significa que dentro del cuerpo del while habrá alguna sentencia que nos permita cambiar el valor de la condición. Un ejemplo en C++: int contador; bool sigoenbucle; contador = 1; sigoenbucle= true; while(sigoenbucle){ cout << ejecutando bucle porque el contador es < 5 << endl; contador = contador +1; if(contador == 5){ sigoenbucle = false; 2

El juego de adivinar, version 2 Vamos a darle la oportunidad al jugador 2 para que pueda hacer los intentos que necesite hasta acertarlo. Para ello, introduciremos un WHILE en el programa anterior: PROGRAMA N secreto, sugerido B sigueintentando INICIO Escribe por pantalla: Jugador 1, introduzca numero secreto. Recoger valor introducido por teclado en variable secreto Limpiar pantalla (en C++ y Windows es system( cls )) arriba!! sigueintentando = true MIENTRAS (sigueintentando) Escribe por pantalla: Jugador 2 adivina el numero Recoger valor introducido por teclado en variable sugerido FINMIENTRAS FIN PROGRAMA SI (sugerido == secreto) ENTONCES Escribe por pantalla: has acertado!!! sigueintentando = false SI (sugerido > secreto) ENTONCES Escribe por pantalla: Te has pasado por Escribe por pantalla: Te has pasado por abajo!! Ejercicios: Modificad el programa anterior, para que el jugador 1, además de introducir el número secreto, introduzca el número de intentos que permite para acertarlo. El jugador 2 debe acertar el número como mucho en ese número de intentos. Incluid además otra modificación para que el número secreto esté comprendido entre 0 y 100. Si el jugador 1 introduce otro número fuera de ese rango, se le advertirá y se le dejará introducir otro nuevo hasta que sea correcto. La sentencia SWITCH/CASE Esta es otra estructura de control condicional, en el que se puede elegir qué grupo de sentencias de ejecutan en función del resultado de una expresión. ESTA VEZ NO NECESITAMOS UNA CONDICIÓN BOOLEANA. Para que veáis en C++ lo aprendido en teoría, os pongo un sencillo ejemplo que se suele incorporar en muchos programas: char opcion; cout << Desea continuar (Sí/No/Ayuda)? (S/N/A): << endl; cin >> opcion; switch(opcion){ 3

case S : //sentencias correspondientes al sí; case N : //sentencias correspondientes al no; case A : //sentencias correspondientes a la ayuda; default: cout << por favor, introduzca opcion correcta (S/N/A): ; Fijaos en que para cada caso (case), se ejecutan unas sentencias, separadas por punto y coma, pero al final siempre hay que insertar un LO HACEIS, SE EJECUTARÁN TAMBIEN LAS OPCIONES CORRESPONDIENTES AL SIGUIENTE CASO, HASTA QUE SE ENCUENTRE UN BREAK. La opción default recoge todas aquellas que no consideráis en los case. Cuando ninguna de las opciones coincida con las vuestras, se ejecutará el default (que es opcional, por cierto. Puede aparecer, o no). Ejercicio: Haced otra variante del juego anterior, en la que se pregunte si quieren seguir jugando. Gestionad la respuesta con un switch/case. Esto implica otro bucle más, ;-) Subprogramas sencillos (I) Dar aspecto modular a vuestros programas no es sólo importante desde el punto de vista de la legibilidad, sino del mantenimiento. Cuando una aplicación tiene muchas líneas de código se hace difícil encontrar errores. Sin embargo, utilizando subprogramas (funciones y procedimientos), es más sencillo gestionar cambios y preparar nuevas versiones del programa. Veamos un ejemplo sencillo de un subprograma que se encarga de devolver el máximo entre dos números naturales. Observad que lo que se define es una función que devuelve otro valor natural. #include <iostream> using namespace std; unsigned int maximo(unsigned int a, unsigned int b){ if(a>b) return a; else return b; int main(){ unsigned int x = 10; unsigned int y = 200; cout << El maximo es << maximo(x,y) << endl; system( PAUSE ); return 0; 4

El uso de la función máximo dentro de vuestro programa, es análoga a como utilizamos las funciones de pontencia o raiz cuadrada (pow, sqrt). Pero al contrario que con las anteriores, que estaban disponibles en la librería, aquí nosotros hemos creado la función: valor de retorno, nombre y argumentos de entrada. Dentro de su código asociado, implementamos su comportamiento. Que no se olvide que las funciones SIEMPRE DEBEN devolver un valor, de ahí el uso de la sentencia return. Y eso es especialmente crítico cuando utilizamos estructuras selectivas (if), en el que deberá aparecer un return por cada posibilidad de ejecución del código (la parte del if o la parte del else). Ejercicio: Qué diferencia hay entre declarar la función máximo antes del main o justo detrás de él? Comentad en clase posibles soluciones; Creando menús Veamos una manera de crear un menú de opciones combinando varias de las estructuras que hemos trabajado en estas práctica. SUBPROGRAMA menu; Devuelve un caracter Carácter opcion Borra Pantalla Escribe por Pantalla: Seleccione Opcion. Fin de Línea Escribe por Pantalla: A. Cargar datos. Fin de Línea Escribe por Pantalla: B. Salvar datos. Fin de Línea Escribe por Pantalla: C. Salir del programa. Fin de Línea Recoger valor introducido por teclado en variable opcion MIENTRAS (opcion DISTINTO DE A ) Y (opcion DISTINTO DE B ) Y (opcion DISTINTO DE C ) Recoger valor introducido por teclado en variable opcion FIN MIENTRAS Retorna opcion; FIN SUBPROGRAMA Ejercicios: Implementad esta función en C++ para ser utilizada en un programa que sacará por pantalla un mensaje con la opción seleccionada. c = menu(); switch(c){ case A : //hacer la opcion A Implementad un programa que mediante un menú, permita seleccionar entre jugar al juego de adivinar o calcular los grados celsius a partir de otros farenheit. Para ello tenéis que utilizar las siguientes funciones: char menu(); float far2celsius(float f); void adivina(); El programa permitirá seguir seleccionando estas opciones hasta que se pulse X, para abandonar la ejecución. 5