Výsledky 1 až 10 z 10

Téma: [C++] spocitanie objektov vo vektore

  1. #1

    Standardní [C++] spocitanie objektov vo vektore

    Myslim ze v kapitole 2, knihy "THINKING IN C++ se" je uvedene nasledovne cvicenie.

    Nacitajte zo suboru jednotlive slova (text. subor) oddelene bielymi znakmi do vektora STRINGov. Spocitajte kolkokrat sa jednotlive slova vyskytuju v subore.

    Mozne je pouzit <iostream>, <string> a <vector> kniznice.
    Kod pre naplnenie vektora je hracka. Potreboval by som ale navrh nejakeho kodu-rutiny na to popocitanie slov.

    napr. pre subor s obsahom "Hello world the world is fine" bude vystup asi takyto:

    Hello 1x
    world 2x
    the 1x
    is 1x
    fine 1x

    Dakujem ak sa niekto najde a poradi. POK
    DIYS gripmeen >> CPU Wolfdale E8200 MOBO Gigabyte GA-P35-DS3R rev 2.1 RAM A-DATA DDRII 800+ EE VGA Gigabyte 3850 512MB HDD SAMSUNG 500GB HD501LJ
    Fujistu Siemens Scenic >> CPU Pentium III 1000MHz MOBO unknown RAM 256 + 128MB VGA int. i810 HDD 20GB neznameho typu

  2. #2
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    322

    Standardní

    Stejný program jsem dělal ale v Javě...měl jsem to udělané takto:

    Načítal jsem ze vstupu (může být i text soubor) slova. Měl jsem vytvořený seznam (vector) tříd...třída obsahovala string Slovo a integer Pocet...Jak jsem načítal slova, hledal jsem v tomto seznamu a když tam slovo bylo, pouze jsem přičetl 1 k Pocet a když nebylo, přidal novou položku seznamu s Pocet=1 a Slovo=AkutalniSlovoZeVstupu...Pak už stačilo je vypsat seznam...

    Pokud chceš, můžu ti poslat zdroják (ale v Javě)...
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  3. #3

    Standardní

    presne tak som to robil. Vytvoril som nove vektory (STRING a INT) a prehladaval som vstupny vektor. Ak bolo slovo nove, hodil som ho do toho noveho STR.vektora a do INT vektora som na tu istu adresu pricital jednotku. Program ale pri druhom prechode cyklom "provedl neplatnou operaci".

    Ten zdrojak tu mozes kludne hodit, preskumam.

    Ak by to niekto mal vypracovane v C++ bol by som velmi vdacny aj za takyto zdrojak.
    POK
    DIYS gripmeen >> CPU Wolfdale E8200 MOBO Gigabyte GA-P35-DS3R rev 2.1 RAM A-DATA DDRII 800+ EE VGA Gigabyte 3850 512MB HDD SAMSUNG 500GB HD501LJ
    Fujistu Siemens Scenic >> CPU Pentium III 1000MHz MOBO unknown RAM 256 + 128MB VGA int. i810 HDD 20GB neznameho typu

  4. #4
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    322

    Standardní

    Citace Původně odeslal iPoK Xpert
    presne tak som to robil. Vytvoril som nove vektory (STRING a INT) a prehladaval som vstupny vektor. Ak bolo slovo nove, hodil som ho do toho noveho STR.vektora a do INT vektora som na tu istu adresu pricital jednotku. Program ale pri druhom prechode cyklom "provedl neplatnou operaci".

    Ten zdrojak tu mozes kludne hodit, preskumam.

    Ak by to niekto mal vypracovane v C++ bol by som velmi vdacny aj za takyto zdrojak.
    POK
    A co třeba to zkusit debugovat...
    Neplatná operace se neděje jen tak, takže by jsi sám měl najít chybu...
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  5. #5

    Standardní

    Citace Původně odeslal 4. priklad z 2. kapitoly 1. dilu Thinking in C++
    Create a program that counts the occurrence of a
    particular word in a file (use the string class’ operator
    ‘==’ to find the word).
    ja jsem to teda pochopil tak, ze mas spocitat cetnost konkretniho slova ("a particular word"), tzn. mas ho vzit ze vstupu. jestli chces tuhle trivialni variantu, klidne ti zdrojak hodim, ale myslim ze to neni potreba...
    1) ASUS M6A
    2) Toshiba Portége R600-10U
    3) ASUS A8V-X AMD Athlon 64 3000+ Kingmax 2x256MB DDR 400 WD 120GB Samsung 80 GB GMC G30 Fortron FSP400-60THN-P
    Ideální indentace pro Pascal je šest stop pod zem.

  6. #6

    Standardní

    2Anduril: Na debugovanie je este skoro, C++ sa ucim.
    2Ripper: Aha, ja som to asi zle prelozil. Myslel som, ze treba popocitat vyskyt vsetkych slov. Ale takto to znamena, ze zadas slovo cez konzolu a spocitas vyskyt iba tohoto slova. To by uz nemal byt problem a dufam, ze to nebude mrznut.
    DIYS gripmeen >> CPU Wolfdale E8200 MOBO Gigabyte GA-P35-DS3R rev 2.1 RAM A-DATA DDRII 800+ EE VGA Gigabyte 3850 512MB HDD SAMSUNG 500GB HD501LJ
    Fujistu Siemens Scenic >> CPU Pentium III 1000MHz MOBO unknown RAM 256 + 128MB VGA int. i810 HDD 20GB neznameho typu

  7. #7
    Senior Member
    Založen
    21.10.2002
    Bydliště
    Liberec
    Příspěvky
    517
    Vliv
    282

    Standardní

    Netusim jak vypada tvuj zdrojak, ale nejspis pri dalsim pruchodu odkazujes na naky neplatny mista v pameti bych si tip, mimo rozsah tech poli nebo tak...

  8. #8
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    322

    Standardní

    2iPok: Aha, já jsem myslel, že chceš udělat frekvenční slovník..tj. spočítat počet výskytů všech slov v textu...ale stejně bys to mohl udělat, když se teda učíš

    Jinak na debugování není nikdy brzo...měl bys to používat hned od začátku, protože tak jak tak to budeš potřebovat a pokud používáš nějaké vývojové prostředí, které v sobě obsahuje nějaký ten debugger, tak přeci nemůže být problém program krokovat a tak snadno zjistíš, kde ti to padá a můžeš provést opatření....
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  9. #9

    Standardní

    Citace Původně odeslal Anduril
    2iPok: Aha, já jsem myslel, že chceš udělat frekvenční slovník..tj. spočítat počet výskytů všech slov v textu...ale stejně bys to mohl udělat, když se teda učíš

    Jinak na debugování není nikdy brzo...měl bys to používat hned od začátku, protože tak jak tak to budeš potřebovat a pokud používáš nějaké vývojové prostředí, které v sobě obsahuje nějaký ten debugger, tak přeci nemůže být problém program krokovat a tak snadno zjistíš, kde ti to padá a můžeš provést opatření....
    Nenasiel by sa nejaky web na tutorial pre MS VS C++ 6.0?
    Nieco som nasiel na <casopis.programator.cz> ale pokracovania vychadzaju velmi malo. Zaujimalo by ma hlavne krokovanie, sledovanie obsahu objektov a pod. Skoda ze v C++ nie je vsetko take intuitivne ako vo VB 6.0

    K mojmu problemu: Priklad z knihy mam uz vyrieseny, ale ten moj osobny program (ktory som chcel vytvorit koli chybnemu prekladu) naozaj nefungoval, aj ked som to sledoval pri krokovani.
    DIYS gripmeen >> CPU Wolfdale E8200 MOBO Gigabyte GA-P35-DS3R rev 2.1 RAM A-DATA DDRII 800+ EE VGA Gigabyte 3850 512MB HDD SAMSUNG 500GB HD501LJ
    Fujistu Siemens Scenic >> CPU Pentium III 1000MHz MOBO unknown RAM 256 + 128MB VGA int. i810 HDD 20GB neznameho typu

  10. #10
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    322

    Standardní

    No tak s tutoriály neposloužím...doporučuji - pokud to myslíš c C++ vážně - zakoupit nějakou kvalitní knihu se zaměřením třeba právě na VC++ tvé verze (6, .NET)...

    No tak pokud jsi to krokoval, tak jsi musel vidět, kde ten program spadne/skončí...a podle toho, co v tom místě je, určit možné příčiny..takové pády jsou obvykle s odkazováním se na NULL pointer..což bych viděl jako příčinu u tvého příkladu..nebo také čtení z prázdného vstupu..což ale souvisí s těmi ukazateli..

    Takže doporučuju tu knihu a pak to zkusit ještě jednou krokovat a všimnout si, kde to skončí
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •