matematykaszkolna.pl
Jezyk c austin: Może ktoś mi pomóc w zaprojektowaniu programu liczacego pole powierzchnii? Figure oraz wymiary podajemy z linii polececn. Niestety jestem chory teraz i nie moge chodzic na uczelnie.Oto moj projekt. #include <stdio.h> #include <stdlib.h> int main() { int n, a, b, h, figura, Pkwadrat, Pprostokat, Ptrojkat; printf("Aby policzyc pole wpisz: 1 − Kwadrat, 2 − Trojkat, 3 − Prostokat"); n=scanf("%d", &figura); while(n==1) { printf("Podaj dlugosc boku kwadratu\n"); scanf("%d", &a); Pkwadrat=a * a; printf("Pole kwadratu wynosi: %d \n", Pkwadrat); } printf("Aby policzyc pole wpisz: 1 − Kwadrat, 2 − Trojkat, 3 − Prostokat"); n=scanf("%d", &figura); while(n==2) { printf("Podaj dlugosc podstawy trojkata\n"); scanf("%d", &a); printf("Podaj dlugosc wysokosci trojkata\n"); scanf("%d", &h); Ptrojkat=(a * h) / 2; printf("Pole trojkata wynosi: %d \n", Ptrojkat); } printf("Aby policzyc pole wpisz: 1 − Kwadrat, 2 − Trojkat, 3 − Prostokat"); n=scanf("%d", &figura); while(n==3) { printf("Podaj dlugosc pierwszego boku prostokata\n"); scanf("%d", &a); printf("Podaj dlugosc drugiego boku prostokata\n"); scanf("%d", &b); Pkwadrat=a * b; printf("Pole kwadratu wynosi: %d \n", Pkwadrat); } return 0; }
10 mar 07:05
Draghan: Próbowałeś to kompilować? Wgl działa Ci to 1) za dużo niepotrzebnych zmiennych zadeklarowanych. 2) nieprawidłowo przechwytujesz zmienną sterującą 3) konstrukcja z trzema while'ami to nieporozumienie. Spójrz na taki szkielet i spróbuj poprawić swój kod: int a, b, h, figura, pole; printf("Aby policzyc pole wpisz: 1 − Kwadrat, 2 − Trojkat, 3 − Prostokat"); scanf("%d", &figura); if(figura == 1) { /* ... pobieram dane, wyliczam, zapisuję do zmiennej "pole" i wypisuje pole kwadratu ... */ } else if(figura == 2) { /* ... pobieram dane, wyliczam, zapisuję do zmiennej "pole" i wypisuje pole trójkąta ... */ } else if(figura == 3) { /* ... pobieram dane, wyliczam, zapisuję do zmiennej "pole" i wypisuje pole prostokąta ... */ } else if(figura == 4) { /* komunikat, że user wybrał złą liczbę */ }
10 mar 10:33
Draghan: w ostatnim ma być samo else, bez "if(figura == 4).
10 mar 10:34
Draghan: ...i jeszcze jedna uwaga: zmienne (wszystkie, oprócz sterującej) powinny być raczej rzeczywiste. emotka
10 mar 10:49
Dziadek Mróz: http://ideone.com/HOc3VE #include <stdio.h> int main() { double a; double b; double h; double pole; int n; do { printf("Aby policzyc pole wpisz: \n\t1 − Kwadrat\n \t2 − Trojkat\n\t3 − Prostokat\n \t0 − Koniec\nWybor: "); fflush(stdout); scanf("%d", &n); switch (n) { case 1: { printf("Podaj dlugosc boku kwadratu: "); fflush(stdout); scanf("%lf", &a); pole = a * a; printf("Pole kwadratu wynosi: %.2lf\n", pole); } break; case 2: { printf("Podaj dlugosc podstawy trojkata: "); fflush(stdout); scanf("%lf", &a); printf("Podaj dlugosc wysokosci trojkata: "); fflush(stdout); scanf("%lf", &h); pole = (a * h) / 2; printf("Pole trojkata wynosi: %.2lf\n", pole); } break; case 3: { printf("Podaj dlugosc pierwszego boku prostokata: "); fflush(stdout); scanf("%lf", &a); printf("Podaj dlugosc drugiego boku prostokata: "); fflush(stdout); scanf("%lf", &b); pole = a * b; printf("Pole prostokata wynosi: %.2lf\n", pole); } break; case 0: { printf("Koniec\n"); } break; default: { printf("Zla opcja!\n"); } break; } } while (n != 0); return 0; }
10 mar 12:40
Draghan: Dziadku, gotowca...? emotka
10 mar 12:56
Dziadek Mróz: A co, niech ma. Pewnie i tak nie jest na kierunku informatycznym, więc do niczego mu się to nie przyda emotka
10 mar 13:04
Draghan: Myślę że umiejętność programowania każdemu się przyda. emotka Rozwija algorytmiczne myślenie i ten i w ogóle.
10 mar 13:09