ГОТОВИМСЯ К ЕГЭ по информатике /алгоритмизация и программирование/

Презентация:



Advertisements
Похожие презентации
ЕГЭ информатика Алгоритмизация и программирование Консультация 3.
Advertisements

ЕГЭ 2011 Информатика и ИКТ Консультация 3 18 марта.
ЕДИННЫЙ ГОСУДАРСТВЕННЫЙ ЭКЗАМЕН Часть С демо-варианта 2009.
Решение задач С1 ЕГЭ Решение задач С1 ЕГЭ
ЕГЭ 2012 Информатика и ИКТ Консультация 3. Пример.
ЕГЭ информатика Алгоритмизация и программирование Консультация 4.
ЕГЭ 2012 Информатика и ИКТ Консультация 4ЕГЭ 2012 Информатика и ИКТ Консультация 4.
Основы алгоритмизации Тема: «Алгоритмы и программы». Подготовка к ЕГЭ.
Задачи ЕГЭ С2. Демо 2006 С2 Опишите на русском языке или на одном из языков программирования алгоритм поиска второго по величине (т.е. следующего по величине.
Разбор заданий ЕГЭ Типичные задания С1. Содержание Задача С1 варианта 1 и другие типичные задачиС1 варианта 1 другие типичные задачи Задача С1 варианта.
Апрель - май 2011 г. Выполнил : Шамов Сергей Ученик 11 б класса МОУ ФСОШ 2 « с углубленным изучение отдельных предметов » Апрель - май 2011 г. Задания.
Найдите ошибки: 1. if a = b then begin c:=1 else c:=0; 2. if a = b then c:=1; end else c:=0; 3. if a = b then c:=1; d:=1; else x:=1; Исправлено if a =
Задачи на пересечение областей (C1): «на стыке алгебры и логики» Д.Ю. Усенков, О.Б. Богомолова.
Решение заданий части С Подготовка к ЕГЭ по информатике.
ПОДГОТОВКА К СДАЧЕ ЕДИНОГО ГОСУДАРСТВЕННОГО ЭКЗАМЕНА Часть С Автор-составитель - Демержеева Т.В.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Методика решения и оценивания задач «С1», «С2» Единого Государственного Экзамена.
Автор: учитель информатики МКОУ Плесской средней общеобразовательной школы Юдин Андрей Борисович Часть 1.
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест.
Например: семейство бабочек; Понятие одномерного массива поле цветов;
Транксрипт:

ГОТОВИМСЯ К ЕГЭ по информатике /алгоритмизация и программирование/

А5 – выполнение математического линейного алгоритма А6 – выполнение циклического алгоритма над массивом А18 – выполнение алгоритма, записанного на естественном языке В2 – выполнение алгоритма, представленного блок- схемой В5 – разработка алгоритма с применением оригинального набора команд НАВЫКИ АЛГОРИТМИЗАЦИИ, ПРОВЕРЯЕМЫЕ В ЧАСТЯХ А и В

ВЫПОЛНЕНИЕ АЛГОРИТМА (МЕТОДИКА ПРОВЕРКИ ПРОГРАММЫ) abc А5 Определите значение переменной с после выполнения следующего фрагмента программы. БейсикПаскальАлгоритмический a = 5 a = a + 6 b = – a c = a – 2 * b a := 5; a := a + 6; b := – a; c := a – 2 * b; a := 5 a := a + 6 b := – a c := a – 2 * b 1) c = – 11 2) c = 15 3) c = 27 4) c = 33

ВЫПОЛНЕНИЕ АЛГОРИТМА (МЕТОДИКА ПРОВЕРКИ ПРОГРАММЫ) i j A11A12A13 2 A21A22 3 A33 C Ответ 3) А6 Дан фрагмент программы, обрабатывающей двумерный массив А размера n×n. БейсикПаскальАлгоритмический k=1 FOR i=1 TO n c=A(i,i) A(i,i)=A(k,i) A(k,i)=c NEXT i k:=1; for i:=1 to n begin c:=A[i,i]; A[i,i]:=A[k,i]; A[k,i]:=c end k:=1 нц для i от 1 до n c:=A[i,i] A[i,i]:=A[k,i] A[k,i]:=c кц Представим массив в виде квадратной таблицы, в которой для элемента массива А[i,j] величина i является номером строки, а величина j – номером столбца, в котором расположен элемент. Тогда данный алгоритм меняет местами 1) два столбца в таблице 2) две строки в таблице 3) элементы диагонали и k-той строки таблицы 4) элементы диагонали и k-того столбца таблицы

F4

