jueves, 9 de septiembre de 2010

SENTENCIA REPETITIVA FOR

SENTENCIA  FOR

Permite inicializar los controles del bucle es la sentencia for ( <i>; <e>; <p> ) <s>. La sentencia for se puede escribir también como:

Sentencias For

for(contador; final; incremento)
{
    Codigo a Repetir;
}
donde:
  1. contador es una variable numérica
  2. final es la condición que se evalua, o sea, el valor final para contador
  3. incremento es el valor que se suma o resta al contador
Ejemplo 1:

for(i=1; i<=10; i++)
{
    cout<<"Hola Mundo";   
}
Esto indica que el contador "i" inicia desde 1 y finaliza cuando el contador "i" sea menor o igual a 10 ( en este caso llegará hasta 10) e "i++" realiza la sumatoria por unidad lo que hace que el for y el contador se sumen. repitiendo 10 veces "HOLA MUNDO" en pantalla.

Ejemplo 2:

for(i=10; i>=0; i--)
{
    cout<<"Hola Mundo";   
}
Este ejemplo hace lo mismo que el primero, salvo que el contador se inicializa a 10 en lugar de 1; y por ello cambia la condición que se evalua así como como que el contador se decrementa en lugar de ser incrementado.

Pseudocódigo
Inicio
Desdei=0 hasta100
Escribiri
Fin_desde
Fin
Problema:
Realizar un programa que permita presentar la tabla de multiplicar de cualquier numero

Programa:

#include <iostream.h>
#include <stdlib.h>
int main()
{
int num;
cout << "\n Numero de la Tabla de Multiplicar:"<<endl;
cin >>num;
for(int i=1; i<=10; i++)
cout<< num <<"*"<<i<<"="<<num*i<<
endl;
system("PAUSE");
return 0;
}
Ejercicos Propuestos
1.- Escriba un programa para obtener la suma de los números pares entre 1 y 25.  
2.- Modifique el ejercicio propuesto #1 de la sentencia do .. while

 

CICLO REPETITIVO WHILE


WHILE

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte en falsa el ciclo termina.

Su formato general es : 

cargar o inicializar variable de condicion;
while(condicion)
{
grupo cierto de instrucciones;
instruccion(es) para salir del ciclo;
};


Su significado es el siguiente: Se evalúa la <condición> indicada, que ha de producir un valor lógico. Si es cierta (valor lógico true) se ejecutan las <instrucciones> y se repite el proceso de evaluación de <condición> y ejecución de <instrucciones> hasta que deje de serlo. Cuando sea falsa (false) se pasará a ejecutar la instrucción siguiente al while. En realidad <instrucciones> puede ser una única instrucción o un bloque de instrucciones.

PROBLEMA

Se desea hacer una conversión de una distancia en metros a su equivalente en centímetros y pies. Se solicita desarrollar programas que hagan dichas conversiones, pero que además permitan al usuario realizar el cálculo tantas veces como quiera.

#include <iostream.h>
#include <stdlib.h>
int main()
{
/* Declaración de variables*/
double distancia_metros, distancia_cm, distancia_ft;
int repetir_o_no;
repetir_o_no = 1;
while (repetir_o_no == 1)
{
cout<< "Dame una cantidad en metros \n";
cin>> distancia_metros;
distancia_cm = distancia_metros * 100;
distancia_ft = distancia_metros * 3.048;
cout<<"\n";
cout<<"Su equivalente en centimetros es "<<distancia_cm<<" \n";
cout<<"Su equivalente en pies es "<<distancia_ft<<" \n";
cout<<"\n";
cout<<"Deseas realizar otro calculo similar? \n";
cout<<"Escribe el numero 1 si lo deseas, si no, \n";
cout<<"escribe cualquier otro numero entero \n";
cin>>repetir_o_no;
cout<<"\n";
}
system("PAUSE");
return 0;
}

Análisis del Problema

Datos: distancia_en_metros
Resultados: distancia_en_ft, distancia_en_cm
Formulaciones requeridas:
distancia_en_cm = 100 * distancia_en_metros
distancia_en_ft = 3.048 * distancia_en_metros
Observación: El programa requiere una estructura iterativa para que exista la posibilidad de repetir el cálculo.
Tipo de datos:
Como los tres valores de distancia pueden tener parte fraccionaria, deben de considerarse de tipo numérico de punto flotante. Por otra parte, es necesaria otra variable que se pueda usar en la expresión booleana del ciclo iterativo con al finalidad de decidir si el ciclo se repite o no. Esta variable puede ser ya sea un entero o un caracter.

