Škôlka jazyka C

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

Aktuálny čas je 29 Mar 2024, 12:48

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é 7173 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]
320 krát
L6U3.c [331 Bajtov]
298 krát
L6U4.c [378 Bajtov]
295 krát
L6U5.c [597 Bajtov]
305 krát
L6U7.c [422 Bajtov]
296 krát
L6U8.c [189 Bajtov]
300 krát
L6U6.c [401 Bajtov]
285 krát
L6U9.c [271 Bajtov]
305 krát
L6U11.c [317 Bajtov]
313 krát
L6U12.c [228 Bajtov]
303 krát
L6U13.c [293 Bajtov]
309 krát
L6U14.c [310 Bajtov]
309 krát
L6U10.c [496 Bajtov]
315 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]
311 krát
U3L6A.c [484 Bajtov]
320 krát
U3L6B.c [660 Bajtov]
312 krát
U4L6.c [379 Bajtov]
280 krát
U5L6.c [561 Bajtov]
294 krát
U6L6.c [559 Bajtov]
303 krát
U7L6.c [777 Bajtov]
294 krát
U8L6.c [339 Bajtov]
310 krát
U9L6.c [463 Bajtov]
311 krát
U10L6.c [546 Bajtov]
300 krát
U11L6.c [261 Bajtov]
292 krát
U12L6.c [319 Bajtov]
299 krát
U13L6.c [613 Bajtov]
305 krát
U14L6.c [606 Bajtov]
287 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]
292 krát
U5L6opr.c [558 Bajtov]
304 krát
U8L6opr.c [648 Bajtov]
281 krát
U10L6opr.c [611 Bajtov]
274 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]
263 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]
262 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é 7019 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é 7019 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é 7018 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]
257 krát
3.c [270 Bajtov]
246 krát
4.c [201 Bajtov]
262 krát
5.c [311 Bajtov]
246 krát
6.c [295 Bajtov]
255 krát
7.c [751 Bajtov]
253 krát
8.c [184 Bajtov]
262 krát
9.c [274 Bajtov]
259 krát
10.c [227 Bajtov]
260 krát
11.c [192 Bajtov]
260 krát
12.c [239 Bajtov]
275 krát
13.c [208 Bajtov]
255 krát
14.c [229 Bajtov]
267 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é 6983 krát ]

libcosenior


Prílohy:
5.c [450 Bajtov]
257 krát
6.c [296 Bajtov]
277 krát
10.c [227 Bajtov]
259 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]
247 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