Tytu³: Instrukcja wyboru case-else Wiadomo¶æ wys³ana przez: admin Grudzieñ 05, 2011, 09:07:01 Czasami okazuje siê,¿e w programie trzeba sprawdziæ kilka warunków i w zale¿no¶ci od nich podj±æ odpowiedni± akcjê np.
If warunek_1 then dzia³anie_1 else If warunek_2 then dzia³anie_2 else If warunek _3 then dzia³anie _3 Takie dzia³anie jest nieporêczne, dlatego w wprowadzono instrukcjê wyboru case-else. Case prze³±cznik of Warto¶æ_1: akcja_1; Warto¶æ_2:akcja_2; ............................ Warto¶æ_n: akcja_n; Else dzia³anie zastêpcze {gdy nie spe³nione pozosta³e} End; Przyk³ad 1. Program kalkulator; uses crt,dos; Var Liczba1,liczba2,wynik:real; Dzia³anie:char; Begin Write(‘Podaj pierwsz± liczbê ‘); readln(Liczba1); Write(‘Podaj drug± liczbê ‘); readln(Liczba2); Write(‘rodzaj dzia³ania(+ - * /) ’); Readln(dzialanie); Case dzialanie of ‘+’:wynik:=Liczba1+liczba2; ‘*’:wynik:=Liczba1*liczba2; ‘-’:wynik:=Liczba1-liczba2; ‘/’:if liczba2<>0 then wynik:=Liczba1/liczba2 Else write('zly znak'); End; readkey; End. Przyk³ad 1A. Zmodyfikowany poprzedni program, wy¶wietlaj±cy wyniki dzia³ania program bimbacz; uses crt,dos; var liczba1, liczba2,wynik:real; znak: char; begin clrscr; write('Podaj pierwsza liczbe: ');readln(liczba1); write('Podaj druga liczbe: ');readln(liczba2); write('Podaj znak dzialania: ');readln(znak); case znak of '+':begin write(liczba1:0:2,'+ ',liczba2:0:2,' = ',liczba1+liczba2:0:2);end; '-':begin write(liczba1:0:2,'- ',liczba2:0:2,' = ',liczba1-liczba2:0:2);end; '*':begin write(liczba1:0:2,'* ',liczba2:0:2,' = ',liczba1*liczba2:0:2);end; '/':if liczba2<>0 then begin write(liczba1:0:2,'+/',liczba2:0:2,' = ',liczba1/liczba2:0:2);end else write('Blad'); end; readln; end. Tytu³: Odp: Instrukcja wyboru case-else Wiadomo¶æ wys³ana przez: admin Grudzieñ 05, 2011, 09:53:49 Przyk³ad 2. Napisaæ menu gry w której bêd± pola (1- start, 2- nowa gra, 0 -wyj¶cie). Po wci¶niêciu odpowiedniego klawisza wy¶wietlany jest napis odpowiadaj±cy dzia³aniu. Je¿eli do programu wprowadzono niew³a¶ciwej zmiennej prosi ponownie o podanie wyboru, tak d³ugo do czasu wprowadzenia poprawnej warto¶ci.
Faza1: program bimbacz; uses crt,dos; var liczba1, liczba2,wynik:real; znak: char; begin clrscr; writeln('MENU'); writeln('1- START'); writeln('2-NOWA GRA'); writeln('0 - WYJSCIE'); writeln('TWOJ WYBOR'); readln(znak); readkey; end. FAZA 2. Instrukcja CASE program bimbacz; uses crt,dos; var liczba1, liczba2,wynik:real; znak: char; begin clrscr; writeln('MENU'); writeln('1- START'); writeln('2-NOWA GRA'); writeln('0 - WYJSCIE'); write('TWOJ WYBOR'); readln(znak); case znak of '1':begin writeln('ROZPOCZYNAM PROCEDURE -START!!!!!');end; '2': begin writeln('ROZPOCZYNAM PROCEDURE -NOWA GRA!!!!!');end; '0': begin writeln('ROZPOCZYNAM PROCEDURE - WYJSCIA Z PROGRAMU!!!!!');end; ELSE writeln ('PORAZKA PRZY WPROWADZANIU DANYCH'); END; readkey; end. FAZA 3. Wprowadzenie komunikatu ze zmian± koloru w przypadku wprowadzenia b³êdnej danej. program bimbacz; uses crt,dos; var liczba1, liczba2,wynik:byte; znak: char; begin clrscr; writeln('MENU'); writeln('1- START'); writeln('2-NOWA GRA'); writeln('0 - WYJSCIE'); write('TWOJ WYBOR'); readln(znak); wynik:=0; case znak of '1':begin writeln('ROZPOCZYNAM PROCEDURE -START!!!!!');end; '2': begin writeln('ROZPOCZYNAM PROCEDURE -NOWA GRA!!!!!');end; '0': begin writeln('ROZPOCZYNAM PROCEDURE - WYJSCIA Z PROGRAMU!!!!!');end; ELSE repeat wynik:=wynik+1;wynik:=wynik mod 2; if(wynik =0)then textbackground(red) else textbackground(yellow); clrscr; gotoxy(30,10);writeln ('PORAZKA PRZY WPROWADZANIU DANYCH');delay(500); until keypressed END; readkey; end. |