1
Primer Año / Re: Programacion en C
« on: July 28, 2020, 04:31:42 am »
Se supone que a este punto tienen un compilador y un editor instalados para poder compilar y ejecutar desde sus lados.
Ejercicio del PSeInt 3
Leer los 5 números que se ingresan por teclado y calcular su promedio.
Codigo | Compilado x64
En este codigo, utilizo dos headers (o bibliotecas standard) de C. stdio.h y math.h.
stdio significa Standard I/O (Input/Output). Nos permite utilizar funciones que envian y reciben datos de la consola. printf(); y scanf(); provienen de ahi.
math nos brinda funciones matematicas avanzadas. En este caso, la funcion trunc(); viene de math.h
Inicializamos dos ints con signo (int significa interger). Su tamaño en bytes varia segun el compilador. En Real-Mode (x16), son 2 bytes. En protected-mode y extended-mode (x32 y x86) son 4 bytes. En long-mode (x64), son 8 bytes.
Despues inicializamos un float para el promedio. Floats y Doubles son los unicos tipos de datos que nos permiten tener decimales.
Ponemos la suma total en 0.
Le escribimos al usuario de que trata el programa. \n significa "carriage return, line feed" o "new line". Hay simbolos especiales que, para utilizarlos, se deben escape-ear con la barra \. Si no tuvieramos la barra, se mostraria una n normal. La barra permite al programa interpretarlo como un enter. De los mas frecuentes, estan:
\n - new line
\t - tab
\0 - null character (importantisimo en strings)
\\ - Muestra la barra (muestra solo una)
scanf(); Con scanf, obtenemos el ingreso del usuario. Scanf tiene dos parametros (y mas opcionales). En el string, se pone el formato de ingreso. Con %d, obtenemos un interger con signo, sin decimales. En el segundo parametro, ponemos la direccion de la variable donde vamos a guardar el dato. & indica address (o la ubicacion de la memoria donde tenemos alojada la variable).
Despues sumamos el ingreso a la suma total. Repetimos esto cinco veces.
En la linea 33, convertimos la suma total en un float, lo dividimos por el total (cinco) para obtener el promedio, y lo almacenamos en la variable average.
Luego recortamos todos los decimales menos dos y verificamos si el numero tiene decimales (comparando el numero truncado con si mismo). Si tiene decimales, mostrarlo en el printf como float. Si no, mostrarlo como un interger comun.
Aca ejecutamos un comando de sistema, "PAUSE" en este caso. Si no estuviera esta linea, en cuanto el programa termine, se cierra. PAUSE pide que el usuario toque una tecla para continuar (en este caso, continuar al fin del programa y cerrarlo).
Ejercicio del PSeInt 3
Leer los 5 números que se ingresan por teclado y calcular su promedio.
Codigo | Compilado x64
Code: js [Installed Languages]
//Leer los 5 números que se ingresan por teclado y calcular su promedio.
#include <stdio.h> //Declaramos que headers incluir
#include <math.h>
void main() { // Indicamos que la funcion principal (main) no tiene return value (void)
int input, add; // Inicializamos dos ints con signo (int significa interger). Su tamaño en bytes varia segun el compilador.
// En Real-Mode (x16), son 2 bytes. En protected-mode y extended-mode (x32 y x86) son 4 bytes. En long-mode (x64), son 8 bytes.
float average; // Despues inicializamos un float para el promedio. Floats y Doubles son los unicos tipos de datos que nos permiten tener decimales.
add = 0; // Ponemos la suma total en 0.
printf("Sumatoria de cinco numeros.\n\nIngrese el primer numero para sumar: "); // Le escribimos al usuario de que trata el programa.
// \n significa "carriage return, line feed" o "new line". Hay simbolos especiales que, para utilizarlos, se deben escape-ear con la barra \.
scanf("%d",&input); // obtenemos el ingreso del usuario. Scanf tiene dos parametros (y mas opcionales).
// En el string, se pone el formato de ingreso. Con %d, obtenemos un interger con signo, sin decimales.
// En el segundo parametro, ponemos la direccion de la variable donde vamos a guardar el dato. & indica address
// (o la ubicacion de la memoria donde tenemos alojada la variable).
add = add + input; // Despues sumamos el ingreso a la suma total. Repetimos esto cinco veces.
printf("Ingrese el segundo numero para sumar: ");
scanf("%d",&input);
add = add + input;
printf("Ingrese el tercer numero para sumar: ");
scanf("%d",&input);
add = add + input;
printf("Ingrese el cuarto numero para sumar: ");
scanf("%d",&input);
add = add + input;
printf("Ingrese el quinto numero para sumar: ");
scanf("%d",&input);
add = add + input;
average = (float)add / 5; // convertimos la suma total en un float, lo dividimos por el total (cinco) para obtener el promedio
//y lo almacenamos en la variable average.
average = roundf(average*100); // Redondeamos a 2 decimales corriendo la coma dos lados
average = average / 100; // Corremos la coma 2 lados
input = trunc(average); // Luego recortamos todos los decimales
//printf("%f",average);
if(average == input) //verificamos si el numero tiene decimales (comparando el numero truncado con si mismo)
printf("\nLa sumatoria de los numeros ingresados es %d\nEl promedio es %d\n\n", add, input); // si no tiene decimales, mostrarlo en el printf como int
else
printf("\nLa sumatoria de los numeros ingresados es %d\nEl promedio es %.2f\n\n", add, average); // si tiene decimales, mostrarlo en el printf como float
system("PAUSE"); // ejecutamos un comando de sistema, "PAUSE" en este caso. Si no estuviera esta linea, en cuanto el programa termine, se cierra.
// PAUSE pide que el usuario toque una tecla para continuar (en este caso, continuar al fin del programa y cerrarlo).
} // FInal definitivo del programa
En este codigo, utilizo dos headers (o bibliotecas standard) de C. stdio.h y math.h.
stdio significa Standard I/O (Input/Output). Nos permite utilizar funciones que envian y reciben datos de la consola. printf(); y scanf(); provienen de ahi.
math nos brinda funciones matematicas avanzadas. En este caso, la funcion trunc(); viene de math.h
Inicializamos dos ints con signo (int significa interger). Su tamaño en bytes varia segun el compilador. En Real-Mode (x16), son 2 bytes. En protected-mode y extended-mode (x32 y x86) son 4 bytes. En long-mode (x64), son 8 bytes.
Despues inicializamos un float para el promedio. Floats y Doubles son los unicos tipos de datos que nos permiten tener decimales.
Ponemos la suma total en 0.
Le escribimos al usuario de que trata el programa. \n significa "carriage return, line feed" o "new line". Hay simbolos especiales que, para utilizarlos, se deben escape-ear con la barra \. Si no tuvieramos la barra, se mostraria una n normal. La barra permite al programa interpretarlo como un enter. De los mas frecuentes, estan:
\n - new line
\t - tab
\0 - null character (importantisimo en strings)
\\ - Muestra la barra (muestra solo una)
scanf(); Con scanf, obtenemos el ingreso del usuario. Scanf tiene dos parametros (y mas opcionales). En el string, se pone el formato de ingreso. Con %d, obtenemos un interger con signo, sin decimales. En el segundo parametro, ponemos la direccion de la variable donde vamos a guardar el dato. & indica address (o la ubicacion de la memoria donde tenemos alojada la variable).
Despues sumamos el ingreso a la suma total. Repetimos esto cinco veces.
En la linea 33, convertimos la suma total en un float, lo dividimos por el total (cinco) para obtener el promedio, y lo almacenamos en la variable average.
Luego recortamos todos los decimales menos dos y verificamos si el numero tiene decimales (comparando el numero truncado con si mismo). Si tiene decimales, mostrarlo en el printf como float. Si no, mostrarlo como un interger comun.
Aca ejecutamos un comando de sistema, "PAUSE" en este caso. Si no estuviera esta linea, en cuanto el programa termine, se cierra. PAUSE pide que el usuario toque una tecla para continuar (en este caso, continuar al fin del programa y cerrarlo).