Дан массив. Найти удвоенную сумму положительных элементов - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Дан массив целых чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти: − удвоенную сумму положительных элементов; − и вывести индексы тех элементов, значения которых больше значения предыду-щего элемента (начиная со второго). − определить, есть ли две пары соседних элементов с одинаковыми знаками. − заменить минимальный мо модулю положительный элемент нулем. − заменить элементы с k1-го по k2-й на обратные

Решение задачи: «Дан массив. Найти удвоенную сумму положительных элементов»

textual
Листинг программы
uses crt;
 var a: array[1..10] of integer;
 s_pol,i,k1,k2,min,i_min,ko: integer;
 bool: boolean;
 begin
 write('Введите k1: ');
 repeat
 read(k1);
 until k1 in [1..10];
 write('Введите k2: ');
 repeat
 read(k2);
 until k2 in [1..10];
 
 for i:=1 to 10 do begin
 write('a[',i,'] = ');
 read(a[i]);
 if a[i]>0 then min:=a[i];
 if a[i]>0 then inc(s_pol, a[i]);
 end;
 writeln('Press ENTER...');
 readln;
 clrscr;
 writeln('k1 = ',k1);
 writeln('k2 = ',k2);
 write('Исходный массив: ');
 for i:=1 to 10 do begin
 write(a[i],' ');
 end;
 writeln;
 writeln('Удвоенная сумма положительных элементов: ',2*s_pol);
 write('Индексы элементов, которые больше предыдущих: ');
 for i:=2 to 10 do begin
 if a[i]>a[i-1] then write(i,' ');
 end;
 
 writeln;
 writeln;
 ko:=0;
 for i:=2 to 10 do
     begin
     if ((a[i]>0) and (a[i-1]>0))
     or ((a[i]<0) and (a[i-1]<0))then inc(ko);
     end;
 if ko>2 then writeln('Есть две пары соседних элементов с одинаковыми знаками')
    else writeln('Нет двух пар соседних элементов с одинаковыми знаками');
 
 if min>0 then begin
 for i:=1 to 10 do begin
 if a[i]>0 then begin
 if a[i]<=min then begin
 min:=a[i];
 i_min:=i;
 end;
 end;
 end;
 writeln;
 a[i_min]:=0;
 end
 else writeln('Все элементы отрицательные!');
 for i:=k1 to k2 do begin
 a[i]:=a[i]*(-1);
 end;
 write('Измененный массив: ');
 for i:=1 to 10 do begin
 write(a[i],' ');
 end;
 end.

Объяснение кода листинга программы

  1. Создаётся переменная a типа array[1..10] of integer, что означает создание массива из 10 целых чисел.
  2. Создаются три переменные s_pol, i, k1, k2, min, i_min и ko для хранения суммы положительных элементов, текущего индекса, двух индексов, минимального значения и индекса предыдущего элемента.
  3. Запускается цикл for, который повторяется до тех пор, пока k1 и k2 не будут введены пользователем.
  4. Внутри цикла for происходит чтение значений k1 и k2 с помощью функции read().
  5. Далее начинается цикл for, который выполняется для каждого элемента массива a.
  6. Внутри этого цикла происходит чтение значения текущего элемента массива с помощью функции read().
  7. Если значение текущего элемента больше нуля, то оно сравнивается с минимальным значением, и если оно больше, то обновляется минимальное значение и индекс предыдущего элемента.
  8. Если значение текущего элемента больше нуля, то его значение увеличивается на сумму положительных элементов.
  9. После завершения внутреннего цикла for выводится сообщение с введенными значениями k1 и k2.
  10. Выводится исходный массив a.
  11. Вычисляется удвоенная сумма положительных элементов и выводится сообщение с этим значением.
  12. Выводится сообщение с индексами элементов, которые больше предыдущих.
  13. Создается переменная ko для отслеживания количества пар соседних элементов с одинаковыми знаками.
  14. Если есть две пары соседних элементов с одинаковыми знаками, то значение ko увеличивается.
  15. Если значение ko больше двух, выводится сообщение о наличии двух пар соседних элементов с одинаковыми знаками.
  16. Если минимальное значение в массиве больше нуля, то для всех элементов массива, которые больше или равны минимальному значению, обновляется значение.
  17. Для элементов массива, которые находятся между k1 и k2, значение меняется на противоположное.
  18. Выводится измененный массив a.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы