![]() |
Cytat:
ale ogolnie to mozna zapisac tak: Kod:
programKod:
function CoRobimy : Integer; |
masz mnostwo mozliwosci - albo nasz program zrobisz jako funkcje ktorej wykonanie uzaleznisz od instr warunkowej, albo napiszesz po prostu to wszystko w jednej z opcji ifa a druga spowoduje tylko np. writeln(dowidzenia) albo uzyjesz bardzo niemile widzianej instrukcji goto za ktora przynajmniej powinienes zostac upomniany.
Oba programy przesledzilem i jakos braku apostrofa nie zauwazylem. |
Dzięki ale rąbnołeś się w jednym miejscu brakuje apostrofa ale i tak jest dobrze. Dzięki Ci bardzo cinma. A znasz funkcje która spytałaby by użytkownika "Jeśli chcesz wyjść naciśnij W a jeśli chcesz wykonać jakieś działanie naciśnij T"
|
blagam, uzywajcie komentarzy w swoich kodach koledzy programisci ;)
...a i wciecia sie na pewno przydadza Kod:
program Liczenie; |
Przemyslalem to jeszcze. Rozsadniej bedzie zrobic:
var c: char; potem writeln('Jezeli chcesz otrzymac srednia arytmetyczna tych liczb to nacisnij t, a jezeli chcesz otrzymac ich sume to nacisnij n:'); c:=readkey; IF (c='T') or (c='t') THEN begin s:=(a+b)/2; writeln(c) end ELSE IF (c='N') or (c='n') THEN begin s:=a+b; writeln(c) end ELSE writeln('BLEDNY WPIS'); writeln('Nacisnij dowolny klawisz zeby zakonczyc'); readkey end. |
if read('TAK') THEN s:=a+b/2 ELSE read('NIE') s:=a=b
tej linijki bym tak nie zapisal: 1) s:=a=b s przyjmie wart logiczna: czy a=b 2) s:=a+b/2 s bedzie wynosilo a + polowa b Poza tym ja bym jednak zrobil oddzielnie read(c) c jako string (i chyba lepiej dla swietego spokoju uzywac readln) czyli ===== readl(c); IF c=tak THEN s:=(a+b)/2 ELSE IF c=nie THEN s:=a+b ELSE begin writeln('BLEDNY WPIS'); s:=0 end; ===== begin ... end; write (s); end; begin delay(5000) end. Za duzo endow, poza tym lepiej chyba zrobic: ===== writeln(s); readkey; end. ===== wogole to bym zrobil troche inaczej: program Liczenie; uses crt; var a,b,s: real; var c: string[3]; (nie pamietam juz dobrze czy tak nalezy) begin clrsrc; writeln('Program wykonuje dodawanie i dzielenie '); writeln('Wprowadz 1 liczbe: '); read(a); writeln('Wprowadź 2 liczbe: '); read(b); writeln('Czy chcesz podzielić sume tych liczb wpisz TAK lub NIE:'); readl(c); IF c='TAK' THEN begin s:=(a+b)/2; writeln(c) end ELSE IF c='NIE' THEN begin s:=a+b; writeln(c) end ELSE writeln('BLEDNY WPIS'); readkey end. Chyba tak PS. - PASCAL SUX :) |
a czekaj, jeszcze to mi sie teraz rzucilo w oczy: s:=a=b . Co to ma wlasciwie robic? Chodzilo Ci po prostu o sume? (to po prostu pewnie male przeoczenie).
I jeszcze to poprzednie: s:=a+b/2 . Jezeli to ma byc podzielenie sumy, to chyba trzeba jeszcze jakis nawias dodac (jakkolwiek to sie w Pascalu robilo). Nie pamietam, jak Pascal traktowal kolejnosc dzialan, ale chyba jednak miala ona w nim jakies znaczenie. |
Ja tam pascala ledwie liznalem jakis czas temu, ale cos w tej linijce mi sie nie podoba:
if read('TAK') THEN s:=a+b/2 ELSE read('NIE') s:=a=b Poczatek w porzadku, ale zastanawia mnie to po else. Czy nie mozna darowac sobie tego else i napisac po prostu dwa warunki. Bo z tego, co tu jest, jak dla mnie wynika, ze: jezeli wprowadzone zostanie tak, to ma cos tam zrobic, a jezeli nie, to ma zostac wprowadzone nie i wtedy zrobi cos innego. Nie wiem, moze to jest dobrze, bo z drugiej strony, jezeli nie zostanie wprowadzone tak, to bedzie czekal, az zostanie wprowadzone nie, a inne mozliwosci nie bede w ogole brane pod uwage, czyli dobrze. W kazdym razie nigdzie poza tym nie widze zadnego bledu, ale tak, jak napisalem, pascala zaledwie liznalem, wiec wcale nie musi to znaczyc, ze takiego nie ma :) |
Turbo Pascal
Właśnie się ucze programowania w tym języku. Napisałem "coś", tylko nie wiem czy dobrze. W tym programie chodzi o obliczenie sumy dwóch liczb i ewentualnie o ich podzieleniu przez dwa. Oto źródło tego programu (obeznanych proszę o pomoc):
program Liczenie; uses crt; var a,b,s: real; begin clrsrc; write('Program wykonuje dodawanie i dzielenie '); writeln('Wprowadz 1 liczbe: '); read(a); writeln('Wprowadź 2 liczbe: '): read(b); writeln(Czy chcesz podzielić sume tych liczb wpisz TAK lub NIE: ') if read('TAK') THEN s:=a+b/2 ELSE read('NIE') s:=a=b end; write (s); end; begin delay(5000) end. Odpowiedź potrzebuje przed godziną 12.00 dnia 22.12.2003 |
| Wszystkie czasy w strefie CET. Aktualna godzina: 07:23. |
Powered by vBulletin® Version 3.9.0 LTS
Copyright ©2000 - 2026, vBulletin Solutions Inc.