NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Vysvětlení pár řádků

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Petr Novotný:25.9.2016 16:24

Ahoj, potřeboval bych vysvětlit následující řádky:

  1. ifstream vstup(ask("Zadejde cestu ke vstupnimu souboru").c_str());
  2. int delka_dat; // delka dat (udana na zacatku souboru)
  3. if (!(vstup >> delka_dat)) error("Neco je spatne se zadanym souborem", 2); // nacteni prvniho radku
  4. if (delka_dat <= 1) error("Delka dat musi byt vetsi nez 1", 3); // kvuli pozdejsimu deleni cislem (N - 1)
  5. double prvni_cislo, druhe_cislo, soucet = 0, **surova_data = new double *[delka_dat], *data = new double[delka_dat];

jen bych chtěl říct že data jsou ve formátu N vektorů, a počet vektorů N je na prvním řádku
1-chápu-vstup se zadáním cesty k souboru
2-jasně, proměnná delka_dat typu integer
3-moc nechápu, co znamená výraz (!(vstup >> delka_dat)), ! je negace a >> bitové posunutí, dohromady tomu ale nerozumím, fce error je jasna (platí po splnění podmínky if na začátku) co znamena ta 2 na konci? Jak vím, že jsem načetl právě 1. řadek souboru?
4-jasné až na 3 na konci-co to znamená?
5. pokud to chápu správně, tak to jsou jen vypsané proměnné: první cislo, druhe cislo, soucet jsou typu double, ale nerozumím co znamená **surova_data = new double *[delka_dat], *data = new double[delka_dat]; *je ukazatel, co znamenaji **? jednotlivě rozliším pole, ukazatel, proměnnou atp. ale dohromady se v tom trochu ztrácím, nebo to tam nevidím.
Díky za váš čas, Petr

 
Odpovědět
25.9.2016 16:24
Avatar
Odpovídá na Petr Novotný
Luboš Běhounek Satik:25.9.2016 17:24

3 u streamu jsou operatory >> a << pretizene pro cteni / zapis, takze to bude neco jako kdybys napsal

if (!vstup.read(delka_dat))

co znamena 2 zjistis tak, ze se kouknes, co dela druhy parametr funkce error - google :)

5. ** je ukazatel na ukazatel, typicky se to pouziva pro pole ukazatelu

Nahoru Odpovědět
25.9.2016 17:24
https://www.facebook.com/peasantsandcastles/
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 2 zpráv z 2.