четверг, 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.

среда, 28 ноября 2012 г.

Задание № 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;


Задание №2

 

9.       Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер третьего положительного элемента массива (если из массива вычеркнуть все неположительные элементы, этот элемент стоял бы в получившемся массиве на третьем месте). Если в массиве меньше, чем три положительных элемента, вывести сообщение об этом. 
 
 
Паскаль
Естественный язык
Const N=30 ;
Var  a :  array  [1..N]  of  integer ;
        i,  j, k :  integer ;
begin
    for  i : =1  to  N  do  readln (a [i]) ;
    …
end.
Объявляем массив А из 30 элементов. Объявляем целочисленные переменные i, j, k. В цикле от 1 до 30 вводим элементы массива А с 1-го по 30-й.
…
 
   В качестве ответа необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находится на месте многоточия.

Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
const nmax=20;
var a: array [1..nmax] of integer;
    i,n,k,ii: byte;
begin
repeat
write('n (ne bolee ',nmax,')='); readln(n);
until n in [1..nmax];
for i:=1 to n do
    begin
    a[i]:=random(19)-9;
    write(a[i]:3);
    if a[i]>0 then
       begin
       inc(k);
       if k=3 then ii:=i;
       end;
    end;
writeln;
if k>=3 then writeln('Третий положительный элемент=',a[ii],', под индексом ',ii)
   else writeln('В массиве нет трех положительных элементов');
end.

Задание № 1


9) В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.
  for i:=0 to 10 do
    A[i]:=2+i;
  for i:=0 to 4 do begin
    A[i]:=A[10-i]-1;
    A[10-i]:=A[i]+3;
  end;
Чему будут равны элементы этого массива?
№ шага (i)
Массив А
Исходный массив
2,3,4,5,6,7,8,9,10,11,12
1
11,3,4,5,6,7,8,9,10,11,12
2
11,10,4,5,6,7,8,9,10,11,12
3
11,10,9,5,6,7,8,9,10,11,12
4
11,10,9,8,6,7,8,9,10,11,12
5
11,10,9,8,7,7,8,9,10,11,12
6
11,10,9,8,7,7,8,9,10,11,14
7
11,10,9,8,7,7,8,9,10,13,14
8
11,10,9,8,7,7,8,9,12,13,14
9
11,10,9,8,7,7,8,11,12,13,14
10
11,10,9,8,7,7,10,11,12,13,14

  
Ответ: 11 10 9 8 7 7 10 11 12 13 14.


Задание №2

 

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