Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj, jsem čerstvá studentka VŠ IT. Moc mě baví počítače, ovládám výborně textové, tabulkové i databázové editory. Problém je, že jsem nikdy neprogramovala. Tedy pokud nepočítám "Hello world" na střední. Na VŠ máme udělat projekt v jazyce C a já vůbec nevím jak bych měla začít. :(
1.Zadání: Vytvořte program, který ve vstupním textu spočítá slova obsahující uživatelem specifikovaný znak a jejich počet vypíše. Uživatel specifikuje daný znak argumentem příkazové řádky. Uživatel navíc může specifikovat pozici znaku v počítaném slově dalším argumentem příkazové řádky.
Mohl by mi zde, někdo ze šikovných pánů napsat alespoň základní kostru kódu? Byla bych Vám vděčná. Vůbec si s tím nevím rady :(
Offline
↑ Ollii:
Ahoj,
nebylo by lepší, kdybyses s tím zkusila poprat sama? Na tomhle si totiž můžeš hezky zkusit postup dekompozice problému na dílčí a již mnohem jednodušší úlohy. Předpokládám, že máš text v textovém souboru.
Dílčí úlohy by mohly být:
1. Načtení jednokho slova ze vstupního souboru
2. Test, zda na zadané pozici obsahuje zadaný znak
To je hodně obecné, ale už vidíš, že 2 je triviální;-)
Takže načtení slova ze souboru. Postupů je několik, nejčasteji se používají dva:
1. Textový soubor čteš znak po znaku a znaky přidáváš na konec pracovní proměnné. Jakmile narazíš na mezeru, interpunkční znak nebo konec řádku, máš konec slova.
2. Text čteš po řádcích, každý řádek zpracováváš podobně jako v bodě 1.
Přístup 2 je z technických důvodů efektivnější, takže bys ho měla použít. Trochu rozepsaný postup by mohl vypadat např. takto:
1 Pokud jsi u konce vstupního souboru, skonči, jinak načti ze vstupního souboru řetězec radek. 2 Vynuluj pomocnou řetězcovou proměnnou slovo. Vynuluj pomocnou proměnnou index. 3 Z pozice index souboru radek nacti znak ch. 4 Pokud je ch tisknutelný znak, přijej jej na konec proměnné slovo, inkrementuj index a jdi na řádek 3. 5 V proměnné slovo je slovo. Můžeš jej např. uložit do seznamu slov. 6 Pokud je ch znak konec řádku, jdi na řádek 1. 7 Vynuluj pomocnou slovo a jdi na řádek 3.
Jinak pokud se trochu zamyslíš (doporučuji), zjistíš, že to jde napsat i mnohem lépe, zejména pokud je cílem jen spočítat některá slova. Tohle je ale podle mého průhlednější - takže doporučuji zkusit si tohle přepsat do C a pak zkusit vymyslet, jak to všechno optimalizovat (např. vůbec nepotřebuješ proměnnou slovo).
Offline