Škôlka jazyka C

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

Aktuálny čas je 01 Mar 2021, 05:32

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




Vytvoriť novú tému Odpovedať na tému  [ Príspevkov: 37 ]  Choď na stránku Predchádzajúci  1, 2
Autor Správa
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 25 Nov 2012, 13:08 
Offline
Škôlkár
Škôlkár

Registrovaný: 14 Okt 2012, 16:31
Príspevky: 7
Udelené body: 0 udelenie bodov
Získané body: 4 bodov
ide


Prílohy:
10.uloha.PNG
10.uloha.PNG [ 8.85 KiB | Zobrazené 3515 krát ]
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 26 Nov 2012, 19:16 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
Takže pre upresnenie.
Vo funkcii scanf() sa môžu používať aj iné znaky ako medzera, ale presne také isté sa musia použiť aj pri zadávaní z klávesnice, inakšie to nerobí dobrotu.
Vzhľadom na to, že je to zbytočne komplikované, sa to proste nepoužíva.
Avšak, ak to niekto považuje za potrebné alebo dokonca prínosné pre program, nech sa páči. Budeme to brať na zreteľ. ;)

_________________
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  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 28 Mar 2013, 18:06 
Offline
Škôlkár
Škôlkár
Obrázok užívateľa

Registrovaný: 16 Mar 2013, 16:36
Príspevky: 8
Udelené body: 1 udelenie bodov
Získané body: 8 bodov
Postupne doplnim. V 4 som to "printf" pouzil 3x, ale len kvoli tomu, aby to vyzeralo lepsie :D
Obrázok
2. - 4. - výborne :)
5. - OK, ale máš tam zbytočný riadok:
Kód:
            } while (pis != 'A');
            //if (pis =='A') // tento je zbytocny
            printf("Hura, naozaj je to A!\n\n");

6. - 8. výborne :D
9. - OK, pekne a jednoducho
10. - OK
11.-13. - OK
14. - OK, spravil si náročnejší obrazec, fajn ;)
libcosenior


Prílohy:
L6U2.c [156 Bajtov]
171 krát
L6U3.c [331 Bajtov]
155 krát
L6U4.c [378 Bajtov]
147 krát
L6U5.c [597 Bajtov]
163 krát
L6U7.c [422 Bajtov]
152 krát
L6U8.c [189 Bajtov]
153 krát
L6U6.c [401 Bajtov]
145 krát
L6U9.c [271 Bajtov]
154 krát
L6U11.c [317 Bajtov]
160 krát
L6U12.c [228 Bajtov]
157 krát
L6U13.c [293 Bajtov]
161 krát
L6U14.c [310 Bajtov]
152 krát
L6U10.c [496 Bajtov]
164 krát
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 14 Apr 2013, 18:03 
Offline
Školák
Školák
Obrázok užívateľa

Registrovaný: 02 Mar 2013, 15:54
Príspevky: 25
Udelené body: 0 udelenie bodov
Získané body: 9 bodov
Posielam úlohy zo šiestej lekcie. Tretia úloha je vo dvoch verziách.
Obrázok
2. - OK
3A. - OK, pekne
3B. - OK, len si skús zvyknúť, že
Kód:
sum=sum+i;
sa zvykne písať
Kód:
sum += i;

4. - OK, len si skús zvyknúť, že
Kód:
z=z+1;
sa zvykne písať
Kód:
z++;

5. - OK
6. - OK
7. - OK
8. - OK
9. - OK
10. - OK
11. - OK
12. - OK
13. - OK
14. - OK
libcosenior


Prílohy:
U2L6.c [180 Bajtov]
163 krát
U3L6A.c [484 Bajtov]
173 krát
U3L6B.c [660 Bajtov]
160 krát
U4L6.c [379 Bajtov]
140 krát
U5L6.c [561 Bajtov]
150 krát
U6L6.c [559 Bajtov]
155 krát
U7L6.c [777 Bajtov]
153 krát
U8L6.c [339 Bajtov]
167 krát
U9L6.c [463 Bajtov]
164 krát
U10L6.c [546 Bajtov]
151 krát
U11L6.c [261 Bajtov]
144 krát
U12L6.c [319 Bajtov]
151 krát
U13L6.c [613 Bajtov]
162 krát
U14L6.c [606 Bajtov]
146 krát
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 20 Apr 2013, 20:22 
Offline
Školák
Školák
Obrázok užívateľa

Registrovaný: 02 Mar 2013, 15:54
Príspevky: 25
Udelené body: 0 udelenie bodov
Získané body: 9 bodov
Posielam opravené úlohy 2, 5, 8 a 10 k 6. lekcii

