Pascal: školski zadaci

poruka: 546
|
čitano: 167.748
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
offline
Pascal: školski zadaci

 

Evo Rješio sam na ovaj način(ovo je samo dio programa, tj.procedura za postojecu datoteku). Da, ništa posebno, jednostavan kod. Kadkad zna biti zeznuto sa ovim procedurama.

 

procedure postojecaDatoteka(var dl:slogovi);

var

  ime:string[20];

begin

  writeln('unesi ime postojece datoteke');

  readln(ime);

  assign(dl,ime);

  (*$i-*)

  reset(dl);

  if Ioresult<>0 then begin

  writeln('datoteka ne postoji ');

  readln;

  end;

  (*$i+*)

end;

Poruka je uređivana zadnji put ned 25.3.2012 17:03 (fighterZu).
Moj PC  
0 0 hvala 0
13 godina
offline
Pascal: školski zadaci

Zanima me jedna stvar uz datoteke. Recimo postoji datoteka u pascalu(koju treba učitati te izbaciti vrijednost u drugu). Prebrojo sam 552 znakova(ukupan broj znakova treba izbaciti). No pascal u izlaznoj datoteci izbaci 555. Nije mi jasno zašto. Siguran sam da je sve u redu sa kodom a i da sam dobro izbrojio. U biti program mora izbaciti broj znakova(ukljucujuci i praznine) iz datoteke.

Poruka je uređivana zadnji put čet 12.4.2012 20:52 (fighterZu).
Moj PC  
0 0 hvala 0
15 godina
online
Re: Pascal: školski zadaci

Program je vjerojatno prebrojao još 3 razmaka valjda.Pascal ima problema s tim razmacima.

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
16 godina
moderator
offline
Re: Pascal: školski zadaci
emerik kaže...

Program je vjerojatno prebrojao još 3 razmaka valjda.Pascal ima problema s tim razmacima.

Ili "entere" (chr 13 i/ili 10). Ovisi kakva je datoteka (binarna, tekstualna), odnosno kako se iščitava (binarno, tekstualno).

14 godina
neaktivan
offline
Pascal: školski zadaci

evo trebam riješiti jedan zadatak.treba ispisati ukupne bodove od svih sudionika i to znam ali ne znam kako prebrojati sve sudionike tj.natjecatelje.datoteka izgleda ovako:

Ana

Zagreb

80

90

Marija

Zagreb

50

60

Ivan

Pula

100

90

Marko

Split

75

90

Petar

Osijek

60

100

Marina

Zagreb

97

95

Vedrana

Pula

82

90

Teo

Osijek

70

80

Matija

Pula

65

75

Osijek

Božo

50

60

Luka

Zagreb

40

60

Adrian

Zagreb

78

85

Sanda

Zagreb

88

90

Petra

Pula

93

76

Katarina

Osijek

97

80

 

 

program podaci;

uses crt;

type element=record

ime, grad:string;

bod1,bod2:integer;

end;

var odgovor:integer;

t:text;

x:element;

y:array[1..100] of element;

 

 

begin

assign(t,'c:\B\podaci.txt.');

reset(t);

 

while not eof(t)do

begin

 

readln(t,x.ime);

readln(t,x.grad);

readln(t,x.bod1);

readln(t,x.bod2);

writeln('ime',x.ime);

WRITELN('SREDNJA OCIJENA:',(x.bod1+x.bod2)/2:8:2);

writeln('_________________________________________________');

end;

close(t);

readln;

end.

Tražim pozivnicu za yuwabits.net pa ko hoće poslati neka mi pošaljepm
 
0 0 hvala 0
15 godina
online
Re: Pascal: školski zadaci

Ako ih trebaš samo prebrojati uzemš neki brojač i prije otvaranje datoteke ga inicjaliziraš na 0.Kada kreneš čitati podatke iz datoteke samo stavi da ti se brojač povećava za 1.

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
14 godina
neaktivan
offline
Re: Pascal: školski zadaci
emerik kaže...

Ako ih trebaš samo prebrojati uzemš neki brojač i prije otvaranje datoteke ga inicjaliziraš na 0.Kada kreneš čitati podatke iz datoteke samo stavi da ti se brojač povećava za 1.

znaci to ce mi prebrojati koliko ima sudionika tj.imena.evo isproba.radi hvala ti puno

Tražim pozivnicu za yuwabits.net pa ko hoće poslati neka mi pošaljepm
Poruka je uređivana zadnji put ned 15.4.2012 13:22 (acmilan0083).
14 godina
neaktivan
offline
Pascal: školski zadaci

e ako bi mi moga pomoci jos jedan zadatak.treba ispisati koliko je natjecatelja pisalo grupu B,tj kako da to pretražim.izgled datoteke:Ana Anic

