Diskuze: Jak skrýt text v určité části programua
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Příklad určený k procvičení by neměl být vkládán přímo do programu, ale měl by být k programu přikládán v souboru (souborech - separátně zadání, řešení s ohodnocením, a listem úloh). Program by měl sloužit pouze pro zpracování přiložených souborových dat. K otestování by uživatel měl primárně spouštět aplikaci a "nehrabat se" v přiložených souborech. Na tobě jako na tvůrci aplikace je pak jak moc velkou možnost dáš ostatním přistupovat k datům mimo spuštění aplikace. Výsledky může posuzovat oprávněná osoba nebo to celé můžeš automatizovat. Ve druhém případě je pak z hlediska správnosti omezení přístupu nutný. Jak moc data s řešením a ohodnocením ochráníš je už jen a jen na tobě.
Diky za radu. Já bych to chtěl udělat tak, aby se tam dal zadat jakýkoliv
příklad aniž by ho musel uživatel dělat separátně. Prostě ho vloží,
část kde jsou vložené proměnné se skryje a žak to vypočítá. Nakonec to
program srovná s výsledkem od učitele a řekne zda je to správně nebo
ne.
Ale tvé řešení je zajímavé. Bohužel ještě nemám znalosti na to, abych
to realizoval
Významem separátně bylo myšleno oddělení souborů se zadáním, řešení a souborem obsahující jména souborů které má program načíst, nikoli oddělení jednotlivých příkladů. Nic Ti v tom ale nebrání to tak udělat. Oddělenost může představovat jednotlivé úrovně obtížnosti. Vše ale můžeš nacpat do jednoho, je to na tobě. Výhodou rozdělení na samostatné soubory je rychlejší přístup k tomu co potřebuješ. Můžeš samozřejmě sestavit program tak že přijme od učitele zadání, řešení a ohodnocení pod jeho účtem, čímž vše nahraješ přímo do paměti a vše tak bude před studenty skryté. Výsledky pak obdrží pouze učitel které pak následně předá žákům. Možností je opravdu hodně.
To co budeš potřebovat je znalost práce se soubory a s dynamickou alokací paměti.
>
To co budeš potřebovat je znalost práce se soubory a s dynamickou alokací
paměti.
Takže vše co neumím.
Reálné aplikace pro veškerý vstup používají soubory. Jen ty nejednoduší aplikace využívají data integrovaná uvnitř popř. načtená z příkazového řádku nebo zadaná uživatelem do konzole. Proto je znalost souborového systému pro úspěšné programování nezbytná. Práce s textem je dynamická, je nesmysl si stále někde poznamenávat, kolik místa text zabírá a staticky si tak pro to alokovat paměť. Aplikace musí dýchat, je třeba ji poskytnout právě tolik paměti kolik potřebuje. Žádné plýtvání, žádné omezování. Z tohoto důvodu je nutná znalost dynamické alokace paměti. Z pohledu jazyka C tak musíš znát více méně vše.. Od základních konstrukcí, přes pole, ukazatele, práce se soubory a dynamickou alokaci paměti. Přesně v tomto pořadí, neboť každá z uvedených kapitol vyžaduje znalost té předešlé. Nenech se odradit tím že pro tuto úlohu musíš znát vše. Mnohem náročnější aplikace používají totéž, pouze s drobnými odlišnostmi. Tak to ber tak že je to zároveň i slušný vstupní bod pro zvládnutí všeho co budeš chtít v budoucnu tvořit.
Abys neztratil motivaci tím, že se musíš nejprve naučit veškerou látku, než se pustíš do tvorby aplikace a neztratil tak drahocenný čas, tak můžeš celé vyřešit následovně:
Znalost polí, podvědomí o tom co jsou ukazatele a jak fungují, souborového systému je podmínkou.
Každou úlohu si zpracovávej do samostatného souboru. Staticky si alokuj pole o velikosti 1kb, což by mohlo být dostačující (Toto je místo, které si ideálně žádá znalost dynamické alokace). Není to závratné plýtvání pamětí a ze zadání se Ti tam toho vejde dost. Zvlášť pokud začneš něčím jednodušším, kde vůbec nepocítíš žádné omezení. Pro přechod mezi jednotlivými úlohami používej tento 1kb buffer, který si vždy před vložením nového obsahu zadání vyprázdníš. Odpovědi žáků posílej do souboru. S tímto si pro začátek vystačíš. Jak budeš postupně aplikaci zlepšovat, sám poznáš, kde jsou rezervy a co je třeba udělat proto aby vše bylo dle tvých představ.
Tak si tedy nastuduju souborové systémy a vrátím se k tomu
Přesně tak, bez znalosti práce se soubory se neobejdeš. Když se to tak vezme tak nepotřebuješ žádný vstupní buffer, neboť zadání needituješ, nijak s ním nepracuješ, pouze ho vypisuješ na obrazovku což můžeš udělat přímo ze souboru. Do souboru také můžeš rovnou zapisovat, ale tím už omezuješ studenta, který by chtěl případně svoji odpověď pozměnit.
Zobrazeno 11 zpráv z 11.