Anda di halaman 1dari 16

UNIDAD 2: C++ CONTROL DE PROGRAMA TEMA 1: INTRODUCCION C++

Instrucciones de control de programa permiten alterar la secuencia normal de ejecucin de un programa. Estas instrucciones se dividen en tres grandes categoras: Instrucciones Condicionales que en C++ CPP se implementan con las instrucciones if() y switch(). Instrucciones de ciclos con, for, while, do-while. Instruccin de salto incondicional goto. TEMA 2: INSTRUCCIONES CONDICIONALES C++

Una de las mas poderosas caractersticas de cualquier computador es la capacidad que tiene de tomar decisiones. Es decir al comparar dos alternativas diferentes el computador puede tomar una decisin, basndose en la evaluacin que hace de alguna condicin. ejemplo de instrucciones condicionales ;

a) si sueldo > 3000 desplegar rico si no desplegar pobre fin-si b) si sexo = 'm' imprime mujer si no imprime hombre fin-si

De los ejemplos observar que los caminos por el computador dependern de la evaluacin que el computador hace cn y de la condicin. Todo lenguaje de programacin debe tener instrucciones que permitan formar condiciones e instrucciones que pueden evaluar esas condiciones. El formato general de una instruccin condicional es:

Como se observa son cuatro partes bien diferenciadas entre si; * La propia instruccin condicional en si * La condicin * El grupo cierto de instrucciones * El grupo falso de instrucciones Cuando el computador evala una condicin, el resultado de esa evaluacin solo es evaluado de dos maneras o la condicin es CIERTA o la condicin es FALSA. Esto depender del valor que tenga asignado o que se haya capturado para la variable que esta en la condicin, por ejemplo si se capturo 6000 en sueldo en el ejemplo a), entonces el computador indicara que la condicin es CIERTA, pero en otro caso, si a la variable sueldo primero se le asigno un valor de 250 entonces el computador indicara que la condicin es FALSA. Ya dependiendo del resultado de la evaluacin, el computador ejecuta las instrucciones contenidas en la parte CIERTA o en la parte FALSA de la condicin. Empezaremos el anlisis por la CONDICION. TEMA 3: CONDICIONES SIMPLES C++

En general todas las condiciones simples se forman con: variables operadores relacinales constante o var. sexo = 'm'

