Škôlka jazyka C

Fórum o programovaní v jazyku C založené 3. januára 2012

Aktuálny čas je 21 Apr 2018, 15:59

Všetky časy sú v GMT + 1 hodina




Vytvoriť novú tému Odpovedať na tému  [ Príspevok: 1 ] 
Autor Správa
PoslaťNapísal: 02 Nov 2012, 12:39 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 446
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
1. lekcia
Spoiler:
1. úloha (neodovzdávať)
Vyskúšaj ako sa bude správať kompilátor keď v programe prvy.c:
- vynecháš riadok #include <stdio.h>
- vynecháš # pred include
- vynecháš <stdio.h>
- vynecháš znaky < a > okolo stdio.h
- vynecháš riadok int main()
- vynecháš () za main
- vynecháš {
- vynecháš ; za príkazom printf
- vynecháš úvodzovky v príkaze printf
- vynecháš jednu alebo druhú úvodzovku v príkaze printf
- vynecháš zátvorky v príkaze printf
- vynecháš } na konci
- vynecháš \ pred n v príkaze printf
- vynecháš n za \ v príkaze printf

2. úloha: Urob program vizitka.c, ktorý vypíše tvoju vizitku ohraničenú hviezdičkami.

3. úloha: Urob program srdiecko.c, ktorý nakreslí srdiečko z hviezdičiek.

4. úloha: Urob program riadky.c, ktorý vypíše desať prázdnych riadkov.

5. úloha: Urob program idea.c, ktorý vypíše aspoň trojriadkovú životnú múdrosť.

6. úloha: Urob program text.c, ktorý vypíše presne následujúci text:
James Bond \ "Agent 007" \ # 150% zaruka # /
Spol. s rucenim neobmedzenym

2. lekcia
Spoiler:
1. úloha: Napíš do súboru ludolf.c, skompiluj a spusti nasledovný program:
Kód:
#include <stdio.h>
main()
{
  float pi;
  pi = 3.1415926535;
  printf("Pi = %f",pi);
}

2. úloha: Napíš program pism.c, v ktorom budeš mať premennú pismk typu char. Najprv do
nej vložíš písmeno A (príkazom pismk = 'A'; – tie apostrofy okolo toho A sú
dôležité) potom jej obsah zväčšíš o 1 a vypíšeš. Čo dostaneš? Čo dostaneš, ak o 1
zväčšíš premennú v ktorej je uložené písmenko 'Z'? Čo napíšu na obrazovku príkazy
Kód:
   printf("%c %d\n",65,65);
   printf("%c %d\n",'C','C');

3. úloha: Napíš program, v ktorom budeš mať dve premenné typu int (mená im vymysli sám),
naplň ich nejakými hodnotami a potom vypíš ich súčet a súčin. Je nutné aby program vypisoval súčet a súčin správne pre ľubovoľné hodnoty tých dvoch premenných.

4. úloha: Napíš program, ktorý vypíše nasledujúcu tabuľku:
Kód:
--------------
| 1 x 9 = 9  |
| 2 x 9 = 18 |
| 3 x 9 = 27 |
| 4 x 9 = 36 |
| 5 x 9 = 45 |
| 6 x 9 = 54 |
| 7 x 9 = 63 |
| 8 x 9 = 72 |
| 9 x 9 = 81 |
|10 x 9 = 90 |
--------------

pričom sa v jeho zdrojovom kóde nachádza znak 9 iba raz a to v riadku, ktorý vyzerá takto:
i = 9;

5. úloha: Sú dané definície:
int a = 2, b = 2, c = 1, d = 0, e = 4;Napíš program ktorý vypíše hodnoty nasledujúcich výrazov a správnosť skontroluj vlastným výpočtom (tiež v tom programe)
a)
a++ / ++c * --e
b )
--b * c++ -a
c)
-b - --c
d)
++a - --e
e)
e / --a * b++ / c++
f)
a %= b = d = 1 + e / 2
(po každom výpočte daj do premenných pôvodné hodnoty)

