GRY-Online.pl --> Archiwum Forum

Pascal - częściowa pomoc w programie.

17.09.2009
18:16
[1]

NeroTFP [ Senator ]

Pascal - częściowa pomoc w programie.

Witam.

Jestem w trakcie pisania programu w Pascalu. Mam za zadanie napisać program, który z trzech liczb pokazuje, tą najmniejszą.

Udało mi się, coś do tej pory stworzyć, ale dalej zastopowałem.

Oto kod:

program najmniejsza_liczba;
uses crt;
var a,b,c:real;
begin
clrscr;
writeln('Program pokazujĄcy najmniejsza liczb©');
writeln('Podaj liczb© a');
readln(a);
writeln('Podaj liczb© b');
readln(b);
writeln('Podaj liczb© c');
readln(c);
readkey;
end.


Dalej, niestety się zaciąłem i nie bardzo wiem, jak to skończyć.

Próbuję użyć komendy if, then. W stylu:

if a<b then write ('a jest najmniejsza')
else


Działa to, ale nie działa mi to na więcej liczb. Czyli działa tylko ten jeden warunek, a reszty nie rozpatruje. Jaki robię błąd? Co dalej zrobić? Proszę o pomoc.

17.09.2009
18:23
[2]

Antemos [ Konsul ]

if (a<b) and (a<c) then write ('a jest najmniejsza')
else
if (b<c) and (b<a) then write ('b jest najmniejsza')
else
if (c<a) and (c<b) then write ('c jest najmniejsza');

Spróbuj tak. Możliwe, że pomyliłem składnię. Programowanie miałem jakiś czas temu ;)

17.09.2009
18:25
[3]

qaq [ Kaka Demona ]

Antemos - należy rozpatrzyc też przypadki gdy a=b lub a=c lub b=c lub a=b=c (chyba że jest warunek, że tylko jedna z liczb jest najmniejsza).

Postaram się za chwilę wkleić rozwiązanie.

17.09.2009
18:28
[4]

NeroTFP [ Senator ]

Dzięki Antemos :) Działa dobrze.

Mój błąd polegał na tym, że po prostu nie wstawiałem "and", tylko pisałem każdy warunek osobno.

qaq -> Nauczyciel mówił, że na razie nie musimy rozpatrywać a=b, itp.

Jeżeli chcesz, to możesz wstawić rozwiązanie. Ja sam popróbuję poeksperymentować z tymi "a=b".

Dzięki jeszcze raz wszystkim.

17.09.2009
18:30
[5]

Antemos [ Konsul ]

Poczekaj, niech qaq wrzuci tutaj swoją wersję. Będzie bardziej dopracowana. Najlepiej zrobić wyłapywanie takich samych liczb już przy ich wprowadzaniu.

17.09.2009
18:49
[6]

wlodzix® [ Trup w windzie ]

Specjalnie dla ciebie napisałem:

USES CRT;

VAR

a,b,c:real;

BEGIN
clrscr;
writeln('Podaj liczbe a');
readln(a);
writeln('Podaj liczbe b');
readln(b);
writeln('Podaj liczbe c');
readln(c);
IF (a<b) and (a<c) then write ('a jest najmniejsza') else
IF (b<c) and (b<a) then write ('b jest najmniejsza;) else
IF (c<b) and (c<a) then write ('c jest najmniejsza') else
IF (c=b) and (c=a) and (b=c) and (b=a) and (a=b) and (a=c) then write ('liczby te sa rowne');
readln;
END.

Tylko jeszcze musisz dopisać ( bo już mi się dalej nie chcialo ) co ma być spelnione jesli np. dwie liczby bede takie same a jedna wyzsza. Mysle, ze wiesz o co chodzi. Liczby a i b są najmniejsze, c i a są najmniejsze np.

17.09.2009
18:53
smile
[7]

qaq [ Kaka Demona ]

if a<=b then
begin
if a<b then
begin
if a<=c then
begin
if a=c then
writeln('Najnizsze liczby to a i c')
else writeln('Najnizsza liczba to a');
end
else writeln('Najnizsza liczba to c');
end
else
begin
if a<=c then
begin
if a=c then
writeln('Wszystkie liczby sa rowne')
else writeln('Najnizsze liczby to a i b');
end
else writeln ('najnizsza liczba to c');
end;
end
else
begin
if b<=c then
begin
if b=c then
writeln ('najnizsze liczby to b i c')
else writeln ('najnizsza liczba to b');
end
else writeln ('najnizsza liczba to c');
end;


beginy i endy dla większej czytelności. Algorytm na 95% spełnia swoja rolę - sprawdzałem;)

[edit] cholera - usunęło wcięcia:/ tak to powinno wyglądać ->


Pascal -  częściowa pomoc w programie. - qaq
17.09.2009
18:55
smile
[8]

wlodzix® [ Trup w windzie ]

Kolega qaq wszystko ładnie napisał.

Powodzenia w dalszej nauce !

17.09.2009
19:01
smile
[9]

Moby7777 [ Generaďż˝ ]

Do wszystkich tu piszących: CO KURWA? Może jednak jakaś optymalizacja?

17.09.2009
19:05
[10]

qaq [ Kaka Demona ]

Moby -
po pierwsze - zrozumiałem że miało to być w instrukcjach warunkowych - jest w instrukcjach warunkowych
po drugie - napisz mi ten sam algorytm instrukcjami warunkowymi bardziej zoptymalizowany - nie, nie wywyższam się teraz, po prostu jestem ciekawy;)
po trzecie - raczej w takim malutkim programie optymalizacja nie jest szczególnie ważna
po czwarte - to nie jest powód by przeklinać:P

17.09.2009
19:37
smile
[11]

NeroTFP [ Senator ]

Poradziłem sobie. Dziękuję wszystkim, skorzystałem z waszych wskazówek :)

© 2000-2024 GRY-OnLine S.A.