Презентация "Подготовка к сдаче Единого Государственного Экзамена. Часть С" 11 класс

Подписи к слайдам:
ПОДГОТОВКА К СДАЧЕ ЕДИНОГО ГОСУДАРСТВЕННОГО ЭКЗАМЕНА Часть С С1 Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x,y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Последовательно выполните следующее: 1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. 2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. С1 Решение

ПРОГРАММА

НА ПАСКАЛЕ

ПРОГРАММА

НА БЕЙСИКЕ

ПРОГРАММА

НА СИ

var x,y: real;

begin

readln(x,y);

if y<=1 then

if x>=0 then

if y>=sin(x) then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y<=1 THEN

IF x>=0 THEN

IF y>=SIN(x) THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

void main(void)

{ float x,y;

scanf("%f%f",&x,&y);

if (y<=1)

if (x>=0)

if (y>=sin(x))

printf("принадлежит");

else

printf("не принадлежит");

}

Задание на закрепление

Теория

С2 Опишите на русском языке или одном из языков программирования алгоритм получения из заданного целочисленного массива размером 30 элементов другого массива, который будет содержать модули значений элементов первого массива (не используя специальной функции, вычисляющей модуль числа). Решение Задание на закрепление

Теория

С3 Два игрока играют в следующую игру. На координатной плоскости стоит фишка. Игроки ходят по очереди. В начале игры фишка находится в точке с координатами (5,2). Ход состоит в том, что игрок перемещает фишку из точки с координатами (x,y) в одну из трех точек: или в точку с координатами (x+3,y), или в точку с координатами (x,y+3), или в точку с координатами (x,y+4). Выигрывает игрок, после хода которого расстояние по прямой от фишки до точки с координатами (0,0) не меньше 13 единиц. Кто выигрывает при безошибочной игре обоих игроков – игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте. Решение Задание на закрепление

Теория

С4 На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат: <Фамилия> <Инициалы> <номер школы>, где <Фамилия> – строка, состоящая не более чем из 20 символов, <Инициалы> – строка, состоящая из 4-х символов (буква, точка, буква, точка), <номер школы> – не более чем двузначный номер. <Фамилия> и <Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом. Пример входной строки: Иванов П.С. 57 Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран информацию, из какой школы было меньше всего участников (таких школ может быть несколько). При этом необходимо вывести информацию только по школам, пославшим хотя бы одного участника. Следует учитывать, что N>=1000. Решение Задание на закрепление

Теория

Элементы ответа: Элементы ответа: 1) Пример: x=3, y=0,5 (Любая пара (x,y), для которой выполняется: y>1 или x<0 или (y>=sin x и x>π/2 и y<=1)) 2) Возможная доработка (Паскаль): if (y<=1) and (x>=0) and (y>=sin(x)) and (x<=3,14/2) then write('принадлежит') else write('не принадлежит') НАЗАД

С1

Решение: Решение: Заводим новый целочисленный массив той же длины. В цикле от первого элемента до последнего сравниваем элементы исходного массива с нулем и отрицательным элементам меняем знак. Записываем значения в элементы второго массива с тем же номером. Печатать значения массива не обязательно.

С2

НАЗАД

С2

На языке Паскаль

На языке Бейсик

const N=30;

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

i: integer;

begin

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

for i:=1 to N do

if a [i] < 0

then b[i]:= - a[i]

else b[i]:= a[i];

end.

FOR I=1 to N

INPUT A(I)

NEXT I

N=30

DIM I, A(N), B(N) AS INTEGER

FOR I = 1 TO N

IF A(I) < 0 THEN

B(I) = - A(I)

ELSE

B(I) = A(I)

ENDIF

NEXT I

END

