1 (9 лет 1 месяц назад)

Тема: Помогите плиз с Паскалем

Всем доброго вечера.
Надо помочь сестре с Паскалем, а я в нем работал примерно лет 12 назад. Задание следующие:
----------------------------
В одномерном массиве, состоящем из n  вещественных элементов, вычислить:
1. Произведение положительных элементов массива.
2. Сумму элементов массива, расположенных до минимального элемента.
3. Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящих на нечетных местах.
----------------------------

Нашли похожую программу, но она что-то не пашает. Код программы не могу прикрепить.

Знаю как решать каждую из задач:
1. Перечислять все элементы с первого до последнего. Если он больше нуля - умножать на счетчик, предварительно присвоив его значение равное 1.
2. Сначала отсортировать массив (http://www.cyberforum.ru/pascal/thread33243.html) Потом просто сложить все элементы
3. Разбить массив на 2 по принципу: если номер элемента i не делится пополам, то записать его в 1-ый массив. Если нет - во второй. Потом опять же упорядочить.

Если кто сможет помочь - прошу откликнуться, буду очень благодарен.

Отредактировано Kompozit (, 9 лет 1 месяц назад)

Тема закрыта и находится в архиве, не беспокойте автора без особой необходимости!

2 (9 лет 1 месяц назад)

Re: Помогите плиз с Паскалем

примерно так, если без проверок "от дурака"  slightly_smiling_face

program Massiv;
uses crt;
var
A : array[0..1000] of real;
temp, p, s : real;
k, n, c, imin : integer;

BEGIN
clrscr;
write('N = ');
readln(n);

for k:=1 to n do
   begin
     write('A[',k,'] = ');
     readln(a[k]);
   end;

//--------------1--------------------
p := 1;
for k := 1 to n do
   if a[k] > 0 then p := p*a[k];

writeln('Proizvedenie = ', p:7:4);

//--------------2--------------------
imin := 1;
for k:=1 to n do
   if a[k]<a[imin] then
      imin := k;

s := 0;
for k := 1 to imin-1 do
   s := s + a[k];

writeln('Summa do min = ', s:7:4);

//--------------3--------------------
c := 0;

repeat
c := 0;
for  k := 1 to n-2 do
        if a[k] > a[k+2] then
           begin
              temp := a[k];
              a[k] := a[k+2];
              a[k+2] := temp;
              c := 1;
           end;

until (c = 0);

for k := 1 to n do
write(a[k]:7:3);

readkey;
END.

Отредактировано Maestro (, 9 лет 1 месяц назад)

3 (9 лет 1 месяц назад)

Re: Помогите плиз с Паскалем

Фото сестры показывай  sunglasses