Program pr9; type mas = array[-10..10] of integer; const n = 5; var s, i:integer; a:mas; begin randomize; writeln('Номера четных отрицательных элементов:'); s := 0; for i := 1 to n do begin a[i] := random(1000) - 500;{Числа рандомизируются от -500 до 500} end; for i:=1 to n do begin write(a[i], ' '); end; for i:=1 to n do begin if (a[i] < 0) and (a[i] mod 2 = 0) then begin write(i, ' '); s := s + a[i]; end; end; writeln; writeln('Их сумма = ', s); end.
Поскольку в условии не сказано, включать ли в множество повторяющиеся символы, принято решение для простоты их включать.
const nn = 100;{максимальная мощность множества}
var m: array[1..nn] of char; i, n, n1: integer; s1, s2: string; alpha, digit: set of char;
begin alpha := ['А'..'я']; digit := ['0'..'9']; n := 0; Writeln('Введите строку символов первого множества'); Readln(s1); Writeln('Введите строку символов второго множества'); Readln(s2); for i := 1 to Length(s1) do if (s1[i] in alpha) then begin n := n + 1; m[n] := s1[i] end; for i := 1 to Length(s2) do if (s2[i] in digit) then begin n := n + 1; m[n] := s2[i] end; Writeln('Результирующее множество'); for i := 1 to n do Write(m[i]:2) end.
Тестовое решение: Введите строку символов первого множества -This 1*2 П*ро=изvolnый наbop сим;волob** Введите строку символов второго множества Отсюда 1-(4)=5 только цифры 33.634 berem Результирующее множество П р о и з ы й н а с и м в о л 1 4 5 3 3 6 3 4
type mas = array[-10..10] of integer;
const n = 5;
var s, i:integer;
a:mas;
begin
randomize;
writeln('Номера четных отрицательных элементов:');
s := 0;
for i := 1 to n do
begin
a[i] := random(1000) - 500;{Числа рандомизируются от -500 до 500}
end;
for i:=1 to n do
begin
write(a[i], ' ');
end;
for i:=1 to n do
begin
if (a[i] < 0) and (a[i] mod 2 = 0)
then
begin
write(i, ' ');
s := s + a[i];
end;
end;
writeln;
writeln('Их сумма = ', s);
end.
const
nn = 100;{максимальная мощность множества}
var
m: array[1..nn] of char;
i, n, n1: integer;
s1, s2: string;
alpha, digit: set of char;
begin
alpha := ['А'..'я'];
digit := ['0'..'9'];
n := 0;
Writeln('Введите строку символов первого множества');
Readln(s1);
Writeln('Введите строку символов второго множества');
Readln(s2);
for i := 1 to Length(s1) do
if (s1[i] in alpha) then begin n := n + 1; m[n] := s1[i] end;
for i := 1 to Length(s2) do
if (s2[i] in digit) then begin n := n + 1; m[n] := s2[i] end;
Writeln('Результирующее множество');
for i := 1 to n do Write(m[i]:2)
end.
Тестовое решение:
Введите строку символов первого множества
-This 1*2 П*ро=изvolnый наbop сим;волob**
Введите строку символов второго множества
Отсюда 1-(4)=5 только цифры 33.634 berem
Результирующее множество
П р о и з ы й н а с и м в о л 1 4 5 3 3 6 3 4