NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 6 - Cykly v Céčku

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
dfdfdf
Člen
Avatar
dfdfdf:1.1.2017 14:16

Dobry den.Mam otazku.Proc v mocninatoru piseme,ze vysledek=a?Proc nejde napsat vysledek=a*a?A ne vysledek=vysle­dek*a?

 
Odpovědět
1.1.2017 14:16
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na dfdfdf
David Hartinger:1.1.2017 14:29

Protože a * a je vždy druhá mocnina.

Odpovědět
1.1.2017 14:29
New kid back on the block with a R.I.P
Avatar
Andrej Roštek:7.2.2017 15:44

Zdravím, z nějakého důvodu mi Mocninátor funguje pouze pokud místo (n - 1) napíšu n. Jinak to umocní špatně. Ale když zkopíruju kód z webu, funguje to.

Kde mám chybu?

int i;
int a;
int n;
int vysledek;
printf("Mocninator \n");
printf("========== \n");
printf("Zadejte zaklad mocniny: \n");
scanf("%d", &a);
printf("Zadejte exponent: \n");
scanf("%d", &n);

vysledek = a;
for (i = 0; i < (n - 1); i++)
vysledek = vysledek * a;
printf("Vysledek: %d \n");
printf("Dik za pouziti mocninatoru \n");

 
Odpovědět
7.2.2017 15:44
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Andrej Roštek
DarkCoder:7.2.2017 18:06

Chybí Ti argument funkce printf() na předposledním řádku.

Odpovědět
7.2.2017 18:06
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Andrej Roštek:7.2.2017 18:40

Děkuju!

 
Odpovědět
7.2.2017 18:40
Avatar
Lukáš Vičík:16.5.2017 13:52

Pokud vidím dobře tak vám v case chyby default gate.Pokud se mílím tak se omlouvám.

 
Odpovědět
16.5.2017 13:52
Avatar
Jiří Kofránek doc. MUDr. :22.7.2017 23:23

Možná by stálo za připomínku, že proměnné deklarované uvnitř cyklu jsou platné jen uvnitř cyklu a vně cyklu jsou nedefinované.

 
Odpovědět
22.7.2017 23:23
Avatar
gusto
Člen
Avatar
gusto:18.8.2017 20:39

dobry den, trocha sa zacinam ucit programovat a narazil som na tento super web, je to tu celkom dobre popisane, ale niektore veci mi nejdu do hlavy a dost sa s niecim potrapim.
BTW nikde tu nevidim rok (datum) kedy bol tento tutorial napisany a neviem ci je aktualne tu prispiet a ziadat o vysvetlenie.
Ono niektori si povedia, co to tu placas, ved je to jasne napisane a je to tak jednoduche, ze uz jednoduchsie to ani nemoze byt.
Momentalne mam problem pochopit tento kus kodu

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {

int i;
int a;
int n;
int vysledek;
printf("Mocninator \n");
printf("========== \n");
printf("Zadejte zaklad mocniny: \n");
scanf("%d", &a);
printf("Zadejte exponent: \n");
scanf("%d", &n);

vysledek = a;
for (i = 0; i < (n - 1); i++)
        vysledek = vysledek * a;

printf("Vysledek: %d\n", vysledek);
printf("Dekuji za pouziti mocninatoru \n");
        return (EXIT_SUCCESS);
}

A konkretne toto

vysledek = a;
for (i = 0; i < (n - 1); i++)
        vysledek = vysledek * a;

printf("Vysledek: %d\n", vysledek);
printf("Dekuji za pouziti mocninatoru \n");

Trocha to popisem.
V bloku sme na zaciatku deklarovali 4 premenne typu int. Pomocou scanf sme do premennej "a" nacitali zaklad mocniny a do "n" exponent. Pred cyklom for sme do premennej vysledek nacitali premennu "a" ktora je v nasom pripade "2"
Ono ked tomu nerozumiem, tak si do premennych rovno dosadzujem cisla, aby mi to bolo jasnejsie.
Cize v premennej "vysledek je momentalne hodnota 2.
A zacina cyklus for kde to bude vyzerat asi takto (ciselne)

for (i = 0; 0 < (3 - 1); i++)

i=0; 0<2;i++ kedze plati podmienka, ze 0<2 tak by sa mal vykonat prikaz pod nou

vysledek = vysledek * a;

ale premenna "vysledek" ma hodnotu 2, takze ten prikaz pod cyklom for by ciselne vyzeral takto

2 = 2 * a;

a premenna "a" ma tiez hodnotu 2, tak to bude vlastne

2 = 2 * 2;

No a uz toto mi nejak nesedi.
A znova zacne cyklus for, ktory zvysi premennu "i" o 1, takze

for (i = 1; 1 < (3 - 1); i++)

a co sa vykonava potom ?
Nejak sa v tom stracam

 
Odpovědět
18.8.2017 20:39
Avatar
Odpovídá na gusto
Neaktivní uživatel:19.8.2017 3:08

Prvni prubeh - do 'vysledek' priradime vysledek operace 'vysledek' * 'a'
takze 'vysledek' je ted rekneme roven 4, dalsi prubeh zpusobi to, ze do 'vysledek' se ulozi dalsi nasobek 'vysledku' a promenne 'a' a tak dale a tak dale, jako bys naivne pocital mocninu. Proste 2 * 2 * 2 * 2 === 24

Pozor: uvedom si, ze zatimco v matematice znamenko '=' znamenalo 'rovna se', v programovani je to symbol prirazeni, takze kdyz udelam
vysledek = 2 * vysledek
tak rikam, ze do promenne vysledek se ma ulozit jeji dvojnasobek. Mel by sis nejdriv poradne pohrat s timhle, to je zasadni, jestli z toho nechces jednou mit poradnej gulas, musis pochopit zaklady.

Ohledne data, na datu nezalezi, Cecko je staro-aktualni a dotazy vzdy vygeneruji verejnou udalost na zed, na jakoukoliv nejasnost v clancich se nevahej ptat, na ostatni dotazy jsou tu fora.

Editováno 19.8.2017 3:09
Odpovědět
19.8.2017 3:08
Neaktivní uživatelský účet
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na gusto
pocitac770:19.8.2017 13:11

Jinak datum přidání članku, případně jeho úprav jde zjistit pomocí tlačítka "aktivity" pod článkem

 
Odpovědět
19.8.2017 13:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 55.