ЕГЭ 2017-2018

ДЗ на 27.12.17


12 мая 2016 года  Вариант ИН10501

Вариант 1.

  1. Дано целое неотрицательное число N. Необходимо вывести два ближайших к нему точных квадрата в порядке возрастания. Например, для N = 2016 нужно вывести числа 1936 и 2025 (1936 = 442, 2025 = 452), а для N = 9 нужно вывести числа 4 и 9. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Python

n = int(input())

k = 1 while k*k <= n:    

k = k + 1

print(k-1,k)

Паскаль

var n, k: integer;

begin  

read(n);  

k := 1;  

while k*k <= n do    

k := k + 1;  

writeln(k-1, " ", k) end.

 

Последовательно выполните следующее.

  1. Напишите, что выведет эта программа при вводе N = 2016.

  2. Назовите значение N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

  3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

 

 18 марта 2016 года  Вариант ИН10401

Вариант 

Дано целое положительное число N. Необходимо определить максимальное значение степени числа 2, на которое N делится без остатка. Например, для N = 2016 нужно получить результат 32, а для N = 2017 – результат 1. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.  Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Python

n = int(input())

k = 0

while n%2 == 0:    

n = n//2    

k = k + 2

print(k)

Паскаль

var n, k: integer;

begin  

read(n);  

k := 0;  

while n mod 2 = 0 do

begin    

n := n div 2;    

k := k + 2;  

end;  

writeln(k) end.

 

Последовательно выполните следующее.

  1. Напишите, что выведет эта программа при вводе N = 2016.

  2. Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

  3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

28 января 2016 года  Вариант ИН10301

Вариант 1

Даны целые положительные числа M и N . Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K3 ≤ N.

Python

m = int(input())

n = int(input())

k = 1 t = 1

while k*k*k <= n:   

 if k*k*k > m:        

t = t+1    

k = k + 1

print(t)

Паскаль

var m, n, k, t: integer;

begin  

read(m, n);  

k := 1;   t := 1;  

while k*k*k <= n do

begin    

  if k*k*k > m  then

      t := t + 1;    

      k := k + 1;  

end;  

writeln(t)

end.

 

Последовательно выполните следующее.

  1. Напишите, что выведет эта программа при вводе M = 10 и N = 100.

  2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

  3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

 

 


ДЗ на 22.11.17


ПЗ-1:

Дан набор из NN целых чисел. Необходимо определить количество элементов, имеющих значение, равное по модулю максимальному элементу из этого набора.


ПЗ-2:

Дан массив 𝐴, содержащий 2018 целых чисел. Необходимо определить количество элементов этого массива, для которых истинно логическое выражение

(𝐴[𝑖] ̸= 10) → (3 · 𝐴[𝑖] ≥ 9).

Например, в массиве из 4-х элементов, равных соот- ветственно 3; –2; 10; 0, имеется два числа — 3 и 10, для которых вышеуказанное логическое выражение истинно.

Исходные данные объявлены так, как показано ниже. Запрещается использовать не описанные переменные, но допускается не использовать некоторые из них.

const N = 2018;

var a : array [0..N - 1] of integer;

i, m : integer;

begin

     for i := 0 to N - 1 do

          readln(a[i]);

          ...

end.



ДЗ на 1.11.12


    • (43)Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от –100 до 100 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, произведение которых положительно, а сумма кратна 7. Под парой подразумевается два подряд идущих элемента массива.

    const

    N=40;

    var a: array [1..N] of integer;

        i, j, k: longint;

    begin

      for i:=1 to N do

        readln(a[i]);

    …

    end.

    • (45) Дан массив, содержащий неотрицательные целые числа. Необходимо вывести:

    – максимальный чётный элемент, если количество чётных элементов не меньше, чем нечётных;

    – максимальный нечётный элемент, если количество нечётных элементов больше, чем чётных.

    Например, для массива из шести элементов, равных соответственно 4, 6, 12, 17, 3, 8, ответом будет 12 – наибольшее чётное число, поскольку чётных чисел в этом массиве больше.

    const N=2000;

    var a: array [1..N] of integer;

        i, j, k, m: longint;

    begin

      for i:=1 to N do

        readln(a[i]);

    …

    end.

    • (47) Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых оба числа делятся на 3. В данной задаче под парой подразумевается два подряд идущих элемента массива. Например, для массива из пяти элементов: 6; 2; 9; –3; 6 – ответ: 2.

    const

    N = 20;

    var

    a: array [1..N] of integer;

    i, j, k: integer;

    begin

      for i := 1 to N do

        readln(a[i]);

      ...

    end.

     

    • (48) Дан целочисленный массив из 2000 элементов. Если сумма всех элементов массива чётная, нужно вывести количество нечётных (по значению) элементов массива, если нечётная – количество чётных. Например, для массива из 6 элементов, равных соответственно 2, 6, 12, 17, 3, 8, ответом будет 2 – количество нечётных элементов, так как общая сумма всех элементов чётна.

    const

    N = 2000;

    var

    a: array [1..N] of integer;

    i, k: integer;

    begin

      for i := 1 to N do

        readln(a[i]);

      ...

    end.

    • (49) Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно число делится на 3. В данной задаче под парой подразумевается два подряд идущих элемента массива.

    const

    N = 20;

    var

      a: array [1..N] of integer;

      i, j, k: integer;

    begin

      for i := 1 to N do

        readln(a[i]);

      ...

    end.

    • Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести наибольший из элементов массива, шестнадцатеричная запись которого оканчивается на букву F. Если таких чисел нет, нужно вывести ответ 0.

    const N = 40;

    var

      a: array [1..N] of integer;

      i, j, k: integer;

    begin

      for i := 1 to N do

        readln(a[i]);

      ...

    end.

  • ДЗ на 19.10.2017.

Программы писать без использования ПК.

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


const N=30;

var a: array [1..N] of integer;

    i, k, max, max2: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Использовать те же самые исходные данные и переменные, какие были предложены в условии.

15. Дан целочисленный массив из 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.

16.Дан целочисленный массив из 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.

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


const N=30;

var a: array [1..N] of integer;

    i, k: integer;

    s, min: real;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

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


const N=30;

var a: array [1..N] of integer;

    i, j, min, min2, s: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.


Напишите нам