понедельник, 20 декабря 2010 г.

Разбор КДР. Задание С1


Тема в кодификаторе: Языки программирования

Тема в аннотации к КДР: Программирование (с развернутым ответом – С).


Вариант 1.
Задан массив, содержащий 25 целых чисел. Опишите на русском языке или на
одном из языков программирования алгоритм вычисления суммы положительных
элементов, предшествующих максимальному элементу массива.
Решение:
Задача содержит следующие подзадачи:
  1.        Ввод массива с клавиатуры;
  2.        Поиск максимального в массиве и его номера;
  3.        Нахождение суммы элементов, предшествующих максимальному.
const  N=25;   {размерность массива}
var   MAX, I, K, S : integer;  {описание переменных}
         A: array [1..N] of integer;{описание массива}
begin
    for i:=1 to N do begin{организуем цикл для ввода элементов массива с клавиатуры}
    writeln (‘A[‘,i,’=]’); {вывод на экран пояснения на ввод}
    readln(A[i]); {ввод с клавиатуры}
    end;
    MAX:=A[1]; { присваиваем MAX первый элемент массива}
    K:=1; {номеру максимального присваиваем 1}
    for i:=2 to N do {организуем цикл для поиска максимального, начиная со второго номера}
    if A[i]>MAX then begin MAX:=A[i]; k:=i; end; {если очередной элемент массива больше MAX, то MAX=A[i] и запоминаем его номер в переменной K}
   S:=0;{в этой переменной будет хранится сумма }
   for i:=1 to k-1 do  S:=S+A[i];{организуем цикл для подсчета суммы элементов, предшествующих K}
   writeln(S);{вывод на экран суммы }
end.


Вариант 2.
Задан массив, содержащий 25 целых чисел. Опишите на русском языке или на
одном из языков программирования алгоритм вычисления суммы отрицательных
элементов, предшествующих минимальному элементу.
Решение:
Задача содержит следующие подзадачи:
  1.        Ввод массива с клавиатуры;
  2.        Поиск минимального в массиве и его номера;
  3.        Нахождение суммы отрицательных элементов, предшествующих минимальному.
const  N=25;   {размерность массива}
 var   MIN, I, K, S : integer;  {описание переменных}
         A: array [1..N] of integer;{описание массива}
begin
   for i:=1 to N do begin{организуем цикл для ввода элементов массива с клавиатуры}
   writeln (‘A[‘,i,’=]’); {вывод на экран пояснения на ввод}
   readln(A[i]); {ввод с клавиатуры}
   end;
   MIN:=A[1]; { присваиваем MIN первый элемент массива}
   K:=1; {номеру минимального присваиваем 1}
   for i:=2 to N do {организуем цикл для поиска минимального, начиная со второго номера}
   if A[i]<MIN then begin MIN:=A[i]; k:=i; end; {если очередной элемент массива меньше MIN, то MIN=A[i] и запоминаем его номер в переменной K}
   S:=0;{в этой переменной будет хранится сумма }
   for i:=1 to k-1 do  
   if A[i]<0 then S:=S+A[i];{организуем цикл для подсчета суммы  отрицательных  элементов, предшествующих K}
   writeln(S);{вывод на экран суммы }
end.


Вариант 3.
Задан массив, содержащий 25 целых чисел. Опишите на русском языке или на
одном из языков программирования алгоритм вычисления произведения
положительных элементов, расположенных после максимального элемента массива.
Решение:
Задача содержит следующие подзадачи:
  1.        Ввод массива с клавиатуры;
  2.        Поиск максимального в массиве и его номера;
  3.        Нахождение произведения положительных элементов, расположенных после максимального
const  N=25;   {размерность массива}
var   MAX, I, K, P : integer;  {описание переменных}
         A: array [1..N] of integer;{описание массива}
begin
     for i:=1 to N do begin{организуем цикл для ввода элементов массива с клавиатуры}
     writeln (‘A[‘,i,’=]’); {вывод на экран пояснения на ввод}
     readln(A[i]); {ввод с клавиатуры}
     end;
     MAX:=A[1]; { присваиваем MAX первый элемент массива}
     K:=1; {номеру максимального присваиваем 1}
     for i:=2 to N do {организуем цикл для поиска максимального, начиная со второго номера}
     if A[i]>MAX then begin MAX:=A[i]; k:=i;  end; {если очередной элемент массива больше MAX, то MAX=A[i] и запоминаем его номер в переменной K}
     P:=1;{в этой переменной будет хранится произведение }
     for i:=k+1 to N do  {организуем цикл для подсчета произведения  положительных  элементов, расположенных после максимального}
    if A[i]>0 then P:=P*A[i];
    writeln(P);{вывод на экран произведения }
end.

 
Вариант 4
 Задан массив, содержащий 25 целых чисел. Опишите на русском языке или на
одном из языков программирования алгоритм вычисления произведения
отрицательных элементов, расположенных после минимального элемента.

Решение:
Задача содержит следующие подзадачи:
  1. Ввод массива с клавиатуры;
  2. Поиск минимального в массиве и его номера;
  3. Нахождение произведения отрицательных элементов, расположенных после минимального элемента.
const  N=25;   {размерность массива}
var   MIN, I, K, P : integer;  {описание переменных}
         A: array [1..N] of integer;{описание массива}
begin
    for i:=1 to N do begin{организуем цикл для ввода элементов массива с клавиатуры}
    writeln (‘A[‘,i,’=]’); {вывод на экран пояснения на ввод}
    readln(A[i]); {ввод с клавиатуры}
    end;
    MIN:=A[1]; { присваиваем MIN первый элемент массива}
    K:=1; {номеру минимального присваиваем 1}
    for i:=2 to N do {организуем цикл для поиска минимального, начиная со второго номера}
    if A[i]<MIN then begin MIN:=A[i]; k:=i;  end; {если очередной элемент массива меньше MIN, то MIN=A[i] и запоминаем его номер в переменной K}
    P:=1;{в этой переменной будет хранится сумма }
    for i:=k+1 to N do  
    if A[i]<0 then P:=P*A[i];{организуем цикл для подсчета суммы  отрицательных  элементов,  расположенных после минимального}
    writeln(P);{вывод на экран произведения }
end.

Комментариев нет:

Related Posts Plugin for WordPress, Blogger...