R1D [ Pretorianin ]
Pascal, potrzebna szybka pomoc w napisaniu programu.
Witam, jestem w szkole i mamy zadanie napisać program w pascalu, przelicznik Fahrenheit na Celsjusze, Mile na Kilometry i Galony na litry, powiem szczerze nie wiem jak się do tego zabrać, lekcje mam do 14:30 może pomożecie mi przynajmniej początek lub powiecie jak ma wyglądać tylko 1, to będę mógł sobie resztę napisać, napisałem zmienne i nie wiem co dalej, proszę o pomoc.
jagged_alliahdnbedffds [ Rock'n'Roll ]
Około coś takiego.
uses crt;
var
Tc,Tf:real; ‹Temperatura odpowiednio w Celsjuszach i Fahrenheit'ach›
begin
write('Podaj temperature w Fahrenheitach: ');
readln(Tf);
Tc:=5/9 * (Tf - 32);
write('Podana temperatura w Celsjuszach wynosi: ', Tc:0:2);
readkey;
end.
edit. Na odwrót ma być, bo zrobiłem z C na F. Już poprawione...
R1D [ Pretorianin ]
Dzięki wielkie :]
Alien.pl [ Generaďż˝ ]
Tyle to powinieneś sam wykombinować w czasie pisania postu na tym forum. Ach lenistwo nie zna jednak granic.
R1D [ Pretorianin ]
ok, napisałem coś takiego, a może mi to ktoś poprawić i zrobić tak, aby po wyliczeniu pokazało się zapytanie, "Czy chcesz obliczyć coś jeszcze" po czym użytkownik musi wybrać tak albo nie i jak wybierze nie wyjdzie z programu a jak tak znowu pokaże menu?.
uses crt;
var
liczba:real;
menu:byte;
x:integer;
begin
clrscr;
writeln('1. F na C');
writeln('2. C na F');
writeln('3. Mila na Km');
writeln('4. Km na Mile');
writeln('5. Galony na Litry');
writeln('6. Litry na Galony');
readln(menu);
case menu of
1:begin
writeln('podaj ilosc stopni F :');
readln(liczba);
writeln('Ilosc stopni C to:');
writeln((liczba-32)/1.8:8:2);
end;
2:begin
writeln('podaj ilosc stopni C :');
readln(liczba);
writeln('Ilosc stopni F to:');
writeln(liczba*1.8+32:8:2);
end;
3:begin
writeln('podaj ilosc mil :');
readln(liczba);
writeln('Ilosc Km to:');
writeln(liczba*1.85166:8:2);
end;
4:begin
writeln('podaj ilosc km :');
readln(liczba);
writeln('Ilosc Mil to:');
writeln(liczba*0.621:8:2);
end;
5:begin
writeln('podaj ilosc Galonow :');
readln(liczba);
writeln('Ilosc Litrow to:');
writeln(liczba*4.54561:8:2);
end;
6:begin
writeln('podaj ilosc L :');
readln(liczba);
writeln('Ilosc Galonow to:');
writeln(3.78541178);
end;
end;
readln;
end.
Didier z Rivii [ life 4 sound ]
nie ma czegoś takiego jak ilość kilometrów/stopni/litrów, te jednostki są policzalne więc można mówić tylko o liczbie a nie o ilości
R1D [ Pretorianin ]
ok, zmienię sobie ale może wiesz jak zastosować pętle żeby rozwiązać mój problem? :P
Didier z Rivii [ life 4 sound ]
za casem zrob pytanie "Czy chcesz obliczyć coś jeszcze?" i wczytaj do zmiennej odpowiedz literę T lub N
case i to pytanie zamknij w środku pętli repeat:
repeat
...
tutaj case i to pytanie
...
until (odpowiedz =N)
EDIT: no wlasnie zapomnialem o zainicjowaniu wartosci zmiennej, ech ide spac i [9] dostales ladnie opisane jak to zrobic :)
jagged_alliahdnbedffds [ Rock'n'Roll ]
Na początku tego całego menu dodaj:
ponow:=false;
...a końcu:
writeln('Czy chcesz obliczyc cos jeszcze? (Tak/Nie)');
readln(czy);
if czy='Tak' then ponow:=true;
W var dodaj:
czy:string;
ponow:boolean;
A całe menu daj w pętli np.:
repeat
begin
<menu>
end
until not ponow;
R1D [ Pretorianin ]
będę szczery, nie wychodzi mi to, robię po kolei i po wpisaniu danych mi zadaje to pytanie i nie pokazuje wyniku, mógłbyś to wpleść w ten program? :]
R1D [ Pretorianin ]
up
w 2, tylko mamy takiego niedorobionego nauczyciela, że z 5 godzin wraca na 30 minut, sprawdza obecność i znowu wychodzi, dlatego tak w tyle jesteśmy.
unclesam [ Generaďż˝ ]
Z ciekawości, jesteś w 1. technikum ?
jagged_alliahdnbedffds [ Rock'n'Roll ]
R1D
W Twoim programie jest 7 beginów, a tylko 6 endów. Popraw całość i musi działać!
edit. Wielu możliwości nie ma, próbuj.
R1D [ Pretorianin ]
Działa, chodzi o to że wyświetla mi to pytanie przed obliczeniem wyniku, czyli nie wiem gdzie to dokładnie wkleić :/
EDIT : ok, popróbuje jutro bo teraz juz mi się oczy kleją, Dobranoc.
DEXiu [ Senator ]
Postaraj się sam znaleźć błąd. Najtrudniejsze w tworzeniu programu (może nie tyle najtrudniejsze co najżmudniejsze) nie jest jego wymyślanie czy klepanie a debugowanie (czyli znajdowanie i naprawianie wszelkich błędów i niedoróbek). Prześledź w kodzie cały przebieg wykonania programu (zgodnie z wyborami, których dokonywałeś podczas nieudanego odpalenia) i sam wymyśl, dlaczego komunikat pojawił się w niewłaściwym momencie.
jagged_alliahdnbedffds [ Rock'n'Roll ]
Jak to mawiał mój wykładowca i równocześnie ćwiczeniowiec z WDI:
"Program nie musi działać, musi być przejrzyście napisany."
Co jest prawdą, bo łatwo do takiego programu wtedy coś dodać, szybko znaleźć.
R1D [ Pretorianin ]
Zrobiłem to, ale inaczej, zapętliłem a do menu dodałem nowa linijkę "Wyjście z programu" i tak mi się bardziej podoba, dzięki wszystkim za pomoc.