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.h
para funciones de entrada/salida estándar yconio.h
para la funcióngetch()
. - Se declaran las variables
Num
,Limite
ySum
como enteros sin signo (unsigned short int
). - Se inicializan
Num
en 1 ySum
en 0. - Se solicita al usuario que introduzca el valor límite (
Limite
). - Se utiliza un bucle
while
para iterar mientrasNum
sea menor o igual aLimite
. - Dentro del bucle:
- Se acumula el valor de
Num
enSum
. - Se incrementa
Num
en 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.h
yconio.h
. - Se declaran variables:
pos_x
ypos_y
como enteros sin signo, ym
,b
,vector_x
,vector_y
,ayuda_x
yayuda_y
como flotantes.vector_x
yvector_y
son arreglos de tamaño 10. - Se solicitan al usuario los valores de
m
yb
(pendiente y ordenada al origen de la recta). - Se utiliza un bucle
for
para solicitar al usuario 10 valores de *x* y almacenarlos envector_x
. - Se utiliza otro bucle
for
para 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_x
yvector_y
de acuerdo con los valores devector_y
en orden ascendente. - Finalmente, se imprimen los pares (*x*, *y*) ordenados.
getch()
espera que el usuario presione una tecla.