Раздел "Программирование" единого государственного экзамена

Оператор присваивания в языке программирования. Составление программ и решение задач на обработку массивов и символьных строк. Исправление ошибок в простой программе с условными операторами. Работа с массивами и матрицами в языке программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.01.2011
Размер файла 137,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Тестирование может проводиться в бумажном или электронном виде, тексты тестов и задания составляются учителем, используется многочисленная литература с готовыми текстами тестов по основным разделам базового курса. Но представляется более разумным выбирать задания из имеющихся на сегодняшний день в базе данных контрольно-измерительных материалов (КИМ) для проведения ЕГЭ по информатике, из демонстрационных КИМ за прошедшие годы. Широкий доступ учителям к этой базе невозможен, однако в открытом доступе существуют демоверсии, примеры заданий из КИМов, приводимые в печатных изданиях, допущенных для подготовки к ЕГЭ Министерством образования и науки. Задача учителя при подготовке к урокам -- выбрать из имеющегося материала задания, соответствующие теме урока.

В кабинете информатики оформляется тематический стенд "Готовимся к сдаче ЕГЭ". На нем предусматриваются четыре раздела: "Демонстрационные варианты заданий ЕГЭ", "Повторяем курс", "Пробное тестирование", "Это должен знать каждый". Раздел "Демонстрационные варианты заданий ЕГЭ" включает материалы с полными текстами заданий ЕГЭ, которые подлежат замене в течение года, а также тексты дополнительных домашних задач к очередному занятию. Каждое занятие по подготовке к ЕГЭ предваряется обновлением материалов раздела "Повторяем курс". В разделе "Пробное тестирование" должна быть представлена информация по проведению различных мероприятий по подготовке к ЕГЭ школьного, районного и городского уровня. К ним относятся интернет-олимпиады по программированию в формате ЕГЭ, проводимые вузами, тренировочное тестирование, организуемое региональными центрами оценки качества образования, и т.п. Под рубрикой "Это должен знать каждый" распечатывается информация, включающая правила поведения на экзамене, правила заполнения бланков, примеры бланков ЕГЭ по информатике, а также адреса официальных сайтов в сети Интернет, посвященных проблемам сдачи ЕГЭ Наряду с положительными моментами в своей деятельности я испытываю и трудности, возникающие по части С, которая полностью посвящена программированию, нужно либо найти ошибку в программе, либо дополнить алгоритм, либо самому написать программу. Ведь программирование - самый сложный раздел, детям он дается с каждым годом все сложнее и сложнее. Как ни странно, но дети больше всего боятся программирования. Ни логики, ни измерения, информации, ни офисных программ. Они так и говорят, это я сделаю.

Цель включения раздела «Алгоритмизация и программирование» в общеобразовательный курс информатики - формирование алгоритмического стиля мышления и деятельности у обучаемых. «Программирование - вторая грамотность». Эти слова А. П. Ершова известны каждому учителю информатики. Мы должны понимать, что программировать это не столько знание особенностей того или иного языка программирования, сколько способность составлять чёткие, целенаправленные правила действия в самых разных ситуациях. Программирование, по мнению А. П. Ершова, обеспечивает решение сложнейшей проблемы: как перейти от знания к действию.

Как сделать так, что бы все дети в классе программировали? Мне кажется, что этого самостоятельно мы не сможем добиться, так как наш предмет тесно связан с такими учебными дисциплинами, как алгебра (умение детей выполнять арифметические операции), геометрия (умение логически мыслить, анализировать), физика. Если учащийся по этим предметам плавает, то программирование ему не дано. Нам остаётся работать с теми детьми, кто может, как при подготовке к олимпиадам. Выход вижу только в индивидуальном подходе. Это хорошо, что по информатике ЕГЭ по выбору, пусть сдают те, кто выбирает этот направление как будущую профессию. Тогда их можно нацелить на самообразование, на решение дополнительного объема задач, на участие в олимпиадах.

