0% encontró este documento útil (0 votos)
10 vistas7 páginas

Programas en C para cálculos matemáticos

El documento presenta tres programas en C que resuelven diferentes problemas matemáticos: 1) calcular la caída de potencial según la ley de Ohm, 2) mostrar el carácter y código ASCII introducido, 3) calcular las raíces de una ecuación de segundo grado y determinar si son reales o imaginarias.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas7 páginas

Programas en C para cálculos matemáticos

El documento presenta tres programas en C que resuelven diferentes problemas matemáticos: 1) calcular la caída de potencial según la ley de Ohm, 2) mostrar el carácter y código ASCII introducido, 3) calcular las raíces de una ecuación de segundo grado y determinar si son reales o imaginarias.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Crear un programa que calcule la cada de potencial producida por una resistencia segn la ley de

Ohm (V = I * R) a partir de la resistencia y la intensidad que pasa a su travs.


#include <stdio.h>
int main(void)
{
//Declaro variables:
float I, R, V;
//Pido datos:
printf("Resistencia: "); scanf("%f", &R);
printf("Corriente: "); scanf("%f", &I);
//Realizo el algoritmo y muestro resultados:
//Si la resistencia est entre 0 y 1000
if(R>0 && R<1000)
{
//Calculo la cada de potencial y muestro el resultado:
V = I*R;
printf("%.2f (amp) x %.2f (ohm) = %.2f (voltios)\n\n", I,
R, V);

}
//Sino
else
{

limites.\n\n");

//Muestro el mensaje de error y


printf("El valor de la resistencia est fuera de
//Si la resistencia es menor 0
if (R <= 0)
//Muestro el mensaje de resistencia negativa
printf("La resistencia introducida es

negativa\n\n");

//Sino
else

grande.\n\n");
}
}

return 0;

//Muestro el mensaje de resistencia mayor a 1000


printf("La resistencia introducida es demasiado

Pedir un carcter por teclado y mostrar un mensaje que muestre el


carcter introducido as como su cdigo ASCII tanto en formato decimal
como hexadecimal.

#include <stdio.h>
#include <conio.h>
int main(void)
{
//Declaro variables:
char a;
//Pido dato:
printf("Ingrese un caracter: "); a = getche();
//Muestro resultados:
printf("\n\nCaracter introducido: %c\nSu codigo ASCII en decimal:
%d\nSu codigo ASCII en hexadecimal: %x\n\n", a, a, a);
}

return 1;

Escribir un programa que calcule las races, bien reales o imaginarias,


de una ecuacin de segundo grado.
#include <stdio.h>
#include <math.h>
int main(void)
{
//Declaro variables:
float a, b, c, r1, r2, i1, i2;

&a);
&b);

//Pido datos:
printf("Ingrese el coeficiente de segundo grado: "); scanf("%f",
printf("Ingrese el coeficiente de primer grado: "); scanf("%f",
printf("Ingrese el termino independiente: "); scanf("%f", &c);

races

%.2f",
%.2f",
races

//Veo si el coeficiente de segundo grado es 0


if (a == 0)
{
//Si es 0, la ecuacin es de primer grado
printf("\nLa ecuacin es de primer grado");
r1 = -c/b;
printf("\nSolucion: %.2f\n", r1);
}
else //Sino la ecuacin es de segundo grado
{
printf("\nLa ecuacin es de segundo grado\n");
if (b*b - 4*a*c < 0) //Si el discriminante es negativo las
son complejas
{
//Calculo la parte real de las soluciones:
r1 = -b/(2*a);
r2 = r1;
//Calculo la parte imaginaria de las soluciones:
i1 = pow(4*a*c - b*b, 0.5)/(2*a);
i2 = -pow(4*a*c - b*b, 0.5)/(2*a);
//Muestro las races complejas:
printf("\nRaiz compleja 1:\n");
printf("\nParte real = %.2f\tParte imaginaria =
r1, i1);
printf("\n\nRaiz compleja 2:\n");
printf("\nParte real = %.2f\tParte imaginaria =
r2, i2);
}
else //Si el discriminante es mayor o igual a 0, las
son reales
{
//Calculo las races reales
r1 = (-b + pow(b*b - 4*a*c, .5))/(2*a);
r2 = (-b - pow(b*b - 4*a*c, .5))/(2*a);
//Muestro las races reales:
printf("\nraiz 1 = %.2f\n", r1);
printf("\nraiz 2 = %.2f\n", r2);
}

}
return 0;
}

Digitar desde el teclado las coordenadas (x, y) de un punto y, mediante


un men, elegir una entre las siguientes opciones:
Comprobar si el punto pertenece a una circunferencia de radio 10 y
centro (0,0)
Averiguar el cuadrante en el que se encuentra el punto.
Pasar las coordenadas cartesianas (x, y) a polares (r, arg).
#include <stdio.h>
#include <math.h>
#define pi 3.141596
int main(void)
{
//Declaracin de variables
float x, y, r, arg;
int opcion;
//Peticin de datos
printf("\nIngrese x: \n"); scanf("%f", &x);
printf("\nIngrese y: \n"); scanf("%f", &y);
//Muestro el men:
printf("\n\nMenu:\n\n");
printf("\n1. Comprobar si el punto pertenece a una circunferencia
de radio 10 y centro (0,0)");
printf("\n2. Averiguar el cuadrante en el que se encuentra el
punto");
printf("\n3. Pasar las coordenadas cartesianas (x, y) a polares
(r, arg)");
printf("\n\nEscoja una opcion: "); scanf("%d", &opcion);
if (opcion == 1)
{
//Compruebo si el punto pertenece a la circunferencia
if ( x*x + y*y == 100)
printf("\nEl punto pertenece a la
circunferencia\n\n");
else
printf("\nEl punto NO pertenece a la
circunferencia\n\n");
}
else if (opcion == 2)
{
//Averiguo cuadrante
if(x>0 && y>0)
printf("\nEl punto esta en el primer
cuadrante\n\n");
else if(x<0 && y>0)
printf("\nEl punto esta en el segundo
cuadrante\n\n");
else if (x<0 && y<0)
printf("\nEl punto esta en el tercer
cuadrante\n\n");
else

printf("\nEl punto esta en el cuarto


cuadrante\n\n");
}
else
{
//Cambiar de coordenadas
r = sqrt(x*x + y*y); //sqrt calcula la raz cuadrada y
necesita la libreria math
arg = atan(y/x);
//Muestro la transformacin:
printf("\nr = %.2f\n\n", r);
printf("\narg = %.2f\n\n", arg*180/pi);
}
return 0;
}

Common questions

Con tecnología de IA

El programa solicita al usuario que introduzca un carácter. A continuación, utiliza la función getche() para capturar este carácter directamente desde el teclado, lo cual permite su lectura y almacenamiento. Luego, usando printf, muestra el carácter y su código ASCII en formato decimal (%d) y hexadecimal (%x).

Para determinar si un punto dado pertenece a una circunferencia de radio 10 con centro en el origen, el programa calculado verifica la condición matemática x² + y² = 100. Si esta igualdad se cumple, el punto está sobre la circunferencia. El programa solicita las coordenadas x e y del punto, luego selecciona la opción correspondiente en un menú y realiza la comprobación .

El programa calcula x² + y² y lo compara con el cuadrado del radio de la circunferencia (100). Si ambos son iguales, asegura que el punto pertenece exactamente a la circunferencia. Sin embargo, debido a la naturaleza de los números flotantes, la exactitud puede depender de los valores específicos de x e y introducidos, especialmente en los bordes del círculo .

Si se introduce un valor negativo para la resistencia, el programa muestra un mensaje que indica 'La resistencia introducida es negativa'. Esta verificación se realiza para asegurar que el valor de la resistencia está dentro del rango permitido, que es mayor a 0 y menor a 1000 ohmios .

Cuando el discriminante de la ecuación cuadrática (b² - 4ac) es negativo, el programa determina que las raíces son complejas. Calcula la parte real como r1 = -b/(2a) y la parte imaginaria como i1 = sqrt(4ac - b²)/(2a), mostrando estas partes como componentes de raíces complejas separadamente .

Para identificar el cuadrante de un punto, el programa evalúa las coordenadas x e y. Si x>0 e y>0, el punto está en el primer cuadrante; si x<0 e y>0, se encuentra en el segundo cuadrante; si x<0 e y<0, en el tercer cuadrante; y si x>0 e y<0, está en el cuarto cuadrante. El programa utiliza sentencias condicionales para realizar estas verificaciones .

El uso de 'else' después de verificar que el discriminante es negativo (para comprobar si es no-negativo) permite una estructura controlada que previene cálculos innecesarios si el discriminante ya fue evaluado como negativo. Esto mejora la legibilidad y evita el sobreproceso, optimizando el flujo del programa al calcular sólo si es necesario .

El programa primero verifica si el coeficiente a de la variable de segundo grado es cero. Si es cero, supone que la ecuación es de primer grado, calculando la solución como -c/b. Esto evita un error de división por cero al calcular las raíces de una supuesta ecuación cuadrática si a es cero .

El programa convierte coordenadas cartesianas (x, y) a polares calculando primero el radio (r) usando la fórmula r = sqrt(x² + y²) y luego el argumento (arg) usando la función atan(y/x). Este argumento se convierte de radianes a grados multiplicando por 180/pi para su impresión .

El programa limita el valor de la resistencia a un rango entre 0 y 1000 ohmios. Si la resistencia es menor o igual a 0, se indica que la resistencia es negativa; si es mayor a 1000, se informa que es demasiado grande. Esto asegura que se eviten errores al calcular la caída de potencial .

También podría gustarte