fenice (Normal User)
Newbie
Messaggi: 19
Iscritto: 10/08/2019
|
Buongiorno mi servirebbe una mano con questo problema che non riesco a capire.
Scrivere un programma che legge in input il valore del raggio di una circonferenza e calcola il valore del lato di un quadrato in modo che l'area delle due figure piane sia uguale quindi individua la figura con perimetro maggiore.
Controlla l'input per individuare l'inserimento di numeri <= 0.
Io ho scritto così:
[/#include<stdio.h>
#include<conio.h>
#include<windows.h>
main()
{
int x,y;
printf("Inserire valore di x\n");
scanf("%d",&x);
printf("Inserire valore di y\n");
scanf("%d",&y);
}]
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
1) Il tag lo usi sbagliato
devi usare
[ code ] --CODICE--- [ /code ]
(Senza spazi dentro le parentesi)
2) ma sai usare solo printf e scanf?
3) Se hai un solo input (raggio circonferenza) perchè ne chiedi 2?
4) Prima di eseguire la scrittura del codice, scrivi i passi logici che vorresti fare, Qui ad esempio che operazioni servono?
|
|
fenice (Normal User)
Newbie
Messaggi: 19
Iscritto: 10/08/2019
|
Mi hanno insegnato ad usare printf e scanf, sono uno alle prime armi come ho detto prima.
Ho sbagliato a copiare il codice, il codice è questo:
Codice sorgente - presumibilmente C/C++ |
#include<conio.h>
#include<stdio.h>
main()
{
int r,l1,ac,aq,p
printf("Inserire valore del raggio\n");
scanf("%d", &r);
ac=r*r*3.14;
printf("L'area della circonferenza e' %d\n", ac);
if (ac==aq)
{ printf("L'area della circonferenza uguale all'area del quadrato\n");
aq=l*l;
}
}
|
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
ci sono diversi errori
ac è un intero?
ap non è inizzializzato
l neppure
|
|
fenice (Normal User)
Newbie
Messaggi: 19
Iscritto: 10/08/2019
|
Codice sorgente - presumibilmente C/C++ |
#include<conio.h>
#include<stdio.h>
main()
{
int aq,p
float r,ac,l
printf("Inserire valore del raggio\n");
scanf("%.2f", &r);
ac=r*r*3.14;
printf("L'area della circonferenza e' %.2f\n", ac);
if (ac==aq)
{ printf("L'area della circonferenza uguale all'area del quadrato\n");
aq=l*l;
}
}
|
ap non c'è
|
|
AldoBaldo (Member)
Guru
Messaggi: 700
Iscritto: 08/01/2015
|
Uso "code" solo per incolonnare meglio i punti della lista...
Codice sorgente - presumibilmente Python |
Scrivere un programma che... 1) legge in input il valore del raggio di una circonferenza 2) controlla l'input per individuare l'inserimento di numeri <= 0 (in quel caso, magari si può tornare al punto 1) 3) calcola il valore del lato di un quadrato in modo che l'area delle due figure piane sia uguale quindi individua la figura con perimetro maggiore. a) calcola l'area del cerchio, avendo il raggio b) calcola il valore della circonferenza ("perimetro" del cerchio) c) fa la radice quadrata dell'area per trovare il lato del quadrato d) calcola il perimetro del quadrato, avendo il lato e) confronta l'esito di b) e di d), per trovare il valore maggiore f) presenta il risultato, specificando se si tratta del cerchio o del quadrato Siccome ci sono di mezzo cerchi e circonferenze, dovrai usare valori in virgola mobile, float o double, non valori interi. Per la radice quadrata puoi appoggiarti alla libreria standard il cui file di include è math.h. In math.h c'è anche una costante che rappresenta il pi greco.
|
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti. |
|
fenice (Normal User)
Newbie
Messaggi: 19
Iscritto: 10/08/2019
|
Ho seguito le tue istruzioni però mi va il loop e non riesco a capire perché
Codice sorgente - presumibilmente Python |
#include<conio.h> #include<stdio.h> #include<math.h> main() { float r,ac,pc,lq,pq; do{ printf("Inserire valore del raggio\n"); scanf("%.2f", &r); if(r<=0) printf("Rinserire raggio\n");} while(r<=0); ac=r*r*3.14; printf("L'area della circonferenza e' %.2f\n",ac); pc=2*3.14*r; printf("Il perimetro della circonferenza e': %.2f\n",pc); lq=sqrt(ac); printf("Il lato del quadrato e': %.2f\n",lq); pq=lq*4; printf("Il perimetro del quadrato e': %.2f\n",pq); if(pc>pq) printf("Il perimetro della circonferenza e'maggiore di quello del quadrato\n"); else printf("Il perimetro del quadrato e'maggiore di quello della circonferenza\n"); getch(); }
|
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Guarda il do...while.. secondo te esce? se si quando? e come?
|
|
fenice (Normal User)
Newbie
Messaggi: 19
Iscritto: 10/08/2019
|
Codice sorgente - presumibilmente Python |
#include<conio.h> #include<stdio.h> #include<math.h> main() { float r,ac,pc,lq,pq; do{ printf("Inserire valore del raggio\n"); scanf("%.2f", &r); if(r<=0) printf("Rinserire raggio\n");} while(r>0); ac=r*r*3.14; printf("L'area della circonferenza e' %.2f\n",ac); pc=2*3.14*r; printf("Il perimetro della circonferenza e': %.2f\n",pc); lq=sqrt(ac); printf("Il lato del quadrato e': %.2f\n",lq); pq=lq*4; printf("Il perimetro del quadrato e': %.2f\n",pq); if(pc>pq) printf("Il perimetro della circonferenza e'maggiore di quello del quadrato\n"); else printf("Il perimetro del quadrato e'maggiore di quello della circonferenza\n"); getch(); }
|
Avevo sbagliato però non mi esce lo stesso
|
|