Help Prosim :-) – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Help Prosim :-) – Pascal – Fórum – Programujte.comHelp Prosim :-) – Pascal – Fórum – Programujte.com

 

8. 6. 2008   #1
-
0
-

Cauky.. chtěla bych vás požádat o pomoc s programem který je pro vás určitě hračka nicméně pro mně nezajímavej:(

Naprogramujte testování studentů ze zvolené oblasti (zeměpis, např. hlavní města, státy). Výběr odpovědi bude
z daného počtu alternativ (a,b,c,d), aktuálně se vypisuje počet získaných bodů, na závěr se vypíše celkový počet
bodů a hodnocení.

Nahlásit jako SPAM
IP: 89.103.73.–
Ace McIntosh0
Super člen
8. 6. 2008   #2
-
0
-

A co jsi zatím vymyslela?

Nahlásit jako SPAM
IP: 82.150.190.–
MZetko0
Stálý člen
9. 6. 2008   #3
-
0
-

Chtělo by to možná trochu podrobnější popis a potom ti asi pomůžeme tak, aby jsi na to vlastně přišla sama :-) .

Nahlásit jako SPAM
IP: 83.208.235.–
"Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy"
Jára da CIMRMAN
http://www.newgame.cz
9. 6. 2008   #4
-
0
-

No jak jsem říkala nejsem v tom moc dobrá asi bych to udělala přes práci s textovím souborem a přes stringy potom nejaky podminky :-) mam spíše problém tvůrčí když vidím program chapu ho ale něco vymyslet takhle sama to je nemožný :D

Nahlásit jako SPAM
IP: 89.103.73.–
Laaca0
Stálý člen
9. 6. 2008   #5
-
0
-

Začni s tím, že si určíš, jakou použiješ datovou strukturu - tedy jakým způsobem budou v paměti uloženy testovací otázky a správné odpovědi. Z toho pak vyplyne všechno ostatní. Jedna možnost je toto:

type Totazka = record

zneni:string; {zneni otazky}
mozne_odpovedi:array[1..4] of string {predpokladame-li ctyri mozne varianty odpovedi}
spravna_odpoved:byte; {ktera z odpovedi 1..4 je ta spravna}
end;
...
var otazky:TOtazky;

Nahlásit jako SPAM
IP: 195.113.79.–
DOS-u-akbar
Ace McIntosh0
Super člen
9. 6. 2008   #6
-
0
-

No, vyřešil bych to asi jako Laaca, nadeklaroval bych si pro otázky nějakou strukturu, do níž bych otázky ukládal. Samozřejmě bych si pak vytvořil proměnnou sledující počet získaných bodů (její hodnota by se odvíjela od počtu správně zodpovězených otázek). Výpis je pak, myslím, hračka (no, chce si to s tím pohrát:-)).

Jinak tedy psala jsi něco o textových souborech, opravdu je to potřeba řešit přes tectové soubory?

Nahlásit jako SPAM
IP: 84.42.174.–
MZetko0
Stálý člen
9. 6. 2008   #7
-
0
-

Asi je chce kvůli načítaní otázek ze souboru.

Nahlásit jako SPAM
IP: 213.168.184.–
"Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy"
Jára da CIMRMAN
http://www.newgame.cz
9. 6. 2008   #8
-
0
-

Tak nejsem si jistá jesli to musi být přes textové soubory a myslím že říkala že ano :/

Nahlásit jako SPAM
IP: 89.103.73.–
MZetko0
Stálý člen
9. 6. 2008   #9
-
0
-

Asi ano, nejlépe když v tom texťáku budeš mít ty otázky a odpovědi uložené ve formátu XML, a pro každý obor, předmět jiný soubor.

Nahlásit jako SPAM
IP: 83.208.235.–
"Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy"
Jára da CIMRMAN
http://www.newgame.cz
Laaca0
Stálý člen
10. 6. 2008   #10
-
0
-

Proč proboha XML ???

Ukládej to normálně do textového souboru třeba po řádkách
první řádka: znění otázky
druhá: číslo správné odpovědi
třetí-šestá: varianta odpovědi
sedmá: prázdný řádek
osmá: znění další otázky
...

Takovýhle soubor napíšeš v Notepadu, nebo v textovém editoru pascalu za pár minut a bezbolestně. Ještě je rozumné ještě před zněním prvním otázky uložit počet otázek v souboru - v programu to pak zjednoduší čtení z tohoto souboru.

