| Autor | Správa |
Jaklie
 Užívateľ
 Založený: 08.02.2012 Príspevky: 2
 | Zaslal: St 08.02.12 14:09 |   |
Zdravim, potrebujem poradit kde robim chybu v pascali... skusal som spravit jednu ulohu v pascali ale vypisuje mi Range ceck error (prekrocenie limitu) ... zadanie je tu http://home.gamca.sk/pk/inf/materialy/zenit/05ZadanieK.htm po A ale nejde mi ani spravit sucet znamok tak nemozem vyratat ani priemer...
Moj program vyzera takto (hrubo cervene nefunguje a slabo cervene ide):
program skuska5;
uses crt;
type studenti=record meno:string;
znamky:array[1..9] of integer;
absencia,nh,spravanie:integer;end;
var x:text;
n,pz,i,a:integer;
s:array[1..13] of integer;
g:array[1..13] of studenti;
procedure nacitanie(a:integer);
begin
read(x,g[a].spravanie);
for i:=1 to pz do read(x,g[a].znamky[i]);
read(x,g[a].absencia);
read(x,g[a].nh);
read(x,g[a].meno);
end;
begin
clrscr;
assign(x,'E:/TP/zenit.txt');
reset(x);
read(x,n);read(x,pz);readln(x);
for a:=1 to pz do begin nacitanie(a);readln(x);end;
close(x);
for i:=1 to pz do with g[i] do delete(meno,1,1);
for i:=1 to pz do with g[i] do if nh>=10 then spravanie:=2;
for i:=1 to pz do s[i]:=0;
for i:=1 to pz do for a:=1 to n do s[i]:=s[i]+g[i].znamky[a];
{s[1]:=g[1].znamky[1]+g[1].znamky[2];}
writeln(s[1]);
writeln(g[5].meno);
readln;
end.
Dakujem vopred  |
| |
  |
 |
nBXXL
 Užívateľ
 Založený: 27.12.2008 Príspevky: 978 Bydlisko: Nové Zámky, Slovensko Vek: 18
 | Zaslal: St 08.02.12 15:57 |   |
taký dobrý je ten pascal, že ti ešte červeným ukáže riadok, na ktorom máš chybu..
polovica programovania je o hľadaní chýb, a k tomu potrebuješ vedieť robiť, čo tvoj program robí..
v tvojom stačí zbadať, že i ti ide od 1 do pz (9) a a ti ide od 1 do n (13).. pristupuješ k s[i], g[i] a znamky[a]. Tvoj program pristupuje až k znamky[13], čo neexistuje, preto range check error.... bližšie správnosť neskúmam, ale zameniť pz a n v tom for cykle by to malo sfunkčniť.. |
_________________ PC: MB: ASUS K8V SE Deluxe; CPU: AMD Athlon 64 2800+ 1.8GHz; GPU: Sapphire Radeon X1950GT AGP (500/600); RAM: Kingston 1GB DDR400 CL3 + A-Data 256MB DDR400 HDD: Western Digital 20 + 200GB; Monitor: LG 771E (17" CRT, stary ale dobry, aj ked trochu tmavy); PSU: Rexpower PZ-400W; OS: Windows 7 32-bit + ArchLinux 32-bit
NB: Asus K53SJ-SX093: i3-2310M + GT520M Optimus + 4GB RAM + Win7 64-bit + ArchLinux 64-bit | |
   |
 |
Jaklie
 Užívateľ
 Založený: 08.02.2012 Príspevky: 2
 | Zaslal: St 08.02.12 18:48 |   |
jj tam bola ta chyba dakujem za radu... P.S.: to som sam zvyraznil ale to asi vies...  |
| |
  |
 |
nBXXL
 Užívateľ
 Založený: 27.12.2008 Príspevky: 978 Bydlisko: Nové Zámky, Slovensko Vek: 18
 | Zaslal: St 08.02.12 19:05 |   |
jj viem ze si to sam zvyraznil, ale vacsina programovacich prostredi/kompilerov (vratane pascalu) ti pri chybe oznaci aj riadok, na ktorom je chyba.. turbo pascal ho dokonca aj zvyrazni cervenou.. |
_________________ PC: MB: ASUS K8V SE Deluxe; CPU: AMD Athlon 64 2800+ 1.8GHz; GPU: Sapphire Radeon X1950GT AGP (500/600); RAM: Kingston 1GB DDR400 CL3 + A-Data 256MB DDR400 HDD: Western Digital 20 + 200GB; Monitor: LG 771E (17" CRT, stary ale dobry, aj ked trochu tmavy); PSU: Rexpower PZ-400W; OS: Windows 7 32-bit + ArchLinux 32-bit
NB: Asus K53SJ-SX093: i3-2310M + GT520M Optimus + 4GB RAM + Win7 64-bit + ArchLinux 64-bit | |
   |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
|