El mismo ejercicio  utilizando Char

#include <iostream.h>
#include <stdlib.h>
int main()
{
char repetir;
repetir = 's';
while ( (repetir == 's') || (repetir=='S') )
{
cout<< "Dame una cantidad en metros \n";
cin>> distancia_en_metros;
distancia_en_cm = distancia_en_metros * 100;
distancia_en_ft = distancia_en_metros * 3.048;
cout<<"\n";
cout<<"Su equivalente en centimetros es "
<<distancia_en_cm<<" \n";
cout<<"Su equivalente en pies es "
<<distancia_en_ft<<" \n";
cout<<"\n";
cout<<"Deseas realizar otro calculo similar? \n";
cout<<"Escribe la letra s si lo deseas, si no, \n";
cout<<"escribe cualquier otra letra \n";
cin>>repetir;
cout<<"\n";
}
system("PAUSE");
return 0;
}

BUCLE INTERACTIVO DO... WHILE

DO...WHILE

Es una estructura de repetición similar a while en la que primero se ejecutan las sentencias de la estructura y, al final se prueba la condición de repetición. Las acciones se ejecutan al menos una vez.
Formato
do
{
sentencias
while ( condición );
}
Las llaves  { } no requeridos, pero recomendado para la claridad del código.


Explicación:

Expresado en palabras, esto significa: ejecute las proposiciones, luego repita la ejecución mientras la expresión dé un resultado CIERTO. La diferencia fundamental entre esta iteración y la anterior es que el DO-WHILE se ejecuta siempre AL MENOS una vez, sea cual sea el resultado de expresión.

PROBLEMA:
Utilizando do … while, mostrar los números del 0 hasta el 9

#include <iostream.h>
#include <stdlib.h>
int main()
{
int digito;
digito=0;
do
cout<<<"\n";
while (digito<=9);
}
 

Visualizará: 0 1 2 3 4 5 6 7 8 9
 

Ejercicios propuestos:

1. Mostrar los múltiplos de 3 comprendidos entre los números 1 y 20
2. Calcule la suma de los 100 primeros numeros enteros ...
3. Calcule la suma de "N" numeros enteros ingresados desde el teclado ...
4. Calcule la suma de los 100 primeros numeros pares ...

miércoles, 1 de septiembre de 2010

VISUAL C++ ALGUNAS RECOMENDACIONES


ERRORES
Un error muy común con el while, es poner un punto y coma(;) después de la (condicion) ejemplo while(condicion); ←-esto es y causa un error.


LIBRERÍA

stdlib.h (std-lib: standar library o biblioteca estándar) es el archivo de cabecera de la biblioteca estándar de propósito general del lenguaje de programación C. Contiene los prototipos de funciones de C para gestión de memoria dinámica, control de procesos y otras. Es compatible con C++ donde se conoce como cstdlib.

VOID MAIN, INT MAIN...¿CUANDO SE USAN?
En el PROGRAMA principal reside en MAIN.. y por tanto se suele indicar "void" como queriendo decir que no retorna ninguna valor útil...

Observe ejemplos de programación... el int main u otro formato... se usa cuando su programa va a devolver alguna información, cuando es usado "desde fuera"...
aunque talvez en procesos recursivos también tenga su utilidad.
void main () : generalmente lo usan los programadores de borland tc turbo, el programa no indica si a terminado exitosamente o si salió debido a un fallo ya que retorna un valor nulo como estado de salida
main() : implícitamente devuelve int
El programa debiera retornar EXIT_SUCCES (si fue invocada stdlib) o EXIT_FAILURE, o en todo caso 0 y un valor diferente de 0.
int main () // devuelve un entero explícitamente y por claridad de código es el método mas conveniente de declarar un bloque main

OPERADORES
Operadores de relación
·         ==  idéntico
·         !=   diferente
·         <                    Menor que
·         <=  Menor Igual que
Ø       Mayor que
·         >=  Mayor igual que

Operadores lógicos
·         && “and” da como verdadero si ambos miembro de los operandos es verdadero
·         ||                  “or” da como verdadero si al menos uno de los operandos es verdadero
·         !                     “not” niega el resultado del operando

Operadores unitarios
·         ++          incremento de una unidad
·         --           decremento de una unidad
·         ~             complemento de 1
                             A + ~A = -1