Zajímavé příklady do školy (vstupní a výstupní soubory) – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zajímavé příklady do školy (vstupní a výstupní soubory) – Pascal – Fórum – Programujte.comZajímavé příklady do školy (vstupní a výstupní soubory) – Pascal – Fórum – Programujte.com

 

Lada
~ Anonymní uživatel
30 příspěvků
26. 4. 2011   #1
-
0
-

Ahoj,
zítra píšeme v Pascalu písemku a já tomu vůbec nerozumím. Učitel nám dal pár úkolů, které by se tam mohly objevit, ale já jsem na tohle úplný antitalent a v životě se to snad nenaučím :( Zatím tam mám 2 pětky a je to jediný předmět, ze kterého nemám jedničku nebo dvojku... Nechci propadnout, proto prosím o rady. Můžete to brát jako procvičení a uděláte dobrý skutek. Předem děkuji moc za pomoc :) Dolů vám napíši zadání příkladů:

1. Přečte ze souboru jména a vypíše je na monitor.
2. Udělá kopii 1. souboru (z 1. čte a do 2. zapisuje)
3. Udělá ze 2 vstupních souborů jeden výstupní.
4. Ze vstupního souboru napíše od výstupního pouze jména, jejichž délka je menší nebo rovna 4 znakům.
5. bonusový za jedničku: Je vstupní soubor se jmény setříděn podle abecedy od "a", z klávesnice zadám nové jméno a vytvořím výstupní s novým jménem na správném místě podle abecedy.

Díky za rady...byla bych moooc vděčná :)

Nahlásit jako SPAM
IP: 193.86.139.–
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #2
-
0
-

Co chceš prosímtě radit den před písemkou? Že ses měla učit v hodinách?
Není teď už trochu pozdě?
Nebo jsi to myslela tak, že ti sem máme napsat vyřešená zadání a ty se je naučíš nazpaměť (nebo na tahák)?

Nahlásit jako SPAM
IP: 88.103.236.–
Lada
~ Anonymní uživatel
30 příspěvků
26. 4. 2011   #3
-
0
-

To JoDiK : Já se to jinak než nazpaměť naučit nemohu :( V hodinách dávám pozor, ale nejsem jediná, co to nechápe. Učitel to neumí vysvětlit. Jenom píše kód a my opisujeme a pak nám řekne, že píšeme písemku... O písemce jsme se dozvěděli dneska. No tak jsem to aspoň zkusila...asi nakonec teda propadnu. :(

Nahlásit jako SPAM
IP: 193.86.139.–
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #4
-
0
-

To Lada :
Divnej učitel...
1.



program VypisJmen;
var
t : text; {Proměnná typu textový soubor}
s : string; {Řádek pro čtení ze souboru}
begin
assign(t,'jmena.txt'); {Přiřazení jména souboru - pokud není ve stejné složce, tak napsat úplnou specifikaci}
reset(t); {Otevření souboru pro čtení}
while not eof(t) do {Dokud není konec souboru}
begin
readln(t,s); {Čti řádek ze souboru}
writeln(s); {Vypiš ho na obrazovku}
end;
close(t); {Uzavření souboru}
end.


Nahlásit jako SPAM
IP: 88.103.233.–
KIIV
~ Moderátor
+43
God of flame
26. 4. 2011   #5
-
0
-

To Lada : programovani ma jednu mensi nevyhodu - musi se pochopit... nadrtit se to nemas sanci

musis pochopit hlavne o co jde - dat pocitaci presne instrukce tak, aby udelal co chces ..

tj. otevri tendle soubor pro cteni.. (budu k nemu pristupovat pomoci promenne F a ocekavam ze F bude textovy soubor... - v sekci var musis predem presne rict kde se co pamatuje - pocitac si nepamatuje nic, co mu nereknes)
nacti radek z F do promenne retezec (typu string?)
vypis to, co je v promenne retezec na obrazovku
opakuj nacteni radku z F a nasledujici kroky dokud je co nacitat ze souboru
...


EDIT: presne toto ti poslal jodik :D

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #6
-
0
-

2. Zadání je neurčité, budu předpokládat, že se bavíme o textovém souboru.



program KopieSouboru;
var
t1,t2 : text; {Proměnné typu textový soubor}
s : string; {Řádek pro čtení ze souboru}
begin
assign(t1,'vstup.txt'); {Přiřazení jména souboru}
reset(t1); {Otevření souboru pro čtení}
assign(t2,'kopie.txt'); {Přiřazení jména souboru}
rewrite(t2); {Vytvoření a otevření souboru pro zápis}
while not eof(t1) do {Dokud není konec vstupního souboru}
begin
readln(t1,s); {Čti řádek ze souboru}
writeln(t2,s); {Zapiš řádek do výstupního souboru}
end;
close(t1); {Uzavření vstupního souboru}
close(t2); {Uzavření výstupního souboru}
writeln('Soubor byl zkoprován'); {Výpis informace pro uživatele na obrazovku}
end.


Nahlásit jako SPAM
IP: 88.103.233.–
KIIV
~ Moderátor
+43
God of flame
26. 4. 2011   #7
-
0
-

dvojka je naprosto to same.. akorat si musis taky otevrit dalsi soubor pro zapis a to co nactes, zapsat misto na obrazovku do nej

(a samozrejme pokud pouzijes textove soubory, musis pocitat s tim, ze s tim napriklad mp3 nezkopirujes)
pokud budes chtit binarni soubory tak binarni soubor .. napriklad Fin,Fout : file of byte; znak : byte;

a pak nacitat po tech bytech a zapisovat taktez.. (je to pomaly, ale zase jednodussi, nez kdybys mela hledat jak se zachazi s celym blokem bajtu)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lada
~ Anonymní uživatel
30 příspěvků
26. 4. 2011   #8
-
0
-

Jodik, KIIV: díky moc, aspoň ten jeden zatím mám. Když to mám takhle napsaný a vysvětlený, tak to trošku i chápu, ale sama bych to nevymyslela ani náhodou...

Nahlásit jako SPAM
IP: 193.86.139.–
Lada
~ Anonymní uživatel
30 příspěvků
26. 4. 2011   #9
-
0
-

Ooo...super, poradíte i s dalšími :) jste zlatí :* Díky moc :) třeba to nakonec i pochopím

