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

Команда присваивания имеет следующий вид:

<переменная> := <выражение>

Знак «:=» надо читать как «присвоить». Это инструкция, которая обозначает следующий порядок действий:

1) вычислить выражение;

2) присвоить полученное значение переменной.

Обратите внимание учеников на то, что команда выполняется справа налево. Нельзя путать команду присваивания с математическим равенством Особенно часто путаница возникает в тех случаях, когда в качестве знака присваивания используется знак «=» и учитель читает его как «равно». В некоторых языках программирования знак «=» используется как присваивание, например, в Бейсике и Си. В любом случае надо говорить «присвоить».

Ученикам, отождествляющим присваивание с равенством, совершенно непонятна такая команда: Х:= Х+ 1. Такого математического равенства не может быть! Смысл этой команды следует объяснять так: к значению переменной X прибавляется единица и результат присваивается этой же переменной X. Иначе говоря, данная команда увеличивает значение переменной Х на единицу.

Под вводом в программировании понимается процесс передачи данных с любого внешнего устройства в оперативную память. В рамках введения в программирование можно ограничиться узким пониманием ввода как передачи данных с устройства ввода (клавиатуры) в ОЗУ. В таком случае ввод выполняется компьютером совместно с человеком. По команде ввода работа процессора прерывается и происходит ожидание действий пользователя; пользователь набирает на клавиатуре вводимые данные и нажимает на клавишу <ВВОД>; значения присваиваются вводимым переменным.

НЕ нашли? Не то? Что вы ищете?

Вернемся к вопросу об архитектуре ЭВМ — исполнителе вычислительных алгоритмов. Как известно, одним из важнейших дидактических принципов в методике обучения является принцип наглядности. За каждым изучаемым понятием в сознании ученика должен закрепиться какой-то визуальный образ. Успешность обучения алгоритмизации при использовании учебных исполнителей объясняется именно наличием таких образов (Черепашки, Робота, Кенгуренка и др.). Можно еще сказать так: архитектура учебных исполнителей является наглядной, понятной ученикам. Исполнителем вычислительных алгоритмов (алгоритмов работы с величинами) является компьютер. Успешность освоения программирования для ЭВМ во многом зависит от того, удастся ли учителю создать в сознании учеников наглядный образ архитектуры компьютера-исполнителя. Работа с реализованными в виде исполнителей учебными компьютерами («УК Нейман», «Кроха», «Малютка» и др.) помогает решению этой задачи. Составляя вычислительные алгоритмы, программы на языках высокого уровня, ученики в своем понимании архитектуры могут отойти от деталей адресации ячеек памяти, типов регистров процессора и т. п. подробностей, но представление об общих принципах работы ЭВМ по выполнению программы у них должно остаться.

Вот как должен представлять себе ученик выполнение алгоритма сложения двух чисел (рис. 11.8):

Алг сложение

цел А, В, С

нач

ввод А

ввод В

С := А + В

вывод С

кон

Рис. 11.8. Исполнение компьютером вычислительного алгоритма

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

Примеры решения задач

Рассмотрим несколько задач, назначение которых состоит в закреплении понятий «переменная», «присваивание». Условия задач взяты из списка заданий к подразделу 12.1 учебника [6].

Пример 1. Вместо многоточия впишите в алгоритм несколько команд присваивания, в результате чего получится алгоритм возведения в 4-ю степень введенного числа (дополнительных переменных кроме А не использовать):

ввод А... вывод А

Решение.        Ввод А

А:= А*А (А2)

А:= А*А (A4)

Вывод А

Пример 2. Написать на АЯ алгоритм вычисления У по формуле:

Y= (1 — X2 + 5Х4)2,

где X— данное целое число. Учесть следующие ограничения: 1) в арифметических выражениях можно использовать только операции сложения, вычитания и умножения; 2) выражение может содержать только одну арифметическую операцию. Выполнить трассировку алгоритма при X = 2.

