lunes, 10 de septiembre de 2007

Practica 8: Ejercicios con Estructura FOR.

Materia: Lógica Computacional.
Profesor: Lic. Salomón Aquino.

Objetivos. Al finalizar la práctica los estudiantes serán capaces de:
• Resolver Problemas usando estructuras desde con contadores y acumuladores.

Repetición: El bucle For.
Es el bucle más adecuado para implementar bucles controlados por contador que son bucles en los que un conjunto de sentencias se ejecutan una vez por cada valor de un rango especificado.
Es quizá la más frecuente estructura usada para crear ciclos en C. Esta sentencia incluye una expresión que especifica el valor inicial de un índice, otra expresión que determina cuándo se continúa o no el bucle y una tercera expresión que permite que el índice se modifique al final de cada pasada.
De forma general el ciclo FOR se representaría así:

for ( [valor inicial]; [valor final]; [incremento o decremento])
sentencia;

Y en el caso que el ciclo FOR esté compuesto por más de una línea de sentencias se escribiría así:
for ([valor inicial]; [valor final]; [incremento o decremento])
{
sentencia 1;
sentencia 2;
sentencia N;
}
La inicialización indica una variable (variable de control) que condiciona la repetición del bucle. Si hay más, van separadas por comas:

for (a=1,b=100;a!=b;a++,b- -){
Normalmente se utilizan los bucles For siempre que exista un número necesario y predefinido de iteraciones.
Ejemplo 1:
El siguiente ejemplo muestra como utilizar el for para mostrar un listado de números del 1 al 15.
#include stdio.h>
#include stdlib.h>
main ()
{
int i;
printf ("Numeros del 1 al 15\n\n\n");
for (i=1;i<=15;i++)
printf ("%d\n",i);
system(“pause”);
return 0;
}

Ejemplo 2:
Escriba un programa que escriba los números del 15 al 1 (descendente).
#include stdio.h>
#include stdlib.h>
main ()
{
int i;
printf ("Numeros del 15 al 1\n\n\n");
for (i=15;i>=1;i--)
printf ("%d\n",i);
system(“pause”);
return 0;
}
Ejemplo 3. El siguiente ejemplo suma los cinco primeros números enteros.
#include stdio.h>
#include stdlib.h>
main ()
{
int isuma,ivalor;
isuma=0;
for (ivalor=1; ivalor<=5; ivalor++)
{
isuma+= ivalor;
printf(“\n%d”,isuma);
}
Printf(“\n”);
system(“pause”);
return 0;
}
En C++ se podría haber escrito el fragmento de código del for, de la siguiente manera:
For (int ivalor=1; ivalor<=5; ivalor++);
C++ permite declarar e inicializar la variable de control del bucle dentro del bucle for. Se pueden declarar variables inmediatamente antes de la instrucción que realmente las utiliza.
Los rangos de incremento/ decremento de la variable o expresión de control del bucle pueden ser cualquier valor y no siempre 1, por ejemplo:
#include stdio.h>
#include stdlib.h>
main()
{
int n;
for (n=0; n<100; n+=20)
printf("%d \t %d \n", n, n*n);
system(“pause”);
return 0;
}
Otros ejemplos:
1) int c;
for (c=’A’; c<=’Z’; c++)
printf("%c", c);
2) for (i=9; I>=0; I-=3)
printf("%d", (i*i));
3) for (i=1; i<100; I*=2)
printf("%d", i);
4) # define MAX 25
int i,j;
for (i=0, j=MAX; i<=j; i++,j--)
printf("%d", (i+2*j));
5) double p;
for (p=0.75; p<=5; p+=0.25)
printf(“la respuesta es: %.21f”,p);
6) double x;
for (x=pow(y,3.0); x>2.0; x=sqrt(x))
printf(“x vale %.5e”,x);
Naturalmente, cuando la variable de control no es de tipo int, se tendrán menos garantías de precisión.
Se debe tener cuidado con el uso de las condiciones del bucle For, ya que debemos estar seguros de que en algún momento el bucle terminará y no que seguirá ejecutándose infinitamente. Por eso no es recomendable modificar la condición de incremento como parte de las instrucciones del cuerpo del ciclo, o se corre el riesgo de que se vuelva infinito.

