paola.ciaravolo.3
paola.ciaravolo.3 - Ominide - 25 Punti
Salva
Fare un programma in C che permette di visualizzare l'equazione della retta passante per due punti dati
Max 2433/BO
Max 2433/BO - Genius - 15502 Punti
Salva
Questo dovrebbe fare il caso tuo...

... l'ho testato (compilato ed eseguito) e pare funzionare correttamente, ovviamente manca tutta la parte per il controllo degli errori in input per cui ci si aspetta che chi inserissce i dati li dia corretti... ;)

/*equazione retta per due punti*/
#include <stdio.h>

int coefficente_angolare (int a, int b); // prototipo funzione calcolo coeffiente angolare (numeratore e denominatore)

int ordinata_all_origine (int canum, int caden, int ax, int ay); // prototipo funzione calcolo ordinata all'origine (q)

int main () // programma principale
{
int x1, y1, x2, y2, mn, md, q; // dichiarazione variabili programma principale
printf("immettere ascissa punto A: " );
scanf("%d", &x1);
printf("immettere ordinata punto A: " );
scanf("%d", &y1);
printf("immettere ascissa punto B: " );
scanf("%d", &x2);
printf("immettere ordinata punto B: " );
scanf("%d", &y2);
if (y1 == y2) // controllo se retta parallela asse x
{
printf("Retta parallela all'asse delle ascisse.\n" );
printf(".\n" );
printf("y = %d.\n", y1);
return 0;
}
if (x1 == x2) // controllo se retta parallela asse y
{
printf("Retta parallela all'asse delle ordinate.\n" );
printf(".\n" );
printf("x = %d.\n", x1);
return 0;
}
if (x1 == x2 && y1 == y2) // controllo se inseriti due punti coincidenti
{
printf("Punti coincidenti!!!.\n" );
return 0;
}
mn = coefficente_angolare (y1, y2); // calcolo numeratore coefficente angolare
md = coefficente_angolare (x1, x2); // calcolo denominatore coefficente angolare
q = ordinata_all_origine (mn, md, x1, y1); // calcolo ordinata all'origine (coefficente q)
printf("L'equazione della retta passante per i punti A e B è.\n" );
printf(".\n" );
if (md == 1 || md == -1) // caso denominatore coefficente angolare = 1 o -1
{
printf("y = %dx + %d", mn, q);
return 0;
}
printf("y = (%d / %d)x + (%d / %d)", mn, md, q, md);
return 0;
}


int coefficente_angolare (int a, int b) // dichiarazione funzione coefficente angolare numeratore e denominatore
{
int ca;
ca = (b - a);
return ca;
}

int ordinata_all_origine (int canum, int caden, int ax, int ay) // dichiarazione funzione calcolo ordinata all'origine (q)
{
int oo;
oo = -(canum*ax) + (caden*ay);
return oo;
}

:hi Max

P.S.
Non chiedermi troppo perchè anch'io sono alle prime armi.... :lol
Questo topic è bloccato, non sono ammesse altre risposte.
Come guadagno Punti nel Forum? Leggi la guida completa
"Chi se ne frega della scuola": la presentazione del libro di Skuola.net

Lascia un messaggio ai conduttori Vai alla pagina TV

In evidenza
Classifica Mensile
Vincitori di agosto
Vincitori di agosto

Come partecipare? | Classifica Community

Community Live

Partecipa alla Community e scala la classifica

Vai al Forum | Invia appunti | Vai alla classifica

Andyb3105

Andyb3105 Blogger 935 Punti

VIP
Registrati via email