четверг, 29 ноября 2012 г.

1. Составьте программу для подсчета числа элементов, равных максимальному, в числовом массиве из 30 элементов.
 
Program zadacha;
Var a:array [1..n] of integer;

for i:=1 to 30 do begin
readln(a[i]);
end;

k := 0;
max:=a[1];

for i:=2 to 30 do
if a[i]>max then max:=a[i];

for i:=1 to 30 do
if a[i]=max then k := k + 1;

write('maximalniy element - ',max);
writeln;
write('a ikh kol-vo - ',k);

end.

2.       Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 0 до 100 ­– баллы, полученные на ЕГЭ. Опишите на русском языке или на одном из языков программирования алгоритм, который подсчитывает и выводит средний балл учащихся, сдавших экзамен (получивших оценку более 20 баллов). Гаранти руется, что хотя бы один ученик в классе успешно сдал экзамен.

     
       const N = 30;
      var A: array[1..N] of integer;
      i, x, y: integer;
      s: real;
     begin
      for i:=1 to N do readln(A[i]);
x := 0; y := 0; 
 for i:=1 to N do
   if A[i] > 20 then begin
     x := x + 1;
     y := y + A[i];
   end;
 s := y / x;
 writeln('Средний балл ', s:10:3);
end.




2)      В программе описан одномерный целочисленный массив A с индексами от 1 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.
  for i:=1 to 10 do
    A[i]:=5*i;
 for i:=1 to 10 do begin
    k:=A[i]-2;
    A[10-i+1]:=k;
  end;

Решение:
№ шага (i)
Массив А
Исходный массив
5,10,15,20,25,30,35,40,45,50
1
5,10,15,20,25,30,35,40,45,3
2
5,10,15,20,25,30,35,40,8,3
3
5,10,15,20,25,30,35,13,8,3
4
5,10,15,20,25,30,18,13,8,3
5
5,10,15,20,25,23,18,13,8,3
6
5,10,15,20,28,23,18,13,8,3
7
5,10,15,33,28,23,18,13,8,3
8
5,10,38,33,28,23,18,13,8,3
9
5,43,38,33,28,23,18,13,8,3
10
48,43,38,33,28,23,18,13,8,3
Ответ:48,43,38,33,28,23,18,13,8,3
Задание № 2:

1. Составьте программу для подсчета числа элементов, равных максимальному, в числовом массиве из 30 элементов.
 
Program zadacha;
const n =30;
var a: array[1..n] of integer;
i, k, kmax: integer;
begin
for i:=1 to n do
begin
writeln('введите',i,'элемент');
readln(a[i]);
end;
k := 1;
kmax := 1;
for i:=2 to n do begin
if a[i] = a[i-1] then
k := k + 1
else k := 1;
if k > kMax then kMax := k;
end;
writeIn(kMax);
end.