ТутРешу.Ру

Помогите найти ошибки — Паскаль

Задание:

Помогите найти ошибки — Паскаль. Условие: Дан одномерный массив, состоящий из вещественных элементов. Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Не совсем то выводитprogram proizvedenie; var q,z,w,i,n,i1,i2: integer; a: array[1… 1000] of real; amin,amax,pr: real; beginassign (input,'input.txt'); assign (output,'output.txt'); reset (input); rewrite (output); readln (n); for i: =1 to n do read (a[i]); amin: =a[1]; for i: =1 to n dobeginif a[i] amax thenamax: =a[i]; i2: =i; end; if i2>i1 then beginq: =i1; w: =i2; endelse beginq: =i2; w: =i1; end; if (w-q) >1 then beginpr: =1; for z: =q to w dopr: =pr*a[z]; endelse write (0); close (input); close (output); end.

Решение:

Вот программаС использованием файловprogram proizvedenie; uses crt; var a: array[1… 1000] of real; amax,amin,p: real; i,n,i1,i2: integer; inp,outp: text; beginassign (inp,'input.txt'); assign (outp,'output.txt'); readln (n); p: =1; reset (inp); for i: =1 to n doread (inp,a[i]); close (inp); amin: =a[1]; for i: =1 to n doif abs (amin) >=abs (a[i]) then begin amin: =a[i]; i1: =i; end; amax: =a[1]; for i: =1 to n doif abs (amax) <= abs (a[i]) then begin amax: =a[i]; i2: =i; end; if (i2>i1) and (i1+1<>i2) thenfor i: =i1+1 to i2-1 dop: =p*a[i] elseif (i1>i2) and (i1-1<>i2) thenfor i: =i1-1 downto i2+1 dop: =p*a[i] else beginwrite (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; beginp: =1; readln (n); for i: =1 to n doread (a[i]); amin: =a[1]; for i: =1 to n doif abs (amin) >=abs (a[i]) then begin amin: =a[i]; i1: =i; end; amax: =a[1]; for i: =1 to n doif abs (amax) <= abs (a[i]) then begin amax: =a[i]; i2: =i; end; if (i2>i1) and (i1+1<>i2) thenfor i: =i1+1 to i2-1 dop: =p*a[i] elseif (i1>i2) and (i1-1<>i2) thenfor i: =i1-1 downto i2+1 dop: =p*a[i] else beginwrite (0); exit; end; write (p); end. Ошибки: 1) В разделе описания переменных var нет файловых переменных input и output; 2) В строке 24 нет begin… end; 3) Сравнивать нужно модули переменных amin и amax с модулем a[i]; + Много лишних переменных




Знаете другой ответ?

Отправить свой ответ