Para abortar un bucle infinito se presiona CTRL + C

La sentencia Continue hace que la ejecución de un bucle vuelva a la cabecera del bucle.
Ejemplo:
#include stdio.h>
#include stdlib.h>
int main()
{
int clave,i;
puts ("introduzca -9 para finalizar");
clave =1;
for (i=0; i<8; i++){
if (clave== -9) continue;
scanf("%d", &clave);
printf("clave %d\n",clave);
}
printf("valores finales i=%d clave=%d", i,clave);
system(“pause”);
return 0;
}
Ejemplo 6
El siguiente ejemplo nos pide una cadena de 10 caracteres y nos muestra dicha cadena en forma invertida.

/* Uso de la sentencia FOR. */
#include stdio.h>
#include stdlib.h>
#define ctam_array 10

int main ()
{
int idespl;
char carray[ctam_array];
printf("Escriba una palabra de 10 espacios:\n");
for (idespl=0; idespl carray[idespl]=getchar();
for (idespl=ctam_array -1; idespl>=0;idespl--)
putchar(carray[idespl]);
printf("\n");
system("pause");
return 0;
}

EJERCICIOS

Desarrolla los siguientes programas:
1. Escriba un programa que pida N números y nos diga cuál es el mayor y cuál es el menor y la posición en que fueron leidos cada uno.
2. Escriba un programa que pida las notas y nombres de cinco alumnos y calcule el promedio general.
3. Escriba un programa que presente en pantalla la tabla de multiplicar entre 1 y 10, requerida por el usuario.
4. Escribir un programa que visualice un triángulo isósceles de 10 filas, como se muestra a continuación:
*
**
***
****
*****
******
*******
********
*********
**********

42 comentarios:

Beatriz dijo...

Imprimir 10 veces la secuencia de 1 a 10
...

mi pregunta es como puedo imprimir o repetir diez veces
12345678910
12345678910
12345678910..

asi..
saludos me gusto tu blog


byebye!
cicklaly.

Anónimo dijo...

se tiene 30numeros se quiere saberdelos ultimos 25 numeros cuales son divisible por 5 y de los primeros obtener su suma

Anónimo dijo...

como sacar loa numeros pares del 100 al 10000

Anónimo dijo...

Esto va para Beatriz..

ese ejercicio que te piden hacer es bastante sencillo

int main(...)

{ int i,j;

for (i=10; i>= 10; i--)
{
for( j=1;j<=10;j++)
printf("%d",j); // Aqui imprime los valores en la varieble "j"
printf("\n");
}

si te das cuenta e anidado un for dentro de otro. El primer for va repetir "En este caso" 10 veces el que esta dentro. El que esta anidado me va ayudar a imprimir del (<1 al 10> luego un enter) esto lo va realizar por diez veces, y ya esta el problema =)!

Saludos!!!

Joaquin Cervantes Moreno.

Anónimo dijo...

Esto va para el que quiere sacar los numeros pares del 100 al 10000.

la aplicacion de este ejercicio es sencillo

int main(...)
{
for(int i=100; i<=1000; i=i+2)
{
printf("%d ",i);
}
_getch();
return 0;
}

bueno no se tu nombre asi que solo t dire hola xD

bueno el problema que te mandaron no esta PROBLEMATICO es simple logica....


en el "for" que he utilizado la variable la estoy contando a partir del 100 si te das cuenta (i=100) luego pongo la condicion de que sea hasta que sea menor o igual a 1000, y al final pongo de cuanto en cuanto vayya contando, en este caso hago que valla de dos en dos, cosa que a ti an pedido (i=i+2). Bueno eso es todo...cualquier consulta a mi correo:


Joaquin Cervantes Moreno Peru
joaking.0192@hotmail.com

Anónimo dijo...

Alguien me puede decir como hago esto ejemplo en c++:

*
**
***
****
*****
******
*******
Es asi xfa una ayuda si bye.

TEC. EDUARDO CORTES dijo...

TENGO VARIOS PROBLEMAS NO SE SI ME LOS PUEDAS SOLUCIONAR TU TODOS PORQUE YO POR MAS QUE LE PIENSO NO ME SALEN LOS CODIGOS;
EL PRIMER PROGRAMA TIENE QUE DECIR LO SIGUIENTE:

CUAL ES EL NOMBRE DE TU PERRO"____"

CLINICA SANTO TOMAS

EL NOMBRE DEL PACIENTE ES: "______"

EL SIGUIENTE PROGRAMA QUE IMPRIMA DEL 15 AL 20 PERO ESE YA LO TENGO.

EL SIGUIENTE PROGRAMA TRATA DE QUE IMPRIMA LOS VALORES DE X:Y Y EL USUARIO TIENE QUE INGRESAR YA EN EL PROGRAMA EN EJECUCION LOS VALORES PARA X Y EL VALOR PARA Y.
__________________________________
INTRODUCE EL VALOR DE X: "__"
INTRODUCE EL VALOR DE Y: "__"

*
*
*
*
*
*

EL SIGUIENTE PROGRAMA TRATA DE QUE CON LA ESTRUCTURA swich case TENGAMOS TRES OPCIONES EN PANTALLA:
A)AGUA
B)CIELO
C)TIERRA
Y DEACUERDO AL INCISO COLOCAR LA LETRA QUE DESEEMOS Y APARESCA EN LA SIGUIENTE LINEA EL TEXTO ESCOJIDO.

