PASCAL-problemy
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Kód: Vybrať všetko
uses crt;
type osoba=record
m,p,sk:string;
c,bpr:integer;
prz6,prz7,prz8,prz9,cpr:real;
end;
juh=record
ul,cd,m,hod:string;
pr1,pr2,pr3,bod:integer;
end;
pole=array[1..10] of osoba;
lol=array[1..10] of juh;
var a:pole;
b:lol;
i,n:integer;
procedure OKNO;
begin
textbackground(blue);
window(0,0,79,25);
clrscr;
textbackground(black);
window(10,3,70,20);
clrscr;
textbackground(green);
window(8,2,68,19);
clrscr;
end;
procedure citaj;
begin
writeln('zadaj pocet ziakov:');
readln(n);
writeln('*******************');
i:=0;
repeat
inc(i);
i:=a[i].c;
writeln('zadajte prosim meno ziaka:');
readln(a[i].m);
writeln('zadajte prosim priezvisko ziaka:');
readln(a[i].p);
writeln('zadajte prosim skolu, ktoru ziak nastevuje:');
readln(a[i].sk);
writeln('zadajte prosim priemer znamok zo 6. rocnika:');
readln(a[i].prz6);
writeln('zadajte prosim priemer znamok zo 7. rocnika:');
readln(a[i].prz7);
writeln('zadajte prosim priemer znamok z 8. rocnika:');
readln(a[i].prz8);
writeln('zadajte prosim priemer znamok z 9. rocnika:');
readln(a[i].prz9);
a[i].cpr:=a[i].prz6+a[i].prz7+a[i].prz8+a[i].prz9/4;
writeln('zadajte prosim body za priemer:');
readln(a[i].bpr);
until i=n;
end;
begin
okno;
citaj;
readkey;
end.-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
tento riadok je kravina: malo by to byť opačne a teoreticky to môže spôsobovať problém ktorý sa v tvojom programe správa dosť zvláštne. Mne to nehodí ten riadok tak divne, ale pri načítavní druhého priemeru to zkolabuje. Každopádne, ten riadok daj tak ako som ti napísal a skús ako sa to bude správať, lebo inač tam nevidím nič čo by malo byť zle
//edit: ešte jedna vec, nakoľko máš 10prvkové pole, mal by si n overiť či nie je väčšie ako 10, buď na začiatku (if n>10 then n:=10;) alebo v na konci cyklu (until (i=n) or (i=10);)
Kód: Vybrať všetko
i:=a[i].c;Kód: Vybrať všetko
a[i].c:=i;//edit: ešte jedna vec, nakoľko máš 10prvkové pole, mal by si n overiť či nie je väčšie ako 10, buď na začiatku (if n>10 then n:=10;) alebo v na konci cyklu (until (i=n) or (i=10);)
slava ti !!!!
ono to funguje...neomzem uverit jak som mohol spravit tak sprostu chybu
....fakt dikes..a dik aj za ten druhy navrh,dobry napad
PROBLEM NUMBER TWO\THREE(?)
PROBLEM NUMBER TWO\THREE(?)
Kód: Vybrať všetko
uses crt;
type osoba=record
m,p,sk:string;
c,bpr:integer;
prz6,prz7,prz8,prz9,cpr:real;
end;
juh=record
ul,cd,m,hod:string;
pr1,pr2,pr3,bod:integer;
end;
pole=array[1..20] of osoba;
lol=array[1..20] of juh;
var a:pole;
b:lol;
r,i,n,j:integer;
Q:char;
f,ff,fff:text;
procedure OKNO;
begin
i:=0;
while i<=24 do begin
inc(i);
j:=0;
while j<=79 do begin
inc(j) ;
write(#177);
end;
end;
textbackground(black);
window(16,7,68,20);
clrscr;
textcolor(yellow);
gotoxy(2,1);
write(#201);
i:=0;
while (i<7) do begin
inc(i);
write(#205);
end;
write('[');
textcolor(red);
write('Prijmacie skusky');
textcolor(yellow);
write(']');
i:=12;
while (i<36) do begin
inc(i);
write(#205);
end;
write(#187);
i:=0;
r:=2;
while i<12 do begin
inc(i);
gotoxy(2,r);
write(#186);
gotoxy(52,r);
write(#186);
inc(r);
end;
gotoxy(2,r);
write(#200);
i:=0;
while(i<49) do begin
inc(i);
write(#205);
end;
write(#188);
textbackground(blue);
window(20,10,62,18);
clrscr;
end;
procedure citaj;
begin
writeln('ak chcete zadat novich ziakov,stlacte:1 ');
writeln('ak chcete ponechat uz zadefinovanich ziakov,stlacte:2');
readln(Q);
if Q=2 then begin-{tu mi pise type mismatch/error 26}
assign(f,'meno.txt');
reset(f);
assign(ff,'priezvisko.txt'):
reset(ff);
assign(fff,'skola.txt');
reset(fff);
while not eof(f) do begin
inc(i);
readln(f,a[i].m);
readln(ff,a[i].p);
end; readln(fff,a[i].sk)
if Q=1 then begin
writeln('zadajte pocet ziakov:');
readln(n);
if n>20 then begin
writeln('prilis velky pocet ziakov. K poctu prvkou je priradene cislo 20.');
n:=20;
end;
writeln('*************************************************************');
i:=0;
repeat
inc(i);
a[i].c:=i;
writeln('zadajte prosim meno ziaka:');
readln(a[i].m);
writeln('zadajte prosim priezvisko ziaka:');
readln(a[i].p);
writeln('zadajte prosim skolu, ktoru ziak nastevuje:');
readln(a[i].sk);
writeln('zadajte prosim priemer znamok zo 6. rocnika:');
readln(a[i].prz6);
writeln('zadajte prosim priemer znamok zo 7. rocnika:');
readln(a[i].prz7);
writeln('zadajte prosim priemer znamok z 8. rocnika:');
readln(a[i].prz8);
writeln('zadajte prosim priemer znamok z 9. rocnika:');
readln(a[i].prz9);
a[i].cpr:=a[i].prz6+a[i].prz7+a[i].prz8+a[i].prz9/4;
writeln('zadajte prosim body za priemer:');
readln(a[i].bpr);
until i=n;
end;
end;
begin
okno;
citaj;
readkey;
end.-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Kód: Vybrať všetko
if Q=2 then begin-{tu mi pise type mismatch/error 26}
assign(f,'meno.txt');
reset(f);
assign(ff,'priezvisko.txt'):
reset(ff);
assign(fff,'skola.txt');
reset(fff);
while not eof(f) do begin
inc(i);
readln(f,a[i].m);
readln(ff,a[i].p);
end; readln(fff,a[i].sk)-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
ist mozem ist ale ci ich spravim lepsie ako ty?
no pochybujem 
dalsi problem/napise mi ze error 2:file not found
dalsi problem/napise mi ze error 2:file not found
Kód: Vybrať všetko
uses crt;
type osoba=record
m,p,sk:string;
c,bpr:integer;
prz6,prz7,prz8,prz9,cpr:real;
end;
juh=record
ul,cd,m,hod:string;
pr1,pr2,pr3,bod:integer;
end;
pole=array[1..20] of osoba;
lol=array[1..20] of juh;
var a:pole;
b:lol;
r,i,n,j:integer;
Q:char;
f,ff,fff:text;
procedure citaj;
begin
writeln('ak chcete zadat novich ziakov,stlacte:1 ');
writeln('ak chcete ponechat uz zadefinovanich ziakov,stlacte:2');
readln(Q);
if Q='2' then begin
assign(f,'meno.txt');
reset(f);
assign(ff,'priezvisko.txt');
reset(ff);
assign(fff,'skola.txt');
reset(fff);
while not eof(f) do begin
inc(i);
readln(f,a[i].m);
readln(ff,a[i].p);
readln(fff,a[i].sk);
end;
end;
if Q='1' then ....
begin
okno;
citaj;
readkey;
end.-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
compile/destination
ak tam máš memory, tak sa ti nevytvára exe. Ak máš disc tak sa vytvorí v adresári ktorý máš zadaný (ako som písal býva to defaultne adresár c:/program files/tp/work). Či sa ti ale exe robí alebo nie, nemá to na toto vplyv
options/directories
tam si zase meníš kde sa ti majú exe vytvárať, kde má hladať kadejaké veci čo potrebuje..
Ten textový súbor má byť tam, kde máš ako cestu Exe & TPU directory
ak tam máš memory, tak sa ti nevytvára exe. Ak máš disc tak sa vytvorí v adresári ktorý máš zadaný (ako som písal býva to defaultne adresár c:/program files/tp/work). Či sa ti ale exe robí alebo nie, nemá to na toto vplyv
options/directories
tam si zase meníš kde sa ti majú exe vytvárať, kde má hladať kadejaké veci čo potrebuje..
Ten textový súbor má byť tam, kde máš ako cestu Exe & TPU directory
Kód: Vybrať všetko
a[k].p:=a[k+1]takze bud das
Kód: Vybrať všetko
a[k].p:=a[k+1].pKód: Vybrať všetko
a[k]:=a[k+1]dakujem...je to primitivny problem...a nemozem pochopit ako ich mozem takto jednoducho prehliadat
//autoeditácia príspevku ( 28 May 2009, 19:46 )
rozumie niekto preco mi to v 9. riadku pise
error 26:type mismatch?hodi to na bodkociarku
//autoeditácia príspevku ( 28 May 2009, 19:46 )
rozumie niekto preco mi to v 9. riadku pise
error 26:type mismatch?hodi to na bodkociarku
Kód: Vybrať všetko
procedure vysledky;
begin
writeln('Utriedenie ziakov od najlepsieho ziaka(triedenie podla celkoveho poctu bodov)');
L:=n;
repeat
max:=1;
for i:=2 to n do if a[i].bod>a[max].bod then max:=i;
pom:=a[L];
a[L]:=a[max];
a[max]:=pom;
dec(L);
until L=1;
end;