Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Estructuras de Control

Unidad 2. Programación 1
by

Lucero Zamora

on 5 September 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Estructuras de Control

Variables de control
Contadores
Estructuras de control selectivo
Sencilla
Estructuras de control secuencial
Output
Estructuras de Control Repetitivo
Una estructura de repetición, también llamada lazo o bucle, hace posible la ejecución repetida de secciones específicas de código.
Las instrucciones se ejecutan una tras otra
Estructuras de Control
Unidad 2
Programación 1
Ing. Lucero Zamora M.
Acumuladores
Banderas
Centinelas
Las estructuras de control nos permiten alterar el flujo de ejecución de las sentencias que componen el cuerpo de una función. Sin ellas, sólo podríamos ejecutar las líneas de un programa una a una en orden lineal
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción.
Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle; deben realizar una operación de inicialización y posteriormente las sucesivas de incremento decremento del mismo.
La inicialización consiste en asignarle al contador un valor inicial. Se situará antes y fuera del bucle.
Los contadores pueden ser de incremento o de decremento, por lo tanto la siguiente expresión es válida
•i = i + 1; o i++; ( Expresión equivalente).

•i= i – 1; o i--; ( Expresión equivalente)
Es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable
La diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en uno, el acumulador va aumentando en una cantidad variable
Ejemplo:
using namespace std;
#include <iostream>
int main()
{
int ac=0;
int var;
for(int i=0;i<3;i++)
{
cout<<"Ingrese el valor de la variable :";
cin>>var;
ac=ac +var;
cout<<"El valor del acumulador es: "<<ac<<endl;
}
}
En lenguajes como Pascal, que tienen el tipo bool, se utiliza una variable booleana con frecuencia como indicadores o banderas de estado para controlar la ejecución de un ciclo
El valor del indicador se inicializa (normalmente a “ false“ ) antes de la entrada al ciclo y se redefine (normalmente a verdadero “ true “) cuando un suceso específico ocurre dentro del ciclo.
En C no existe el tipo bolean, por lo que se utiliza como bandera una variable que puede tomar dos valores, 0 o 1. Un ciclo controlado por bandera se ejecuta hasta que se produce un proceso anticipado y se cambia el valor del indicador.
Se desea leer diversos datos tipo carácter introducidos por teclado mediante un ciclo while y se debe terminar el ciclo cuando se lea un dato tipo dígito
(0-9).
La variable bandera, digito_leido se utiliza como un indicador que representa cuando un dígito se ha producido por teclado.

Variable bandera
Digito_leido
Significado
Su valor es falso (cero) antes de entrar en el ciclo y mientras el dato leído sea un carácter y es verdadeo cuando el cuando el dato leído es un dígito.
Por lo general no se conoce con exactitud cuantos elementos de datos se procesarán antes de comenzar su ejecución. Esto se produce bien porque hay muchos datos a contar normalmente o porque el número de datos a procesar depende de cómo prosigue el proceso de cálculo.
Un medio para manejar esta situación es instruir al usuario a introducir un único dato definido y especificado denominado valor centinela como último dato.
La condición del ciclo comprueba cada dato y termina cuando se lee el valor centinela.
El valor centinela se debe seleccionar con mucho cuidado y debe ser un valor que no pueda producirse como dato. En realidad el centinela es un valor que sirve para terminar el proceso de ciclo.
Ejemplo:

//En el siguiente fragmento el centinela será –1
const centinela =-1;
printf(“Introduzca la primer calificación “);
scanf(“%d”,&calif);
while(calif!=centinela)
{
suma+=calif;
printf(“Introduzca la siguiente calificación “);
scanf(“%d”,&calif);
}
Una sentencia compuesta es un conjunto de sentencias encerradas entre llaves que se utiliza para especificar un flujo secuencial, esto es, el control fluye de la sentencia 1 a la sentencia 2 y así sucesivamente
{
sentencia 1;
sentencia 2;
.
.
.
sentencia N
}
Doble
Múltiple
Teoría de ciclos
Un ciclo es cualquier construcción de programa que repite una sentencia o secuencia de sentencias un número de veces. Las sentencias o grupo de sentencias que se repiten en un bloque se denominan cuerpo del bucle y cada repetición del cuerpo del ciclo se llama iteración del ciclo
If simple
If / else
Toma una decisión referente a la acción a ejecutar en un programa entre dos alternativas basándose en el resultado (verdadero o falso) en una expresión.
If anidados
Sintaxis:

if (condición)
Instrucción ejecutada cuando la condición es "verdadera";
Cuando en un programa que se esté ejecutando se encuentra la instrucción if, la condición será evaluada para determinar su valor numérico, el cual será interpretado como verdadero o falso. Si la condición produce cualquier valor numérico positivo o negativo que no sea cero, será considerada como condición "verdadera" y se ejecutará la instrucción que sigue al if. Si la condición produce un valor numérico de cero, será considerada "falsa" y se ejecutará la instrucción que sigue al else La parte del else es opcional y se puede omitir.
Los operadores relacionales o lógicos serán utilizados para operándos con números enteros, flotantes, dobles o caracter en la instrucción if.
Ejemplo:
#include<iostream.h>
#include<dos.h>
#include<conio.h>
int main ( )
{
textbackground(3) ; // sirve para asignar color al fondo de pantalla
clrscr() ;
textcolor(2) ; // sirve para asignar color al texto
clrscr() ;
int num;
cout<<"Dame un numero al azar no mayor a 30" << endl;
cin>>num;
if ( num > 30 )
cout<<"Número invalido";
if ( num > 1 ) && (num < 30)
cout<<"Bien acertaste el rango";
getch();
return 0;
}
Al igual que if simple, if compuestos también toma una decisión referente a la acción a ejecutar en un programa entre dos alternativas basándose en el resultado (verdadero o falso) en una expresión.
Sintaxis:

