program ex_1;
Const NMax = 50; Type Mass = Array[1..NMax] Of Real;
Var X : Mass; I, N : Byte; Vsp : Real;
Begin Write('Сколько элементов в массиве? '); ReadLn(N);
For I := 1 To N Do readln(X[i]);
WriteLn; I := 1;
While I < N Do
Begin Vsp := X[i]; X[i] := X[i + 1];
X[i + 1] := Vsp; I := I + 2
End;
For I := 1 To N Do Write(X[i]:10:5); WriteLn;
End.
Program Kr_2_3;
Const NMax = 100;
Type LinMass = Array[1..NMax] Of Integer;
Var A : LinMass; N, I, M : Integer;
Begin
Write('Количество элементов массива? '); ReadLn(N);
M := -32768;
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
If A[I] > M Then M := A[I]
End;
For I := 1 To N Do A[I] := A[I] + M;
For I := 1 To N Do Write(A[I] : 6);
WriteLn
End.
Program Kr_2_3;
Const NMax = 100;
Type LinMass = Array[1..NMax] Of Integer;
Var A : LinMass; N, I, M, S : Integer;
Begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
M := A[1]; S := 1;
For I := 2 To N do
Begin
If A[I] = M Then S := Succ(S);
If A[I] > M Then Begin M := A[I]; S := 1 End
End;
WriteLn('Ответ: ', S);
End.
Program Ex_4;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, S, K : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
s:=0; k:=0;
For I := 1 To N do
if a[i] mod 2 = 0 then begin s:=s+a[i]; k:=k+1 end;
writeln('Сумма ', s, '; количество ', k)
end.
Program Ex_5;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, p, K : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
p:=1; k:=0;
while (i<=n) and (k<3) do
begin
if a[i] > 0 then begin p:=p*a[i]; k:=k+1 end;
i:=i+1;
end;
writeln('Произведение ', p)
end.
Program Ex_6;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, p, K : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
p:=1; k:=0;
For I := 1 To N Do
if a[i] > 0 then begin p:=p*a[i]; k:=k+1 end;
if k=0 then writeln('Положительных элементов нет')
else writeln('Среднее геометрическое ', exp(1/k*ln(p)):7:2)
end.
Program Ex_7;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i : Integer;
R : Boolean;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
R := false; i:=1;
while (i<=n) and not R do
begin
if a[i] = 0 then R:= true;
i:=i+1;
end;
if R then writeln('Нуль есть в массиве') else writeln('Нуля нет в массиве')
end.
Program Ex_8;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i : Integer;
R : Boolean;
begin
Write('Количество элементов массива (не менее 5)? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
R := false;
For I := 1 To 5 Do
if a[i] mod 2 = 1 then R:= true;
if R then writeln('среди первых пяти элементов есть нечетный')
else writeln('Среди первых пяти элементов нет нечетного')
end.
Program Ex_9;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i : Integer;
R : Boolean;
begin
Write('Количество элементов массива (не менее 5)? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
R := false;
For I := n DownTo n-4 Do
if a[i] mod 2 = 0 then R:= true;
if R then writeln('среди последних пяти элементов есть четный') else writeln('Среди последних пяти элементов нет четного')
end.
Program Ex_10;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i : Integer;
R : Boolean;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
R := false; i:=1;
while (i<=n) and not R do
begin
if a[i] = 0 then R:= true;
i:=i+2;
end;
if R then writeln('Среди элементов с нечетными номерами есть нуль')
else writeln('Среди элементов с нечетными номерами нет нуля')
end.
Program Ex_11;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i : Integer;
R : Boolean;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
R := false; i:=1;
while (i<=n-1) and not R do
begin
if a[i] = a[i+1] then R:= true;
i:=i+1;
end;
if R then writeln('Среди элементов есть пара равных соседних')
else writeln('Среди элементов нет пары равных соседних')
end.
Program Ex_12;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, min, K : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
min:=a[1]; k:=1;
For I := 2 To N Do
begin
if min > a[i] then begin min :=a[i]; k:=1 end
else if min=a[i] then k:=k+1;
end;
writeln('Ответ: ', k)
end.
Program Ex_13;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, s, s1 : Integer;
begin
Write('Количество элементов массива (четное число)? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
s:= 0; s1:=0;
For I := 1 To N div 2 Do
begin
s:=s+a[i]; s1:=s1+a[n-i+1]
end;
writeln('Ответ: ', s-s1)
end.
Program Ex_14;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, max : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
max:=1;
For I := 2 To N Do
if a[i]>a[max] then max:=i;
For I := max+1 To N Do a[i]:=0;
For I := 1 To N Do
write(a[i]:6);
end.
Program Ex_15;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, max, min, vsp : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
max:=1; min:=1;
For I := 2 To N Do
begin
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
vsp:=a[min]; a[min]:=a[max]; a[max]:=vsp;
For I := 1 To N Do
write(a[i]:6);
end.
Program Ex_16;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i : Integer;
t : Boolean;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
t := true; i:=1;
while (i<=n) and t do
begin
if a[i] = 0 then t:= false;
i:=i+1;
end;
writeln(t)
end.
Program Ex_17;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, b : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
write('Введите число: '); readln(b);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
i:=1;
while (i<=n) and (a[i]<>b) do
begin
i:=i+1;
end;
if i>n then writeln('Числа нет в массиве') else writeln(i)
end.
Program Ex_18;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, s : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
s:= 0;
For I := 1 To N Do
if a[i]=i then s:=s+a[i];
writeln('Ответ: ', s)
end.
Program Ex_19;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, max, K : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
max:=a[1]; k:=1;
For I := 2 To N Do
begin
if max < a[i] then begin max :=a[i]; k:=1 end
else if max=a[i] then k:=k+1;
end;
writeln('Ответ: ', k)
end.
Program Ex_20;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, max, min : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
max:=1; min:=1;
For I := 2 To N Do
begin
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
writeln('Ответ ', a[max]-a[min])
end.
Program Ex_21;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, max, min : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
max:=1; min:=1;
For I := 2 To N Do
begin
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
writeln('Ответ ', a[max]+a[min])
end.
Program Ex_22;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, max, min : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
max:=1; min:=1;
For I := 2 To N Do
begin
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
writeln('Ответ ', a[max]*a[min])
end.
Program Ex_23;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, max, min : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
max:=1; min:=1;
For I := 2 To N Do
begin
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
writeln('Ответ ', (a[max]+a[min])/2 :7:2)
end.
Program Ex_24;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, s : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
s:= 0;
For I := 1 To N Do
begin
s:=s+a[i]
end;
writeln('Ответ: ', s/n :7:2)
end.
Program Ex_25;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i : Integer;
R : Boolean;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
R:= true; i:=1;
while (i<=n-1) and R do
begin
R:= a[i]<=a[i+1];
i:=i+1
end;
if R then writeln('Массив отсортирован') else writeln('Массив не отсортирован')
end.
Program Ex_26;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, s, a, b : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
writeln('введите границы отрезка [A; B], здесь A<B ');
readln(a, b);
s:= 0;
For I := 1 To N Do
if (M[i]>=A) and (M[i]<=B) then s:=s+1;
writeln('Ответ: ', s)
end.
Program Ex_27;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 0; p:=0;
For I := 1 To N Do
begin
if M[i]>0 then p:=p+1;
if M[i]<0 then o:=o+1;
end;
if o=p then writeln('Отрицательных и положительных поровну')
else if o>p then writeln('Отрицательных больше')
else writeln('Положительных больше')
end.
Program Ex_28;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 0; p:=0;
For I := 1 To N Do
begin
if M[i]>0 then p:=p+M[i];
if M[i]<0 then o:=o+M[i];
end;
if abs(o)=abs(p) then writeln('Модули сумм равны')
else if abs(o)>abs(p)
then writeln('Модуль суммы отрицательных элементов больше')
else writeln('Модуль суммы положительных элементов больше')
end.
Program Ex_29;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 1; p:=1;
For I := 1 To N Do
begin
if M[i]>0 then p:=p*M[i];
if M[i]<0 then o:=o*M[i];
end;
if o=p then writeln('Произведения равны')
else if o>p
then writeln('Произведение отрицательных элементов больше')
else writeln('Произведение положительных элементов больше')
end.
Program Ex_30;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 1; p:=0;
For I := 1 To N Do
begin
if M[i]>0 then p:=p+M[i];
if M[i]<0 then o:=o*M[i];
end;
if o=p then writeln('Произведение отрицательных и сумма положительных равны')
else if o>p
then writeln('Произведение отрицательных элементов больше суммы положительных')
else writeln('Сумма положительных элементов больше произведения отрицательных')
end.
Program Ex_31;
Type LinMass = Array[1..100] Of Integer;
Var A : LinMass; N, i, S, K : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] '); ReadLn(A[I]);
End;
s:=0; k:=0;
For I := 1 To N do
if a[i] mod 2 <> 0 then begin s:=s+a[i]; k:=k+1 end;
writeln('Сумма ', s, '; количество ', k)
end.
Program Ex_32;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 1; p:=0;
For I := 1 To N Do
begin
if M[i]>0 then p:=p+M[i];
if M[i]<0 then o:=o*M[i];
end;
writeln(10*p+o)
end.
Program Ex_33;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 1; p:=0;
For I := 1 To N Do
begin
if M[i]>0 then p:=p+M[i];
if M[i]<0 then o:=o*M[i];
end;
writeln(10*o+p)
end.
Program Ex_34;
Type LinMass = Array[1..100] Of Integer;
Var a : LinMass; i, L, R, c: byte; x: integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
writeln('Вводите элементы массива, расположенные по возрастанию значений');
writeln('например, -22, -13, 0, 5, 10, 77');
For I := 1 To N Do
Begin
Write('Введите a[', I, '] '); ReadLn(a[I]);
End;
writeln('Введите искомое число x: '); readln(x);
L := 1; R := n;
repeat
c := (L + R) div 2;
if a[c] < x then L := c + 1;
if a[c] > x then R := c - 1;
until (a[c]=x) or (L > R);
if L>R then writeln('не найден') else writeln('имеет номер ', c)
end.
Program Ex_35;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 1; p:=0;
For I := 1 To N Do
begin
if M[i]>0 then p:=p+M[i];
if M[i]<0 then o:=o*M[i];
end;
writeln(o<p)
end.
Program Ex_36;
Type LinMass = Array[1..100] Of Integer;
Var M : LinMass; N, i, o, p : Integer;
begin
Write('Количество элементов массива? '); ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите M[', I, '] '); ReadLn(M[I]);
End;
o:= 1; p:=0;
For I := 1 To N Do
begin
if M[i]>0 then p:=p+M[i];
if M[i]<0 then o:=o*M[i];
end;
writeln(o>p)
end.
© А.П. Шестаков, 2008-2009