Turbo Pascal zadanie prośba o pomoc
Procedury obliczające dodawanie, odejmowanie, mnożenie i dzielenie metodą Top-Down.
Podaję przykładowy program z lekcji. I trzeba go przerobić na liczenie dodawania, odejmowania, mnożenia i dzielenia.
Uses Crt;
Var Suma : Real;
Procedure CzyscEkran;
Begin
ClrScr;
End;
Procedure DrukujCoRobisz;
Begin
WriteLn('Oblicze, ile bedzie w banku za 10 lat, podaj sume:');
End;
Procedure WczytajDane;
Begin
ReadLn( Suma );
End;
Procedure Oblicz;
Var i : Integer;
Begin
For i:=1 To 10 Do
Suma := Suma * 1.08;
End;
Procedure Wydrukuj;
Begin
WriteLn('------------------');
WriteLn('Obliczylem, po 10 latach masz: ', Suma:5:2);
End;
Procedure Poczekaj;
Begin
WriteLn('Koniec liczenia, nacisnij cokolwiek...');
ReadKey;
End;
Begin
CzyscEkran;
DrukujCoRobisz;
WczytajDane;
Oblicz;
Wydrukuj;
Poczekaj;
End.
I niby z czym sobie nie radzisz?
Nie mam wcale pojęcia jak to przerobić żeby liczyło dodawanie itd.
Pojęcie mam. Tylko robiłem to parę razy i nie wychodzi. A termin oddania się kończy...

Skoro nie masz pojęcia to google i ucz się co to procedury, co to funkcje, co to zmienne (zmienną to można by nazwać w uproszczeniu żółtą karteczką na lodówce, na której możesz coś zapisać i może się na niej wszystko zmieniać i ta karteczka musi mieć typ jakiś np. String, który pozwala zapisywać wszystkie znaki z klawiatury, zdania, liczby i tak dalej, w skrócie tekst. A np. Integer pozwala na zapisywanie liczb całkowitych. Char pozwala na zapisanie znaku pojedynczego. Masz jeszcze double, float, real i wiele innych typów zmiennych, w google znajdziesz).
A poniżej masz kod banalny w tym dziwnym twoim stylu byś zrozumiał działanie. Skomentowałem ci kod.
var
A, B, wynik: Integer; //deklarujesz 3 zmienne typu Integer (liczba całkowita) by trzymały liczby
procedure TypDzialania; //robisz procedurę
begin //a po słówku begin piszesz co ma ta procedura robić gdy ją wywołasz
WriteLn('Obliczam sumę dwóch liczb. Podaj dwie liczby'); //czyli ma napisać w nowej linii coś
end;
procedure PobierzDwieLiczby; //kolejna prodecura
begin
ReadLn(A); //po polsku to "czytaj linię i przypisz (zapisz) to co odczytałeś do zmiennej A"
ReadLn(B);
end;
procedure Dodaj;
begin
wynik := A + B; //czyli zmiennej WYNIK każesz przypisać wartości dwóch zmiennych A i B, które dodajesz
WriteLn('Wynik dodawania to: ' + #13#10 + IntToStr(wynik));
end;
begin
TypDzialania; //wywołujesz procedurę, czyli każesz się jej wykonać
PobierzDwieLiczby; //jak wyżej
Dodaj; //jak wyżej
ReadLn; a to to dodałem by konsola się nie zamknęła sama po wyświetleniu wyniku, zamiast tego sobie wstawisz ze swojego kodu procedurę o nazwie POCZEKAJ
end.
Nie mam turbopascala, mam nadzieję, że ten kod ci zadziała. A to #13#10 to przejście do nowej linii, nie wiem czy w turbopascalu działa, zmienisz to najwyżej. W dziwny sposób piszecie programy. Integer możesz zmienić na inny typ zmiennej, na zmiennoprzecinkowy, by dodawało np. 3.14 + 2.87. A to IntToStr nie wiem, czy w turbopascalu działa, to konwertuje liczbę całkowitą na typ String, prościej mówiąc, przerabia liczbę na napis.
btw. procedura (powiem prosto) może też mieć zmienne, które podajesz przy wywoływaniu procedury np.
procedure Dodaj(A, B: Integer);
begin
//jakiś kod
end;
i wywołanie procedury, czyli jej użycie z podaniem dwóch liczb A i B:
Dodaj(10,22);
Z funkcjami podobnie, ale funkcje już na wstępie robisz by zwracały jakiś wynik.
Pamiętaj, że nie używam turbopascala więc lepiej użyj google i tam poczytaj o wszystkom. A do dzielenia w pascalu raczej wystarczy znak /, a gdyby się okazało, że zwraca resztę z dzielenia to spróbuj użyć słowa div.
Wlasnie nie wiem po co Wam od razu upchnęli procedury, bo to w bardzo dziwny sposób jest pisane. Albo poprzednie lekcje przespałeś i zaczeły się najprostrze procedurki, a tu człowiek jak z klapkami na oczach :D
Dzięki za pomoc.. ale i tak nie działa..
OK. Już działa poprawiłem ;) Dzięki takbir :D