Už to je v poriadku, akurát mám dojem, že si ešte neporozumel využitiu príkazu continue.
Preto ti dávam ďalšie dve úlohy:
1. Napíš na čo sa príkaz continue používa.
2. Napíš program, ktorý vypíše nepárne čísla v rozsahu 1 - 30 za pomoci príkazu continue.
libcosenior


Prílohy:
U2L6opr.c [188 Bajtov]
159 krát
U5L6opr.c [558 Bajtov]
166 krát
U8L6opr.c [648 Bajtov]
143 krát
U10L6opr.c [611 Bajtov]
136 krát
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 21 Apr 2013, 11:36 
Offline
Školák
Školák
Obrázok užívateľa

Registrovaný: 02 Mar 2013, 15:54
Príspevky: 25
Udelené body: 0 udelenie bodov
Získané body: 9 bodov
Posielam doplnenie k lekcii 6 :
1. Opisujem z múdrej knihy : " Menej používaný príkaz CONTINUE súvisí s príkazom BREAK; príkaz CONTINUE si vynúti okamžitý začiatok ďalšieho priechodu cyklom FOR, WHILE, alebo DO.
V príkazoch WHILE a DO spôsobí okamžité otestovanie podmienky ukončenia; u FOR prejde riadenie na inkrementačnú časť. Príkaz CONTINUE sa dá použiť iba v cykloch, nie v príkaze SWITCH.
CONTINUE vo vnútri príkazu SWITCH, ktorý sa nachádza vo vnútri cyklu, spôsobí začiatok ďalšieho priechodu cyklom.
Príkaz CONTINUE sa často používa v prípadoch, keď je nasledujúca časť cyklu príliš zložitá, takže vloženie testu do podmieneného príkazu a odsadenie ďalšej úrovne by spôsobilo príliš veľké zanorenie programu."

2. Pripájam jednoduché riešenie.


Prílohy:
UzvlastnaL6.c [280 Bajtov]
134 krát
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 21 Apr 2013, 13:00 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
Popolvar, 2. úloha nie je správne.
Skús zmazať príkaz continue a výpis bude rovnaký, to znamená, že tam nemá žiadny význam.
Ešte o tom popremýšľaj.
Spoiler:
Kód:
/*Samostatná úloha pre príkaz CONTINUE*/
#include<stdio.h>
int main()
{
    int i=1;
    printf("\n Program vypise neparne cisla od 1 po 29\n\n");

    for(i=1; i<=30; i++){
        if (!(i%2)) // ak je i parne cislo
            continue; // vrat sa na zaciatok cyklu
        printf(" %d, ", i); // teda vypise neparne cisla
    //continue; zakomentovane = neplati
    }
    putchar('\n');
return 0;
}

_________________
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  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 21 Apr 2013, 21:15 
Offline
Školák
Školák
Obrázok užívateľa

Registrovaný: 02 Mar 2013, 15:54
Príspevky: 25
Udelené body: 0 udelenie bodov
Získané body: 9 bodov
Urobil som ešte jeden pokus s príkazom CONTINUE, ale ešte to nemám na 100% zvládnuté.
Počul som, že pri programovaní je najhorších prvých 50 rokov, potom to už ide !


Prílohy:
LEK6CON.c [355 Bajtov]
132 krát
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 22 Apr 2013, 06:26 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
OK, teraz to už vyzerá lepšie.
Ale aj tak mám na teba jednu vec. Skús porovnať nasledujúce dva programy. Nemyslím obsahovo (sú rovnaké), ale aké sú prehľadné:
Spoiler:
1.
Kód:
#include <stdio.h>
main ()
{
  int i=0;
  while(1){
      i++;
      printf(" %d, ", i);
    if(i<=9)    /*do 10 pripocitava po jednej*/
    continue;
    i+=2;       /*tu mením prirastok hodnoty premennej*/
    if(i>=100)  /*kedze ide na zaciatok cyklu,tam je i++ tak pripocitava 3*/
    break;
  }
  return 0;
  }

2.
Kód:
#include <stdio.h>
main ()
{
    int i=0;
    while(1){
        i++;
        printf(" %d, ", i);
        if(i<=9)    /*do 10 pripocitava po jednej*/
            continue;
        i+=2;       /*tu mením prirastok hodnoty premennej*/
        if(i>=100)  /*kedze ide na zaciatok cyklu,tam je i++ tak pripocitava 3*/
            break;
    }
    return 0;
}

Program treba rozdelovať do blokov, inakšie pri väčšom programe (niekoľko sto riadkov) nastane absolútna neprehľadnosť.

Ukážka.
Kód:
#include <stdio.h>
main ()
{ // 1. blok začiatok
    int i=0;
    while(1){ // 2. blok začiatok
        i++;
        printf(" %d, ", i);
        if(i<=9)      // 3. blok začiatok
            continue; // 3. blok koniec
        i+=2;
        if(i>=100) // 4. blok začiatok
            break; // 4. blok koniec
    }         // 2. blok koniec
    return 0;
} // 1. blok koniec