Y COMO VERAS SON ALGO COMPLEJOS POR LO MENOS PARA MI PORFAVOR TE LO AGRADECERIA MUCHISIMO SI ME PUEDES AYUDAR. PORFAVOR LO NESECITO MUCHO ME LO PODRIAS MANDAR A MI CORREO Y TE CONSIGO MUCHA GENTE QUE TE VISITE SALE Y VALE
almacorts@hotmail.com

Anónimo dijo...

HOLA KIEN ME PUEDE AYUDAR A RESOLVER ESTOS EJERCICIOS PERO NO KIER QUE ESTEN EN NINGUN LENGUAJE DE PROGRAMACION SOLO KIERO LOS PASOS SENCILLOS DE COMO HACERLOS KIERO UN ALGORITMO M URGEN ME PUEDEN AYUDAR!!!!

Desarrolla los siguientes ejercicios:
1. Escriba un programa que pida N números y nos diga cuál es el mayor y cuál es el menor y la posición en que fueron leidos cada uno.
2. Escriba un programa que pida las notas y nombres de cinco alumnos y calcule el promedio general.
3. Escriba un programa que presente en pantalla la tabla de multiplicar entre 1 y 10, requerida por el usuario.
4. Escribir un programa que visualice un triángulo isósceles de 10 filas, como se muestra a continuación:
*
**
***
****
*****
******
*******
********
*********
**********

Anónimo dijo...

jajaja kien kiera que seas xD mejor ponete hacerlos que el ingeniero a las 12 los kiere jajaja inepto !!!!!!

Anónimo dijo...

mag de alfo....

Anónimo dijo...

aki se esta pára resolver los problemas no para insultar a las personas q vs que te importa si es la tarea de alguien, concentrate en tu vida i en tus cosas no seas METIDO porque si andavas por aqui es porq al igual q los demas necesitas ayuda, no ibas de paso...

Anónimo dijo...

