Задания по теме "Массивы"

  1. 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.
    
  2. 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.
    
  3. 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.
    
  4. 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.
    
  5. 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.
    
  6. 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.
    
  7. 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.
    
  8. 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.
    
  9. 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.
    
  10. 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.
    
  11. 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.
    
  12. 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.
    
  13. 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.
    
  14. 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.
    
  15. 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.
    
  16. 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.
    
  17. 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.
    
  18. 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.
    
  19. 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.
    
  20. 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.
    
  21. 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.
    
  22. 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.
    
  23. 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.
    
  24. 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.
    
  25. 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.
    
  26. 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.
    
  27. 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.
    
  28. 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.
    
  29. 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.
    
  30. 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.
    
  31. 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.
    
  32. 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.
    
  33. 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.
    
  34. 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.
    
  35. 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.
    
  36. 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.
    

 


Рейтинг ресурсов УралWeb

 

© А.П. Шестаков, 2008-2009
Сайт создан в системе uCoz