Лабораторная работа № 1. Операторы ввода, вывода, присваивания. Линейный алгоритм.
Цель: Научиться вводить линейные программы.
Для ввода данных с клавиатуры используется оператор "Readln", например Readln(A), где А- имя переменной (переменная- это несколько ячеек оперативной памяти, имеющих общее имя).
Вывод данных на экран осуществляется операторами Write(A,B,C), где A,B,C список вывода.
Запись данных в ячейки памяти, выполняется с помощью оператора присваивания, например A:=2.
Чтобы выводимые числовые значения не сливались визуально в одно число, перечисляемые в операторе Writeln( ) переменные следует разделять пробелами, заключенными в апострофы:
Writeln(A,' ', B,' ',C). Другой способ разделения выводимых данных заключается в использовании формата длины поля: Writeln(A:N:М), где N-число знаков в целой, М - в десятичной части числа.
Командная строка заканчиваются знаком “;”. Для решения задач применяются стандартные функции Pascal. Например, mod – остаток от деления целых чисел, div – целочисленное деление.
Описание типа переменных выполняет служебное слово Var в разделе описания, например:
Var a,b,c:integer; {описание целых чисел}
x,y,z:real; {описание вещественных чисел}
Задание 1. Наберите программу, вычислите значение С=2*А-3*В. Вывод переменных выполнить форматированным.
Program Vvod-Vivod;
Var A,B,C: integer;
Begin
Write('A= '); Readln(A);
Write('B= '); Readln(B);
Writeln('Вывод значений переменных A,B:');
Writeln(A,B);
С:=2*А-3*В;
Writeln('C= ',С);
Readln;
End.
Задание 2. Самостоятельная работа.
Лабораторная работа № 2. Ввод и редактирование программ, содержащих циклы.
Цель: Научить вводить редактировать и составлять программы, содержащие циклы с параметром.
Цикл – многократно повторяемая часть алгоритма. Оператор цикла с параметром организует выполнение одного оператора заранее известное количество раз.
Операторы цикла с параметром for вызывает повторяющееся выполнение оператора, пока управляющей переменной присваивается возрастающая последовательность значений - вариант первый (или убывающая - вариант второй), тип параметра описывается в разделе описаний.
Для вычисления значений выражений применяются стандартные функции Pascal:
SQR(x) – квадрат числа х;
SQRT(x) – корень квадратный из числа х;
a DIV b - после деления a/b отбрасывается дробную часть;
ABS(a) - модуль числа a;
RANDOM(X)-получение случайного числа на интервале (0,Х) ( при задании параметра randomize).
Вариант организации цикла первый ( по возрастанию):
FOR i := start TO finish DO <оператор>
Вариант организации цикла второй (по убыванию):
FOR i := start DOWNTO finish DO <оператор>
В этих структурах:
i - параметр цикла;
start - начальное значение
параметра;
finish - конечное значение
параметра;
<оператор> - тело цикла.
Задание 1. Вывести на
экран дисплея значения функции у=0.3х2 -4.15х -0.01 для х от
-10 до 10.
Измените те программные строки, с помощью которых вычислите квадратные
корни чисел от 0 до 100.
PROGRAM
lab2;
VAR
х:integer;
у:real;
BEGIN
for х:=
-10 to 10 do
у:=0.3*sqr(x)-4/15*x-0.01;
Writeln('у=',у);
Readln;
END.
Задание 2. Самостоятельная работа.
Лабораторная работа 3. Ввод и редактирование программ, содержащих ветвления. Операторы IF … THEN … ELSE.
Цель: Научиться вводить и редактировать разветвляющиеся программы.
Алгоритм называется разветвляющимся, если в зависимости от выполнения определённых условий он реализуется по одному из нескольких, заранее предусмотренных направлений.
Формат оператора (если <условие> то <оператор 1> иначе <оператор 2>;):
полная форма |
сокращенная форма |
if <условие>
then <оператор 1> |
if <условие> then <оператор 1>;
|
<условие> - некоторое логическое выражение, истинность которого проверяется;
<оператор 1> - оператор, который выполняется, если логическое выражение <условие> истинно.
<оператор 2> - оператор, который выполняется, если логическое выражение <условие> ложно.
Условный оператор IF является самостоятельным, ни перед then, ни перед else точку с запятой ставить нельзя. Составной оператор представляет собой группу операторов, ограниченных так называемыми операторными скобками Begin End; (в разветвленном алгоритме при применении операторных скобок для <оператора 1> после End точка с запятой не ставятся).
Задание 1. Написать программу для нахождения значения функции при х<0 y =5x-3, при x>=0 y = для х = -8.34; -0.158; 1.21; 625
Program lab3;
Var x,y:real;
Begin
Write(‘x=’); readln(a);
IF X>0 THEN Y:=SQRT(X)
ELSE Y:=5*X-3;
Writeln( ‘X=’,X,’Y=’,Y);
Readln;
END.
2. Самостоятельная работа.
Лабораторная работа 4. Массивы. Обработка элементов массива.
Цель: Научиться вводить и редактировать программы обработки переменных табличного типа.
До сих пор мы рассматривали переменные, которые имели только одно значение, могли содержать в себе только одну величину определенного типа. Массивом будем называть упорядоченную последовательность данных одного типа. Проще всего представить себе массив в виде таблицы, где каждая величина находится в собственной ячейке. Положение ячейки в таблице должно однозначно определяться набором координат (индексов). Самой простой является линейная таблица, в которой для точного указания на элемент данных достаточно знания только одного числа (индекса). Описание:
Var <Переменная-массив> : Array [<Диапазон индексов>] Of <Тип элементов>;
Примеры описания массивов:
N : Array ['A'..'Z'] Of Integer;
T : Array [1..40] Of Real;
Массив N имеет индексы символьного типа и целочисленные элементы; массив Т может хранить в себе 40 чисел типа Real. Обращение к отдельному элементу массива производится при помощи указания имени всего массива и в квадратных скобках – индекса. Функции Pascal:
возведение в степень (ах) EXP(X*(LN(A)) (из основного логарифмического тождества);
Целая часть числа INT(X) наибольшее целое число, не превосходящее аргумента х;
Генератор случайных чисел RANDOM(X) числа от 0 до Х (RANDOMIZE – случайным образом числа)
Задание 1. Напечатать программу, заполняющую массив значениям квадратов индексов элементов.
Program lab5;
Const N=50; {Константа N будет содержать количество элементов массива}
Var A : Array [1..N] Of Integer;
I : Integer;
Begin
For I:=1 To N Do
A[I]:=I*I;
For I:=1 To N Do
Write(A[I],'VVV');
End.
Задание 2. Самостоятельная работа.
Цель: Изучить интерфейс программы и создать проект.
Visual Basic 5 CCE (Control Creation Edition) является полнофункциональной версией объектно-ориентированного языка программирования Visual Basic. Системы этого программирования визуализиру-ют графический интерфейс программы, через создание объектов, их свойств, событий. Например:
Класс объектов |
свойства |
методы |
события |
Form (форма) |
Name(имя)
Caption(надпись) |
Show(показать) |
Load(загрузка) |
CommandButton(командная кнопка) |
Font(шрифт) Height(высота) Width(ширина)Name(имя) Caption(надпись) |
Move(переместить) |
Click(щелчок) |
TextBox(текстовое поле) |
Name(имя) Text(текст) |
Move(переместить) |
DbClick(двой-ной щелчек) |
|
Запустить систему программирования VB5.0 CCE |
|
1 |
Создать новый проект. Для этого ввести команду [File-New Project]. На открывшейся диалоговой панели New Project выбрать тип создаваемого проекта Standart.exe. |
|
2 |
После щелчка по кнопке Открыть появится окно интегрированной среды разработки Visual Basic. Командой [View-Object Browser] можно вызвать окно Просмотра объектов (Object Browser], которое содержит в левом списке все доступные классы объектов, а в левом списке для выбранного объекта показывает перечень его свойств, методов и событий. |
|
3 |
Dыбрать свойство Caption и присвоить ему значение “Первый проект”. |
|
4 |
Выбрать на Панели инструментов класс управляющих элементов Label и разместить экземпляр метки Label1 на форме Form1. |
|
5 |
Выбрать на Панели инструментов класс управляющих элементов TextBox и разместить экземпляр текстового поля Text1 на Form1 и присвоить ему значение “Первый проект на языке Visual Basic”. |
|
6 |
Выбрать на Панели инструментов класс управляющих элементов CommandButton и разместить экземпляр кнопки Command1 на форме Form1. |
|
7 |
Активизировать кнопку Command1. В окне Свойств объекта выбрать свойство Caption и присвоить ему значение “Метод Print”. |
|
8 |
Двойным щелчком по кнопке Command1 вызвать окно Программного кода с пустой процедурой Command1_Click(). Ввести в процедуру метод Print. Первоначальный вариант проекта готов и его можно запустить на выполнение. |
|
9 |
Ввести команду [Run-Start]. Появится окно приложения Первый проект. Для выполнения событийной процедуры щелкнуть по кнопке Метод Print. |
|
10 |
Активизировать форму Form1. В окне Свойств объекта выбрать свойство BackColor (цвет фона) и двойным щелчком открыть диалоговое окно с цветовой палитрой. Выбрать цвет, например, желтый. |
|
11 |
Активизировать метку Label1. В окне Свойств объекта для свойств установить значения: BackColor - зеленый, ForeColor (цвет надписи) – синий, Font – размер шрифта 18, Alignment (выравнивание) – center. |
Цель: Разработаем проект, который позволит заполнять числовой массив целыми случайными числами, а затем предоставит возможность сортировать массив различными способами.
Проект 2. Заполнение массива случайными числами. Для генерации последовательности случайных чисел используем функцию Rnd. Для того чтобы генерировались различающиеся между собой последовательнос-ти, можно использовать оператор Randomize. Для получения последовательности случайных чисел в заданном интервале А£Х<В необходимо использовать следующую формулу: А+(В-А)*Rnd Получение целочислен-ной последовательности случайных чисел на интервале 0£Х<10 достигается использованием функции выделения целой части: Int(Rnd * 10) Заполнение массива bytA, состоящего из 10 элементов, реализуем с помощью цикла со счетчиком, причем предусмотрим в целях визуального контроля его вывод в текстовое поле txtDim c использованием функции Str (преобразования числа в строковую форму).
|
Проект «Сортировка числового массива». |
|
1 |
Создать новый проект. Разместить на форме текстовое поле txtDim и кнопкe cmd1. |
|
2 |
Установить для свойства MultiLine текстового поля значение True и подобрать размер шрифта так, чтобы массив распечатывался в одной строке текстового поля. |
|
3 |
Ввести для кнопки событийную процедуру заполнения массива и его вывода в текстовое поле: Dim bytI, bytA(1 To 10) As Byte |
|
4 |
Запустить проект и несколько раз щелкнуть по кнопке Заполнить. В текстовом поле появятся последовательности случайных чисел, различающиеся между собой. |
|
Поиск минимального элемента. Будем считать сначала, что минимальный элемент равен первому элементу массива bytA(1) и присвоим переменной bytMin его значение.
Затем в цикле сравним последовательно элементы массива со значением переменной bytMin, если какой-либо элемент окажется меньше, присвоим его значение переменной bytMin, а его индекс присвоим переменной bytN. Распечатаем результаты.
5 |
Разместить на форме текстовое поле кнопку cmd2 и создать для нее событийную процедуру поиска минимального элемента: Private Sub cmdMin_Click() |
|
6 |
Запустить проект. Последовательно щелкать на кнопках Заполнить и Мин. элемент. В текстовом окне будет появляться заполненный массив, а на форме будет печататься минимальный элемент и его индекс. |
|
Сортировка по возрастанию методом перестановок. Идея алгоритма сортировки по возрастанию массива, состоящего из N элементов, методом перестановок элементов состоит в последовательном поиске минимальных элементов и их перемещении к началу массива с помощью перестановок с элементами, имеющими меньший индекс. На первом шаге находим минимальный элемент массива и меняем его местами с первым элементом массива. Остаются неупорядоченными N-1 элемент.
Проводим поиск минимального элемента среди элементов со 2 по N-1 и делаем перестановку. Повторяем процедуру поиска минимального элемента среди оставшихся неупорядоченных элементов многократно. Повторение реализу-ем с помощью цикла со счетчиком, максимальное значение которого составляет N-1. В результате массив сортируется по возрастанию.
Так как, поиск минимального элемента массива проводится многократно, реализуем рассмотренную ранее событийную процедуру cmdMin_Click() как общую процедуру МинЭле-мент (bytJ, bytN As Byte), где bytJ – является входным параметром, а bytN – выходным параметром.
7 |
Ввести программный код общей процедуры поиска минимального элемента: Sub
МинЭлемент(J,
N As Byte) |
Событийная процедура, реализующая сортировку массива, будет включать в себя вызов общей процедуры поиска минимального элемента и код перестановки элементов. Процесс сортировки массива можно сделать наглядным, если в текстовое поле выводить состояние массива на каждом шаге сортировки.
8 |
Поместить на форму текстовое поле txtSort и кнопку cmdSort. |
|
9 |
Ввести программный код событийной процедуры сортировки массива: Private Sub cmdSort_Click() |
|
10 |
Для большей наглядности разместить на форме две метки с номерами элементов массива (горизонтальная) и значениями счетчика цикла сортировки (вертикальная). |
|
11 |
Запустить проект на выполнение. Щелкнуть по кнопкам Заполнить массив, Мин. элемент и Сортировка. |
|
12
|
Процедуру можно производить многократно и наблюдать процесс сортировки для различных вариантов заполнения массива. |
|
Цель: Разработать проект, который позволяет сортировать строковый массив (например, содержащий компьютерные термины) по алфавиту.
Заполнение строкового массива. Как строковые, так и числовые массивы можно заполнять разными методами. Рассмотренный ранее числовой массив был заполнен непосредственно в самой программе, можно заполнять массивы, вводя данные с клавиатуры с использованием функции InputBox, однако строковые массивы чаще всего заполняются путем считывания данных из текстовых файлов.
Такие текстовые файлы должны содержать только коды самих символов (не должны содержать управляющие коды форматирования текста, тэги языка HTML и т.д.) и, следовательно, должны создаваться в простейших текстовых редакторах (типа Блокнот). В таких файлах элементы данных (последовательности символов) отделяются друг от друга с помощью разделителей (чаще всего запятой).
Создадим два текстовых файла данных, первый, содержащий буквы алфавита, а второй файл, содержащий компьютерные термины.
|
Проект «Сортировка строкового массива». |
1 |
Запустить Блокнот, создать файл, ввести буквы русского алфавита и сохранить под именем alphabet.txt.
|
2 |
Создать файл, ввести компьютерные термины и сохранить под именем term.txt.
|
Прежде чем приступить к считыванию данных из текстового файла в строковый массив (или последова-тельность строковых переменных) необходимо открыть файл с помощью специального оператора Open:
Open Имя_файла For Режим_работы As # Номер_файла
Имя_файла должно содержать путь к файлу и собственно имя файла, Режим_работы определяет, что файл открыт для считывания данных (Input) или, наоборот, для записи данных в файл (Output), а Номер_файла содержит целое число в интервале от 1 до 511.
Например, чтобы открыть для считывания данных файл alphabet.txt, находящийся на CD-ROM (логическое имя которого E:), необходимо ввести следующий код:
Open "E:\practicum\VisualBasic\project\project5\alphabet.txt" For Input As #1
Для чтения данных из файла используется функция Input:
Input # Номер_файла, Список_переменных
После завершения считывания данных файл необходимо закрыть с помощью оператора Close:
Close # Номер_файла
Произведем чтение данных из файла alphabet.txt в строковый массив с помощью цикла со счетчиком.
3 |
Создать проект, на форму поместить кнопку cmdAlph и текстовое поле txtAlph, в котором можно наблюдать результат заполнения массива. |
4 |
Создать событийную процедуру считывания данных из файла alphabet.txt в строковый массив strA: Private Sub cmdAlph_Click() |
Произведем теперь чтение данных из файла term.txt в строковый массив с помощью цикла с предусловием. Это вариант используется, если заранее неизвестно количество элементов данных в файле, и в качестве условия используется функция EOF (End Off File): EOF(Номер_файла)
Для визуализации заполнения строкового массива терминами удобно использовать управляющий элемент Окно списка (ListBox), который представляет собой упорядоченный список значений. Для размещения с окне списка нового элемента используется метод AddItem, который имеет в качестве аргумента строковую переменную, значение которой и добавляется в список.
5 |
Поместить на форму кнопку cmdTerm и окно списка lstTerm, в котором можно наблюдать результат заполнения массива. |
6 |
Создать событийную процедуру считывания данных из файла term.txt в строковый массив strB и его отображения в окне списка lstTerm: Private Sub cmdTerm_Click() |
Сортировка массива. В исходном строковом массиве strB термины хранятся в неупорядоченном виде. Сравним последовательно во внутреннем цикле со счетчиком bytI букву «а» алфавита с первыми символами терминов, в случае их совпадения присвоим первому элементу результирующего символьного массива strC это значение. Повторим эту процедуру последовательно для всех букв алфавита с использованием внешнего цикла со счетчиком bytK. Получим упорядоченный строковый массив strC.
7 |
Поместить на форму кнопку cmdSort и создать событийную процедуру сортировки массива: Private
Sub cmdSort_Click() |
Визуализация отсортированного массива. Для визуализации отсортированного массива используем второе окно списка.
8 |
Поместить на форму кнопку cmdRez, окно списка lstSort и создать событийную процедуру визуализации отсортированного массива: Private
Sub cmdRez_Click() |
|
9 |
Запустить проект на выполнение. Последовательно щелкнуть по кнопкам Считать алфавит, Считать термины, Сортировать, Показать:
|
|
Цель: Создать электронный калькулятор.
Проект 4. Для создания мультисистемного калькулятора воспользуемся возможностью проведения арифметических операций в десятичной системе счисления и функциями преобразования типов данных, позволяющих осуществлять перевод чисел из десятичной системы счисления в восьмеричную и шестнадцатеричную системы и, наоборот, из восьмеричной и шестнадцатеричной систем в десятичную.
Сначала создадим калькулятор для работы в десятичной системе. На форме разместим три текстовых поля: два поля txt1Dec и txt2Dec для ввода числовых данных и одно txt3Dec для вывода результата. Пять кнопок для реализации событийных процедур: сложения cmdPlus, вычитания cmdMinus, умножения cmdUmn, деления cmdDelen и завершения работы cmdExit.
Событийные процедуры арифметических операций. Событийная процедура сложения CmdPlus_Click должна изменить свойство Text текстового поля txt3Plus так, чтобы оно являлось суммой числовых значений свойства Text объектов txt1Dec и Text2Dec. Для преобразования строковых значений, вводимых в текстовые поля, в десятичное число, воспользуемся функцией Val. Код событийной процедуры будет следующим:
Private Sub cmdPlus_Click()
txt3Dec.Text = Val(txt1Dec.Text) + Val(txt2Dec.Text)
End Sub
Событийные процедуры вычитания, умножения и деления создаются аналогично.
|
Проект «Мультисистемный калькулятор». |
|
1 |
Создать новый проект. Разместить на форме три текстовых поля и пять кнопок. Присвоить им имена: txt1Dec, txt2Dec, txt3Dec, cmdPlus, cmdMinus, cmdUmn, cmdDelen, cmdExit. |
|
2 |
Для каждой из кнопок ввести программные коды событийных процедур. |
|
3 |
Установить для свойства Alignment текстовых полей значение Right Justufy. |
|
4 |
Запустить проект на выполнение. Ввести числа в два первых текстовых поля. Щелкнуть по любой кнопке арифметических операций и соответствующая она будет выполнена. |
|
Перевод чисел из десятичной системы счисления в восьмеричную с помощью функции Oct. Для перевода чисел из десятичной системы счисления в восьмеричную воспользуемся функцией Oct, аргументом которой являются десятичные числа, а значением вщсьмеричные числа в строковой форме.
Введенные в десятичные поля числа переведем сначала из строковой формы в числовую с помощью функции Val, а затем из десятичной числовой переведем в строковую шестнадцатеричную с помощью функции Oct. Создадим кнопку cmdDecOct и запишем для нее событийную процедуру перевода чисел:
Private Sub cmdDecOct_Click()
txt1Oct.Text = Oct(Val(txt1Dec.Text))
txt2Oct.Text = Oct(Val(txt2Dec.Text))
txt3Oct.Text = Oct(Val(txt3Dec.Text))
End Sub
5 |
Добавить на форму три текстовых поля txt1Oct, txt2Oct и txt3Oct. |
|
6 |
Поместить на форму кнопку cmdDecOct и ввести программный код событийной процедуры cmdDecOct_Click(). |
|
7 |
Поместить на форму две метки с надписями Десятичная система и Восьмеричная система. |
|
8 |
Запустить проект на выполнение. Ввести числа в два первых текстовых поля десятичной системы. Щелкнуть по кнопке «+», а затем Dec-Oct. Будет выполнено сложение десятичных чисел и их перевод в восьмеричную систему. |
|
Для перевода чисел из восьмеричной системы счисления в десятичную воспользуемся функцией Val, аргументом которой являются восьмеричные числа в строковой форме, а значением десятичные числа.
Введенные в восьмеричные поля в строковой форме числа переведем сначала в восьмеричное представление добавлением приставки "&O" с помощью операции конкатенации строк. Полученное восьмеричное число в строковой форме переведем в десятичную числовую с помощью функции Val. Создадим кнопку cmdOctDec и запишем для нее событийную процедуру перевода чисел:
Private Sub cmdOctDec_Click()
txt1Dec.Text = Val("&O" + txt1Oct.Text)
txt2Dec.Text = Val("&O" + txt2Oct.Text)
txt3Dec.Text = Val("&O" + txt3Oct.Text)
End Sub
9 |
Поместить на форму кнопку cmdOctDecи ввести для нее программный код событийной процедуры перевода чисел. |
|
10 |
Запустить проект на выполнение. Ввести числа в два первых текстовых поля восьмеричной системы. Щелкнуть по кнопке Oct-Dec. Будет выполнен их перевод в десятичную систему. |
|
11 |
Выполнить арифметическую операцию в десятичной системе, щелкнув, например, по кнопке «-». Перевести результат в восьмеричную систему, щелкнув по кнопке Dec-Oct. |
|
Традиционная методика обучения программированию была построена на математических объектах и алгоритмах. В общеобразовательном курсе школьной информатики такая методика оказалась неудачной. Во-первых, подготовка профессиональных программистов не входит в задачи курса. Во-вторых, большинство школьников не имеют достаточной математической культуры, развитых навыков алгоритмического мышления, поэтому решение задач повышенной сложности на уроках не всегда рационально, определенная часть учеников может вообще потерять интерес к программированию. Тогда как заинтересованные учащиеся выражают желание заняться программированием углубленно.
Отсюда вытекает необходимость преподавания программирования в факультативном курсе. Изучение основных алгоритмических понятий происходит с максимальным привлечением математики на примерах управления автоматическими устройствами (исполнителями). В то же время учитель имеет возможность варьировать математическую сложность курса в широких пределах, используя задачи и упражнения с математическим содержанием.
По традиционной методике сначала рассматривалась очередная алгоритмическая конструкция, а затем демонстрировалось ее применение при решении задач. Такой подход (от теории к практике) оправдан только при наличии устойчивой мотивации, интереса к программированию. Используя методику ТРИЗ можно в некоторой степени подвести учащихся к конструированию основных видов алгоритмов, особенно в необходимости применения вспомогательных алгоритмов, подпрограмм. Программируя, можно показать общность процессов обработки информации разной природы, развить навыки информационной обработки без претензий на овладение профессиональной или научной терминологией.
Отсюда следует вторая особенность современного курса — проблемный подход (от практики к теории). Алгоритмические конструкции вводятся по мере необходимости при решении конкретных задач, и затем — в общем виде. Формы и методы обучения существенно зависят от возможности доступа школьников к компьютерам. Поэтому есть необходимость в изучения темы программирования во внеклассной работе.
Среди основных задач любого учителя – поддержание интереса школьников к изучаемому предмету. Один из способов достижения этого – решение занимательных по форме и содержанию задач. Педагогически оправданная занимательность имеет целью привлечь внимание к заданиям, активизировать деятельность учащихся, побудить их к работе с дополнительной литературой. Интерес к программированию, как правило, устойчивый, трудности не убавляют желание детей написать хоть, сколько угодно сложную программу. И чем сложнее программа, тем им интереснее. Интерес вызывает логическое программирование, когда компьютер выступает в роли «искусственного интеллекта». Особое место в программировании занимают задачи на сортировку. При решении прикладных задач, что является актуальным требованием настоящего времени, особое место занимает «линейное программирование». Термин «линейное программирование» характеризует определение программы (плана) работы конкретного экономического объекта на основе выявления линейных связей между его элементами. Задачей линейного программирования является нахождение оптимального, т.е. наилучшего плана при заданной системе налагаемых на решение ограничений. Конечно, задачи по содержанию должны быть понятны учащимися. Такие задачи часто решают в электронных таблицах, что, несомненно, является более доступным для большинства учеников. Но программирование решает свои задачи - привитие интереса к программированию и развитие культуры алгоритмического мышления.
Целью факультативных занятий считаю - развитие творческих способностей в процессе изучения новых информационных технологий, воспитание способности самостоятельно мыслить и творить. Решаемыми задачами являются - углубленное изучение темы «Программирование» в программном обеспечении «Турбо Паскаль», выявление учащихся с наибольшими способностями к программированию для участия в олимпиадах и обучения на факультативах.