# Zápočet 14.9.2007 od 10hod

<{ForumPost(poster="charlie.1does", timestamp=2007-09-16 16:32:42)}>
Zdravím, zápočet, který v pátek proběhl byl ve znamení statistiky slov v souboru. Na příkazové řádce dostanete "-i \[vstupní soubor] -o \[výstupní soubor]". Parametry jsou vždy přítomny v uvedeném pořadí. Vaším úkolem je přečíst vstupní soubor a do výstupního zapsat statistiku slov ze vstupního souboru. Nic není třeba řadit, ve výstupním souboru budou mít jednotlivé řádky tvar "\[slovo] : \[počet výskytů]". A to bylo vše, jednoduché je řešení pomocí zásobníku (reprezentovaného nafukovacím polem) a malé vyhledávací funkce k tomu. :D Třikrát sláva, napotřetí mi to vyšlo. Dá se to stihnout za hodinu. Když jsem po hodině odcházel, všichni ostatní ještě mlátili do klávesnic, ale i tak myslím, že statistika tohoto termínu byla zcela jistě příznivá.  :D PS: Hlídal nás Mgr. Eckhardt, pohodový to člověk.  :wink:
<{/ForumPost}>

<{ForumPost(poster="charlie.1does", timestamp=2007-09-24 18:25:53)}>
Zapomněl jsem napsat, že řádky souboru byly omezené konstantou (řekněme 1000), žádné slovo nebylo delší než tato konstanta (což je ještě báječnější). O délce souboru ani počtu slov se ale jinak nic předpokládat nemělo (tedy asi se mohlo předpokládat, že se to vejde do paměti). :D
<{/ForumPost}>

<{ForumPost(poster="neoangin", timestamp=2009-01-17 14:09:12)}>
Takze musim skompilovat zdrojak a vytvorit .exe subor. Ked napisem meno tohoto suboru s dvomi parametrami -i a -o, tak sa ten program spusti a vypocita statistiku. Spravne? Ako sa take nieco nakodi? Dik.
<{/ForumPost}>

<{ForumPost(poster="neoangin", timestamp=2009-01-22 17:56:56)}>
// vytvoril som narychlo taketo nieco (len pre text so slovami, medzerami a   

    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <vector>
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {ifstream in(argv[2]);ofstream out(argv[4]);vector<string> v;string aword;char ch;while (in.get(ch)){if (( ch == ' ') || ( ch == '
    ')){v.push_back(aword);cout << aword << endl;aword.erase();}else{aword += ch;}
    }//v.pop_back();while (!v.empty()){int count = 0;out << v[0] << " : ";aword = v[0];for (int i = v.size() - 1; i >= 0; i--)if (aword == v[i]) { count++; v.erase(v.begin() + i);}out << count << endl;}	cout << "good deal 
    ";return 0;
    }
    


<{/ForumPost}>

