Не работает программа....(((подскажите, пожалуйста где ошибочка((((
program riski;
uses crt;
type mas=array[1..10] of real;
mas2=array[1..10,1..10] of real;
var a:real;
m,be,bm:mas;
B,E,b1,e1:mas2;
i,k,c,v,l,j,n:integer;
mp,ebe,mbm,ebm,x,mbe:real;
procedure base;
begin
for i:=1 to n do {obrashenie matrici B)
begin
for c:=1 to n do {dublirovanie matric}
begin
for v:=1 to n do
begin
B1[c,v]:=B[c,v];
e1[c,v]:=e[c,v];
end;
end;
for k:=1 to n do
begin
B[i,k]:=B1[i,k]/b1[i,i]; {delim stroki na razreshayushii element}
E[i,k]:=E1[i,k]/b1[i,i];for l:=1 to n do
begin {naxodim ostalnie elementi}
if l<>i then
begin
B[l,k]:=(B1[l,k]-(B1[l,i]*B1[i,k]/B1[i,i]));
E[l,k]:=(E1[l,k]-(B1[l,i]*E1[i,k]/B1[i,i]));
end;
end;
end;
end;
for i:=1 to n do {summirovanie po strokam, formirovanie vektora-stolbca Be}
begin
for j:=1 to n do
begin
be:=be+e[i,j];
end;
end;
for i:=1 to n do {formirovanie vektora-stolbca Bm}
begin
for j:=1 to n do
begin
Bm:=Bm+m[j]*e[i,j];
end;
end;
for i:=1 to n do
begin {naxozhdenie konstant}
ebe:=ebe+be; {summirovanie po stolbcu}
ebm:=ebm+bm;
mbm:=mbm+m*bm;
mbe:=mbe+m*be;
end;
end;
procedure vvod ;
label out1, out2, out3, out4, out5;
var z:real; mi,ma:real;
begin
writeln;
writeln(' kursovoi proekt');
writeln;
writeln;
writeln(' avtor: );
writeln;
writeln(' tema: zadacha optimizacii riskovogo portfelya.');
writeln;
writeln;
writeln;
out1:
writeln;
writeln(' vvedite kolichestvo vidov cennih bumag, iz kotorih vi hotite');
write(' sformirovat portfel (ne bolee 10): ');
readln(n);
if (n<=0) or (n<>int(n)) or (n>10) then
begin
writeln(' oshibka vvoda! chislo dolzhno bit naturalnim i menshe 10 ! ');
goto out1;
end;
writeln;
writeln(' vvedite effektivnosti (dohodnosti) cennih bumag:');
for i:=1 to n do
begin
E[i,i]:=1;
out2:
write(' ',i,'-ogo vida : ');
readln(m);
if (m<0) then
begin
writeln(' oshibka vvoda! Chislo dolzhno bit polozhitelnim ! ');
goto out2;
end;
end;
writeln;
writeln('!!! Pri vvode riskov i sovmestnix variacii cennix bumag sleduet ');
writeln(' bit vnimatelnim, tak kak programma ne raschitana na lineinuyu ');
writeln(' svyz dohodnostey cennih bumag. Poetomu rekomenduetsya ne vvodit');
writeln(' proporcionalnie riski i sovmestnie variacii cennih bumag!!!');
writeln;
writeln(' vvedite risk (srednee kvadraticheskoe otklonenie (SKO): ');
for i:=1 to n do
begin
out3:
write(' ',i,'-ogo vida : ');
readln(z);
if (z<0) then
begin
writeln(' oshibka vvoda ! Chislo dolzhno bit polozhitelnim ! ');
goto out3;
end;
b[i,i]:=z*z;
end;
writeln;
writeln(' vvedite sovmestnuyu variaciyu (korrelyacionniy moment) cennih bumag ');
writeln(' Ona ne dolzhna bit bolshe proizvedeniya SKO etih bumag.');
for i:=1 to n do
begin
for j:=i+1 to n do {ввод матрицы ковариаций}
begin
out4:
write(' ',i,'-go и ',j,'-go vida: ');
readln(z);
if abs(z)>=sqrt(b[i,i])*sqrt(b[j,j
Скинь сюда ссылку на .pas файл, исправлю.
Всякие [ i], [ b] пиши с пробелами чтоб код пролез
и комментируй строки и функции - хрен его знает может там в строке не глюк, а так и задумано
И что за херня "не работает"??
Прога ВСЕГДА работает так как написано
Чётко уразывай что хотелось и на что ругается
залей куда нибудь. код не полный