ab a=256 a:=1 b:=1 a:=a*2 b:=b+a Да Нет В2 Запишите значение переменной b после выполнения фрагмента алгоритма: Примечание: знаком := обозначена операция присваивания, знаком * обозначена операция умножения.

a

В5 У исполнителя Калькулятор две команды, которым присвоены номера: 1. прибавь 3 2. умножь на 4 Выполняя первую из них, Калькулятор прибавляет к числу на экране 3, а выполняя вторую, умножает его на 4. Запишите порядок команд в программе получения из числа 3 числа 57, содержащей не более 6 команд, указывая лишь номера команд. (Например, программа – это программа умножь 4 прибавь 3 умножь 4 прибавь 3 прибавь 3, которая преобразует число 2 в 50.) Проверяется умение формализовывать алгоритм (записывать коды команд) и не выходить за пространство команд (использовать только допустимые команды).

У исполнителя две команды, которым присвоены номера: 1. прибавь 1 2. умножь на 2 Преобразуйте с помощью данного набора команд а) число 4 в число 9, б) число 1 в число 16, в) число 2 в число 14, г) число 5 в число 28, … Разрабатывайте задания сами!

НАВЫКИ ПРОГРАММИРОВАНИЯ, ПРОВЕРЯЕМЫЕ В ЧАСТИ С С1 умение анализировать текст уже готовой программы, простейшая логика (недостаток или избыток данных при вводе, достаточность условий при поиске решения)С1 умение анализировать текст уже готовой программы, простейшая логика (недостаток или избыток данных при вводе, достаточность условий при поиске решения) [разветвляющиеся алгоритмы] [разветвляющиеся алгоритмы] С2 элементарная работа с массивомС2 элементарная работа с массивом [сочетание цикла и ветвления] [сочетание цикла и ветвления] С4 умение выполнять анализ данных в строке и массивеС4 умение выполнять анализ данных в строке и массиве [сочетание нескольких циклов] [сочетание нескольких циклов]

С (x>=0) and (y =sin(x)) and (x =0) and (y =sin(x)) and (x

С |x|=b/a b/a>=0 a 0 a 0 if b/a < 0 then write(нет решений) write(нет решений)else

С ПРОГРАММА НА ПАСКАЛЕ ПРОГРАММА НА БЕЙСИКЕ ПРОГРАММА НА СИ var a, b, x: real; begin readln(a,b,x); if b = 0 then write('x = 0') else if a = 0 then write('нет решений') else write('x =',-b/a); end. INPUT a, b, x IF b = 0 THEN PRINT "x = 0" ELSE IF a = 0 THEN PRINT "нет решений" ELSE PRINT "x=",-b/a ENDIF END void main(void) { float a,b,x; scanf("%f%f%f", &a,&b,&x); if (b==0) printf("x=0"); else if (a==0) printf("нет решений"); else printf("x=%f",-b/a); } Последовательно выполните три задания: 1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу. 2) Укажите, какая часть программы является лишней. 3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы). Требовалось написать программу, которая решает уравнение «ax+b=0» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно. x = - b/a a 0 1) a = 0 b = 0, x = 0 (значение x можно не указывать, допустим ответ, что x – любое число) 2) Лишняя часть: не нужно вводить x с клавиатуры, верно: readln(a,b); 3) Возможная доработка: readln(a,b); if a = 0 then if b = 0 then write('любое число') else write('нет решений') else write('x=',-b/a); (могут быть и другие способы доработки).

С Поиск наибольшего элемента var a: array[1..30] of Real; i, n1: Integer; max1: Real; begin for i:=1 to 30 do Read(a[i]); max1:=a[1], n1:=1; for i:=2 to 30 do if a[i]>max1 then begin max1:=a[i]; n1:=i; end; write(max=, max1, n=, n1); end. Опишите на русском языке или на одном из языков программирования алгоритм поиска второго по величине (т.е. следующего по величине за максимальным) элемента в числовом массиве из 30 различных элементов. var a: array[1..30] of Real; i, n1, n2: Integer; max1, max2: Real; begin for i:=1 to 30 do Read(a[i]); max1:=a[1], n1:=1; for i:=2 to 30 do if a[i]>max1 then begin max1:=a[i]; n1:=i; end; max2:=a[1], n2:=1; for i:=2 to 30 do and (in1) if (a[i]>max2) and (in1) then begin max2:=a[i]; n2:=i; end; write(max2=, max2, n2=, n2); end.

