ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programa en C para manejo de puntos en R2


Enviado por   •  12 de Mayo de 2021  •  Tarea  •  1.652 Palabras (7 Páginas)  •  58 Visitas

Página 1 de 7

//Programa desarrollado por Sebastian Morales Palacios

//Grupo 1CV13

#include <stdio.h>

#include <math.h>

#include <locale.h>

#include <string.h>

#include <stdlib.h>

#include <time.h>

struct Distancias{

double X1, Y1, X2, Y2;

double tam;

}DISTA[100][100];

struct punto{

int ID;

double X;

double Y;

double modulo;

double angulo;

}coordenada[100];

int acum=0;

char PuntoX[100], PuntoY[100], identificador[100];

FILE * fp;

void Imprimir();

void Modulo();

void Angulo();

void DistanciaEntrePuntos();

void SumaDosPuntos();

void RestaDosPuntos();

void MultiplicacionDosPuntos();

void DivisionDosPuntos();

void Compendio();

void DistanciaMaxMin();

void DistanciaEntreDosPuntos();

int main(){

srand(time(NULL));

setlocale(LC_CTYPE, "Spanish");

int n, opc, opc1, detalles, detalles2, puntito, pmaxX, pminX, pmaxY, pminY, i, j;

int x;

double max, min, x1, y1, x2, y2, a1, b1, a2, b2;

FILE *archivo;

printf("\n\n ****Bienvenido a la Calculadora de puntos en R2****\n\n");

printf(" - Ingrese la cantidad de puntos a manejar: ");

scanf(" %d", &n);

printf("\n ¿De que forma desea llenar los puntos?:\n");

printf(" 1. Manualmente.\n");

printf(" 2. Pseudoaleatoria(Generado por Computadora).\n");

printf(" 3. Leer un documento de texto.\n");

scanf(" %d", &opc1);

switch (opc1) {

case 1:

for(x=0; x<n; x++){

acum++;

coordenada[x].ID = acum;

printf("\n");

printf("\n");

printf("****PUNTO [%d]****",x);

fflush(stdin);

printf("\n- Valor de X: ");

scanf("%lf", &coordenada[x].X);

fflush(stdin);

printf("- Valor de Y: ");

scanf("%lf", &coordenada[x].Y);

printf("\n");

}

system("cls");

Imprimir();

Modulo();

Angulo();

DistanciaEntrePuntos();

Compendio();

printf("\n\n¡Puntos leídos correctamente!\nPresione cuakquier tecla para avamzar al menú\n");

system("pause");

system("cls");

break;

case 2:

for(x=0; x<n; x++){

acum++;

fflush(stdin);

coordenada[x].X = rand () % (-200-200+1) - 200;

fflush(stdin);

coordenada[x].Y = rand () % (-200-200+1) - 200;

}

system("cls");

Imprimir();

Modulo();

Angulo();

DistanciaEntrePuntos();

Compendio();

printf("\n\n¡Puntos generados correctamente!\n Presione cualquier tecla para avamzar al menú\n");

system("pause");

system("cls");

break;

case 3:

fp = fopen("PUNTOS.txt", "r");

fclose(fp);

system("cls");

Imprimir();

Modulo();

Angulo();

DistanciaEntrePuntos();

printf("\n\n¡Puntos leidos correctamente! Presione cualquier tecla para avamzar al menú\n");

system("pause");

system("cls");

break;

default: puts("Error");

}

do

{

printf("\n\n ****Bienvenido a la Calculadora de puntos en R2****\n\n");

printf(" - ¿Qué desea hacer con los puntos que ingresó?\n\n ");

printf(" 1.- Sumar puntos\n");

printf(" 2.- Restar puntos\n");

printf(" 3.- Multiplicar puntos\n");

printf(" 4.- Dividir puntos\n");

printf(" 5.- Determinar distancia entre puntos\n");

printf(" 6.- Determinar la mayor y menor distancia entre puntos\n");

printf(" 7.- Imprimir detalles de puntos\n");

printf(" 8.- Salir\n");

scanf("%d",&opc);

switch (opc) {

case 1:

system("cls");

SumaDosPuntos();

system("pause");

system("cls");

break;

case 2:

system("cls");

RestaDosPuntos();

system("pause");

system("cls");

break;

case 3:

system("cls");

MultiplicacionDosPuntos();

system("pause");

system("cls");

break;

case 4:

system("cls");

DivisionDosPuntos();

system("pause");

system("cls");

break;

case 5:

system("cls");

printf("\n\n 1.- Calcular distancia entre todos los puntos");

printf("\n 2.- Calcular distancia entre dos puntos especificos\n\n ");

scanf(" %d", &detalles2);

if(detalles2 == 1){

system("cls");

DistanciaEntrePuntos();

system("pause");

system("cls");

}

else if(detalles2 == 2){

system("cls");

DistanciaEntreDosPuntos();

system("pause");

system("cls");

}

else{

printf("\n NO EXISTE ESTA OPCION\n\n");

}

break;

case 6:

system("cls");

max = 0;

min = 100000;

for(i=0;i<acum;i++){

for(j=0;j<acum;j++){

if (DISTA[i][j].tam > max){

x1 = DISTA[i][j].X1;

y1 = DISTA[i][j].Y1;

x2 = DISTA[i][j].X2;

y2 = DISTA[i][j].Y2;

max = DISTA[i][j].tam;

pmaxX = i;

...

Descargar como (para miembros actualizados) txt (14 Kb) pdf (61 Kb) docx (19 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com