Но всё это возможно только в профильных классах. В общеобразовательных классах, по моему мнению, программа школьно курса по информатике не удовлетворяет требованиям, которые предъявляются к сдаче ЕГЭ. На изучение программирования в базовом курсе отводится очень мало часов. Так, кто пойдёт сдавать, если основная опора в ЕГЭ на программирование? Дети смогут пойти на экзамен, если дополнительно изучали программирование.

Учащиеся, которые изучают информатику на общеобразовательном или на не профильном уровне, сдать этот тест не смогут даже на 3, сдадут только учащиеся, которые учатся в профильных классах по информатике.

Для желающих сдавать ЕГЭ по информатике есть только два выхода: либо выбирать после 9 класса профиль по информатике, либо готовиться к ЕГЭ по информатике самостоятельно или на дополнительных занятиях вне уроков.

Значит, уже в середине 9 класса ученику следует определяться с выбором профиля, с выбором дальнейшей траектории образования, с выбором предметов, по которым будет сдавать ЕГЭ. Только так можно целенаправленно подойти к успешной сдаче ЕГЭ, в том числе по информатике.

Таким образом, подготовка к итоговой аттестации учащихся в новой форме - это длительный и кропотливый, в какой-то степени творческий труд, требующий помощи и консультации со стороны педагога и столь же вдумчивой и напряженной работы ученика.

Методические рекомендации для учащихся по подготовке к ЕГЭ по информатике раздела «Программирование»

программирование массив матрица оператор символьный

Тема «Работа с массивами и матрицами в языке программирования»

Что нужно знать:

· работу цикла for (цикла с переменной)

· массив - это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом

· для обращения к элементу массива используют квадратные скобки, запись A[i] обозначает элемент массива A с номером (индексом) i

· матрица (двухмерный массив) - это прямоугольная таблица однотипных элементов

· если матрица имеет имя A, то обращение A[i,k] обозначает элемент, расположенный на пересечении строки i и столбца k

· элементы, у которых номера строки и столбца совпадают, расположены на главной диагонали

A[1,1]

A[2,2]

A[3,3]

A[4,4]

· выше главной диагонали расположены элементы, у которых номер строки меньше номера столбца:

A[1,1]

A[1,3]

A[1,4]

A[2,3]

A[2,4]

A[3,4]

· ниже главной диагонали расположены элементы, у которых номер строки больше номера столбца:

A[2,1]

A[3,1]

A[3,2]

A[4,1]

A[4,2]

A[4,]

Тема « Оператор присваивания в языке программирования»

Что нужно знать:

· переменная - это величина, которая имеет имя, тип и значение; переменная может изменяться во время выполнения программы

· оператор присваивания служит для записи значения в переменную

· если в переменную записывают новое значение, старое стирается

· знаки +, -, *, / используются для обозначения операций сложения, вычитания, умножения и деления

· запись вида a div b означает результат целочисленного деления a на b (остаток отбрасывается)

· запись вида a mod b означает остаток от деления a на b

· запись вида a := b + 2*c + 3; означает «вычислить значения выражения справа от знака присваивания := и записать результат в переменную a»; при этом значения других переменных (кроме a) не изменяются

Тема «Исправление ошибок в простой программе с условными операторами»

Что нужно знать:

· правила построения программы на Паскале, Бэйсике или Си

· правила работы с переменными (объявление, ввод, вывод, оператор присваивания)

· ветвление - это выбор одного из двух возможных вариантов действий в зависимости от того, выполняется ли некоторое условие;

· на блок-схеме алгоритма ветвление изображается в виде блока-ромба с одним входом и двумя выходами:

· если условие, записанное внутри ромба, истинно (ответ «да» на вопрос «a=b?»), выполняются все команды, входящие в блок-1 (ветка «да»), иначе (если условие ложно) выполняются все команды в блоке-2 (ветка «нет»)

