Compare commits

...

9 Commits
v1.0 ... main

Author SHA1 Message Date
Brian Bassanetti
8dbfae2dfe Merge branch 'main' of https://github.com/BrainTheBest5/Teorema-di-Pitagora 2022-12-15 21:57:17 +01:00
Brian Bassanetti
e5333562eb FINAL VERSION COMPLETED!!! 2022-12-15 21:57:13 +01:00
Brian Bassanetti
09c1957138
Formula Inversa 2022-11-10 20:30:52 +01:00
Brian Bassanetti
6cde46a795
Typos... 2022-11-10 20:24:25 +01:00
Brian Bassanetti
57899d493b
Updated along the new source file
Siccome la formula inversa è pronta, ora manca fondere i due sorgenti in un unico programma
2022-11-10 20:23:47 +01:00
Brian Bassanetti
828112a38f Come promesso ecco la formula inversa 2022-11-10 20:20:44 +01:00
Brian Bassanetti
9d7d1e092d Merge branch 'main' of https://github.com/BrainTheBest5/Teorema-di-Pitagora 2022-11-10 20:17:38 +01:00
Brian Bassanetti
1f7619da57
Fixed a typo 2022-11-08 22:16:28 +01:00
Brian Bassanetti
63188a9fbb Riordiniamo la prima repo, come le repo serie 2022-11-08 22:14:24 +01:00
7 changed files with 118 additions and 28 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,32 +1,93 @@
/* Le righe contrassegbate da un commento vuoto sono le cose che ho dovuto cercare visto che il rpof non me le ha dette il day 0 di programmazione, ma ci sta, è il mio day 0... */
#include <stdio.h>
#include <math.h> /**/
#include <math.h>
#include <string.h>
int main() {
/* titolo */
printf("Calcolatore di teorema di Pitagora");
printf("\n");
printf("\n");
/*MI RACCOMANDO SCRIVI IL PROTOTIPO(la parte subito prima dell'apertura della graffa) PRIMA DI DICHIARARE LA FUNZIONE O ALTRIMENTI SEI MARSO CHE VUOI SOTTERRARE L'INT MAIN DATO CHE TUTTE LE FUNZIONI (o prototipi) VANNO SCRITTI SOPRA L'INT MAIN O GCC VA IN CRISI*/
int Diretto(); /*É il teorema di Pitagora così come da definizione*/
int Inverso();/*É la formula inversa del teorema di Pitagora*/
void Error();/*Serve a notificare l'utente che ha inserito una cosa che il programma non accetta. É per evitare che il programma "hangs"*/
int Input();/*determina cosa è stato inserito coime input, legge la lunghezza della stringa e la usa per determinare qual funzione l'utente ha deciso di chiamare*/
float sq(float a);/*calcola il qudrato dell'input a. L'ho implementata più che altro per fare il gigachad e far vedere che mi piacciono le funzioni*/
int main(){
printf("Pythagora's theorem calculator");
printf("\n");
printf("\n");
Input();
}
int Input(){
char Input[7];
int g;
printf("Direct or Inverse? ");
scanf("%s", Input);
g=strlen(Input);/*calcola la dimensione dell'array (sì, le stringhe sono un array - insieme - di caratteri) e la scrive in g. Questo era l'unico metodo che mi veniva in mente per creare un menu basato su stringhe dato che online trovo solo esempi con menu ad opzioni numeriche e se oso solo usare uno strcmp il programma va in crisi leggendo indirizzi di memoria a caso lagnandosi che sono read-only o pure "it hangs" come al solito. Per questo esatto motivo ho dovuto scriverlo tutto in inglese dato che diretto e inverso hanno lo stesso numero di lettere (7). Ah, strlen fa parte di string.h*/
if(g==6){
Diretto();
}
else if(g==7){
Inverso();
}
else{
Error();
}
}
int Diretto() {
/* titolo */
printf("Hypotenuse calculator");
printf("\n");
printf("\n");
/*variabili*/
int C1;
int C2;
printf("Dimensioni cateto 1=");
scanf("%d",&C1);
printf("Dimensioni cateto 2=");
scanf("%d",&C2);
/*variabili*/
float C1;
float C2;
printf("Cathetus 1=");
scanf("%f",&C1);
printf("Cathetus 2=");
scanf("%f",&C2);
/*quadrati*/
int sqC1;
int sqC2;
sqC1=C1*C1;
sqC2=C2*C2;
/*quadrati*/
float sqC1;
float sqC2;
sqC1=sq(C1);
sqC2=sq(C2);
/*ipotenusa*/
int sqI;
sqI=sqC1+sqC2;
int i;
i=sqrt(sqI); /**/
printf("L'ipotenusa risulta %d\n",i);
/*ipotenusa*/
float sqI;
float i;
sqI=sqC1+sqC2;
i=sqrt(sqI);/*Radice quadrata. Fa parte di math.h*/
printf("Hypotenuse is equal to %f\n",i);
return 0;
}
int Inverso(){
/*Titolo*/
printf("Cathetus calculator");
printf("\n");
printf("\n");
/*Lettura variabili*/
float I;
float c;
printf("Hypotenuse:");
scanf("%f",&I);
printf("Cathetus:");
scanf("%f",&c);
/*Elevamento al quadrato*/
float sqI;
float sqc;
sqI=sq(I);
sqc=sq(c);
/*Calcolo cateto*/
float sqc2;
float c2;
sqc2=sqI-sqc;
c2=sqrt(sqc2);/*Radice quadrata. Fa parte di math.h*/
/*Output*/
printf("Cathetus is equal to %f\n", c2);
return 0;
}
void Error(){
printf("Insert Direct to find the hypotenuse, Inverse to find the cathetus.\n");
main();
}
float sq(float a){
return a*a;
}

View File

@ -1,4 +1,4 @@
# Teorema-di-Pitagora
Primo porgrammino scritto in C con la lezione di Salemi e un paio di righe di Stack Overflow.
Prende come input le dimensioni dei cateti e restituisce l'ipotenusa.
In futuro verrà ampliato includendo anche le formule inverse ma per ora rimane così.
Primo programmino scritto in C con la lezione di Salemi e un paio di righe di Stack Overflow.
Prende come input le dimensioni dei cateti e restituisce l'ipotenusa e viceversa.
In futuro verrà completato includendo anche le formule inverse nel main executable ma per ora rimane così.

29
inverse Pitagora.c Normal file
View File

@ -0,0 +1,29 @@
#include <stdio.h>
#include <math.h>
int main() {
/*Titolo*/
printf("Calcolatore inverso del teorema di Pitagora");
printf("\n");
printf("\n");
/*Lettura variabili*/
int I;
int c;
printf("Scrivi il valore dell'ipotenusa:");
scanf("%d",&I);
printf("Scrivi il valore del cateto:");
scanf("%d",&c);
/*Elevamento al quadrato*/
int sqI;
int sqc;
sqI=I*I;
sqc=c*c;
/*Calcolo cateto*/
int sqc2;
int c2;
sqc2=sqI-sqc;
c2=sqrt(sqc2);
/*Output*/
printf("Il cateto risulta %d\n", c2);
return 0;
}