Škôlka jazyka C

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

Aktuálny čas je 21 Apr 2018, 16:02

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é 972 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: 446
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]
41 krát
L6U3.c [331 Bajtov]
40 krát
L6U4.c [378 Bajtov]
35 krát
L6U5.c [597 Bajtov]
42 krát
L6U7.c [422 Bajtov]
39 krát
L6U8.c [189 Bajtov]
34 krát
L6U6.c [401 Bajtov]
36 krát
L6U9.c [271 Bajtov]
39 krát
L6U11.c [317 Bajtov]
36 krát
L6U12.c [228 Bajtov]
35 krát
L6U13.c [293 Bajtov]
37 krát
L6U14.c [310 Bajtov]
39 krát
L6U10.c [496 Bajtov]
37 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]
40 krát
U3L6A.c [484 Bajtov]
38 krát
U3L6B.c [660 Bajtov]
40 krát
U4L6.c [379 Bajtov]
36 krát
U5L6.c [561 Bajtov]
37 krát
U6L6.c [559 Bajtov]
36 krát
U7L6.c [777 Bajtov]
40 krát
U8L6.c [339 Bajtov]
37 krát
U9L6.c [463 Bajtov]
39 krát
U10L6.c [546 Bajtov]
39 krát
U11L6.c [261 Bajtov]
40 krát
U12L6.c [319 Bajtov]
37 krát
U13L6.c [613 Bajtov]
41 krát
U14L6.c [606 Bajtov]
40 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]
38 krát
U5L6opr.c [558 Bajtov]
40 krát
U8L6opr.c [648 Bajtov]
37 krát
U10L6opr.c [611 Bajtov]
37 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]
36 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: 446
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]
37 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: 446
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é 818 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é 818 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é 817 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]
35 krát
3.c [270 Bajtov]
37 krát
4.c [201 Bajtov]
37 krát
5.c [311 Bajtov]
38 krát
6.c [295 Bajtov]
34 krát
7.c [751 Bajtov]
36 krát
8.c [184 Bajtov]
35 krát
9.c [274 Bajtov]
36 krát
10.c [227 Bajtov]
39 krát
11.c [192 Bajtov]
35 krát
12.c [239 Bajtov]
36 krát
13.c [208 Bajtov]
36 krát
14.c [229 Bajtov]
36 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é 782 krát ]

libcosenior


Prílohy:
5.c [450 Bajtov]
36 krát
6.c [296 Bajtov]
34 krát
10.c [227 Bajtov]
35 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]
34 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