пятница, 30 ноября 2012 г.

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


program bodi;
uses crt;
const n=30;
var a:array {1..n} of integer;
I,m,j,q,w:integer;
begin
clrscr();
randomize();
for i:=1 to n do begin
a{i}:=random(60)+1;
write(‘a{‘,I,’}= ‘,a{i},’ ‘);
end;
q:=0;
w:=0;
m:=ads(a{1}-a{2});
for i:=1 to n do
for j:i+1 to n do
if (m(ads(a{i})) then
begin
m:ads(a{i}-a{j});
q:=1;
w:=j;
end;
writeln(‘raznicha = ‘,m,’mezdu a{‘ ,q,’}= ‘,a{q},’ I a{‘,w,’}= ‘,a{w})
end.
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от  –1000 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит среднее арифметическое всех элементов массива, оканчивающихся цифрой 5. Гарантируется, что хотя бы один такое элемент в массиве есть.

Program m99;
Const N=30
Var A: array [1..30] of integer;
I, x, y, min, max: integer;
S: real;
Begin
Min:= 1000;
Max:= -1000;
For I:= 1 to 30 do
Readln (A[I]);
If A[I] mod 5=0 then
                          Begin
                          x:=x+1;
                          y:=y+A[I];
                          End;
S:= y/x;
Writeln(S);
End.
Задание номер 5.2
for i:=0 to 10 do 
A[i]:=3*i;
for i:=1 to 10 do
A[i]:=A[i] mod 3; 
Все элементы будут равны 0.
(задается массив A[i]:=3*i от 0 до 10, 
потом меняется на A[i]:=A[i] mod 3 = 0. 
X mod a - остаток от деления числа X на а, все ячейки кратны 3, то остатка  не буде => ячейки будут равны нулю. 
)
Задание 5.1
Program Lika
Var A: array [1..30] of integer;
I,j,min: integer;
Begin
For i:= 1 to 30 do
Readln (a[i])
Min:=100
For:=1 to 30 do
Begin
If(a[i]>=20)and (a[i]<min)
Min:=a[i];
End.
Writeln(min);
End.
1)В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже
представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.
for i:=0 to 10 do
A[i]:=10-i;
for i:=0 to 5 do begin
A[10-i]:=A[5-i];
A[5+i]:=A[i];
end;
Чему будут равны элементы этого массива?

1)      1 3 5 7 9 10 8 6 4 2 0
2) 1 3 5 7 9 11 13 15 17 19 21
3) 1 3 5 7 9 11 9 7 5 3 1
4) 1 3 5 7 9 11 8 6 4 2 0
Ответ: 1
2)      Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит сумму наибольшей по длине возрастающей последовательности подряд идущих элементов. Если таких последовательностей несколько, можно вывести любую из них..
ПАСКАЛЬ:
const N=30
var
a: array [1..N] of integer;           
i, l, lmax, s, smax:
integer;
begin
for i : = 1 to N do
readln(a[i]);
...
end.

Естественный язык : Объявляем массив А из 40 элементов.
Объявляем целочисленные переменные I, L, Lmax, S, Smax.
В цикле от 1 до 40 вводим элементы массива А с 1-го по 40-й.
...

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