Příklady z Matlabu 4 Příklady na řídící příkazy , IF , SWITCH , FOR , WHILE , příkazy vstupu a výstupu INPUT a DISP
Priklad na IF, (WHILE, INPUT, DISPL) Příkazem input vstupte s číslem 3 nebo 4 vypište číslo na obrazovku. Pokud vstoupíte číslem jiným vypište chybovou zprávu a ukončete běh.Je-li číslo 0 skončete načítání. clc; while 1 cislo=input('Zadejte cislo:'); if cislo==0, disp(' ~~ přerušení ~~'), break, end; if cislo==3 || cislo==4 disp(cislo); disp(' ~~ konec ~~'); break else disp('chybne zadane cislo - opakujte !!!') end;
Priklad na SWITCH, (INPUT, DISPL) Vstupte písmenem A nebo N a zkontrolujte pomocí příkazu switch , co bylo zadáno. clc; pismeno=input('Zadejte A nebo N:' , 's'); pismeno=upper(pismeno); switch pismeno case 'A' disp('Bylo zadáno písmeno A'); case 'N' disp('Bylo zadáno písmeno N'); otherwise disp('Nebylo zadáno písmeno A ani N'); end;
Priklad na FOR, ( IF/ELSE, DISP, num2str ) Vypište prvních 128 znaků ASCII-tabulky kódů v dekadické , znakové a hexadedimální reprezentaci. (Znakový tvar zobrazte jen pro čísla >31 .) % ASCII - tabulka znaků: clc; clear; for ipc=[0:127] if ipc<32 disp([num2str(ipc,'%03d'),' ... ',num2str(ipc,'%02x')]); else disp([num2str(ipc,'%03d'),' ... ',num2str(ipc,'%02x'),' ... ', char(ipc)]); end;
Priklad na SWITCH, ( IF/ELSE, DISP, num2str ) Vypište česky aktuální den v týdnu. <Datum> získáte pomocí funkce bez parametru „date“ , den v týdnu pomocí funkce „weekday(<datum>) % Priklad na switch - den v tydnu den=weekday(date); switch den case (1) % Pozor 1 = neděle disp(' Dnes je neděle ...'); case (2) disp(' Dnes je pondělí ...'); case (3) disp(' Dnes je úterý ...'); case (4) disp(' Dnes je středa ...'); case (5) disp(' Dnes je čtvrtek ...'); case (6) disp(' Dnes je pátek ...'); case (7) disp(' Dnes je sobota ...'); otherwise end;
Priklad na SWITCH – program pro výpis datumu česky Vypište česky aktuální den v týdnu. <Datum> získáte pomocí funkce bez parametru „date“ , číselné hodnoty pro den,měsíc a rok vloží do tříprvkového vektoru obsahujícího den, měsíc a rok funkce „datevec(<datum>)” : [rok,mesic,den] = datevec(date) % Priklad na datum česky : % [rok,mes,den]=datevec(date); switch mes case 1 , mesic='leden ' ; case 2 , mesic='únor ' ; case 3 , mesic='březen ' ; case 4 , mesic='duben ' ; case 5 , mesic='květen ' ; case 6 , mesic='červen ' ; case 7 , mesic='červenec' ; case 8 , mesic='srpen ' ; case 9 , mesic='září ' ; case 10 , mesic='říjen ' ; case 11 , mesic='listopad ' ; case 12 , mesic='prosinec' ; end; % pokračování na další straně
% … pokracovani programu : [ rok , mes , den ]=datevec(date); den_v_tydnu=weekday(date); switch den_v_tydnu case 1 , dt='neděle ' ; case 2 , dt='pondělí ' ; case 3 , dt='úterý ' ; case 4 , dt='středa ' ; case 5 , dt=‚čtvrtek ' ; case 6 , dt='pátek ' ; case 7 , dt='sobota ' ; end; disp([ ' Dnes je: ', dt , num2str(den) , '. ' , mesic , ' ' , num2str(rok) ]); % (Funkce strcat řetězí několik řetězců – parametrů do jednoho řetězu) datces=strcat( num2str(den) , '-' , mesic(1:3) , '-' , num2str(rok) ); disp(datces) ;
Příklad na výpis českého kalendáře Vypište (po 2 řádcích na každý měsíc) kalendář pro zadaný rok, který vstoupí přes příkaz INPUT ve tvaru [RRRR]. Jednotlivé dvouřádky budou uvozeny řádkem se jménem měsíce. V prvním řádku bude číslo dne v měsíci, v druhém řádku bude 2-písmenná zkratka dne v týdnu. Den v týdnu bude získán pomocí funkce weekday( datenum( rok , mes , den ) ) , poslední den v každém měsíci bude získán pomocí funkce eomday( rok , mes ). 2 řádky budou ukládány do 2 textových polí a vytištěny budou příkazem disp najednou. %Priklad na výpis českého kalendáře : % clc; clear; rok=input('Zadej rok (na 4 cifry): '); for mes=[1:12] % hlavní cyklus přes všechny měsíce roku eom=eomday(rok,mes); % číslo posledního dne v měsíci switch mes case 1 , mesic='leden ' ; case 2 , mesic='únor ' ; case 3 , mesic='březen ' ; case 4 , mesic='duben ' ; case 5 , mesic='květen ' ; case 6 , mesic='červen ' ; case 7 , mesic='červenec' ; case 8 , mesic='srpen ' ; case 9 , mesic='září ' ; case 10 , mesic='říjen ' ; case 11 , mesic='listopad ' ; case 12 , mesic='prosinec' ; end; % pokračování na další straně
% … pokracovani programu : disp( upper( mesic ) ); % zobrazení řádky se jménem měsíce % line0=' '; % inicializace 1.řádku line0 (přiřadíme mu řetězec délky 0) for den=[1:eom] % zápis pořadového dne v měsíci do textového pole line0 line0=[ line0 , num2str(den,'%02d') , ' ' ] ; % zřetězení pův.obsahu line0, č.dne a mezery end line1=' '; % inicializace 2.řádku line1 (přiřadíme mu řetězec délky 0) for den=[1:eom] % cyklus pro první až poslední den v měsíci den_v_tydnu=weekday(datenum(rok,mes,den)); %získej pořadové číslo dne v týdnu switch den_v_tydnu % přiřaď mu dvoupísmennou zkratku case 1 , dt='NE'; case 2 , dt='PO'; case 3 , dt='UT'; case 4 , dt='ST'; case 5 , dt='CT'; case 6 , dt='PA'; case 7 , dt='SO'; end; line1=[line1,dt,' ']; % zřetězení pův.obsahu line0, 2-písmenné zkratky a mezery disp(line0); % zobrazení řádky 1 ( čísla dnů v měsíci ) disp(line1); % zobrazení řádky 2 (dvoupísmenné zkratky dnů v měsíci ) disp(' '); % zobrazení prázdného (oddělovacího) řádku end; % konec cyklu FOR přes všechny měsíce roku