uses graphabc; var a:array[1..5] of record x,y,x0,y0,g:real; end; i,c:integer; begin setwindowsize(800,600); setpenwidth(2); a[1].x:=400+150*cos(a[1].g/180*pi); a[1].y:=300+150*sin(a[1].g/180*pi); a[1].x0:=a[1].x; a[1].y0:=a[1].y; a[1].g:=a[1].g+1-(trunc(a[1].g) div 360)*360; for i:=2 to 5 do begin a[i].x:=a[i-1].x+150*power(0.65,i)*cos(a[i].g/180*pi); a[i].y:=a[i-1].y+150*power(0.65,i)*sin(a[i].g/180*pi); a[i].x0:=a[i].x; a[i].y0:=a[i].y; a[i].g:=a[i].g+power(10,i-1)-(trunc(a[i].g) div 360)*360; end; for c:=1 to 360 do begin a[1].x:=400+150*cos(a[1].g/180*pi); a[1].y:=300+150*sin(a[1].g/180*pi); line(round(a[1].x0),round(a[1].y0),round(a[1].x),round(a[1].y)); a[1].x0:=a[1].x; a[1].y0:=a[1].y; a[1].g:=a[1].g+1-(trunc(a[1].g) div 360)*360; for i:=2 to 5 do begin a[i].x:=a[i-1].x+150*power(0.65,i)*cos(a[i].g/180*pi); a[i].y:=a[i-1].y+150*power(0.65,i)*sin(a[i].g/180*pi); line(round(a[i].x0),round(a[i].y0),round(a[i].x),round(a[i].y)); a[i].x0:=a[i].x; a[i].y0:=a[i].y; a[i].g:=a[i].g+power(10,i-1)-(trunc(a[i].g) div 360)*360; end; end; end.
Вот программа С использованием файлов program proizvedenie; uses crt; var a:array[1..1000] of real; amax,amin,p:real; i,n,i1,i2:integer; inp,outp:text; begin assign(inp,'input.txt'); assign(outp,'output.txt'); readln(n); p:=1; reset(inp); for i:=1 to n do read(inp,a[i]); close(inp); amin:=a[1]; for i:=1 to n do if abs(amin)>=abs(a[i]) then begin amin:=a[i]; i1:=i; end; amax:=a[1]; for i:=1 to n do if abs(amax)<=abs(a[i]) then begin amax:=a[i]; i2:=i; end; if (i2>i1) and (i1+1<>i2) then for i:=i1+1 to i2-1 do p:=p*a[i] else if (i1>i2) and (i1-1<>i2) then for i:=i1-1 downto i2+1 do p:=p*a[i] else begin write(0); exit; end; rewrite(outp); write(outp,p); close(outp); end. Без файлов program proizvedenie; uses crt; var a:array[1..1000] of real; amax,amin,p:real; i,n,i1,i2:integer; begin p:=1; readln(n); for i:=1 to n do read(a[i]); amin:=a[1]; for i:=1 to n do if abs(amin)>=abs(a[i]) then begin amin:=a[i]; i1:=i; end; amax:=a[1]; for i:=1 to n do if abs(amax)<=abs(a[i]) then begin amax:=a[i]; i2:=i; end; if (i2>i1) and (i1+1<>i2) then for i:=i1+1 to i2-1 do p:=p*a[i] else if (i1>i2) and (i1-1<>i2) then for i:=i1-1 downto i2+1 do p:=p*a[i] else begin write(0); exit; end; write(p); end.
Ошибки: 1)В разделе описания переменных var нет файловых переменных input и output; 2)В строке 24 нет begin...end; 3)Сравнивать нужно модули переменных amin и amax с модулем a[i]; +++Много лишних переменных
uses graphabc;
var a:array[1..5] of record x,y,x0,y0,g:real; end; i,c:integer;
begin
setwindowsize(800,600);
setpenwidth(2);
a[1].x:=400+150*cos(a[1].g/180*pi);
a[1].y:=300+150*sin(a[1].g/180*pi);
a[1].x0:=a[1].x;
a[1].y0:=a[1].y;
a[1].g:=a[1].g+1-(trunc(a[1].g) div 360)*360;
for i:=2 to 5 do begin
a[i].x:=a[i-1].x+150*power(0.65,i)*cos(a[i].g/180*pi);
a[i].y:=a[i-1].y+150*power(0.65,i)*sin(a[i].g/180*pi);
a[i].x0:=a[i].x;
a[i].y0:=a[i].y;
a[i].g:=a[i].g+power(10,i-1)-(trunc(a[i].g) div 360)*360;
end;
for c:=1 to 360 do
begin
a[1].x:=400+150*cos(a[1].g/180*pi);
a[1].y:=300+150*sin(a[1].g/180*pi);
line(round(a[1].x0),round(a[1].y0),round(a[1].x),round(a[1].y));
a[1].x0:=a[1].x;
a[1].y0:=a[1].y;
a[1].g:=a[1].g+1-(trunc(a[1].g) div 360)*360;
for i:=2 to 5 do begin
a[i].x:=a[i-1].x+150*power(0.65,i)*cos(a[i].g/180*pi);
a[i].y:=a[i-1].y+150*power(0.65,i)*sin(a[i].g/180*pi);
line(round(a[i].x0),round(a[i].y0),round(a[i].x),round(a[i].y));
a[i].x0:=a[i].x;
a[i].y0:=a[i].y;
a[i].g:=a[i].g+power(10,i-1)-(trunc(a[i].g) div 360)*360;
end;
end;
end.
С использованием файлов
program proizvedenie;
uses crt;
var a:array[1..1000] of real;
amax,amin,p:real;
i,n,i1,i2:integer; inp,outp:text;
begin
assign(inp,'input.txt');
assign(outp,'output.txt');
readln(n);
p:=1;
reset(inp);
for i:=1 to n do
read(inp,a[i]);
close(inp);
amin:=a[1];
for i:=1 to n do
if abs(amin)>=abs(a[i]) then begin
amin:=a[i]; i1:=i;
end;
amax:=a[1];
for i:=1 to n do
if abs(amax)<=abs(a[i]) then begin
amax:=a[i]; i2:=i;
end;
if (i2>i1) and (i1+1<>i2) then
for i:=i1+1 to i2-1 do
p:=p*a[i] else
if (i1>i2) and (i1-1<>i2) then
for i:=i1-1 downto i2+1 do
p:=p*a[i] else begin
write(0); exit; end;
rewrite(outp);
write(outp,p);
close(outp);
end.
Без файлов
program proizvedenie;
uses crt;
var a:array[1..1000] of real;
amax,amin,p:real;
i,n,i1,i2:integer;
begin
p:=1;
readln(n);
for i:=1 to n do
read(a[i]);
amin:=a[1];
for i:=1 to n do
if abs(amin)>=abs(a[i]) then begin
amin:=a[i]; i1:=i;
end;
amax:=a[1];
for i:=1 to n do
if abs(amax)<=abs(a[i]) then begin
amax:=a[i]; i2:=i;
end;
if (i2>i1) and (i1+1<>i2) then
for i:=i1+1 to i2-1 do
p:=p*a[i] else
if (i1>i2) and (i1-1<>i2) then
for i:=i1-1 downto i2+1 do
p:=p*a[i] else begin
write(0); exit; end;
write(p);
end.
Ошибки:
1)В разделе описания переменных var нет файловых переменных input и output;
2)В строке 24 нет begin...end;
3)Сравнивать нужно модули переменных amin и amax с модулем a[i];
+++Много лишних переменных