Паскаль помогите пжл!!!!!! Дан одномерный массив, состоящий из вещественных элементов....

0 голосов
98 просмотров

Паскаль помогите пжл!!!!!!

Дан одномерный массив, состоящий из вещественных элементов. Найти произведение элементов массива, расположенных между максимальным и минимальным элементами.

Дан одномерный массив, состоящий из вещественных элементов. Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами

ну или исправьте мое пжл

program fgf;
var mas:array[1..100] of real;
max,min:real;
i,n,c,b:shortint;
p:real;
f1,g:text;
begin;
assign (f1, 'input.txt');
reset (f1);
readln (f1, n);

for i:=1 to N do read (mas[i]);
max:=mas[i];
for i:=2 to N do begin
if mas[i]>max then begin
max:=mas[i];
c:=i;
end;
end;
min:=mas[1];
for i:=2 to N do begin
if mas[i]max:=mas[i];
b:=i;
end;
end;
close(f1);
assign (g, 'output.txt');
rewrite (g);
p:=1;
if b

else for I:=c+1 to b-1 do p:=p*mas[i];

if (n<3) or (b+1=c) or (c+1=b) then writeln(g,'0.00') else write(p:3:3) ;</p>

close (g);
end.


Информатика (12 баллов) | 98 просмотров
Дан 1 ответ
0 голосов

// operations_array.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include
#include
using namespace std;

int main(int argc, char* argv[])
{
srand(time(NULL));
setlocale(LC_ALL, "rus");
int length_array;
cout << "Укажите количество элементов массива: ";<br> cin >> length_array;

float *arrayPtr = new float [length_array]; // одномерный динамический массив

// заполняем одномерный массив случайными числами
for (int counter = 0; counter < length_array; counter++)
{
arrayPtr[counter] = - 5.00 + ((rand() % 101) / 10.0); // генерируем случайные числа [-5, 5]
cout << arrayPtr[counter] << " "; // вывод сгенерированного числа<br> }
cout << endl;<br>
float min = arrayPtr[0]; // инициализируем первым элементом массива
int number_min = 0; // номер минимального элемента
for (int counter = 0; counter < length_array; counter++)
{
if (min > arrayPtr[counter])
{
min = arrayPtr[counter]; // минимальный элемент
number_min = counter; // номер минимального элемента
}
}
cout << "номер минимального элемента = " << (number_min + 1) << endl; // номер минимального элемента<br>
double product = 1;
for (int counter = 0; counter < length_array; counter++)
{
if (arrayPtr[counter] < 0) // находим первое отрицательное число
{
counter++; // переключаемся на следующий элемент
while (arrayPtr[counter] > 0) // пока не нашли второе отрицательное число
{
product *= arrayPtr[counter]; // накапливаем произведение элементов
counter++;
}
break; // выход из цикла for
}
}
cout << "произведение = " << product << endl;<br>
float *relocation_arrayPtr = new float [length_array]; // одномерный динамический массив для перестановок
int index = 0; // индекс массива перестановок

// заполняем массив элементами, модуль которых не превышает 1
for (int counter = 0; counter < length_array; counter++)
{
if (abs(arrayPtr[counter]) <= 1)<br> {
relocation_arrayPtr[index] = arrayPtr[counter];
index++;
}
}

// заполняем массив элементами, модуль которых больше 1
for (int counter = 0; counter < length_array; counter++)
{
if (abs(arrayPtr[counter]) > 1)
{
relocation_arrayPtr[index] = arrayPtr[counter];
index++;
}
}

// напечатать преобразованный массив
cout << "\nПреобразованный массив:\n";<br> for (int counter = 0; counter < length_array; counter++)
{
cout << relocation_arrayPtr[counter] << " ";<br> }
cout << endl;<br>
// высвобождение памяти отводимой под одномерный динамический массив:
delete [] arrayPtr;
delete [] relocation_arrayPtr;
system("pause");
return 0;

 

 

 

  

(76 баллов)