Nahlásit jako SPAM
IP: 193.86.139.–
KIIV
~ Moderátor
+43
God of flame
26. 4. 2011   #10
-
0
-

trojka je vesmes o otevreni jednoho pro cteni (nebo dvou, pokud nechces setrit promennejma) a jednoho pro zapis... po prekopirovani prvniho se misto nej otevre druhej a soubor pro zapis se samozrejme nezavira - pokracuje se s dalsim kopirovanim (a tim se pripoji druhy soubor na konec toho prvniho - do jineho souboru)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #11
-
0
-

3. tohle je už hodně neurčité, výstupní soubor má být vytvořen tak, že je v něm nejdřív první soubor a pak druhý?



program KopieSouboru;
var
t1,t2 : text; {Proměnné typu textový soubor}
s : string; {Řádek pro čtení ze souboru}
begin
assign(t1,'vstup1.txt'); {Přiřazení jména souboru}
reset(t1); {Otevření souboru pro čtení}
assign(t2,'vystup.txt'); {Přiřazení jména souboru}
rewrite(t2); {Vytvoření a otevření souboru pro zápis}
while not eof(t1) do {Dokud není konec vstupního souboru}
begin
readln(t1,s); {Čti řádek ze souboru}
writeln(t2,s); {Zapiš řádek do výstupního souboru}
end;
close(t1); {Uzavření vstupního souboru}
assign(t1,'vstup2.txt'); {Přiřazení jména souboru}
reset(t1); {Otevření souboru pro čtení}
while not eof(t1) do {Dokud není konec vstupního souboru}
begin
readln(t1,s); {Čti řádek ze souboru}
writeln(t2,s); {Zapiš řádek do výstupního souboru}
end;
close(t1); {Uzavření vstupního souboru}
close(t2); {Uzavření výstupního souboru}
writeln('Soubory byly spojeny'); {Výpis informace pro uživatele na obrazovku}
end.

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #12
-
0
-

Koukám, že píšu co KIVV radí :-)
Kecám, jenom kopíruju hotovej příklad a upravuju názvy...

U čtyřky jen přidáš k dvojce jeden řádek, rači to zkopíruju celý a přidám:



program KopieSouboru;
var
t1,t2 : text; {Proměnné typu textový soubor}
s : string; {Řádek pro čtení ze souboru}
begin
assign(t1,'vstup.txt'); {Přiřazení jména souboru}
reset(t1); {Otevření souboru pro čtení}
assign(t2,'kopie.txt'); {Přiřazení jména souboru}
rewrite(t2); {Vytvoření a otevření souboru pro zápis}
while not eof(t1) do {Dokud není konec vstupního souboru}
begin
readln(t1,s); {Čti řádek ze souboru}
if length(s)<=4 then {jestli je délka řádku menší než 4 včetně, tak ...}
writeln(t2,s); {Zapiš řádek do výstupního souboru}
end;
close(t1); {Uzavření vstupního souboru}
close(t2); {Uzavření výstupního souboru}
writeln('Soubor byl zkoprován'); {Výpis informace pro uživatele na obrazovku}
end.


Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #13
-
0
-