· в неполной форме условного оператора блок-2 пустой (отсутствует); теоретически можно сделать наоборот - так, чтобы блок-1 оказался пустой, но это очень неграмотное решение, поскольку оно осложняет понимание алгоритма, запутывает его

· одна команда ветвления может находиться внутри другой, например, так:

· на этой схеме блок-10 выполняется, когда a=b; блок-11 - когда a=b=c, блок-21 - когда a=b, но ac и, наконец, блок-2 - когда ab

· на этой схеме (Рисунок 3) одна команда ветвления (с условием «a=c») вложена в другую (с условием «a=b»), каждая из них - это ветвление в полной форме; если блок-12 будет пустой (отсутствует), внутреннее ветвление имеет неполную форму; аналогично, если блок-2 пустой, то внешнее ветвление имеет неполную форму

· условный оператор if-else служит для организации ветвления в программе на языке Паскаль

· условный оператор может иметь полную или неполную форму; вот фрагменты программы, реализующие ветвления, показанные на рисунках 1 и 2:

полная форма:

неполная форма:

if a = b then begin

{ блок-1 }

end

else begin

{ блок-2 }

end;

if a = b then begin

{ блок-1 }

end;

здесь вместо комментариев в фигурных скобках (они выделены синим цветом) могут стоять любые операторы языка программирования (в том числе операторы присваивания, другие условные операторы, циклы, вызовы процедур и т.п.)

· обычно при записи программы операторы, находящиеся внутри обоих блоков, сдвигают вправо на 2-3 символа (запись «лесенкой»), это позволяет сразу видеть начало и конец блока (конечно, если «лесенка» сделана правильно)

· после else не надо (нельзя!) ставить какое-то условие, эта часть выполняется тогда, когда условие после if неверно

· в Паскале перед else не ставится точка с запятой, поскольку это ключевое слово обозначает не начало нового оператора, а вторую часть условного оператора if-else

· слова begin и end (их называют также «операторные скобки») ограничивают блок-1 и блок-2; если внутри блока всего один оператор, эти «скобки» можно не писать, например, допустимы такие операторы

if a = b then

c:=1

else c:=0;

if a = b then begin

c:=1;

end

else c:=0;

if a = b then c:=1;

· а вот такие операторы недопустимы

if a = b then begin

c:=1

else c:=0;

if a = b then

c:=1;

end

else c:=0;

if a = b then

c:=1;

d:=1;

else x:=1;

o в первом случае есть begin, но забыли про соответствующий ему end;

if a = b then begin

c:=1;

d:=1;

end

else x:=1;

o во втором фрагменте наоборот, есть end, а begin отсутствует;

o третий случай более сложный: судя по записи «лесенкой», здесь внутри блока-1 находятся 2 оператора, а операторных скобок begin-end нет; в результате получилось, что оператор c:=1 находится внутри блока-1, он выполняется только при условии a=b; оператор d:=1 выполняется всегда, после того, как условный оператор закончил работу; а else вообще «висит» непонятно как, тут транслятор выдаст ошибку; исправить эту программу можно так, как показано справа (добавив пару begin-end):

· условный оператор может находиться внутри другого условного оператора, как в блоке-1, так и в блоке-2; например, схема на Рисунке 3 может быть записана на Паскале так:

if a = b then begin

{ блок-10 }

if a = c then begin

{ блок-11 }

end

else begin

{ блок-12 }

end;

end

else begin

{ блок-2 }

end;

ключевая тема этого задания ЕГЭ - использование вложенных условных операторов, причем в тексте задания фрагмент программы обычно записан без отступов «лесенкой» или с неправильными отступами, например, так:

if a = b then begin

if a = c then

c:=1;

end

else c:=0;

if a = b then

if a = c then

c:=1

else c:=0;

чтобы разобраться с работой этих программ, нужно определить, к какому из условных операторов if относится часть else; для этого используют такое правило: «любой else относится к ближайшему if»

