====== 5 - Vnořené cykly ====== ===== Procvičovaná témata ===== * Formátovaný výstup programu * Cykly a vnořené cykly * Rozdělení program do funkcí ===== Úkoly ===== ==== 1. Geometrické tvary ==== * Napište program, který do terminálu vypíše následujících pět obrazců (jeden po druhém). * Pokuste se případy parametrizovat a co nejvíce zobecnit. (a) ***** (b) * (c) * (d) ***** (e) ***** ***** ** ** **** **** ***** *** *** *** *** ***** **** **** ** ** ***** ***** ***** * * ==== 2. Matice prvků ==== * Vypište následující tabulku: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 * Jak to naprogramujete pomocí jednoho cyklu? Jak pomocí dvou vnořených cyklů? Co se vám zdá lepší a proč? * Nyní zkuste vypsat pouze diagonálu: 0 11 22 33 44 55 66 77 88 99 * Nyní tu druhou: 9 18 27 36 45 54 63 72 81 90 * A co obě zároveň? 0 9 11 18 22 27 33 36 44 45 54 55 63 66 72 77 81 88 90 99 * Parametrizujte svuj kód. Dokážete pouhou změnou parametru vypsat totéž pro tabulku 5x5? ==== 3. Kalendář ==== * Naprogramujte zjednodušenou verzi programu ''cal''. * Nejdříve zkuste vypsat: Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 * Pak zkuste kalendář pro mesíc září: September Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 * nebo rovnou kalendář pro tři po sobě jdoucí měsíce: September Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 October Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 November Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 * Parametrizujte kód, pokud tak již nemáte a zkuste vypsat kalendář pro různý rozsah měsíců. * Pokročilejším programátorům může pomoci následující kód:: static char *day_of_week[] = {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su" }; static char *name_of_month[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; static int days_in_month[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; static int first_day_in_september = 3; // 1. 9. 2016 is Thursday static int first_day_in_year = 4; // 1. 1. 2016 is Friday