sueldo > 300000 Una condicin simple se define como el conjunto de variables y/o constantes unidas por los llamados operadores relacinales. Los operadores relacinales que reconoce el lenguaje CPP son: Operador Significado ' == ' Igual que ' > ' Mayor que ' < ' Menor que ' >= ' Mayor o igual que ' ' Menor o igual que ' != ' No es igual que o es diferente que Observar y tener cuidado sobre todo con el operador de igualdad( relacional de comparacin por igualdad(= , es decir; , y el operador

sueldo = 500 , Se esta pidiendo cargar o asignar la variable sueldo con el valor 500 sueldo == 500 , Se esta pidiendo que se compare el valor o dato que se encuentra en la variable sueldo, contra el numero 500. Solo este ultimo formato es valido dentro de una condicin en una instruccin condicional. NOTA IMPORTANTE, Para el caso de objetos de tipo string, los operadores mencionados arriba funcionan, es decir es valido usar la siguiente condicin: string carrera; if (carrera==informatica) etc, etc, etc, PERO para el caso de arreglos de caracteres, se tendra que usar la funcin strcmp(str1,str2) que regresa cero si str1=str2, regresa un positivo si str1>str2 y regresa un negativo si str1<str2, el mismo ejemplo: char carrera[20]; if ( strcmp(carrera,informatica)== 0 ) etc, etc, etc

TEMA 4: INSTRUCCION IF C++

Es la instruccin condicional mas usada en los diversos lenguajes de programacin, su formato completo y de trabajo en CPP es :

cargar o asignar la variable de condicin; if (condicin) { grupo cierto de instrucciones;} else { grupo falso de instrucciones; };

Primus.- Observar donde van y donde no van los puntos y comas; Secundus.- La condicin va entre parntesis ; Tertius.- Si un if no ocupa un grupo falso de instrucciones, entonces no se pone el else, y la llave antes del else si terminara con punto y coma. PROG4.CPP
#include <stdio.h> #include <conio.h> #include <string.h> void main() { // declaracion variables int edad; char ciudad[30]; //capturando clrscr(); gotoxy(10,5);printf("dame edad : "); scanf("%d",&edad);getchar();

gotoxy(10,7);printf("dame ciudad : ");

gets(ciudad); //comparando if( edad>20) { gotoxy(30,5);puts("mayor de 20"); } else{ gotoxy(30,5);puts("menor de 20"); }; if( strcmp(ciudad,"tijuana")==0) { gotoxy(35,7);puts("es de tijuana"); }; getchar(); }

TEMA 5: CONDICIONES COMPUESTAS C++

En muchas ocasiones es necesario presentar mas de una condicin para su evaluacin al computador. Por ejemplo que el computador muestre la boleta de un alumno, si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. Una condicin compuesta se define como dos o mas condiciones simples unidas por los llamados operadores lgicos. Los operadores lgicos que CPP reconoce son: OPERADOR SIGNIFICADO && Y LOGICO ! NO NEGACION Ejemplo: if ( (sueldo> 700) && ( sexo=='m') ) etc, etc, etc. Notas: Observar que cada condicin simple lleva sus propios parentesis. Si la variable es de tipo string el dato va entre comillas(), pero si la variable es de tipo char el dato va entre apostrofes('). Recordar ademas que para comparar arreglos de chars se debera usar strcmp().

Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico y, las dos condiciones simples deben ser ciertas. Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico o, basta con que una de las condiciones simples sea cierta. La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la relacin donde n = cantidad de condiciones, la primera mitad de ellos ciertos y la segunda mitad falsos. Ejemplo, si formamos una condiciona compuesta con dos condiciones simples y el operador lgico y, la cantidad total de casos posibles serian construir la siguiente tabla de verdad. y se puede

TEMA 6: INSTRUCCION SWITCH C++

Tambin existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condicin compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instruccin switch(); La instruccin switch() es una instruccin de decisin mltiple, donde el compilador prueba o busca el valor contenido en una variable contra una lista de constantes ints o chars, cuando el computador encuentra el valor de igualdad entre variable y constante, entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional. El formato de esta instruccin es el siguiente;

capturar o asignar variable de condicin; switch(var int o char) { case const1: instruccin(es); break; case const2: instruccin(es); break; case const3: instruccin(es); break; default: instruccin(es);

};

Mejor un ejemplo practico: Prog5.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

// declaracion variables

char letra;

//capturando

clrscr();

gotoxy(10,5);printf("dame una letra : ");

letra=getchar();getchar();

//empieza switch()

switch(letra)

case 'a': gotoxy(30,5);puts("aguila");break;

case 'b': case 'B': gotoxy(30,5);puts("baca");break;

case 'c': gotoxy(30,5);puts("caballo ");puts("camello");break;

default:gotoxy(30,5);puts("no hay");

getchar();

corrida:

Notas: 1.- Solo se puede usar como variable de condicin una variable entera o variable char. 2.- Las constantes que estamos buscando y comparando son de tipo char, por eso se deben encerrar entre apstrofes ( '). 3.- Si se quiere resolver el problema de maysculas o minsculas en el teclado, observar que se usan dos case, pero con un solo break;

6.- Recordar que switch() solo trabaja con constantes y variables de tipo char o int, en este ultimo caso, solo usar una variable de opcin de tipo entero y en los case poner la constante numrica, sin apstrofes decir por ejemplo case 5: instrucciones; break; En particular, instrucciones de tipo switch() se usan para construir programas de seleccin de mens, donde al usuario se le plantean dos o tres problemas distintos y el propio usuario seleccionaba cual de ellos se ejecuta TEMA 7: CICLO FOR C++

Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez. Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin simple o compuesta. Su formato general es: for (inicializacin; condicin; incremento) { instruccin(es); }; ejemplo:

for(x=1;x10;x=x+1) { puts( MAMA ); };

En su forma simple la inicializacin es una instruccin de asignacin que carga la variable de control de ciclo con un valor inicial. La condicin es una expresin relacional que evala la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo. El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo. Se deben separar esos 3 argumentos con punto y coma (;) EJEMPLO Codigo prog6.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

clrscr();

// declaracion variables

int x;

// instruccion for

for(x=1;x<=10;x=x+1)

{ gotoxy(10, x+4); printf("%d MAMA",x); };

getchar();

corrida:

Casos Particulares del ciclo for; 1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso mas general. 2.- Pero el valor inicial puede se diferente de uno, ejemplo; for(x=5;x15;x=x+1){ etc.}; 3.- Incluso el valor inicial puede ser negativo, ejemplo; for (x = -3 ;x 8; x=x+1) { etc.}; 4.- Los incrementos tambin pueden ser diferentes al de uno en uno, ej.; for (x=1; x 20; x=x+3){ etc. }; 5.- Incluso pueden ser decrementos, solo que en este caso, recordar; 5.1.-el valor inicial de la variable debe ser mayor que el valor final. 5.2.-cambiar el sentido de la condicin. ejemplo;

for (x= 50 ; x >= 10; x= x-4 ) { etctera };

6.- Solo para los casos de incrementos y decrementos de una en una UNIDAD substituir en el for: el x = x + 1 por x++ el x = x - 1 por x

TEMA 8: CICLO WHILE C++

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicin permanezca como verdadera en el momento en que la condicin se convierte en falsa el ciclo termina. Su formato general es : cargar o inicializar variable de condicin; while(condicin) { grupo cierto de instrucciones; instruccin(es) para salir del ciclo; }; Un error muy comun con el while, es poner un punto y coma(;) despues de la (condicin) ejemplo while(condicion); -esto es y causa un error. Prog7.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

clrscr();

// declaracion variables

int x=1;

// instruccion while

while(x<=10)

{ gotoxy(10, x+3); printf("%d PATO",x); x++; };

getchar();

Corrida:

While puede llevar dos condiciones en este caso inicializar 2 variables de condicin y cuidar que existan 2 de rompimiento o terminacin de ciclo. El grupo cierto de instrucciones puede ser una sola instruccin o todo un grupo de instrucciones. La condicin puede ser simple o compuesta. Los casos generales de for tambien se aplican a while. A este ciclo tambin se le conoce tambin como ciclo de condicin de entrada o prueba por arriba porque este ciclo evala primero la condicin y posteriormente ejecuta las instrucciones. TEMA 9: CICLO DO WHILE C++

Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evala la condicin; Tambin se le conoce por esta razn como ciclo de condicin de salida. Su formato general es : cargar o inicializar variable de condicin; do { grupo cierto de instruccin(es); instruccin(es) de rompimiento de ciclo; } while (condicin); prog8.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

clrscr();

// declaracion variables

int x=1;

// instruccion do while

do{

gotoxy(10, x+3); printf("%d GATO",x);

x++; } while(x<=10);

getchar();

Corrida prog

Otra diferencia bsica con el ciclo while es que, aunque la condicin sea falsa desde un principio el cuerpo de instrucciones se ejecutara por lo menos una vez. TEMA 10: CONCLUSIONES ACERCA DE CICLOS C++

El problema de dado un problema cualesquiera cual ciclo se debe usar se resuelve con: 1. Si se conoce la cantidad exacta de veces que se quiere que se ejecute el ciclo o si el programa de alguna manera puede calcularla usar for. 2. Si se desconoce la cantidad de veces a repetir el ciclo o se quiere mayor control sobre la salida o terminacin del mismo entonces usar while. 3. Si se quiere que al menos una vez se ejecute el ciclo entonces usar do while.