Doufám, že v těch programech nedělám překlepy jak u KIIV
Nemám tu překladač, tak za syntaktické chyby neručím...

Nahlásit jako SPAM
IP: 88.103.233.–
Lada
~ Anonymní uživatel
30 příspěvků
26. 4. 2011   #14
-
0
-

JoDiK, KIIV: už to i trošku chápu, ono to nakonec třeba nabude tak těžký :) rozhodně to chápu víc od vás než od učitele ;) pak Vám se napíši, co jsem dostala, díky moc, vážím si toho :)

Nahlásit jako SPAM
IP: 193.86.139.–
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #15
-
0
-

Pětka je už jen drobná modifikace:



program KopieSouboru;
var
t1,t2 : text; {Proměnné typu textový soubor}
s : string; {Řádek pro čtení ze souboru}
jmeno : string; {proměnná pro zadané jméno}
begin
write('Zadej jméno : ');
readln(jmeno);
assign(t1,'vstup.txt'); {Přiřazení jména souboru}
reset(t1); {Otevření souboru pro čtení}
assign(t2,'kopie.txt'); {Přiřazení jména souboru}
rewrite(t2); {Vytvoření a otevření souboru pro zápis}
while not eof(t1) do {Dokud není konec vstupního souboru}
begin
readln(t1,s); {Čti řádek ze souboru}
if jmeno<s then {Jestliže zadané jméno je podle abecedy menší než jméno ze souboru, tak...}
writeln(t2,jmeno); {zapiš zadané jméno do výstupního souboru}
writeln(t2,s); {Zapiš řádek do výstupního souboru}
end;
close(t1); {Uzavření vstupního souboru}
close(t2); {Uzavření výstupního souboru}
writeln('Soubor byl zkopírován a nové jméno do něj přidáno'); {Výpis informace pro uživatele na obrazovku}
end.


Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #16
-
0
-

To JoDiK :
Ajaj, asi bych jedničku nedostal, to jméno bude vloženo hodněkrát, takže ještě hlídat, jestli už bylo zapsáno...
Takže oprava:



program KopieSouboru;
var
t1,t2 : text; {Proměnné typu textový soubor}
s : string; {Řádek pro čtení ze souboru}
jmeno : string; {proměnná pro zadané jméno}
jmenoNezapsano : boolean; {logická proměnná pro nové jméno}
begin
write('Zadej jméno : ');
readln(jmeno);
jmenoNezapsano:=true; {nové jméno ještě nebylo zapsáno}

assign(t1,'vstup.txt'); {Přiřazení jména souboru}
reset(t1); {Otevření souboru pro čtení}
assign(t2,'kopie.txt'); {Přiřazení jména souboru}
rewrite(t2); {Vytvoření a otevření souboru pro zápis}
while not eof(t1) do {Dokud není konec vstupního souboru}
begin
readln(t1,s); {Čti řádek ze souboru}
if (jmeno<s) and jmenoNezapsano then {Jestliže zadané jméno je podle abecedy menší než jméno ze souboru a ještě nebylo zapsáno, tak...}
begin
writeln(t2,jmeno); {zapiš zadané jméno do výstupního souboru}
jmenoNezapsano:=false; {nové jméno už bylo zapsáno}

end;
writeln(t2,s); {Zapiš řádek do výstupního souboru}
end;
close(t1); {Uzavření vstupního souboru}
close(t2); {Uzavření výstupního souboru}
writeln('Soubor byl zkopírován a nové jméno do něj přidáno'); {Výpis informace pro uživatele na obrazovku}
end.

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
26. 4. 2011   #17
-
0
-

PS: příklad na výpis souboru je odtud: http://www.spsemoh.cz/vyuka/pascal/index.htm
Třeba tam najdeš další jinak (možná i lépěji) vysvětlené věci.

Nahlásit jako SPAM
IP: 88.103.233.–
Lada
~ Anonymní uživatel
30 příspěvků
4. 5. 2011   #18
-
0
-

Tak jsem dostala jedničku podtrženou :D asi nebudu úplně tak blbá :D učitel úplně zíral... díky hoši ;)

Nahlásit jako SPAM
IP: 193.86.139.–
JoDiK
~ Anonymní uživatel
987 příspěvků
4. 5. 2011   #19
-
0
-

To Lada :
Rádo se stalo.

Nahlásit jako SPAM
IP: 88.103.233.–
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é

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ý