A

50

Ivo Ivic

B

70

Pero Peric

A

20

Eva Evic

A

30

Jozo Jozic

B

95

Gogo Gogic

A

100

Marko Maric

B

95

Petar Markovic

B

85

Ivo Ancic

A

70

Goran Borić

A

60

 

program podaci;

uses crt;

type element=record

ime:string;

grupa:char;

bod1:integer;

end;

var odgovor:integer;

t:text;

br:integer;

x:element;

y:array[1..100] of element;

 

 

begin

assign(t,'c:\B\osobe.txt.');

reset(t);

br:=0;

while not eof(t)do

begin

br:=br+1;

readln(t,x.ime);

readln(t,x.grupa);

readln(t,x.bod1);

 

end;

close(t);

readln;

end.

 

Tražim pozivnicu za yuwabits.net pa ko hoće poslati neka mi pošaljepm
Poruka je uređivana zadnji put ned 15.4.2012 13:34 (acmilan0083).
 
0 0 hvala 0
15 godina
online
Re: Pascal: školski zadaci

Opet uzmes neki brojač i prije otvaranja datoteke ga inicijaliziraš na 0.Kad otvoriš datoteku dodaš da provjerava da li je x.grupa jednak B.Ako je onda povećaš brojač.I to je to.

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
Poruka je uređivana zadnji put ned 15.4.2012 13:37 (emerik).
14 godina
neaktivan
offline
Pascal: školski zadaci

hvala ti puno

Tražim pozivnicu za yuwabits.net pa ko hoće poslati neka mi pošaljepm
 
0 0 hvala 0
15 godina
online
Re: Pascal: školski zadaci

Samo pitaj ak će ti nešto trebat.

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
14 godina
neaktivan
offline
Pascal: školski zadaci

za emerika jel nisam siguran jer sam poslao pp

 

ono kaj si mi rekao bas i ne radi.mozes li provjeriti da nisam negdje pogrijesio.znaci kada pokrenem program program mi ispisuj krivo ime tj ispise mi 3 imena

 

 

program podaci;

uses crt;

type element=record

ime:string;

grupa:char;

bod1:integer;

end;

var

t:text;

br,br1,i:integer;

x:element;

suma,min:integer;

y:array[1..100] of element;

 

 

begin

assign(t,'c:\B\osobe.txt.');

reset(t);

 

min:=1000;

while not eof(t)do

begin

readln(t,x.ime);

readln(t,x.grupa);

readln(t,x.bod1);

 

if  x.bod1<min then min:=x.bod1;

if  x.bod1=min then writeln(x.ime)

end;

 

writeln('najmanje bodova:', x.ime);

 

 

close(t);

readln;

readln;

 

end.

 

 

Tražim pozivnicu za yuwabits.net pa ko hoće poslati neka mi pošaljepm
Poruka je uređivana zadnji put ned 15.4.2012 20:24 (acmilan0083).
 
0 0 hvala 0
15 godina
online
Re: Pascal: školski zadaci

Krivo si napravio.Lijepo sam ti napisao da 2 puta treba proci kroz datoteku.Ti si samo jedanput prosao.U prvom prolasku provjeris koliko je min,i u drugom prolasku ispisujes ljude.Razumijes?

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
Poruka je uređivana zadnji put ned 15.4.2012 20:27 (emerik).
14 godina
neaktivan
offline
Re: Pascal: školski zadaci
emerik kaže...

Krivo si napravio.Lijepo sam ti napisao da 2 puta treba proci kroz datoteku.Ti si samo jedanput prosao.U prvom prolasku provjeris koliko je min,i u drugom prolasku ispisujes ljude.Razumijes?

sorry ne bas.jel bi mi mogao napisati kod jer ne kuzim kako mislis proci kroz datoteku dva puta.

Tražim pozivnicu za yuwabits.net pa ko hoće poslati neka mi pošaljepm
15 godina
online
Re: Pascal: školski zadaci

Ovako nesto.Nisam kompajlirao kad nemam DevPas na kompu.

 

 

program podaci;

uses crt;

type element=record

ime:string;

grupa:char;

bod1:integer;

end;

var

t:text;

br,br1,i:integer;

x:element;

suma,min:integer;

y:array[1..100] of element;

 

begin

 

assign(t,'c:\B\osobe.txt.');

reset(t);

 

min:=1000;

 

 

while not eof(t)do

begin

readln(t,x.ime);

readln(t,x.grupa);

readln(t,x.bod1);

 

if  x.bod1<min then min:=x.bod1;

end;

 

while not eof(t)do

begin

readln(t,x.ime);

readln(t,x.grupa);

readln(t,x.bod1);

 

if  x.bod1=min then writeln(x.ime);

end;

 

 

 

close(t);

readln;

