const n=15;var d:array[1..n] of integer; i:integer;begin //Инициализация и вывод Randomize; Writeln('Исходный массив в столбик:'); for i:=1 to n do begin d[i]:=Random(-20,18); Writeln(d[i]:4) end; Writeln('Исходный массив в строку:'); for i:=1 to n do Write(d[i]:4); Writeln; { Задание 1. Найдите отдельное количество отрицательных и положительных элементов массива. } begin var ineg,ipos:integer; ineg:=0; ipos:=0; for i:=1 to n do if d[i]>0 then Inc(ipos) else if d[i]<0 then Inc(ineg); Writeln('Задание 1'); Writeln('Количество отрицательных элементов ',ineg, ', положительных- ',ipos) end; { Задание 2. Найдите произведение элементов, имеющих значение меньше -2 } begin var p:integer:=1; for i:=1 to n do if d[i]<-2 then p*=d[i]; Writeln('Задание 2'); Writeln('Произведение элементов, меньших -2: ',p) end; { Задание 3. Найдите максимальный элемент массива из элементов, стоящих на местах, номера которых кратны пяти. } begin var dmax:integer; i:=10; dmax:=d[5]; while i<=n do begin if dmax<d[i] then dmax:=d[i]; i+=5 end; Writeln('Задание 3'); Writeln('Максимальный элемент массива из элементов,'); Writeln('стоящих на местах с номером, кратным 5: ',dmax) end; { Задание 4. Замените отрицательные элементы, стоящие на нечётных местах на последний элемент массива } i:=1; while i<=n do begin if d[i]<0 then d[i]:=d[n]; i+=2 end; Writeln('Задание 4'); Writeln('Отрицательные элементы, стоящие на нечётных местах,'); Writeln('заменены последним элементом массива:'); for i:=1 to n do Write(d[i]:4); Writeln; { Задание 5. Если в массиве имеются нулевые элементы, то найдите сумму элементов массива, имеющих значение, кратное трем, иначе выведите на экран положительные элементы массива } begin var sum:integer:=0; var FlagSum:boolean:=False; for i:=1 to n do begin Flagsum:=(d[i]=0); if FlagSum then break end; Writeln('Задание 5'); if FlagSum then begin for i:=1 to n do if (d[i] mod 3)=0 then sum+=d[i]; Writeln('Сумма элементов, имеющих значение, кратное трем: ',sum) end else begin Writeln('Положительные элементы массива:'); for i:=1 to n do if d[i]>0 then Write(d[i]:4); Writeln end end; { Задание 6*. Найти в массиве элементы, кратные 12, и вывести на экран их номера. Если таких элементов нет, то вывести сообщение об этом на экран. } Writeln('Задание 6*'); begin var k:integer:=0; var p:array[1..n] of integer; for i:=1 to n do if (d[i] mod 12)=0 then begin Inc(k); p[k]:=i end; if k>0 then begin Writeln('Номера элементов массива, кратных 12:'); for i:=1 to k do Write(p[i]:3); Writeln end else Writeln('В массиве нет элементов, кратных 12') endend.
Тестовое решение:Исходный массив в столбик: -12 -5 -2 15 -20 13 -4 -2 12 17 12 14 2 3 -20Исходный массив в строку: -12 -5 -2 15 -20 13 -4 -2 12 17 12 14 2 3 -20Задание 1Количество отрицательных элементов 7, положительных- 8Задание 2Произведение элементов, меньших -2: -96000Задание 3Максимальный элемент массива из элементов,стоящих на местах с номером, кратным 5: 17Задание 4Отрицательные элементы, стоящие на нечётных местах,заменены последним элементом массива: -20 -5 -20 15 -20 13 -20 -2 12 17 12 14 2 3 -20Задание 5Положительные элементы массива: 15 13 12 17 12 14 2 3Задание 6*Номера элементов массива, кратных 12: 9 11
Задание 7*. Выведите на экран одномерный массив,раскрасив в нем красным цветом кратные 12 элементы.uses GraphABC;const n=15;var d:array[1..n] of integer; i:integer;begin SetWindowSize(800,600); Randomize; for i:=1 to n do begin d[i]:=Random(-20,18); if (d[i] mod 12)=0 then begin SetFontColor(clRed); Write(d[i]:4); SetFontColor(clBlack) end else Write(d[i]:4) end; Writelnend.