gfxmedia 30 Października 2011 30 Października 2011 Witam, Nie wiedziałem gdzie to umieścić, więc daje tu. Mianowicie, program (w Pascalu) ma sortować 4 liczby podane z klawiatury, od największej do najmniejszej. Jak podam 12,11,10,9 to posortuje normalnie, a jak dam 6,8,9,12 to sortuje tak: 9,8,12,6. Co jest źle w tym kodzie ? Kod musi być oparty właśnie na IF'ach. program sort4; uses crt; var l1,l2,l3,l4,p,p1:real; begin clrscr; writeln('Podaj l1'); readln(l1); writeln('Podaj l2'); readln(l2); writeln('Podaj l3'); readln(l3); writeln('Podaj l4'); readln(l4); if l1 begin p:=l1; l1:=l2; l2:=p; end; if l2 begin p:=l2; l2:=l3; l3:=p; end; if l3 begin p:=l3; l3:=l4; l4:=p; end; if l1 begin p:=l1; l1:=l2; l2:=p; end; writeln; writeln(l1:0:2); writeln(l2:0:2); writeln(l3:0:2); writeln(l4:0:2); readkey; end. za pomoc piwka. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wlodziu 30 Października 2011 30 Października 2011 Masz za mało warunków sprawdzających.. Np. Jeżeli masz warunek 11>12 wtedy w nim sprawdzasz czy 11>13 i 11>14 i 11>12 wtedy dopiero możesz podać ze 11 jest największe Użyłbym tutaj sortowania bąbelkowego [ Dodano: 2011-10-30, 18:48 ] PS. radziłbym nie używać zmiennych, które mają cyfry Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gfxmedia 30 Października 2011 Autor 30 Października 2011 chodzi właśnie żeby to zrobić na warunkach Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wlodziu 30 Października 2011 30 Października 2011 Czyli musisz rozpatrzyć każda sytuacje, czyli 4 główne warunki a w nich po 3 czyli razem gdzieś 12 warunków wraz z else, mam takie coś w C++, ale niestety pendrive nie mam to bym Ci pokazał a pisać mi się nie chce. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gfxmedia 30 Października 2011 Autor 30 Października 2011 a kiedy byś mógł mi to jakoś pokazać ? // wyjasnione na SB. nie zamykać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wlodziu 31 Października 2011 31 Października 2011 masz tu na 3 liczby. max - najwieksza min - najmniejsza sr - pomiedzy program pierwszy; uses crt; var a,b,c,max,sr,min:integer; begin clrscr; writeln ('Podaj a b c:'); readln (a,b,c); if a>b then begin if a>c then begin max:= a; if b>c then begin sr:=b; min:=c; end else begin min:=b; sr:=c; end; end else begin sr:=a; if b>c then begin max:=b; min:=c; end else begin max:=c; min:=b; end; end; end else {b wieksze od a} begin if b>c then begin max:=b; if a>c then begin sr:=a; min:=c; end else begin sr:=c; min:=a; end; end else begin sr:=b; if a>c then begin max:=a; min:=c; end else begin min:=a; max:=c; end; end; end; writeln ('Najwieksza: ',max,' Najmniejsza: ',min,' Pomiedzy: ',sr); readln; end. na cztery liczby będzie podobnie, musisz rozpatrzyć każdy sposób. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...