readln;

 

end.

 

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
Poruka je uređivana zadnji put ned 15.4.2012 20:41 (emerik).
13 godina
offline
Re: Pascal: školski zadaci
mbaksa kaže...

Ili "entere" (chr 13 i/ili 10). Ovisi kakva je datoteka (binarna, tekstualna), odnosno kako se iščitava (binarno, tekstualno).

hmm, interesantno, ali rješio sam problem ručno kako bi se reklo. Pascal automatski u postojeću tekstualnu datoteku koju otvara upisuje na početku neka čudna tri znaka. No ako se uđe u tu datoteku preko programa - desni klik i ''open file at cursor'' i izbrišu ta tri znaka preko pascala sve je ok. Ta se tri znaka ne vide u txt datoteci nego se moraju otvoriti baš preko tog ''open file at cursor''(dev-pascal čini se nema tu opciju ali turbo i free imaju). Što je najgore svi podatci u izlaznoj datoteci automatski su pogrešni(zbog te greške). Ali eto na svu sreću uspio sam to nekako rješiti.

Poruka je uređivana zadnji put čet 19.4.2012 21:13 (fighterZu).
16 godina
moderator
offline
Re: Pascal: školski zadaci
fighterZu kaže...
mbaksa kaže...

Ili "entere" (chr 13 i/ili 10). Ovisi kakva je datoteka (binarna, tekstualna), odnosno kako se iščitava (binarno, tekstualno).

hmm, interesantno, ali rješio sam problem ručno kako bi se reklo. Pascal automatski u postojeću tekstualnu datoteku koju otvara upisuje na početku neka čudna tri znaka.

A ti čudni znakovi su - koji konkretno? Koji su im ASCII kodovi?

 