Nahlásit jako SPAM
IP: 195.113.79.–
DOS-u-akbar
Osiris0
Stálý člen
10. 6. 2008   #11
-
0
-

Laaca napsal:
Proč proboha XML ???

Ukládej to normálně do textového souboru třeba po řádkách
první řádka: znění otázky
druhá: číslo správné odpovědi
třetí-šestá: varianta odpovědi
sedmá: prázdný řádek
osmá: znění další otázky
...

Takovýhle soubor napíšeš v Notepadu, nebo v textovém editoru pascalu za pár minut a bezbolestně. Ještě je rozumné ještě před zněním prvním otázky uložit počet otázek v souboru - v programu to pak zjednoduší čtení z tohoto souboru.



XML je vhodnější. Například jde velmi snadno verifikovat, zda soubor, který program dostal, je správný. To tvoje řešení bude peklo pro toho, kdo bude ověřovat, zda soubor s otázkami je správný.

Nahlásit jako SPAM
IP: 85.70.130.–
Osiris0
Stálý člen
10. 6. 2008   #12
-
0
-

MZetko napsal:
Asi ano, nejlépe když v tom texťáku budeš mít ty otázky a odpovědi uložené ve formátu XML, a pro každý obor, předmět jiný soubor.



A proč každý obor, předmět jiný soubor? To nestačí jeden? Stačí pak zadat XPath dotaz například /matematika/rovnice/*, tak je to snadné :-)

Nahlásit jako SPAM
IP: 85.70.130.–
Ace McIntosh0
Super člen
10. 6. 2008   #13
-
0
-

No, taky bych řekl, že XML je asi vhodnější, ale jen kvůli přehlednosti, i textový soubor může posloužit dobře (s nějakou verifikací bych si u takovéhoto prográmku hlavu nelámal, něco jiného by bylo kdybych se tím prográmkem chtěl chlubit:-)). Úplně nejlepší by byla (dle mých informací neexistující) možnost vícetypového binárního souboru (nebo snad něco takového existuje???), to by mohla být pokryta ta snadná verifikace, navíc i "textová" nečitelnost, takže by se pro to mohl splácat i vlastní editor otázek. Zajímalo by mě, jestli by šlo něco takového vytvořit (ten vícetypový binární soubor)?

Nahlásit jako SPAM
IP: 84.42.174.–
Osiris0
Stálý člen
10. 6. 2008   #14
-
0
-

Ace McIntosh napsal:
No, taky bych řekl, že XML je asi vhodnější, ale jen kvůli přehlednosti, i textový soubor může posloužit dobře (s nějakou verifikací bych si u takovéhoto prográmku hlavu nelámal, něco jiného by bylo kdybych se tím prográmkem chtěl chlubit:-)). Úplně nejlepší by byla (dle mých informací neexistující) možnost vícetypového binárního souboru (nebo snad něco takového existuje???), to by mohla být pokryta ta snadná verifikace, navíc i "textová" nečitelnost, takže by se pro to mohl splácat i vlastní editor otázek. Zajímalo by mě, jestli by šlo něco takového vytvořit (ten vícetypový binární soubor)?



Jistěže by to šlo vytvořit, proč by nešlo? Všecko jde :smile2:

Nahlásit jako SPAM
IP: 85.70.130.–
Mircosoft+1
Věrný člen
10. 6. 2008   #15
-
0
-

>Ace: Jasně, soubor typu File, zápis Blockwrite, čtení Blockread. Ale pro tenhle případ je to zbytečně pracné (plus ještě nutnost vytvořit editor, protože to už v Notepadu psát nepůjde).
>MZetko, Osiris: zajímavý nápad, ale naprogramovat čtečku XML (pokud vím, tak v Pascalu standardně neexistuje, nebo jo?) by dalo víc práce než celý ten program s otázkami (nevím, jak moc by použití hotové čtečky odněkud ze sítě vyučující tolerovali).
>schnappislav: věř Laacovi, radí ti dobře :-). Něco napiš, hoď sem zdroják a my ti ho zkritizujem a opravíme.

Nahlásit jako SPAM
IP: 85.132.158.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
MZetko0
Stálý člen
11. 6. 2008   #16
-
0
-

>MZetko, Osiris: zajímavý nápad, ale naprogramovat čtečku XML (pokud vím, tak v Pascalu standardně neexistuje, nebo jo?)


Také nevím o tom, že by existovala. Byl to jen návrh.
Ale ostatně by to zase nemuselo být tak náročné, alébrž je pravděpodobné, že se člověk nebude muset moc v souboru vracet, a když už, tak po dokončení jednoho testování se program pravděpodobně bude ptát co dál zkoušet.
Je to ale přece jen programování navíc. Avšak programátor často musí vydržet i tlak nad 1 000 MPa :smile6: .
Každopádně by naprogramovaná třída XMLSoubor program dost zjednodušila a zespolehlivěla (hezké slovo, co? :smile5: ) .
Je to výzva, Schnappislav :smile2: !

Nahlásit jako SPAM
IP: 83.208.235.–
"Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy"
Jára da CIMRMAN
http://www.newgame.cz
Ace McIntosh0
Super člen
11. 6. 2008   #17
-
0
-

OT: Jsem to ale vůl, vždyť "vícetypový" soubor se dá vytvořit jednoduše tak, že si definujeme vlastní strukturovaný typ a uděláme binární soubor, ve kterém budou uloženy hodnoty našeho vlastního typu:-D Tak jednoduché, že se za sebe musím až stydět, že mně to nenapadlo dřív.

Ale i tak se chci zeptat Mircosofta: Co že jsi to vlastně navrhoval s tím BlockRead a BlockWrite (abych pravdu řekl, s těmito metodami jsem se ještě jaktěživ nesetkal), prosím o jednoduchý popis jak to funguje.

Nahlásit jako SPAM
IP: 82.150.190.–
Mircosoft+1
Věrný člen
12. 6. 2008   #18
-
0
-

Tyhle procedury jsou z jednotky System, čili vestavěné.

Deklarace souboru:

var soubor:file;


Otevření souboru:

reset(soubor,velikost_bloku);

nebo
rewrite(soubor,velikost_bloku);

Hodnota velikost_bloku určuje, po jak velkých blocích chceme číst nebo psát. V běžném typovém souboru (file of něco) je velikost bloku jasná (velikost_bloku=sizeof(něco)), proto se tam nepíše. U netypového souboru je všechno na nás. Nejuniverzálnější je, když dáme velikost 1, pak 1 blok = 1 byte. Pokud velikost neuvedeme, použije se defaultní hodnota 128 B (což obvykle nechceme).

Čtení:

blockread(soubor,promenna,kolik);

nebo
blockread(soubor,promenna,kolik,opravdu_precteno);


V prvním případě načteme do Proměnné Kolik bloků z daného Souboru. Jestli jsme při otvírání nastavili velikost bloku na 1, je tohle číslo rovné počtu bytů, které chceme načíst (neboli obvykle velikosti té proměnné). Pokud při čtení nastane chyba, řeší to klasicky Ioresult nebo automatická kontrola I/O.
V druhém případě se v posledním parametru vrátí počet bloků, které se skutečně podařilo přečíst. Pokud se nerovná zadané hodnotě Kolik, víme, že nastala chyba. Ioresult ani automatická kontrola teď nedělají vůbec nic.

Zápis:
blockwrite(soubor,promenna,kolik);

nebo
blockwrite(soubor,promenna,kolik,opravdu_zapsano);


Obdobně.

Zavírání souboru přes Close funguje pořád stejně.


A příklad použití?

var f:file;

i:integer;
s:string;
ch:char;
r:real;
BEGIN
assign(f,'bla.bla');
rewrite(f,1);
blockwrite(f,i,2);
blockwrite(f,s,sizeof(s));
blockwrite(f,ch,1);
blockwrite(f,r,6);
close(f);
END.


Jdou dělat i takové prasárny jako zápis necelé proměnné (třeba jenom prvních x prvků z nějakého velkého pole), podobně jako u Move. Jenom si pak musíme poznamenat, co jsme to vlastně zapsali, abychom to pak vůbec přečetli :-).

Nahlásit jako SPAM
IP: 85.132.158.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Ace McIntosh0
Super člen
12. 6. 2008   #19
-
0
-

jo, tak to je hodně dobré, doteď jsem nevěděl že se v Pascalu dá se soubory dělat něco takového. S tím si zkusím pohrát:-D. Dík za objasnění, Mircosofte.

Nahlásit jako SPAM
IP: 84.42.174.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Prosím help me — založil bery-p

Prosím o radu — založil orei

Prosím o radu — založil Buránek

PROSÍM, POMOZTE — založil Jakub Chábek

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý