Solicitud de números con diferentes tipos de bucle.
Se plantea realizar un ejercicio en el cual se ha de solicitar tres números por pantalla y una vez solicitados los mismos se ha de realizar la suma, visualizando a continuación el resultado de la misma, e indicando si el numero resultante es par o impar.
La solución de los ejercicios que se plantean es la siguiente:
// Libreria a utilizar por el programa
#include <stdio.h>
#include <stdlib.h>
// Funcion principal del programa
int main(int argc, char *argv[])
{
// Variables a utilizar por el programa
// Como el programa no solicita que se almacenen los números para
// su posterior consulta, se utiliza una sola variable numérica en vez
// de utilizar una matriz, array o vector
int Numero;
// Se crea una variable numérica para utilizar en los bucles.
int Contador;
// Se crean las variables para almacenar la suma, media, mínimo y máximo
// el tipo de dato a utilizar por la variable que almacena la media de
// las notas lógicamente ha de ser de un tipo que permita decimales
float media;
int suma;
int minimo;
int maximo;
// Se inicializan las variables
media = 0.0;
suma = 0;
minimo = 0;
maximo = 0;
/* ==============================================
Bloque : Solicitud de los números con bucle for
================================================== */
// Se solicitan los números utilizando un bucle for
for(Contador=0;Contador<5;Contador++) {
printf("\nNo. : ");
scanf(" %d",&Numero);
// se realiza la suma de los números introducidos mientras
// se están solicitando los mismos por pantalla
suma += Numero;
// también se podría utilizar el sumatorio de la forma
// tradicional siendo esta: suma = suma + Numero ;
// se comprueba a continuación si el numero introducido
// es el primero y si es así se establecen los valores
// mínimo y máximo, se sabe que es el primer valor
// introducido por el usuario por que el contador de números
// tiene un valor de cero.
if(Contador == 0) {
minimo = Numero;
maximo = Numero;
}
// se comprueba si el numero introducido el el menor
if(Numero < minimo) minimo = Numero;
// se comprueba si el numero introducido es el mayor
if(Numero > maximo) maximo = Numero;
}
// Realizar los cálculos para la media, si se realizara una
// división entre dos números enteros el resultado seria un entero
// asi que para evitar dicha situación, el numero por el cual se
// realiza la división, se hace utilizando un numero en formato flotante
media = suma / 5.0 ;
// Se visualizan los resultados
printf("\nSuma = %d ",suma);
printf("\nMedia = %.2f",media);
printf("\nMinimo = %d",minimo);
printf("\nMaximo = %d\n",maximo);
system("PAUSE");
return 0;
}
A continuación se realiza el mismo ejercicio utilizando en vez del bucle for, el bucle del lenguaje de programación C, do … while :
// Libreria a utilizar por el programa
#include <stdio.h>
#include <stdlib.h>
// Funcion principal del programa
int main(int argc, char *argv[])
{
// Variables a utilizar por el programa
// Como el programa no solicita que se almacenen los números para
// su posterior consulta, se utiliza una sola variable numérica en vez
// de utilizar una matriz, array o vector
int Numero;
// Se crea una variable numérica para utilizar en los bucles.
int Contador;
// Se crean las variables para almacenar la suma, media, mínimo y máximo
// el tipo de dato a utilizar por la variable que almacena la media de
// las notas lógicamente ha de ser de un tipo que permita decimales
float media;
int suma;
int minimo;
int maximo;
// Se inicializan las variables
media = 0.0;
suma = 0;
minimo = 0;
maximo = 0;
/* ==============================================
Bloque : Solicitud de los numeros con bucle do..while
==================================================
A continuación detallamos como se realiza el programa
utilizando en lugar de un bucle for, un bucle do..while
se ha de tener en cuenta que utilizando este tipo de bucle
el contador se ha de inicializar, ya que el bucle no realiza
la inicialización de la variable
*/
Contador = 0;
// Se solicitan los números utilizando un bucle do...while
do {
printf("\nNo. : ");
scanf(" %d",&Numero);
suma += Numero;
if(Contador == 0) {
minimo = Numero;
maximo = Numero;
}
if(Numero < minimo) minimo = Numero;
if(Numero > maximo) maximo = Numero;
Contador++;
} while(Contador<=4);
// Realizar los cálculos para la media, si se realizara una
// división entre dos números enteros el resultado seria un entero
// asi que para evitar dicha situación, el numero por el cual se
// realiza la división, se hace utilizando un numero en formato flotante
media = suma / 5.0 ;
// Se visualizan los resultados
printf("\nSuma = %d ",suma);
printf("\nMedia = %.2f",media);
printf("\nMinimo = %d",minimo);
printf("\nMaximo = %d\n",maximo);
system("PAUSE");
return 0;
}
Y por ultimo presentamos la resolución de la práctica de programación en c, utilizando el bucle while.
// Libreria a utilizar por el programa
#include <stdio.h>
#include <stdlib.h>
// Funcion principal del programa
int main(int argc, char *argv[])
{
// Variables a utilizar por el programa
// Como el programa no solicita que se almacenen los números para
// su posterior consulta, se utiliza una sola variable numérica en vez
// de utilizar una matriz, array o vector
int Numero;
// Se crea una variable numérica para utilizar en los bucles.
int Contador;
// Se crean las variables para almacenar la suma, media, mínimo y máximo
// el tipo de dato a utilizar por la variable que almacena la media de
// las notas lógicamente ha de ser de un tipo que permita decimales
float media;
int suma;
int minimo;
int maximo;
// Se inicializan las variables
media = 0.0;
suma = 0;
minimo = 0;
maximo = 0;
/* ==============================================
Bloque : Solicitud de los numeros con bucle while
==================================================
A continuacion detallamos como se realiza el programa
utilizando en lugar de un bucle for, un bucle while
se ha de tener en cuenta que utilizando este tipo de bucle
el contador se ha de inicializar, ya que el bucle no realiza
la inicializacion de la variable */
Contador = 0;
// Se solicitan los numeros utilizando un bucle while
while(Contador<=4) {
printf("\nNo. : ");
scanf(" %d",&Numero);
suma += Numero;
if(Contador == 0) {
minimo = Numero;
maximo = Numero;
}
if(Numero < minimo) minimo = Numero;
if(Numero > maximo) maximo = Numero;
Contador++;
}
// Realizar los cálculos para la media, si se realizara una
// división entre dos números enteros el resultado seria un entero
// asi que para evitar dicha situación, el numero por el cual se
// realiza la división, se hace utilizando un numero en formato flotante
media = suma / 5.0 ;
// Se visualizan los resultados
printf("\nSuma = %d ",suma);
printf("\nMedia = %.2f",media);
printf("\nMinimo = %d",minimo);
printf("\nMaximo = %d\n",maximo);
system("PAUSE");
return 0;
}
En cualquiera de los tres casos, el resultado del programa ha de ser similar a la imagen que se muestra a continuación.
Las ordenes utilizadas son las siguientes:
Las ordenes y comandos utilizados son los siguientes:
Entre las ordenes utilizadas encontramos las siguientes:
Bucle: FOR (Para)
El bucle for se utiliza como un bucle incondicional siendo la sintaxis del comando la siguiente:
for ( Var_Inicio = Valor ; Condicion ; Incremento ) {
Orden/es...
}
El bucle asigna en primer lugar a Var_Inicio el Valor que se indica posteriormente al símbolo de igual, a continuación se evalúa la condición y si esta se cumple, es decir su resultado es verdadero, se ejecutan las ordenes incluidas entre las llaves que delimitan el comando.
Una vez ejecutadas dichas ordenes, se aplica el Incremento a Var_Inicio y se vuelve a evaluar la condición, repitiéndose así el bucle hasta que la condición de termino del bucle se cumpla.
El siguiente ejemplo realiza la visualización por consola de los números del 1 al 10:
int Contar = 0;
for ( Contar = 1 ; Contar < 11 ; Contar++ ) {
printf("\nNo..: %d",Contar);
}
El siguiente ejemplo realiza la visualización por consola de los números del 10 al 1 en orden inverso de 2 en 2:
int Contar = 0;
for ( Contar = 10 ; Contar > 0 ; Contar-=2 ) {
printf("\nNo...: %d",Contar);
}
Entre las ordenes utilizadas encontramos las siguientes:
Bucle: WHILE (Mientras)
El bucle mientras se utiliza como un bucle condicional siendo la sintaxis del comando la siguiente:
while ( Condicion ) {
Orden/es...
}
El bucle comprueba en primer lugar la condición si esta se cumple, es decir su resultado es verdadero, se ejecutan las ordenes incluidas entre las llaves que delimitan el comando. Una vez ejecutadas las mismas se vuelve a evaluar la condición, repitiéndose así el bucle hasta que la condición que da por finalizado el bucle sea cierta.
El siguiente ejemplo realiza la visualización por consola de los números del 1 al 10:
int Contar = 1;
while ( Contar < 11 ) {
printf("\nNo..: %d",Contar);
Contar++;
}
Es interesante el recalcar que dentro del bucle se ha de incluir la orden que aplica el incremento en este caso, para que la condición
llegue un momento en el que se cumpla, ya que si no encontraríamos un posible bucle infinito, debido a que la condición nunca seria cierta y el bucle no pararía de repetirse, bloqueando así el programa.
El siguiente ejemplo realiza la visualización por consola de los números del 10 al 1 en orden inverso de 2 en 2:
int Contar = 10;
while ( Contar > 0 ) {
printf("\nNo...: %d",Contar);
Contar-=2;
}
Gracias por vuestra visita y un saludo!!!