Suma de Números Naturales y Ordenamiento de Vectores en C: Códigos Explicados
Clasificado en Matemáticas
Escrito el en
español con un tamaño de 4,76 KB
Suma de los Primeros Números Naturales en C
Código 1: Suma de los Primeros *n* Números Naturales
Este programa calcula la suma de los primeros números naturales hasta un límite especificado por el usuario.
#include <stdio.h>
#include <conio.h>
unsigned short int Num;
unsigned short int Limite;
unsigned short int Sum;
void main() {
Num = 1;
Sum = 0;
printf("Introduzca el valor límite para calcular la suma de todos los naturales: ");
scanf("%hu", &Limite);
while (Num <= Limite) {
Sum = Sum + Num; // Sum += Num;
Num = Num + 1; // Num++; (post-incremento) o ++Num; (pre-incremento)
// incrementa el valor de la variable en una unidad
// Sum = Sum + (Num++); // Suponiendo que Num vale 5 y Sum = 0
// Sum += (Num++); Suma quedaría con 5 y Num quedaría con 6
// Sum += (++Num); Suma quedaría con 6 y Num quedaría con 6
}
printf("La suma de los %hu primeros números naturales es: %hu", Limite, Sum);
getch();
}
Explicación del Código
- Se incluyen las bibliotecas
stdio.hpara funciones de entrada/salida estándar yconio.hpara la funcióngetch(). - Se declaran las variables
Num,LimiteySumcomo enteros sin signo (unsigned short int). - Se inicializan
Numen 1 ySumen 0. - Se solicita al usuario que introduzca el valor límite (
Limite). - Se utiliza un bucle
whilepara iterar mientrasNumsea menor o igual aLimite. - Dentro del bucle:
- Se acumula el valor de
NumenSum. - Se incrementa
Numen 1.
- Se acumula el valor de
- Se imprime el resultado de la suma.
getch()espera que el usuario presione una tecla antes de finalizar el programa.
Cálculo y Ordenamiento de Vectores en C
Código 2: Cálculo de Valores de *y* y Ordenamiento de Vectores
Este programa calcula los valores de *y* para una serie de valores de *x* dados, utilizando la ecuación de una recta (*y = mx + b*), y luego ordena los pares (*x*, *y*) de menor a mayor según los valores de *y*.
#include <stdio.h>
#include <string.h>
#include <conio.h>
unsigned short int pos_x, pos_y;
float m, b, vector_x[10], vector_y[10], ayuda_x, ayuda_y;
void main() {
printf("Introduzca un valor m: \n");
scanf("%f", &m);
printf("Introduzca un valor b: \n");
scanf("%f", &b);
for (pos_x = 0; pos_x < 10; pos_x++) {
printf("Introduzca un valor de x: \n");
scanf("%f", &vector_x[pos_x]);
}
for (pos_y = 0; pos_y < 10; pos_y++) {
vector_y[pos_y] = m * vector_x[pos_y] + b;
// printf("%2.2f", vector_y[pos_y]); --> Muestra los resultados de las y
}
for (pos_x = 0; pos_x < 10 - 1; pos_x++) {
for (pos_y = 0; pos_y < 10 - 1 - pos_x; pos_y++) {
if (vector_y[pos_y] > vector_y[pos_y + 1]) {
ayuda_x = vector_x[pos_y + 1];
vector_x[pos_y + 1] = vector_x[pos_y];
vector_x[pos_y] = ayuda_x;
ayuda_y = vector_y[pos_y + 1];
vector_y[pos_y + 1] = vector_y[pos_y];
vector_y[pos_y] = ayuda_y;
}
}
}
for (pos_x = 0; pos_x < 10; pos_x++) {
printf("x= %2.2f y= %2.2f\n", vector_x[pos_x], vector_y[pos_x]);
}
getch();
}
Explicación del Código
- Se incluyen las bibliotecas
stdio.h,string.hyconio.h. - Se declaran variables:
pos_xypos_ycomo enteros sin signo, ym,b,vector_x,vector_y,ayuda_xyayuda_ycomo flotantes.vector_xyvector_yson arreglos de tamaño 10. - Se solicitan al usuario los valores de
myb(pendiente y ordenada al origen de la recta). - Se utiliza un bucle
forpara solicitar al usuario 10 valores de *x* y almacenarlos envector_x. - Se utiliza otro bucle
forpara calcular los correspondientes valores de *y* usando la ecuación *y = mx + b* y almacenarlos envector_y. - Se implementa el algoritmo de ordenamiento burbuja para ordenar los vectores
vector_xyvector_yde acuerdo con los valores devector_yen orden ascendente. - Finalmente, se imprimen los pares (*x*, *y*) ordenados.
getch()espera que el usuario presione una tecla.