1) Первое задание
Program Test;
const size = 18;
Var a: array[1..size] of integer; i, k: integer;
Begin
Randomize;
i := 1;
k := 0;
while i <= size do
begin
a[i] := Random(0, 29);
i := i + 1;
end;
i := 1;
while i <= size do
begin
if (a[i] > 15) then
k := k + 1;
i := i + 1;
end;
i := 1;
while i <= size do
begin
Writeln(i, ') ', a[i]);
i := i + 1;
end;
Writeln();
Writeln('k = ', k);
End.
2) 2 задание
Program Test;
const size = 18;
Var a: array[1..size] of integer; i, s: integer;
Begin
Randomize;
i := 1;
s := 0;
while i <= size do
begin
a[i] := Random(0, 29);
i := i + 1;
end;
i := 1;
while i <= size do
begin
if (a[i] mod 2 = 0) then
s := s + a[i];
i := i + 1;
end;
i := 1;
while i <= size do
begin
Writeln(i, ') ', a[i]);
i := i + 1;
end;
Writeln();
Writeln('s = ', s);
End.
P.S. На фотографии не видно часть второго задания. Скорее всего там написано, что нужно посчитать сумму элементов массива с четным значением. Такую программу я и писал.
Вот, держи, извини за качество
Var
x,y,z:array [1..10] of integer;
i,n:integer;
begin
writeln('введите n');
readln(n);
writeln('введите массив x');
for i:=1 to n do
readln(x[i]);
writeln('введите массив y');
for i:=1 to n do
readln(y[i]);
for i:=1 to n do
z[i]:=x[i]*y[i];
writeln('Массив x: ');
for i:=1 to n do
write(x[i],' ');
writeln;
writeln('Массив y: ');
for i:=1 to n do
write(y[i],' ');
writeln;
writeln('Массив z: ');
for i:=1 to n do
write(z[i],' ');
writeln;
end.
<em>// PascalABC.NET 3.3, сборка 1634 от 14.02.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
function CalcWord(Stroka: string):integer;
begin
Result:=Stroka.ToWords.Where(w->w=w.Inverse).Count
end;
begin
var s:='казак пошел в кабак и сделал заказ';
Writeln('Слов-палиндромов: ',CalcWord(s))
end.
<u>Результат</u>
Слов-палиндромов: 5
<u>Если однобуквенные слова не учитываются</u>, надо изменить Where:
Where(w->(w=w.Inverse) and (w.Length>1))