Dokonca niektorí programátori píšu bloky všade, aby bolo jasné ktorá časť kódu k čomu jednoznačne patrí (pracnejšie, ale väčšia prehľadnosť), teda aj tam, kde to kompilátor nevyžaduje.

Ukážka.
Kód:
#include <stdio.h>
main ()
{ // 1. blok začiatok k  main()
    int i=0;
    while(1)
    { // 2. blok začiatok k while()
        i++;
        printf(" %d, ", i);
        if(i<=9)
        { // 3. blok začiatok k if()
            continue;
        } // 3. blok koniec
        i+=2;
        if(i>=100)
        { // 4. blok začiatok k if()
            break;
        } // 4. blok koniec
    } // 2. blok koniec
    return 0;
} // 1. blok koniec

Kvôli nejasnej prehľadnosti sa ľahko môžu vyskytnúť chyby.
Napríklad je veľký rozdiel medzi kódmi:
Kód:
#include <stdio.h>
main()
{
    int i;

    for (i = 1; i < 20; i++) {
    if(i<=9)
    continue; putchar('\n');
    printf("%d, ", i);
    }
}

Výstup:
Príloha:
1.PNG
1.PNG [ 6.75 KiB | Zobrazené 3361 krát ]

Kód:
#include <stdio.h>
main()
{
    int i;

    for (i = 1; i < 20; i++) {
    if(i<=9) {
    continue; putchar('\n');
    }
    printf("%d, ", i);
    }
}

Výstup:
Príloha:
2.PNG
2.PNG [ 5.24 KiB | Zobrazené 3361 krát ]

Kód:
#include <stdio.h>
main()
{
    int i;

    for (i = 1; i < 20; i++) {
    if(i<=9) {
    continue; putchar('\n');
    printf("%d, ", i);
    }
    }
}

Výstup:
Príloha:
3.PNG
3.PNG [ 4.7 KiB | Zobrazené 3360 krát ]

_________________
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  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 02 Jún 2013, 12:27 
Offline
Školák
Školák

Registrovaný: 15 Apr 2013, 18:48
Príspevky: 45
Udelené body: 0 udelenie bodov
Získané body: 22 bodov
moje ulohy zo 6. lekcie.

2., 3. - OK
4. - OK, ale používaj tabulátor: \t
5. - OK, ale nesplnená časť úlohy: ...trikrát netrafí, tak vypíše nejaký komentár psychického stavu jedinca za klávesnicou...
6. - NOK, znaky sa majú zadávať za sebou, Enter to celé ukončí a vypíše sa výsledok
7. - 9. - OK
10. - NOK, vypísať sa majú párne čísla
11. - 14. - OK
Celkove neprehľadný kód. Písal si, že ti nefunguje osadzovanie v Code:Blocks, asi to bude tým.
libcosenior


Prílohy:
2.c [153 Bajtov]
126 krát
3.c [270 Bajtov]
124 krát
4.c [201 Bajtov]
136 krát
5.c [311 Bajtov]
126 krát
6.c [295 Bajtov]
130 krát
7.c [751 Bajtov]
131 krát
8.c [184 Bajtov]
132 krát
9.c [274 Bajtov]
130 krát
10.c [227 Bajtov]
136 krát
11.c [192 Bajtov]
138 krát
12.c [239 Bajtov]
143 krát
13.c [208 Bajtov]
133 krát
14.c [229 Bajtov]
140 krát
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 18 Jún 2013, 10:09 
Offline
Školák
Školák

Registrovaný: 15 Apr 2013, 18:48
Príspevky: 45
Udelené body: 0 udelenie bodov
Získané body: 22 bodov
tak este raz ulohy 5,6,10.

5 a 6 - OK
10. - chyba - Opraviť
Príloha:
blbost.PNG
blbost.PNG [ 5.91 KiB | Zobrazené 3325 krát ]

libcosenior


Prílohy:
5.c [450 Bajtov]
132 krát
6.c [296 Bajtov]
144 krát
10.c [227 Bajtov]
130 krát
Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
 Predmet príspevku: Re: Úlohy k 6. lekcii.
PoslaťNapísal: 14 Sep 2013, 16:56 
Offline
Školák
Školák

Registrovaný: 15 Apr 2013, 18:48
Príspevky: 45
Udelené body: 0 udelenie bodov
Získané body: 22 bodov
uloha z 6. lekcie

10. - OK
libcosenior


Prílohy:
Poznámka: pokracujem v odovzdavani uloh:D, tak snad bude uz tato lekcia hotova tymto, siedmu mam, a idem dorobit nejaku ulohu z osmicky a hned to poslem
10.c [362 Bajtov]
124 krát
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íspevkov: 37 ]  Choď na stránku Predchádzajúci  1, 2

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