Uglavnom, nešto si pobrkao. Pascal ne stavlja sam za bezveze nekakve nepostojeće znakove u datoteke. {#} Nešto nisi dobro radio.

13 godina
offline
Pascal: školski zadaci

da ali oni nisu vidljivi u notepadu, samo u pascalu evo na sclici ta tri znaka, ne mogu pronaći nigdje u ascii koji su to znakovi.

ma slični su onima u extended ascii table

187, 191 ova posljednja dva.

 

slika1 slika1
Poruka je uređivana zadnji put čet 19.4.2012 22:19 (fighterZu).
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci
fighterZu kaže...

da ali oni nisu vidljivi u notepadu, samo u pascalu evo na sclici ta tri znaka, ne mogu pronaći nigdje u ascii koji su to znakovi.

To me nimalo ne zanima. Otvori datoteku u hex. editoru, npr. u ovom: http://mh-nexus.de/en/hxd/

13 godina
offline
Pascal: školski zadaci

EE, BB,BF prva ta tri pod ovim offsetom(da li  te to zanima?) ili? Pa stvarno mi nije jasno zašto bi to radio, ma u programskom kodu ništa ne dodajem samo učitavam.

Poruka je uređivana zadnji put čet 19.4.2012 22:28 (fighterZu).
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci
fighterZu kaže...

EE, BB,BF prva ta tri pod ovim offsetom(da li  te to zanima?) ili?

To si dobio hex. editorom ili si sam tražio po ASCII tablici?

 

Ajde stavi na forum kôd koji se tiče zapisivanja/otvaranja datoteke, da sad ne tražim po temi.

13 godina
offline
Pascal: školski zadaci

to sam dobio u hex editoru(evo kako znakovi izgledaju u hex editoru - ), evo postat cu kod ako treba

 

program zadatak;

var dat1, dat2:text;

x:char;

a,b,c,d,e,p:integer;

samogl,znakov: set of char;

begin

samogl:=['A','E','I','O','U'];

a:=0;

b:=0;

c:=0;

d:=0;

e:=0;

p:=0;

assign(dat1,'dattekb.txt');

assign(dat2,'izlazb.txt');

reset(dat1);

rewrite(dat2);

while not eof(dat1) do

begin

while not eoln(dat1) do

begin

read(dat1,x);

inc(e);

inc(p);

if not (upcase(x) in samogl) and not(x=' ')then

inc(b);

if x=' ' then inc(c);

end;

if p mod 2<>0 then inc(d);

p:=0;

readln(dat1);

inc(a);

end;

writeln(dat2,'broj redaka: ',a);

writeln(dat2,'broj suglasnika: ',b);

writeln(dat2,'broj razmaka: ',c);

writeln(dat2,'broj redaka s neparnim brojem znakova: ',d);

writeln(dat2,'Ukupan broj znakova: ',e);

close(dat1);

close(dat2);

end.

 

Eto ga cijeli program, i dali to ima ikakve veze s ovim chr13,chr10 o kojima si govorio. Mislim ništa ne dodajem u postojeću datoteku, samo u izlaznu izbacujem rezultat. Više stvarno nisam u ništa siguran.

 

Poruka je uređivana zadnji put čet 19.4.2012 22:43 (fighterZu).
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci

Je li ti to forum pojeo indentacije (razmake s lijeve strane) ili tako zaista pišeš? Ono što je hijerahijski na nižoj razini treba biti uvučeno. Uglavnom...

 

Nije mi sad jasna stvar - ti kažeš da su ti se u otvorenoj datoteci pojavili ti znakovi? Dakle, datoteku koju si samo otvarao? Jer, koliko vidim, "dattekb.txt" samo otvaraš - kako si sadržaj stavio u nju? Nekim drugim programom?

13 godina
offline
Pascal: školski zadaci

Evo ovako, datoteka je i sam zadatak i već je u njoj napisan bio sadržaj koju nam je dao profa, nismo morali nikakav sadržaj dodati u datoteku, nego ju učitati i u izlaznu datoteku ispisati rješenja. Izgleda da je problem u datoteci koju je profa postavio. Recimo kad ja sam sad stvorim datoteku i napišem bilo kakvi sadržaj u nju preko notepada, radi bez problema.

Poruka je uređivana zadnji put čet 19.4.2012 22:54 (fighterZu).
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci
fighterZu kaže...

Evo ovako, datoteka je i sam zadatak i već je u njoj napisan bio sadržaj koju nam je dao profa, nismo morali nikakav sadržaj dodati u datoteku, nego ju učitati i u izlaznu datoteku ispisati rješenja.

OK, znači dobili ste datoteku sa znakovima koji nisu slova (koji su zapravo u gornjoj tablici ASCII znakova, tj. ni nisu dio standardne 7-bitne ASCII tablice, nego dio 8-bitne proširene ASCII tablice). U čemu je konkretno problem? To što su ti ti znakovi ušli u ukupan broj slova? Pa uvijek možeš postaviti uvjet da u ukupan broj slova uključuje samo - slova, tj. ignoriraš takve znakove. Sorry, nisam pratio ispočetka pa mi nije baš posve jasno u čemu je problem.

13 godina
offline
Pascal: školski zadaci

Hm, ali nije mi jasno kako je uspio nam dati takvu datoteku? Zar nam nije trebao reći o tome. Sad nam ocjena ovisi o tome, a on je rješenja prihvaćao onakvima kakva su preko notepada(znači 2 od 5 rješenja valja), pa ćemo sad zbog ta tri znaka mi biti krivi. Znači nije do nas. Em nikad nismo radili preko tih kodova. Samo mi nije jasno kako ih je uspio ubaciti.

Poruka je uređivana zadnji put čet 19.4.2012 23:03 (fighterZu).
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci
fighterZu kaže...

Hm, ali nije mi jasno kako je uspio nam dati takvu datoteku? Zar nam nije trebao reći o tome, sad nam ocjena ovisi o tome, a on je rješenja prihvaćao onakvima kakva su preko notepada, pa ćemo sad zbog ta tri znaka podobivati mi biti krivi. Znači nije do nas.

Prvo ponovno skini datoteku, da ne bi bilo da se slučajno zbrljala na tvom računalu.

 

Drugo - ako ti je zadatak da brojiš slova, onda je na tebi da brojiš slova, a ne nekakve žblj znakove. Dakle, ako neki znak kojeg pročitaš ne spada u slova, onda ga ni nećeš uračunavati u ukupan broj slova i suglasnika, zar ne? Dakle, irelevantno je što imaš žblj znakove u datoteci, kad je tebi zadatak brojiti slova, suglasnike i samoglasnike. Ili sam krivo skužio zadatak?

13 godina
offline
Pascal: školski zadaci

Pa traži se ukupan broj znakova(valjda sve spada u to). Radili smo već tako nešto slično i nikad nismo morali postavljati uvjet za takvu vrstu znakova, pa ni on sam ih nikad ne stavlja.

Poruka je uređivana zadnji put čet 19.4.2012 23:08 (fighterZu).
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci
fighterZu kaže...

Pa traži se ukupan broj znakova(valjda sve spada u to).

Koji je točan tekst zadatka?

13 godina
offline
Pascal: školski zadaci

Ma za sve se traže znakovi(ma eno u kodu što sam postavio prije imaš šta se sve traži) osim za suglasnike(tu se podrazumijevaju samo slova naravno). Znači jednostavno je problem u zadatku koji je nejasno postavljen i datoteci. Kod je po pravilu ispravan. Ali kako su ti kodovi dospjeli u datoteku? Siguran sam da ih nije namjerno stavio.

Poruka je uređivana zadnji put čet 19.4.2012 23:16 (fighterZu).
Moj PC  
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice