Calculo de operaciones con puntos en lenguaje c
Enviado por miguelponce696 • 28 de Marzo de 2021 • Trabajo • 9.504 Palabras (39 Páginas) • 383 Visitas
[pic 1][pic 2]
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
FUNDAMENTOS DE PROGRAMACIÓN
PONCE ORTEGA MIGUEL ANGEL
1CV14
PRACTICA FINAL DE PUNTOS
[pic 3]
INTRODUCCION
El Siguiente pseudocódigo simula la creación de n° puntos ingresados por el usuario tanto aleatoriamente como manualmente y posterior a eso el cálculo entre 2 puntos seleccionados usuario para así calcular el módulo, Angulo, suma, resta, multiplicación y división de esos 2 puntos, así como la distancia entre todos los puntos ingresados y la distancia mínima entre todos los puntos.
DESARROLLO
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
void modulo(float *x,float *y,float *mod,int i);
void angulo(float *x,float *y,float *mod,int i);
void distancia(float *x,float *y,float *dis,int e,int u,int i);
void suma(float *x,float *y,float *sumx,float *sumy,int u,int i);
void resta(float *x,float *y,float *resx,float *resy,int u,int i);
int main(){
float *x,*y,*mod,*angu,*dis,*sumx,*sumy,*resx,*resy,*dismen;
float menor=0,divmod=0,divang=0,multimod=0,multiang=0;
int opcion=0,puntos=0,i=0,total=0;
int resultado=0,o=0,u=0,e=0,j=0;
FILE *fp,*ft;
char espacio={" "};
srand (time(NULL));
printf("PRACTICA FINAL DE PUNTOS\n");
do {
printf("\n\nSeleccione el numero correspondiente a la forma del llenado de los puntos:\n");
printf("1.- Genera lista de puntos aleatoriamente.\n");
printf("2.- Genera lista de puntos manualmente.\n");
printf("3.- Obtener puntos de archivo.\n");
printf("4.- Suma puntos.\n");
printf("5.- Resta puntos.\n");
printf("6.- Multiplica puntos.\n");
printf("7.- Divide puntos.\n");
printf("8.- Determina distancia entre puntos.\n");
printf("9.- Determina la menor distancia entre puntos.\n");
printf("10.- Imprime detalles de puntos.\n");
printf("11.- Salir.\n");
inicio:
scanf("%d",&opcion);
switch(opcion) {
case 1:
printf("Ingrese el numero total de puntos a utilizar.\n");
scanf("%d",&puntos);
x = (float *) malloc(puntos*sizeof(float));
y = (float *) malloc(puntos*sizeof(float));
mod = (float *) malloc(puntos*sizeof(float));
angu = (float *) malloc(puntos*sizeof(float));
if(x==NULL)exit(1);
if(y==NULL)exit(1);
for(i=0; i<puntos ; i++) /*ingreso de los puntos automaticamente*/{
x[i]=(rand()%400)-200; //de -200 a +200
y[i]=(rand()%400)-200; //de -200 a +200
}
for(i=0;i<puntos;i++) {
modulo(x,y,mod,i);
}
for(i=0;i<puntos;i++) {
angulo(x,y,angu,i);
}
fp = fopen ( "compendioDePuntos.txt", "w" );
for(i =0; i<puntos ; i++) {
fprintf(fp,"%d ",i);//id del punto
fprintf(fp,"%f ",x[i]);//coord en x
fprintf(fp,"%f ",y[i]);//coord en y
fprintf(fp,"%f ",mod[i]);//modulo
fprintf(fp,"%f ",angu[i]);//angulo
fprintf(fp,"\n");
}
fclose(fp);
resultado=0;
for(i=1;i<puntos;i++) {
resultado = resultado + i;
}
break;
case 2:
printf("Ingrese el numero total de puntos a utilizar.\n");
scanf("%d",&puntos);
x = (float *) malloc(puntos*sizeof(float));
y = (float *) malloc(puntos*sizeof(float));
...