рассмотрим фрагмент слева, в нем перед else стоит end, поэтому для нужно найти соответствующий ему begin; таким образом определяем, что else относится к первому (внешнему) условному оператору

в правом фрагменте перед else нет end, поэтому он относится к ближайшему по тексту внутреннему условному оператору

блок-схемы для двух фрагментов показаны ниже, желтым цветом выделен «переехавший» блок:

· в условных операторах можно использовать сложные условия, которые строятся из простых отношений (<, <=, >, >=, =, <>) с помощью логических операций not («НЕ», отрицание), and («И», одновременное выполнение двух условий) и or («ИЛИ», выполнение хотя бы одного из двух условий)

· в сложном условии сначала выполняются действия в скобках, потом - not, затем - and, затем - or и, наконец, отношения; операции равного уровня (приоритета) выполняются последовательно слева направо

· поскольку отношения в Паскале имеют низший приоритет, в сложном условии их приходится брать в скобки:

if (a = b) or (b < c) and (c <> d) then begin

...

end;

· в приведенном выше примере сначала определяются результаты сравнения (выражения в скобках), затем выполняется операция and («И»), а затем - or («ИЛИ»)

Тема « Обработка массива»

Что нужно знать:

· массив - это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом

· для обращения к элементу массива используют квадратные скобки, запись A[i] обозначает элемент массива A с номером (индексом) i

· для обработки всех элементов массива используется цикл вида

for i:=1 to N do begin

{ что-то делаем с элементом A[i] }

end;

переменная i обозначает номер текущего элемента массива, она меняется от 1 до N с шагом 1, то есть мы «проходим» последовательно все элементы

· матрица (двухмерный массив) - это прямоугольная таблица однотипных элементов

· если матрица имеет имя A, то обращение A[i,k] обозначает элемент, расположенный на пересечении строки i и столбца k

k

i

A[i,k]

· каждая строка матрицы - это обычный (одномерный, линейный) массив; для того, чтобы обработать строку i в матрице из M столбцов, нужно использовать цикл, в котором меняется номер столбца k:

for k:=1 to M do begin

{ что-то делаем с элементом A[i,k] }

end;

· каждый столбец матрицы - это обычный (одномерный, линейный) массив; для того, чтобы обработать столбец k в матрице из N строк, нужно использовать цикл, в котором изменяется номер строки i:

for i:=1 to N do begin

{ что-то делаем с элементом A[i,k] }

end;

Тема «Обработка символьных строк»

Что нужно знать:

· символьная строка - это цепочка символов, которая может обрабатываться как единое целое

· для обращения к символу с номером i строки s используется запись s[i], это говорит о том, что строка - особый вариант массива, в котором хранятся символы

· знак сложения при работе с символьными строками означает сцепку, объединение двух строк в одну (добавление второй строки в конец первой), например:

s := '123' + '456'; { получили '123456' }

· с помощью функции Ord можно получить код символа; цифры имеют коды от 48 (цифра 0) до 57 (цифра 9), например

k := Ord('1'); { получили 49 }

то же самое можно сделать с помощью преобразования типа (привести char к integer)

k := integer('1'); { получили 49 }

· с помощью функции Chr можно сделать обратный переход: получить символ по его коду, например

c := Chr(49); { получили символ '1' }

то же самое можно сделать с помощью преобразования типа (привести integer к char)

c := char(49); { получили символ '1' }

· для работы со строками в наиболее распространенных Паскаль-средах (Turbo Pascal, Borland Pascal, PascalABC, среда АЛГО) используют стандартные функции (здесь s - это переменная типа string, символьная строка; n и r - целые переменные)

· структура (в Паскале она называется «запись», record) - это сложный тип данных, который может включать в себя несколько элементов - полей; поля могут иметь различный тип

· записи в Паскале объявляются с помощью ключевого слова record; в простейшем случае можно выделить память под одну запись так:

var x: record

name: string;

code: integer; end;

эта запись состоит из двух полей: символьной строки name и целого числа code

· записи очень удобны для работы, когда все данные в целом представляют собой единый блок информации, например, данные об ученике; если не использовать записи, было бы нужно выделять в памяти отдельно символьную строку и отдельно целую переменную, причем эти данные внешне были бы никак не связаны, поэтому программа с записями часто получается логичнее и понятнее как для автора, так и для того, кто будет в ней разбираться

· для обращения к полям записи используют точку, например x.name означает «поле name записи x»

· можно сразу объявить массив записей:

var Info: array[1..100] of record

name: string;

code: integer;

end;

это 100 одинаковых записей, имеющих общее имя Info и расположенных в памяти рядом; в каждой структуре есть поля nаme и code; чтобы работать с полями записи с номером k используют обращения вида Info[k].name и Info[k].code

Сложность алгоритмов:

· обозначение говорит о том, что при увеличении в 2 раза размера массива данных количество операций тоже увеличивается примерно в 2 раза (для больших N)

· сложность имеет алгоритм с одним или несколькими простыми (не вложенными!) циклами в каждом из которых выполняется N шагов (как при поиске минимального элемента)

· количество операций для алгоритма, имеющего сложность , вычисляется по формуле , где a и b - некоторые постоянные

· если в одном алгоритме решения задачи используется несколько циклов от 1 до N, а во втором - только один цикл, то алгоритм с одним циклом, как правило, эффективнее (хотя оба алгоритма имеют сложность , постоянная в каждом случае своя, для алгоритма с несколькими циклами она будет больше)

· для алгоритма, имеющего сложность , количество операций пропорционально квадрату размера массива, то есть, если N увеличить в 2 раза, то количество операций увеличивается примерно в 4 раза (например, в программе используется два вложенных цикла, в каждом из которых N шагов); сложность имеют простые способы сортировки массивов: метод «пузырька», метод выбора

· при больших N функция растет значительно быстрее, чем , поэтому алгоритм, имеющий сложность всегда менее эффективен, чем алгоритм сложности

· иногда встречаются алгоритмы сложности (три вложенных цикла от 1 до N), при больших N они работают медленнее, чем любой алгоритм сложности , то есть, менее эффективны

· для многих задач известны только алгоритмы экспоненциальной сложности, когда размер массива входит в показатель степени, например , для больших N такие задачи не решаются за приемлемое время (например, «взламывание» шифров)

Заключение

В данной работе приведены задачи раздела «Программирование» ЕГЭ 2006-2009 гг. по информатике , а также их решения. В результате разбора и анализа задач разработана методическая рекомендация для учителей и учащихся по подготовке к ЕГЭ по информатике. Ведь подготовка к ЕГЭ по информатике стала актуальной с введением экзамена по информатике по выбору при окончании средней школы и введением в некоторых ВУЗах, включая и гуманитарные, вступительных экзаменов по информатике.

Тема «Программирование» - один из разделов, изучаемых в рамках учебной дисциплины «Информатика и ИКТ» на профильном уровне.

Считаю, что поставленные задачи удалось решить.

Список литературы

1. ЕГЭ. Информатика: раздаточный материал тренировочных тестов / И.Ю. Гусева. СПб.: Тригон, 2008. 120 с. (Готовимся к практическому экзамену).

2. ЕГЭ 2008. Информатика: методические материалы. М.: Эксмо, 2008. 96 с. (ЕГЭ. Интенсивная подготовка).

3. ЕГЭ 2009. Информатика: сборник экзаменационных заданий. М.: Эксмо, 2009. (Федеральный банк экзаменационных материалов)

4. ЕГЭ 2008. Информатика: сборник экзаменационных заданий / авт.-сост. П.А. Якушкин, С.С.Крылов. М.: Эксмо, 2008. 128 с.

