Sentencias de Control en C++

Documentos relacionados
Introducción a las sentencias de control

3.3 Bifurcaciones en Pascal

Prof. Dr. Paul Bustamante

Tema 1: Sentencias de Control

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

Prof. Dr. Paul Bustamante

Programación 1 Tema 5. Instrucciones simples y estructuradas

Operando1 operador de relación Operando2

Clase adicional 2. Estructuras básicas de control. Temas

Lenguaje C, segundo bloque: Sentencias de control

Lección 3 Sentencias de control

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

Tema 3. Estructuras de control

Tema 3. Estructuras de control en C++

Estructuras de control

Programación 1 Tema 5. Instrucciones simples y estructuradas

Estructuras de repetición

Programación 2. Grado en Estadística Aplicada. Curso Generación de números pseudoaleatorios. Manejo de ficheros de texto.

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Prof. Dr. Paul Bustamante

Fundamentos de programación

Computación III. Objetivo de aprendizaje del tema

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

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

Estructuras de control condicionales

Tema 4: Estructuras de Control Estructura y Contenidos

TEMA 4: Programación estructurada

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

1. Juego del Ahorcado

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

Estructuras de Control 3

Herramientas computacionales para la matemática MATLAB: Estructuras de control

VGOC"6<"Rtqitcocekôp"guvtwevwtcfc

Programación: Estructuras de Control

Introducción a los Computadores ITTELSI. Curso

Sentencias de control de flujo

Prof. Dr. Paul Bustamante

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

GUÍA DE LABORATORIO #4. SENTENCIAS DE CONTROL EN C: CICLO for, while y do while. Realizar programas en Lenguaje C aplicando for, while y do while.

Estructuras de control y DFDs

Operadores de comparación

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

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

Flujo del programa. Este flujo puede alterarse mediante: El ordenador ejecuta cada sentencia y va a la siguiente hasta el final del programa.

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

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

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

TEMA 3. Sentencias de control.

Estatutos de decisión

TEMA 4: Estructuras de Control

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

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias. Emma Rollón Departament of Computer Science

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

INTRODUCCION AL LENGUAJE C PARA SISTEMAS EMBEBIDOS

EJEMPLOS DE EJERCICIOS RESUELTOS

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

1.9. SENTENCIAS DE CONTROL DE PROGRAMA

Estructuras de control repetitivas/iterativas

Introducción general al Lenguaje C (2010/2011)

E/S POR CONSOLA DE C++ Parte I. Elementos Básicos Dr. Oldemar Rodríguez R.

Tema 06: Estructuras y sentencias de control en C

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

Prof. Dr. Paul Bustamante

Tema: Arreglos de Objetos en C++.

PROGRAMACIÓN EN C#.NET Módulo 3 Instrucciones fundamentales. Ing. Bruno López Takeyas

TEMA 4. ESTRUCTURAS DE CONTROL

Introducción a Java. Introducción a Java. Programación I

Tema: Estructuras de Selección en C#.

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

GUÍA DE ESTILO DE C++

Estructuras de Repetición: Repita Mientras.

Tema 3. Estructuras de control en C++

Bloque II. Elementos del lenguaje de programación Java

Conocimientos previos

El lenguaje C. 3. Una instrucción que se ejecutará si la condición es verdadera.

Programación de los problemas de Física en.

3.3 Conceptos Básicos del Lenguaje Java

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

TIPOS DE BUCLES O CICLOS DE REPETICIÓN EN PHP: WHILE, DO WHILE Y FOR. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00822B)

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

TEMA 4. Tecnologías de la Información 1ºBachillerato IES Zurbarán (Badajoz)

Preliminares: programación con C++

Prof. Dr. Paul Bustamante

Instrucciones de control

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

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

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

Programación Orientada a Objetos en Java

ESTRUCTURAS REPETITIVAS

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

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

ESTRUCTURAS DE CONTROL

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

Es ambigua, ya que la división y la multiplicación tienen el mismo grado de precedencia, qué parte de la expresión se realiza primero?

El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.

En lenguaje C son soportados dos tipos de sentencias condicionales: if y switch.

Problema No.7. Elaborar un programa en C++ que lea una temperatura en grados Fahrenheit y muestre su equivalente en grados Celsius, Kelvin y Rankine.

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

Transcripción:

Sentencias de Control en C++ Informática II Fundamentos de Programación 1

