HALLOWEEN JE TADY: Získej 66 % extra kreditů zdarma při nákupu od 1199 kreditů s promo kódem NEBOJSEIT66. Zjisti více:
NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:

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
Nejnovější komentáře jsou na konci poslední stránky.
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?

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
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");

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
"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!

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.

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é.

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

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
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

Nejnovější komentáře jsou na konci poslední stránky.
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.