Предмет: Информатика,
автор: nikskyone
PascalABCNET
Указание: для каждой задачи создайте алгоритм и программу. Заполните одномерный числовой массив D(15) случайными целыми числами в интервале [-20; 18]. Выведите значения элементов массива сначала в столбик, а затем в строку, причем на каждый элемент отведите 4 позиции. Ответ каждой задачи следует выводить с новой строки и с пояснительным текстом. Кроме того, следует каждый раз производить пвывод массива на экран, если в нем произошли изменения: перестановка, замена, изменение значения элементов и т.д.
Задание 1. Найдите отдельное количество отрицательных и положительных элементов массива.
Задание 2. Найдите произведение элементов, имеющих значение меньше -2 (минус два).
Задание 3. Найдите максимальный элемент массива из элементов, стоящих на местах, номера которых кратны пяти.
Задание 4. Замените отрицательные элементы, стоящие на нечётных местах на последний элемент массива.
Задание 5. Если в массиве имеются нулевые элементы, то найдите сумму элементов массива, имеющих значение, кратное трем, иначе выведите на экран положительные элементы массива.
Задание 6*. Найдите в массиве элементы, кратные 12, и вывести на экран их номера. Если таких элементов нет, то выведите сообщение об этом на экран.
Задание 7*. Выведите на экран одномерный массив, раскрасив в нем красным цветом кратные 12 элементы.
Аноним:
А в каком программном средстве это делать, чтобы что-то красным цветом раскрашивать?
Ответы
Автор ответа:
2
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')
end
end.
Тестовое решение:
Исходный массив в столбик:
-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;
Writeln
end.
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')
end
end.
Тестовое решение:
Исходный массив в столбик:
-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;
Writeln
end.
Похожие вопросы
Предмет: Английский язык,
автор: olegpetrenko04олег
Предмет: Русский язык,
автор: samira90956021
Предмет: Русский язык,
автор: natalyasem2016
Предмет: Математика,
автор: Lera0Mur
Предмет: Математика,
автор: polkaleg