if (condición) operando (condición)
Instrucción ejecutada cuando la condición es V;
else
Instrucción ejecutada cuando la condición es F;
Los operadores relacionales y lógicos serán utilizados con números enteros, flotantes, doubles o caracter en la instrucción if.
Ejemplos:


If (A > 5 && A < 20) // Si A es mayor a 5 Y A es menor que 2

If (B > 10 && B <= 9) // si B es mayor a 10 Y B es menor o igual que 3

If (C > 24 || C <= 12) // si C es mayor a 24 O C es menor o igual que 12

If (D > 78 || C <= 45) // si D es mayor a 78 O D es menor o igual que 45
Puede contener instrucciones sencillas o computas. Pueden estar incluidas una o más instrucciones If - else. Al incluir una o más instrucciones de if en una instrucción de if existente se crean las instrucciones anidadas If
#include<iostream.h>
int main ( )
{
char codigo;
cout << "Introduzca un código especificado: ";
cin >> codigo;

if (codigo == 'S' )
{
cout << "El componente tiene calificación de exploración espacial . ";
}
else
{
if (codigo == 'M' )
{
cout << "El componente tiene calificación de militar . ";
}
else
{
if (codigo == 'C' )
{
cout << "El componente tiene calificación de comercial . ";
}
else
{
if (codigo == 'T' )
{
cout << "El componente tiene calificación de juguete . ";
}
else
{
cout << "Se insertó un código invalido. ";
cout << end1;
}
}
}
}
getch();
return 0;

}
Switch
Permite ejecutar una de varias acciones, en función del valor de una expresión
Sintaxis:
Switch ( expresión entera ){
case constante 1:
sentencia 1
break;
case constante 2:
sentencia 2
break;
case constante n:
sentencia n
break;
default:
sentencia por defecto
break;
}
Ejemplo:
Switch ( nota ) {
case 'A'
printf (" Sobresaliente");
break;
case 'B'
printf ("notable")
break;
case 'D'
printf ("aprobado")
break;
case 'C'
printf ("Suspenso")
break;
default: printf ("Nota no valida")
break;
}
While
Do-While
For
Un ciclo while tiene una condición del ciclo (una expresión lógica) que controla la secuencia de repetición. La posición de esta condición del ciclo es delante del cuerpo de este y significa que un ciclo while es un ciclo pretest de modo que cuando se ejecuta el mismo, se evalúa la condición antes de que se ejecute el cuerpo del ciclo.
Sintaxis:
1.- while (condición_ciclo)
sentencia;
2.- while (condición_ciclo )
{
sentencia 1;
sentencia 2;
. cuerpo del ciclo
.
.
sentencia n;
}
Ejemplo 1.
/* Cuenta hasta 10 */
int x=0;
while (x<10)
printf(“X = %d”,x++);
La variable que representa la condición del ciclo se denomina también variable de control del bucle debido a que su valor determina si el cuerpo del ciclo se repite. La variable de control del ciclo debe ser: 1) inicializada, 2) comprobada, y 3) actualizada para que el cuerpo del ciclo se ejecute adecuadamente.
Si la variable de control no se actualiza el ciclo se ejecutara siempre, este se denominará ciclo infinito, en otras palabras el ciclo infinito será aquel en el cual su condición_ciclo nunca sea falsa.
Sintaxis:
do
{
sentencias
} while(expresión);
El ciclo do_while repite una sentencia o varias sentencias mientras la expresión es cierta. Se detiene cuando la expresión de convierte falsa.
El ciclo do_while siempre se ejecuta al menos una vez, dado que la expresión controladora del ciclo se checa al final de cada iteración.
Ejemplo:
do
{
printf(“Teclea un número “);
scanf(“%”,&num);
if(num%2==0)
printf(“Número par “);
else
printf(“Número impar “);
printf(“Teclee * para terminar “);
scanf(“%c”,&centinela);
}while(centinela !=’*’);
Sintaxis:
for ( inicialización;prueba condicional;incremento)
{
sentencia;
}
La sección de inicialización es usada para asignar un valor inicial a la variable que controla el ciclo. La sección de inicialización es ejecutada una sola vez. Antes del que ciclo empiece.
La sección de prueba condicional del ciclo compara la variable de control contra un valor cada vez que el ciclo se repita. Si la prueba evalúa cierto (TRUE), el ciclo se repite. Si es falso (FALSE), el ciclo se detiene, y la ejecución del programa continua con la siguiente línea de código que le sigue al ciclo.
La prueba condicional es ejecutada al comienzo de cada iteración.
La sección de incremento del ciclo for es ejecutada al final de cada iteración. Esto es, La sección de incremento se ejecuta después de que el bloque de sentencias es ejecutado, pero antes de la prueba condicional. El propósito de la sección de incrementos es aumentar (o disminuir) la variable de control del ciclo en cierta cantidad.
Ejemplos con el ciclo for:

El siguiente programa imprime los números del 1 al 20 elevados al cuadrado:
#include <stdio.h>
main()
{ int num;
for(num=1;num<=20;num++)
printf(“%8d %8d\n”,num, num*num);
}

El siguiente programa lee los números de 1 hasta N y los imprime al cuadrado:
#include <stdio.h>
main()
{
int num,N;
printf(“Cuantos numeros quieres imprimir”);
scanf(“%d”,&N);
for(num=1;num<=N;num++)
printf(“%8d %8d\n”,num, num*num);
}
Full transcript