quien puede ayudarme con estos problemas....
8.- Escriba un programa que solicite un valor entero y haga lo siguiente: si el número es positivo encuentre todas las sumas de números enteros positivos consecutivos hacia la derecha (orden ascendente) que den el número introducido, por ejemplo: 50 = 8 + 9 + 10 + 11 + 12 y 50 = 11 + 12 + 13 + 14; si el número es negativo éste encuentre todas las sumas de número enteros negativos consecutivos hacia la izquierda (orden descendente) que den el número introducido, por ejemplo: -50 = -8 - 9 - 10 - 11 - 12 y -50 = -11 - 12 - 13 – 14; pero si no existe ninguna suma imprima que no es posible obtenerla.

9.- Haga un programa que solicite un valor entero positivo en base decimal e imprima su equivalente en base binaria, por ejemplo: 13 en base decimal es equivalente a 1101 en base binaria. Restricción: no haga uso de arreglos, utilice aritmética de bits.

10.- Codifique un programa que solicite un valor entero positivo k y en base a ese valor realice lo siguiente: escriba los números desde 1 hasta el valor k, cada uno tantas veces como indique su propio valor; y calcule la suma y la multiplicación de ellos. Por ejemplo, si k = 4, debe obtenerse la salida:

1 = 1, 1 = 1
2 + 2 = 4, 2 x 2 = 4
3 + 3 + 3 = 9, 3 x 3 x 3 = 27
4 + 4 + 4 + 4 = 16, 4 x 4 x 4 x 4 = 256
Ayuda please!!!!!!

Anónimo dijo...

Hola,

Estoy cursando primer semestre de Tecnologias de la informacion,

Me gustaria ver si me puedes ayudar con algunas cosas que no me quedan muy claras...

Cual es la diferencia de un ciclo While, do while y For y si me pueden dar un ejemplo sencillos de cada uno...

Gracias, Saludos

beyker dijo...

me llama la atencion la programacion y todo lo relacionado con la informatica pero nunca aprendi a programar...se me hace dificil los siclos repetitivos..podrian subir un tutorial basico de programacion...graciass

Anónimo dijo...

esta mal en el programa k repite 10 veces la secuencia de numeros
for(i=10;i<=10;i--) ps se cicla

Melanie dijo...

em hola tengo muchos problemas con esto de la programación no se me da en lo más minimo y quisiera saber si me pudieras ayudar en esto bueno.. mas bien si me podrias proporcionar un ejemplo asi facil facil de como usar la sentencia for para ir aprendiendo como se utiliza.. si porfas te lo agradeceria mucho =)*****

Anónimo dijo...

HOLA TENGO MUCHOS PROBLEMAS CON VISUAL BASIC Y QUIERO QUE ME AYUDES UN POCO SI PUEDES GRACIAS

Anónimo dijo...

hola quisiera saber como hago una calculadora con todas las operaciones

Anónimo dijo...

yo entiendo pero a la hora del examen me vuelvo un 8 y no soy capaz de resolverlo...

Anónimo dijo...

alguien que me ayude con la resolucion de la piramide isoceles en dfd o como deberia ser laq extructura

LoBiitho Peciioso dijo...

no se como hacer los ejerc de logica

Anónimo dijo...

bueno trabajoooo pude pasar grasia a tip

deystar dijo...

qui esta el programa de los
*
**
***
****
*****
******
# include
# include
# include
main ()
{
int n, i,c,x,a,j,b;
cout<<"Ingrese un numero: ";
cin>>n;
c=1;
a=1;
b=n;
do

{
for (c=1;c<=a;c++)
{
cout<<"*";
}


a=a+1;
cout<<"\n";
}

while (c<=n);
getch ();
}

deystar dijo...

# include
# include
# include
main ()
{
int n, i,c,x,a,j,b;
cout<<"Ingrese un numero: ";
cin>>n;
c=1;
a=1;
b=n;
do

{
for (c=1;c<=a;c++)
{
cout<<"*";
}


a=a+1;
cout<<"\n";
}

while (c<=n);
getch ();
}

Anónimo dijo...