Выигрывает второй игрок. Выигрывает второй игрок. Для доказательства рассмотрим неполное дерево игры, из вариантов оформленное в виде таблицы, где в каждой ячейке записаны координаты фишки на каждом этапе игры. 1 ход 2 ход 3 ход 4 ход Стартовая позиция I-й игрок (все варианты хода) II-й игрок (выигрышный ход) I-й игрок (все варианты хода) II-й игрок (выигрышный ход, один 5,2 5,6 8,6 11,6 14,6 8,9 11,9 8,10 11,10 5,5 8,5 11,5 14,5 8,8 11,8 8,9 11,9 8,2 8,5 или 8,6 НАЗАД

С3

Решение: Решение: var nc:array[1..99] of integer; p:1..99; c:char; i, k, N, min: integer; begin readln(N); for i:=0 to 99 do nc[i]:=0; for i:=1 to N do begin repeat НАЗАД

С4

ЕГЭ по ИНФОРМАТИКЕ

var var a, b, c, n: integer; begin write('введите a, b:'); read(a,b); n:=0; if (a=b) and (a mod 7=0) then n:=n+1 else for c:=a to b do if (с mod 7=0) then n:=n+1; write('искомое число равно ',n); end. РЕШЕНИЕ НАЗАД
  • Для такой программы последовательно выполните три задания:
  • Укажите набор входных чисел a, b, для которого программа работает неправильно.
  • Укажите любой вариант доработки программы (удаления, добавления, изменения команд), чтобы не было случаев её неправильной работы.
  • Укажите вариант доработки программы без использования логических операций (and, or, not).

С1

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

Задание на закрепление

Требовалось написать алгоритм (программу) подсчета всех натуральных чисел n, кратных 7 и заключенных строго между натуральными числами a и b. Входная информация вводится с клавиатуры, а на выходе должно быть получено сообщение, например, вида "искомое число равно 12" (если есть 12 таких кратных чисел) или "искомое число равно 0" (если нет кратных чисел). Некто, в спешке, написал следующую программу:

var
  • var
  • a, b, c, n: integer;
  • begin
  • write('введите a, b:'); read(a,b); n:=0;
  • if (a=b) and (a mod 7=0)
  • then n:=n+1
  • else if (a<>b)
  • then begin
  • if (a>b)
  • then begin
  • c:=a; a:=b; b:=a;
  • end;
  • for c:=a to b do
  • if (с mod 7=0)
  • then n:=n+1
  • end;
  • write('искомое число равно ',n);
  • end.
РЕШЕНИЕ 1. Программа не будет работать для всех тестов, удовлетворяющих условию b<a. Например, для b = 4, a = 20. 2. Приводим вариант доработки программы, чтобы не было случаев её неправильной работы.

С1

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

3. Вариант доработки программы без использования логических операций (and, or, not) можно получить из предыдущих вариантов, если заменить условие (например, на Бейсике; для остальных версий - аналогично):

if (a = b) and (a MOD 7=0) then :

на условие вида

if (a = b) then if (a MOD 7=0) then : .

НАЗАД

С2

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

Задание на закрепление

Для заданного числового массива (ряда чисел) составить алгоритм нахождения m - максимума среди элементов массива, находящихся на нечетных местах (то есть среди x1, x3, x5 и т. д.) и k - минимума среди элементов массива, находящихся на четных местах (то есть среди x2, x4, x6 и т. д.).

РЕШЕНИЕ НАЗАД

РЕШЕНИЕ РЕШЕНИЕ var n, k, m: integer; x: array[1..100] of integer; begin readln(n); for i:=1 to n do read(x[i]); i:=1; k:=x[2]; m:=x[1]; while (i<n) do begin if (m<x[i]) then m:=x[i]; if (k>x[i+1]) then k:=x[i+1]; i:=i+2 end; if (n mod 2=1) then if (m<x[n]) then m:=x[n]; writeln(' k=',k,' m=',m); end. НАЗАД

С2

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

С3

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

Задание на закрепление

Два игрока играют в игру со следующими правилами: имея достаточный запас монет (диаметром d см), каждый из них кладет по очереди одну монету на стол размером а и b (см). Проигрывает тот игрок, которому некуда класть очередную монету. Монета должна опираться своей полной площадью на стол (не допускается свисание монеты). Можно перемещать монету, соблюдая это условие. Описать стратегию выигрышной игры (как начинать и как ходить игроку для выигрыша).

РЕШЕНИЕ НАЗАД

РЕШЕНИЕ РЕШЕНИЕ Определим, сколько монет поместится максимально (без свисания) на столе. По стороне длины a это количество равно n=int(a/d), а по стороне b - равно m=int(b/d). Общее количество монет равно k=nm. Все зависит от четности (нечетности) этого числа. Если k - нечетно, то выигрывает всегда тот, кто ходит первым, а если k - четно, то он проигрывает всегда. Стратегия хода проста: каждый раз к монете второго игрока (после его хода) нужно приставлять по длине или ширине стола свою монету в этом ряду или начинать новый ряд (если предыдущий ряд уже заполнен). НАЗАД

С3

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

С4

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

Задание на закрепление

Составить алгоритм удаления из заданного текста a всех символов, расположенных на нечетных местах другого заданного текста b.

РЕШЕНИЕ НАЗАД

РЕШЕНИЕ РЕШЕНИЕ var d, m, i, j: integer; a, b: string; begin readln(a,b); m:=length(a); d:=length(b); i:=1; while (i<m) do begin j:=1; while (j<d+1) do begin if (a[i]=b[j]) then begin for k:=i to m-1 do a[k]:=a[k+1]; m:=m-1 end; j:=j+2 end; i:=i+1 end; writeln('результирующий текст: ', a); end. НАЗАД

С4

ЕГЭ по ИНФОРМАТИКЕ

Автор-составитель - Демержеева Т.В.

Назад

Назад

Назад

Назад