С var a: array[1..30] of Integer; i, n: Integer; maxsum: Integer; begin for i:=1 to 30 do Read(a[i]); maxsum:=a[1]+a[2], n:=1; for i:=3 to 30 do if a[i]+a[i-1]>maxsum then begin maxsum:=a[i]+a[i-1]; n:=i-1; end; write(n=, n); end. Опишите на русском языке или одном из языков программирования алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них). Поиск наибольшего элемента var a: array[1..30] of Integer; i, n: Integer; max: Integer; i, n: Integer; max: Integer;begin for i:=1 to 30 do Read(a[i]); for i:=1 to 30 do Read(a[i]); max:=a[1], n:=1; max:=a[1], n:=1; for i:=2 to 30 do for i:=2 to 30 do if a[i]>max then if a[i]>max then begin max:=a[i]; n:=i; end; begin max:=a[i]; n:=i; end; write(max=, max, n=, n); write(max=, max, n=, n);end.

С var a,b: array[1..30] of Integer; i: Integer; begin for i:=1 to 30 do Read(a[i]); for i:=1 to 30 do if a[i]

ПРИНЦИПЫ ПРОГРАММИРОВАНИЯ 1) понимать программируемый процесс 2) уметь решить задачу самому 3) уметь разбивать задачу на действия и устанавливать их порядок 4) знать возможности языка программирования. ТРЕБОВАНИЯ К ПРОГРАММИСТУ понимать назначение каждой команды алгоритма с точки зрения условия задачи «Компьютер не выполнит программу, если её не может выполнить сам программист»

МЕТОДИКА ПРОВЕРКИ ПРОГРАММЫ Поиск наибольшего элемента var a: array[1..4] of Real; i, n: Integer; max: Real; i, n: Integer; max: Real;begin for i:=1 to 4 do Read(a[i]); for i:=1 to 4 do Read(a[i]); max:=a[1], n:=1; max:=a[1], n:=1; for i:=2 to 4 do for i:=2 to 4 do if a[i]>max then if a[i]>max then begin max:=a[i]; n:=i; end; begin max:=a[i]; n:=i; end; write(max=, max, n=, n); write(max=, max, n=, n);end. массив a: i: i: imaxn

МЕТОДИКА ОБУЧЕНИЯ МОУ лицей 4 города Краснодара (информационно-математические классы) 1) алгоритмизация с помощью блок схем (8-9 класс) алгоритмизация с помощью блок схем (8-9 класс)алгоритмизация с помощью блок схем (8-9 класс) 2) программирование на языке Паскаль (9-11 класс) программирование на языке Паскаль (9-11 класс)программирование на языке Паскаль (9-11 класс)

ПОДГОТОВКА К ЕГЭ

С Применим принцип картотеки: в ячейки картотеки будем вкладывать данные об учениках по мере их поступления. Наиболее эффективная программа – та, которая не сохраняет лишних данных, не делает лишних просмотров массивов.

С var q: array[1..99] of Integer; {для учета количества учеников из каждой школы} N: Integer; {общее количество учеников} N: Integer; {общее количество учеников} sn: string[2]; {номер школы как строка} sn: string[2]; {номер школы как строка} sn1: Integer; {номер школы как число} sn1: Integer; {номер школы как число} s: string[28]; {входная строка «Иванов П.С. 57»} s: string[28]; {входная строка «Иванов П.С. 57»} i, code: Integer; {технические переменные} i, code: Integer; {технические переменные}begin for i:=1 to 99 do q[i]:=0; {очистка массива перед использованием} for i:=1 to 99 do q[i]:=0; {очистка массива перед использованием} Readln (N); {ввод информации} Readln (N); {ввод информации} for i:=1 to N do begin for i:=1 to N do begin Read(s); Read(s); {преобразование номера школы в числовой формат} {преобразование номера школы в числовой формат} sn:=Copy (s, length(s)-1, 2); if sn[1]= then Delete (sn, 1,1); sn:=Copy (s, length(s)-1, 2); if sn[1]= then Delete (sn, 1,1); Val(sn, sn1, code); { sn1 номер школы в числовом формате (целом типе) } Val(sn, sn1, code); { sn1 номер школы в числовом формате (целом типе) } q[sn1]:=q[sn1]+1; {добавили введенного ученика в соответ. ячейку} q[sn1]:=q[sn1]+1; {добавили введенного ученика в соответ. ячейку} end; end; min:=N; min:=N; for i:=1 to 99 do for i:=1 to 99 do if (q[i] 0) then min:=q[i]; if (q[i] 0) then min:=q[i]; for i:=1 to 99 do {вывод информации} for i:=1 to 99 do {вывод информации} if q[i]=min then Writeln(i); if q[i]=min then Writeln(i); end.