5. ЕГЭ. Информатика: контрольные измерительные материалы: репетиционная сессия. М.: Вентана-Граф, 2007.

6. Информатика и ИКТ: подготовка к ЕГЭ / под ред. Н.В. Макаровой. СПб.: Питер, 2007. 160 с.

7. Тестирование по информатике в формате ЕГЭ: рекомендации по решению заданий / М. В. Зорин, Е. М. Зорина. Волгоград: Учитель, 2009. (В помощь преподавателю).

8. Лещинер В. Р. Единый государственный экзамен 2009. Информатика: универсальные материалы для подготовки учащихся / В.Р. Лещинер, С.С. Крылов, П. А. Якушкин. М.: Интеллект-Центр, 2009.

9. Молодцов В.А. Репетитор по информатике для подготовки к ЕГЭ / В.А. Молодцов, Н. Б. Рыжикова. Ростов-на-Дону: Феникс, 2008. (Абитуриент).

10. Молодцов В.А. Информатика: тесты, задания, лучшие методики / В.А. Молодцов, Н. Б. Рыжикова. Ростов-на-Дону: Феникс, 2008. 217 с. Самылкина Н.Н. Готовимся к ЕГЭ по информатике: элективный курс: учебное пособие / Н.Н. Самылкина, С.В. Русаков, А.П. Шестаков, С.В. Баданина. М.: БИНОМ. Лаборатория знаний, 2008. 198 с.

11. Сафронов И. К. Готовимся к ЕГЭ. Информатика. СПб.: БХВ-Петербург, 2007. (Информатика и информационно-коммуникационные технологии).

Размещено на Allbest.ru


Подобные документы

  • Структура программы Pascal и алгоритмы решения задач. Работа с циклическими операторами, массивами, процедурами. Составление блок-схем задач. Операции над матрицами в программе MathCad. Работа формулами, графиками и диаграммами в оболочке MS Excel.

    курсовая работа [459,0 K], добавлен 13.08.2012

  • История и основы структурного программирования в среде Turbo Pascal. Работа с различными типами данных. Операторы языка. Работа с символьными и строковыми переменами, одномерным, двумерным массивами. Классификация компьютерных игр. Игры на языке Паскаль.

    курсовая работа [28,8 K], добавлен 06.05.2014

  • Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.

    курсовая работа [75,0 K], добавлен 21.03.2013

  • Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива.

    курсовая работа [1,7 M], добавлен 06.01.2014

  • Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.

    курсовая работа [879,8 K], добавлен 11.02.2016

  • Понятие матриц и операции, выполняемые с ними. Разработка программы для вычислений над матрицами в среде MS Visual Studio Express с применением языка программирования C++. Работа с библиотекой математического типа vector. Реализация перегрузки операций.

    курсовая работа [107,3 K], добавлен 22.12.2010

  • Основные этапы определения радиуса и центра окружности, проходящей через три различные точки заданного множества точек. Особенности построения алгоритма на языке программирования. Составление тестовых примеров для демонстрации возможностей программы.

    контрольная работа [103,9 K], добавлен 21.08.2013

  • Вычисление выражений, использование стандартных функций; работа с графикой. Порядок действий при вычислении, способы ввода данных с клавиатуры. Построение таблиц функций. Организация циклов в программе, итерационные процессы. Работа с массивами чисел.

    контрольная работа [614,7 K], добавлен 16.09.2012

  • Конструкции языка программирования С++, составление простых программ, использyющих оператор if, оператор if else и оператор switch. Работа оператора switch. Создание программы, которая по дате определяет день недели , на который эта дата приходится.

    лабораторная работа [3,1 M], добавлен 03.02.2008

  • Изучение символьных и строковых типов данных, алгоритма задачи на языке программирования Паскаль. Описания получения и установки отдельного символа строки, изменения регистра символов. Анализ создания и просмотра файла, поиска и сортировки информации.

    курсовая работа [440,7 K], добавлен 13.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.