Решение. Ученики могут построить разные варианты алгоритма решения этой задачи. Для сохранения промежуточных результатов можно использовать дополнительные переменные. Обсуждая эту задачу, полезно рассмотреть вариант алгоритма, при котором не понадобится дополнительных переменных, т. е. можно обойтись всего двумя переменными Хи Y. Тем самым достигается экономия памяти компьютера. Вот как выглядит этот алгоритм и его трассировка (табл. 11.2):

Таблица 11.2


Команда

X

Y

Ввод X

2

X = X * X

4

Y = 1 - X

-3

X = X * X

16

X = 5 * X

80

Y = Y + X

77

у = у * Y

5929

Вывод У

5929


Пример 3. Пользуясь ограничениями предыдущей задачи, написать наиболее короткие алгоритмы вычисления:

Постараться использовать минимальное количество дополнительных переменных. Выполнить трассировку алгоритмов.

Решение. Выполним вариант г) задания. Построим алгоритм, учитывая равенство: X19 = Х16-Х*. Значения Xk, где k = 2", быстро вычисляются л-кратным умножением переменной самой на себя. Алгоритм:

Ввод X

Вывод Z

Пример 4. Записать алгоритм циклического обмена значениями трех переменных А, В, С. Схема циклического обмена:

 

Например, если до обмена было: А = 1, В = 2, С = 3, то после обмена должно стать: А = 3, В= I, С = 2. Выполнить трассировку.

Решение. Эта задача является естественным продолжением задачи об обмене значениями двух переменных, рассмотренной в [6]. Идея прежняя: для обмена значениями требуется дополнительная переменная, обозначим ее — X. Вот как будет выглядеть алгоритм и его трассировка:

Таблица 11.3


Команда

А

B

С

X

Ввод А, В, С

1

2

3

Х:=С

3

С:=В

2

В:=А

1

А:=Х

3

ВыводА, В, С

3

1

2


11.5. Элементы программирования в

базовом курсе информатики


Изучаемые вопросы:

• Предметная область программирования; парадигмы программирования.

• Методические вопросы изучения языков программирования.

• Методические вопросы изучения систем программирования.

Программирование ~ это раздел информатики, задача которого —

разработка программного обеспечения ЭВМ.

В узком смысле слово «программирование» обозначает процесс разработки программы на определенном языке программирования. Разработку средств системного ПО и систем программирования принято называть системным программированием; разработку прикладных программ называют прикладным программированием. По этому принципу делят программистов на системных и прикладных, в зависимости от типа создаваемых ими программ.

Существуют различные парадигмы программирования, и преподавание каждой из них имеет свои особенности. К основным парадигмам программирования относятся (см. схему 4):

• процедурное программирование (Паскаль, Бейсик, Фортран, Си, Ассемблеры);

• логическое программирование (Пролог);

• функциональное программирование (Лисп);

• объектно-ориентированное программирование (Смолток, Си++, Делфи).

В скобках приведены примеры языков программирования, в которых реализована соответствующая парадигма.

Классической, универсальной и наиболее распространенной является процедурная парадигма. Наибольшее количество существующих языков программирования относятся к этой линии. Поэтому чаще всего в учебных заведениях изучается процедурное программирование. А наиболее часто изучаемыми в школе языками программирования являются Паскаль и Бейсик. В дальнейшем под словом «программирование» мы будем подразумевать именно процедурную парадигму.

Процесс изучения и практического освоения программирования можно разделить на три части:

• изучение методов построения вычислительных алгоритмов;

• изучение языка программирования;

• изучение и практическое освоение определенной системы программирования.

Эта структура отражена на схеме 4. Здесь и в дальнейшем термин «вычислительные алгоритмы» будем понимать в самом широком смысле — как алгоритмы работы с величинами любых типов, ориентированные на исполнителя — ЭВМ.

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

Методические рекомендации по изучению

языков программирования

Достаточно хорошо известна методика изучения языков программирования с целью практического их освоения. Эта методика опирается на структуру самого объекта изучения — языка программирования, которая отражена на схеме 4.

Языки программирования делятся на две группы:

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135