Zápočet 14.9.2007 od 10hod

charlie.1does

Zápočet 14.9.2007 od 10hod

Příspěvek od charlie.1does »

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:
charlie.1does

Doplnění

Příspěvek od charlie.1does »

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
neoangin
Matfyz(ák|ačka) level I
Příspěvky: 26
Registrován: 4. 6. 2006 10:51
Typ studia: Informatika Bc.
Bydliště: Blava/Praha
Kontaktovat uživatele:

Re: Zápočet 14.9.2007 od 10hod

Příspěvek od neoangin »

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.
$ man woman
No manual entry for woman
neoangin
Matfyz(ák|ačka) level I
Příspěvky: 26
Registrován: 4. 6. 2006 10:51
Typ studia: Informatika Bc.
Bydliště: Blava/Praha
Kontaktovat uživatele:

Re: Zápočet 14.9.2007 od 10hod

Příspěvek od neoangin »

// vytvoril som narychlo taketo nieco (len pre text so slovami, medzerami a

Kód: Vybrat vše

#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;
}
$ man woman
No manual entry for woman
Odpovědět

Zpět na „2006“