ТутРешу.Ру

Очень нужна помощь. Помогите найти ошибки — Паскаль

Задание:

Очень нужна помощь. Помогите найти ошибки — Паскаль. Условие: Дан одномерный массив, состоящий из вещественных элементов. Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Не совсем то выводит, и модуль может как-то через abs надо. 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.

Решение:

Не гарантирую, что нет иных ошибок, но: for z: =q to w dopr: =pr*a[z]; в этом случае перемножаются максимальный и минимальные элемент тоже. Нужноfor z: =q+1 to w — 1 dopr: =pr*a[z]; и, да, нужно с модулемif abs (a[i]) abs (amax) thenа здесь где begin? amax: =a[i]; i2: =i; и где вывод ответа?




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

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