Asking questions are truly good thing if you are not understanding anything totally,
however this article provides fastidious understanding yet.
Here is my weblog - daily intake values

Anónimo dijo...

Heya i'm for the first time here. I found this board and I find It truly useful & it helped me out a lot. I hope to give something back and aid others like you aided me.
My webpage - local seo services

Anónimo dijo...

Hey! Someone in my Facebook group shared this site with us so
I came to look it over. I'm definitely enjoying the information. I'm book-marking
and will be tweeting this to my followers! Excellent blog and brilliant style and design.
Feel free to visit my blog post :: insurance traditional

Anónimo dijo...

I like the valuable info you supply on your articles.
I will bookmark your blog and take a look at again right here frequently.
I am somewhat sure I'll be informed lots of new stuff right here! Good luck for the following!
My site freedesktop.org

Anónimo dijo...

I've been surfing on-line greater than 3 hours nowadays, yet I never discovered any attention-grabbing article like yours. It's pretty value enough
for me. In my opinion, if all website owners and bloggers made just right
content as you probably did, the web can be much more helpful than ever before.


Feel free to surf to my web site :: laser therapy quit smoking
my site :: teenagers and smoking

Anónimo dijo...

These are genuinely great ideas in about blogging. You have
touched some pleasant factors here. Any way keep up wrinting.


my weblog ... phobos.xtec.cat

Anónimo dijo...

Heya i am for the primary time here. I came across this board and I in finding It really helpful & it helped me out much.
I am hoping to give one thing back and aid others such as you helped me.


Review my webpage coffee flavors

Anónimo dijo...

This aгticle is trulу a good one it aѕsists new ωeb vіsitors, who are ωіshing іn favоr of blogging.


Fеel frеe to suгf to my webpagе ::
leaf tea for weight loss

Anónimo dijo...

Magnіficеnt beat ! I wіsh to apprеntice while уοu аmend
youг wеbsitе, how cаn i subѕcribе for a
blοg websіte? The account aideԁ me а
acceρtable deal. I had been tiny bit acquainted of
this your broadcast ргovidеԁ bгіght
clеar concept

my ωeb blog - vitamin shoppe coupons

Anónimo dijo...

I knοw this websitе provides qualitу depending content and οthеr data, is
theгe anу othеr website which offers such infoгmation in qualіty?



Mу web blog: current vitamin shoppe coupon codes

Anónimo dijo...

Hі theгe tο еvery one, sinсe I am aсtuallу eagеr
of reading this blοg's post to be updated on a regular basis. It includes pleasant information.

Here is my blog post: Vistaprint coupons

Anónimo dijo...

Gгeаt poѕt.

Also visit my рage: vistaprint coupon code

Anónimo dijo...

Great article. I will be facing a few of these issues
as well.. ageless male -
ageless male - male ingredients

Take a look at my web page ... ageless male

Anónimo dijo...

Hi there і am kavіn, іts my fігѕt
оccasion to commenting аnуwhere, ωhen
i read this post i thought i could alѕo create cоmment due to this sensiblе рost.



mу site - green coffee scam

Anónimo dijo...

Hi, the whole thing is going fine here and ofcourse every
one is sharing data, that's actually fine, keep up writing.

Here is my web site: http://whitecoatresearch.com/?p=25

Anónimo dijo...

This text is invaluable. How can I find out more?

Here is my web page: This Internet Site

Anónimo dijo...

Keyword stuffing is frowned upon by Google and also lowers the quality of coverage.

Creating what is blog beast MacGregor Literary was a
natural step for a book," Live from Jordan: Letters Home from My Journey Through the Middle East, and now Teri's back on stage. Achieving blog success online, it is hard to include any top celebrity blog list without Perez Hilton.

Anónimo dijo...

Ayúdenme por favor hacer dos tarea que tengo no le entiendo me confundo.... ://
1.- Diseñar un programa que imprima los números del 1 al 10.
2.- Diseñar un programa que imprima los números de 10 al 1.