6. úloha: Napíš program, ktorý vypíše maximálne číslo, ktoré je možné uložiť do unsigned int a do signed int.
Pomôcka: -1 ako signed int je maximálne unsigned int a maximálne signed int je ½ maximálneho unsigned int.

7. úloha: Napíš program, ktorý zistí to isté ako v úlohe č. 6 pre typy short a long.

8. úloha: Napíš program, ktorý objasní všetky spôsoby použitia operátora / (delenie celočíselné aj reálne) a operátora % (delenie modulo).

9. úloha: Napíš program, ktorý krátko pípne.

3. lekcia
Spoiler:
1. Napíš program, ktorý načíta dve strany obdĺžnika a vypíše jeho obsah.

2. Napíš program, ktorý načíta znak a vypíše jeho ASCII kód.

3. Napíš program, ktorý načíta číslo, vypíše číslo o jedna väčšie a komentár
Haha, vyhral som !!!

4. Napíš program, v ktorom deklaruješ tri premenné typu int a vypíš adresy
v pamäti, na ktorých sa tie premenné nachádzajú. Koľko bajtov zaberá jedna premenná
typu int? (pomôcka - veľkosť bytov premennej sa zisťuje príkazom: sizeof(premenná)

5. Napíš program, ktorý prečíta celé dekadické číslo (rozsah 0 – 255) a vypíše jeho hexadecimálnu hodnotu.

6. Napíš program, ktorý prečíta reálne číslo a vypíše jeho celú časť. Skús využiť viac spôsobov získania celej časti.

7. Napíš program, ktorý prečíta 3 veľké písmená a vypíše ako 3 malé písmená.
Použi iba jeden príkaz scanf().

8. Napíš program, ktorý prečíta 3 malé písmená a vypíše ich ako 3 veľké písmená v opačnom poradí.
Použi iba jeden príkaz scanf().

9. Napíš program, ktorý prečíta 3 reálne čísla a vypíše ich aritmetický priemer na 2 desatinné miesta.
Použi iba jeden príkaz scanf().

4. lekcia
Spoiler:
1. Pozri si nasledujúci program a na papier si napíš tvoj typ, čo bude vypisovať. Potom
program skompiluj a spusti. Porovnaj si tvoje typy s realitou. Pochop, prečo píše to, čo to píše.
V odpovedi na úlohu napíš svoje typy to tela príspevku.
Kód:
#include <stdio.h>
main()
{
  int i = 3, j = 4;
  printf("%d\n", i == 3);
  printf("%d\n", j >= 6);
  printf("%d\n", j = 5);
  printf("%d\n", i < 6);
  printf("%d\n", j == 4);
}

2. Napíš program, ktorý načíta hodnotu do znakovej premennej zn (príkaz getchar()) a vypíše 1 ak je to
číslica '0' až '9'. Inak vypíše 0.

3. Vymysli podmienku, ktorá nadobudne hodnotu „pravda“ buď vtedy, keď je
v premennej i hodnota 0 alebo vtedy, keď je tam hodnota 1. Inokedy nadobudne
hodnotu „nepravda“. Vyskúšaj v programe.

4. Vymysli a vyskúšaj podmienku, ktorá otestuje, či je hodnota v premennej i párna.

5. Napíš program, v ktorom budú tieto príkazy:
Kód:
i = 5;
printf("%d \n", i == 8);
printf("%d \n", i = 8);
printf("%d \n", i == 8);

a vysvetli výsledky jednotlivých výstupov.
Stačí keď to bude vyzerať takto:
Kód:
i = 5;
printf("%d \n", i == 8);         /* i bude x pretoze .... */
printf("%d \n", i = 8);  /* i bude x pretoze .... */
printf("%d \n", i == 8);         /* i bude x pretoze .... */

Až potom si program spusti a skontroluj, či si výstupy správne napísal.

5. lekcia
Spoiler:
2. Napíš program, ktorý sa ťa spýta, či máš rád programovanie a podľa tvojej
odpovede (A alebo N) ti povie niečo duchaplné.

3. Vylepši program z úlohy č.2 tak, aby v prípade, že neodpovieš ani A ani N oznámil, že
dostal neočakávanú odpoveď.

4. S pomocou príkazu if – else napíš program, ktorý načíta celé číslo. Ak je toto
číslo kladné, tak ho vypíše a inak vypíše nulu.

5. Napíš program, ktorý načíta dve čísla a vypíše to väčšie z nich. Skús to spraviť
s pomocou podmienených výrazov. (Nepovinný variant pre frajerov a guruov: Napíš
program, ktorý načíta tri čísla a vypíše ich od najväčšieho po najmenšie.)

6. Na rýchlostnú skúšku na diaľnici sa dostavili bohužiaľ len 2 autá. Prvé auto bolo tvojho pocítača a prešlo trasu dĺžky 250m za 7s, druhé je užívateľa programu a prešlo ju za t2 (zadá užívateľ) sekund.

Výstupy:
■ Akou rýchlosťou v m/s a km/h každé auto išlo?
■ Ktoré auto bolo rýchlejšie?
■ Ktoré auto prekročilo rýchlosť 100km/h?
■ O koľko km/h bol víťaz rýchlejší ako porazený?

(Pomôcka: zaokrúhlenie číslo na určitý počet desatinných miest -> %0.2f)

7. Upravt pomocou explicitnej typovej konvencie delenie f = i / j; tak, aby bola v premennej f hodnota 2.5, ktorú vypíš. V priradení hodnôt premenných i (5) a j (2) over tiež funkciu operátora čiarka.

8. Napíš program, ktorá prečíta dve celé čísla a pomocou ternárneho operátora ( ? : ) vytlačí napr.:
mensie cislo : 5
vacsie cislo : 8

10. Prečítaj znak a ak to nie je číslica ani písmeno, vypíše nápis:
interpunkcný znak
V ostatných prípadoch vytlačí nápis: Alfanumerický znak.
Použi len jeden príkaz (if – else) a nezabudni na malé písmená.

11. Prežítaj jeden znak. Podľa jeho hodnoty vypíš jeden z nasledujúcich nápisov a prečítaný znak vypíš v apostrofoch, napr.:
Kód:
interpunkčný znak   :   '>'
cislica   :   '3'
velke pismeno   :   'K'
male pismeno   :   'a'

12. Over na príklade, že podmienky:

if (vyraz != 0)
a
if (vyraz)

majú totožnú funkciu.

To isté over aj pre opačné podmienky:

if (vyraz == 0)
a
if (!vyraz)

13. Dopíš nasledujúci program tak, aby bolo možné overiť skrátené vyhodnocovanie && podmienky:
Kód:
if (i == 5 && ++j == 3)
  printf("podmienka platna\n");

14. Dopíš nasledujúci program tak, aby bolo možné overiť skrátené vyhodnocovanie || podmienky:
Kód:
if (i == 5 || ++j == 3)
  printf("podmienka platna\n");

15. Napíš program, ktorý prečíta dva znaky v rozsahu 0 – 9 alebo A – F. Pozor – nečítaj jedno hexadecimálne číslo! Tieto dva znaky potom považuj za hexadecimálne číslo a jeho hodnotu vypíš dekadicky.
To znamená, že výstup napr.: 59, 0D, A7, FF (označuje sa aj 0Dh) je hexadecimálne (šestnásťkové) číslo a treba ho previesť na dekadické (desiatkové).

6. lekcia
Spoiler:
2. Napíš program, ktorý napíše za trest dvadsaťkrát: Nebudem zhadzovat operacny
system. (použi príkaz do - while)

3. Napíš program, ktorý do premennej poc načíta celé číslo z klávesnice a vypočíta súčet
1 + 2 + 3 + ... + poc . (použi príkaz while)

4. Napíš program ktorý vypíše do tabuľky ASCII kódy (hexadecimálne) všetkých veľkých písmen bez diakritiky, teda 'A' až 'Z'. (použi príkaz while)
Funkcia printf sa v ňom môže nachádzať maximálne dvakrát.

5. Uprav uvedený program tak, aby si to A pýtal maximálne trikrát a ak sa človek trikrát netrafí, tak vypíše nejaký komentár psychického stavu jedinca za klávesnicou a skončí.
Kód:
{
  char pis;
  printf("Napis A!\n");
  do {
        pis = getchar();
        if (pis != 'A')
          printf("Hovoril som A!!! Takze znovu: Napis A!\n");
  } while (pis != 'A');
  printf("Hura, naozaj je to A!\n");
}

6. Čítaj znaky z klávesnice až do '\n' a spočítaj počet veľkých a malých písmen. Ostatných znakov si nevšímaj.
Použi cyklus while.

7. Napíš program, ktorý prečíta n čísiel z klávesnice (n sa zadá tiež z klávesnice). Pre každý vstup vypíš napr.:
Zadaj i. cislo :
Z týchto čísiel urči, koľko z nich leží v intervale <25, 38>.
Použi cyklus for.

8. Napíš program, ktorý vypisuje prirodzené čísla (1, 2, 3, ...) vyskúšaj činnosť príkazov break a continue.
Použi cyklus for.

9. Napíš program, ktorý pre zadané číslo vypočíta faktoriál. Použi typ unsigned long int.

V matematike sa pojmom faktoriál kladného celého čísla n označuje súčin všetkých kladných celých čísel menších alebo rovných n. Zapisuje sa n! a číta sa „n faktoriál“. Napríklad:

5! = 1 . 2 . 3 . 4 . 5 = 120

10. Napíš program, ktorý prečíta dve kladné reálne čísla f a g a potom vypíše všetky párne čísla v intervale <f, g>.
(bude sa to zdať jednoduché, ale skús zadať 2.0, 8.0 či to vypíše správne, teda 2, 4, 6, 8)

11. S pomocou cyklu for napíš program, ktorý vypíše všetky nepárne čísla od 1 do 99.

12. S pomocou cyklu for napíš program, ktorý vypíše všetky čísla od 1 do 100 a ku
každému napíše, či je párne, alebo nepárne.

13. Napíš program, ktorý načíta číslo z klávesnice a potom urobí štvorček
z hviezdičiek danej veľkosti. Napr. ak užívateľ zadá číslo 3, výsledok bude:
Kód:
***
***
***

14. Napíš program, ktorý načíta číslo a potom spraví symetrický trojuholník danej veľkosti.
Pre vstup 4 to bude vyzerať takto:
Kód:
   *
  ***
 *****
*******

7. lekcia
Spoiler:
1. S pomocou príkazu switch napíš program, ktorý si vypýta číslo, v prípade, že je to 1, 2 alebo 3 napíše obstojne cislo, ak je to 4 alebo 5, napíše ujde to a ak je to nejaké iné číslo, napíše humus.

2. S pomocou príkazu switch napíš program, ktorý si pýta znaky (uzavri ho do nekonečného cyklu). Ak je znak 'a', 'b' alebo 'c', vypíše: Zadal si 'a', 'b' alebo 'c'. Ak je znak '5', 'U' alebo '*', vypíše: Zadal si '5', 'U' alebo '*'.
Ak je to znak 'X', ukončí sa program (použi exit(EXIT_FAILURE)). Ak je to iný znak ako sú uvedené, vypíše: Ostatne znaky.

8. lekcia
Spoiler:
1. Napíš program, ktorý načíta desatinné číslo a vypíše jeho tretiu mocninu.
(Napr.:Tretia mocnina cisla 6.666666 je 296.296212.)

2. Napíš program, ktorý načíta tri čísla a vypíše prostredné (podľa veľkosti) z nich.

3. Napíš program, ktorý načíta číslo. Ak je toto číslo 6, vypíše Dobré ráno. Ak je toto
číslo 12, vypíše Dobry den. Ak je toto číslo 19, vypíše Dobry vecer. Vo všetkých
ostatných prípadoch vypíše Dovidenia.

4. Napíš program, ktorý načíta číslo a patričný počet krát vypíše Chcem jeden bod.

5. Napíš program, ktorý načíta číslo a nakreslí trojuholník danej veľkosti. Príklad pre
vstup 3:
Kód:
*
**
***
**
*

6. Napíš program, ktorý číta znaky z klávesnice až kým nenájde 'X'. Potom vypíše,
koľko z prečítaných znakov boli znaky 'A'.

7. Napíš program, ktorý načíta znak z klávesnice. Ak tento znak nie je písmeno, tak ho
vypíše, ak je to malé písmeno, vypíše k nemu zodpovedajúce veľké písmeno a ak je to
veľké písmeno, vypíše k nemu zodpovedajúce malé písmeno.

8. Napíš program, ktorý načíta dve celé čísla a vypíše všetky párne čísla, ktoré ležia
medzi nimi. (Pre vstup 3 a 8 vypíše čísla 4, 6 a 8. Pre vstup 6 a 3 vypíše čísla 4 a 6. Pre
vstup 3 a 3 nevypíše nič.)

9. Napíš program, ktorý vypočíta faktoriál zo zadaného čísla. (Pre vstup 4 bude výsledok
1.2.3.4 = 24)

10. Napíš program, ktorý načíta 20 čísel z klávesnice a vypíše, koľko z nich bolo od 5 do 10.

11. Napíš program, ktorý pozostáva iba z dvoch príkazov (omáčička a deklarácia
premenných sa nerátajú) a ktorý načíta číslo a v prípade, že je to číslo párne, vypíše
z neho polovicu a inak vypíše jeho trojnásobok zväčšený o 1.

12. Napíš program, ktorý načíta číslo a opakuje s ním operáciu z predošlej úlohy, až kým
nedostane jedničku. Čísla priebežne vypisuje. (Teda pre vstup 3 vypíše čísla 3, 10,
5, 16, 8, 4, 2, 1.) Mimochodom – myslíš si, že takýto program vždy skončí?

13. Pre guruov - nepovinná úloha.
Napíš program, ktorý načíta číslo a spraví patričný počet
sústredných štvorcov. Príklad pre vstup 1, 2, 3 a 4:

14. Napíš program, ktorý zistí a vypíše najmenší násobok čísla 31 väčší ako 10000.
Použi nekonečný cyklus (v ktorom sa nejaká premenná vždy zväčší o 31) a príkaz
break.

15. Fibonacciho postupnosť je postupnosť čísel 1, 1, 2, 3, 5,
8, 13,..., každý ďalší člen je súčtom dvoch predchádzajúcich.
Napíš program, ktorý vypíše všetky členy Fibonacciho postupnosti menšie než 10000.

_________________
kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor),
Skype: libcokamo, ICQ: 56312279
Ak treba, napíš mi na libcosenior@gmail.com. To mám v mobile a stále po ruke.


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
Zobraziť príspevky z predchádzajúceho:  Zoradiť podľa  
Vytvoriť novú tému Odpovedať na tému  [ Príspevok: 1 ] 

Všetky časy sú v GMT + 1 hodina


Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť


Rýchla úprava:
Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete zasielať súbory v tomto fóre

Hľadať:
Skočiť na:  
cron
Powered by phpBB® Forum Software © phpBB Group

Hosted by FreeSpace SK