Sentencias de Control Las sentencias de un programa en C++ se ejecutan secuencialmente, esto es, cada una a continuación de la anterior, empezando por la primera y acabando por la última. Cada sentencia termina con un Punto y coma. Para poder modificar el flujo secuencial de la ejecución, el C++ dispone de varias sentencias, de las cuales, las más utilizadas, se pueden agrupar en dos familias: Sentencias de Bifurcación: Permiten elegir entre dos o más opciones según ciertas condiciones. Dentro de esta familia encontramos a las sentencias if, else, else if y switch. Sentencias de Iteración o Bucles: Permiten ejecutar repetidamente un conjunto de instrucciones tantas veces como se desee, cambiando o actualizando ciertos valores. Dentro de esta familia de sentencias encontramos a las sentencias for, while y dowhile. También existen las sentencias break, continue y goto que trabajan en conjunto con las anteriores. En las sentencias de control se usan mayoritariamente los operadores relacionales y lógicos, para la evaluación de las expresiones. 2

Sentencias if, else y else if: 1. Bifurcaciones La sentencia if permite ejecutar una sentencia simple o compuesta según se cumpla o no una determinada condición. Ver a continuación las dos formas: if ( expresion ) sentencia; if (expresion) { sentencia1; sentencia2; La sentencia else se usa junto con la sentencia if. Permite realizar una bifurcación ejecutando una parte u otra del programa, según se cumpla o no la condición: if ( expresion ) { sentencia1; sentencia2; else { sentencia3; sentencia4; Explicación: se evalúa la expresión. Si el resultado es true, se ejecutan las sentencias 1 y 2. Si el resultado es false, se ejecutan las sentencias 3 y 4. La sentencia if - else if permite realizar una ramificación múltiple, ejecutando una entre varias partes del programa, según se cumpla una entre n condiciones. if (expresion1) sentencia1; else if (expresion2) sentencia2; else if (expresion3) sentencia3; else sentencia4; Explicación: Se evalúa expresion1. Si el resultado es true, se ejecuta sentencia1 y sale de este bloque de if-elseif. Si el resultado es false, pasa a evaluar expresion2 y así sucesivamente. Si todas las expresiones son false, se ejecutará la sentencia4. 3

Sentencia switch: Bifurcaciones (cont( cont.) Esta sentencia desarrolla una función similar a la de las sentencias if..else de múltiples ramificaciones, aunque presenta importantes diferencias. El formato general de esta sentencia es: switch( expresion ){ case valor1: sentencia1; case valor2: sentencia2; case valor3: sentencia3; default: sentencia4; break; break; break; char tecla; switch( tecla ){ case 1: Abrir(); break; case 2: Guardar(); break; case 3: Salir(); break; default: Error(); La sentencia switch se usa en conjunto con las sentencias case, default y break. Características: Cada sentencia case se corresponde con un único valor de expresion. No se pueden establecer rangos o condiciones. Si una sentencia case no lleva la sentencia break al final, el control pasa a la sentencia case siguiente, aunque su valor no corresponda con expresión. Los valores no comprendidos en las sentencias case se gestionan en default, que es opcional. 4

2. Bucles Habíamos dicho que un bucle es un bloque donde se puede ejecutar repetidamente un número determinado (o indeterminado) de veces unas líneas de código. Sentencia for: for es el bucle más versátil y utilizado en C++. Su forma general es la siguiente: for (inicialización;expresion_de_control;actualizacion){ Sentencia1; Sentencia2; En inicialización se inicializan las variables que intervienen en el bucle for. Sólo se hace una vez, al inicio del bucle. La expresion_de_control es la que nos va a permitir continuar o terminar el bucle. En actualizacion se les da los nuevos valores a las variables, antes de que se ejecute la expresion_de_control. La sentencia1 y sentencia2 se ejecutarán tantas veces cómo lo permita la expresion_de_control. for (int Num=0;Num<3;Num++) { cout << "Num=" << Num << endl; >> Num=0 Num=1 Num=2 for (int cont=0,x=10,num=1;num<4;num++,cont+=2) { x = x*num; cout << "x=" << x << " cont=" << cont << endl; >> x=10 cont=0 x=20 cont=2 x=60 cont=4 5

Sentencia while: Bucles (cont( cont.) Esta sentencia permite ejecutar repetidamente, mientras se cumpla una condición, una sentencia o bloque de sentencias. Su forma general es la siguiente: while (expresion_de_control){ Sentencia1; sentencia2; La Sentencia1 y Sentencia2 se ejecutarán repetidamente hasta que se cumpla la condición que hay en la expresion_de_control (la cual es una expresión booleana o lógica, true o false). Sentencia do-while while: Esta sentencia funciona de modo análogo a while, con la diferencia de que la evaluación se realiza al final del bloque (en la sentencia while), de manera que las sentencias se ejecutan por lo menos una vez. Su forma general es: do { Sentencia1; sentencia2; while (expresion_de_control); int Num=1; //declar. de variable while(num <= 3){ cout << "Num=" << Num << endl; Num++; //equivale a Num=Num+1; int Num=1; do{ cout << "Num=" << Num << endl; Num++; //equivale a Num=Num+1; while(num <= 3); En ambos casos la salida es la misma: Num=1 Num=2 Num=3 6

Sentencia break: 3. break y continue Esta instrucción interrumpe la ejecución del bucle donde se ha incluido, haciendo al programa salir de él, aunque la expresion_de_control no se haya cumplido. Sentencia continue: Esta sentencia hace que el programa comience el siguiente ciclo del bucle donde se halla, aunque no halla llegado el final de las sentencias o bloque. Sentencia goto: Permite saltar a una determinada etiqueta del programa. No se recomienda su uso debido a que disminuye la legibilidad y claridad del código. Sólo se mantiene por motivos de compatibilidad. int Num; //variable while(true){ cout << endl << "Numero:"; cin >> Num; if ( Num == 0) break; //termina = int Num=1; while(num!=0){ cout << endl << "Numero:"; cin >> Num; for (int Num=1;Num<30;Num++){ if (Num%2) continue; //Num%2=0 para pares, 1 impares cout << "Num: " << Num << endl; >> Num:2 Num:4 Num:6... Num:28 7

4. Ejemplos Conversor de Temperatura Mejorado #include <stdlib.h> //para exit() #include <conio.h> //para getch() void main (){ int opc=1; double temp1,temp2; //declarac. De variables while(true) { system("cls"); cout << "Conversor de Temperatura" << endl; cout << "------------------------" << endl; cout << "0: Salir." << endl; cout << "1: de gcent. a gfarenh." << endl; cout << "2: de gfarenh. a gcent." << endl; cout << "\topcion:?"; cin >> opc; if (!opc) break; //Salir del while if (opc<1 opc>2) continue; cout << "Dar Temperatura: "; cin >> temp1; switch(opc){ case 1: temp2 = 9.0/5.0*temp1 + 32; cout << temp1 << "gf es " << temp2 <<"gc"<< endl; break; case 2: temp2 = (temp1-32)*5.0/9.0; cout << temp1 << "gc es " << temp2 <<"gf"<< endl; break; cout << "\tpresione una tecla para continuar.."<<endl; getch(); //lee una tecla cout << "Fin.."; 8

Ejemplos (cont( cont.) Genera números aleatorios entre 0 y 1 Genera números aleatorios entre dos valores dados #include <stdlib.h> //para rand() #include <conio.h> //para getch() #define NUM 20 void main (){ char ch=1; while(ch!=27){ for (int i=0;i<num;i++){ double tmp=(double)rand()/32767.0; cout << tmp << endl; cout << "Esc para salir"; cout << flush; //vaciar el buffer ch=getch(); //espera el teclado system("cls"); #include <stdlib.h> //para rand() void main (){ //generador aleatorio de números int Num; int LimInf,LimSup; cout << "Cuantos num. desea generar?"; cin >> Num; cout << "Limite inferior y superior:?"; cin >> LimInf >> LimSup;; for (int i=0;i<num;i++){ double tmp=(double)rand(); double n = (LimSup-LimInf)*tmp/32767.0 + LimInf; cout << (int)n << endl; 9

Ejemplos (cont( cont.) Capturando los argumentos pasados al programa, por medio de la función main() Calcular el factorial de un número pasado como argumento al programa void main (int argc, char *argv[]){ int num=argc-1; //numero de argumentos if (num>0) { cout << "Vienen " << num << " argumentos\n"; else{ cout << "No vienen argumentos.."; return; //otra forma de terminar for (int i=1;i<=num;i++){ cout << "Arg. "<<i<<": "<< argv[i]<<endl; #include <stdlib.h> //para atoi(); void main (int argc, char *argv[]){ long fact=1; if (argc>1) { int num=atoi(argv[1]); //convertir de char a int for (int i=num;i>0;i--){ fact*=(long)i; cout << "factorial de "<<num<<" es "<<fact<<endl; else{ cout << "Error, escribir: >>Prog 13"<<endl; 10

Ejemplos (cont( cont.) Calculando el mayor de varios números pasados como argumentos a main() #include <stdlib.h> //para atoi() void main (int argc, char* argv[]){ int numa=0, Max=0; if (argc>1){ Max = atoi(argv[1]); //conv. entero for (int i=2;i<argc;i++) { numa = atoi(argv[i]); if (numa > Max ) Max=numA; //resultado cout << "Los numeros que has dado son: " << endl; for (i=1;i<argc;i++) cout << " " << argv[i]; cout << "\nel mayor es " << Max << endl; 1 2 3 n Datos Max = Primero Tomamos el sgte. Y lo comparamos con Max. Si es mayor, le asignamos el nuevo Valor. 11