23.10.2006

Методика преподавания темы «Понятие алгоритма. Программирование» в школьном курсе информатики

(Продолжение 2)

2.4.   Разработки  уроков

2.4.1.Лабораторные работы. 9 класс

Лабораторная работа № 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. Самостоятельная работа.

  • Написать программу вычисления площади  прямоугольного треугольника для а = 3; в = 4;
  • Написать программу вычисления площади трапеции для а = 2.3; в =4.5;  h = 5;
  • Найти остаток от деления целых чисел а, в и их целочисленное деление;
  • Расстояние между точками с координатами (x1,у1) и (x2,y2).

Лабораторная работа № 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. Самостоятельная работа.

  • Вычислите модули целых чисел от -5 до 5;
  • Найти остатки от деления числа  100 на числа в интервале  от 5 до 20;
  • Написать программу вычисления площадей прямоугольника с основанием 8 и значениями высоты от 2 до 8;
  • Получите на экране 10 случайных чисел от 0 до 15.

Лабораторная работа 3. Ввод и редактирование программ, содержащих ветвления. Операторы IF … THEN … ELSE.

Цель: Научиться вводить и редактировать разветвляющиеся программы.

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

Формат оператора (если <условие> то <оператор 1> иначе <оператор 2>;):

полная форма

сокращенная форма

if <условие> then <оператор 1>
else <оператор 2>;

  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. Самостоятельная работа.

  • Написать программу вычисления значения функции у =  для х = -6; -3; 0; 3; 6.
  • Вычислить значение  функции у =  при допустимых значениях аргумента.
  • Написать программу для решения линейного уравнения ах + в = с;
  • Вычислить значение  дискриминанта квадратного уравнения d = b2 – 4ac. Вывести на экран число корней уравнения в зависимости от значения дискриминанта этого уравнения.

Лабораторная работа 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. Самостоятельная работа.

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

2.4.2. Практические задания по теме «Основы алгоритмизации и объектно-ориентированного визуального программирования» в 11 классе

11 класс. Практическое задание 3.1. Создание графического интерфейса проекта.

Цель: Изучить интерфейс программы  и создать проект.

Visual Basic 5 CCE (Control Creation Edition) является полнофункциональной версией объектно-ориентированного языка программирования Visual Basic.  Системы этого программирования визуализиру-ют графический интерфейс программы, через создание объектов, их свойств, событий. Например:

Класс объектов

свойства

методы

события

Form (форма)
UserForm(форма)

Name(имя)   Caption(надпись)
Font(шрифт) Height(высота) Width(ширина)

Show(показать)
Move(переместить)

Load(загрузка)

CommandButton(командная кнопка)

Font(шрифт) Height(высота) Width(ширина)Name(имя)  Caption(надпись)

Move(переместить)

Click(щелчок)

TextBox(текстовое поле)

Name(имя)   Text(текст)
Font(шрифт) Height(высота) Width(ширина)

Move(переместить)

DbClick(двой-ной щелчек)

Интегрированная среда разработки языка Visual Basic. Проект 1. 

Запустить систему программирования 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.

 Практическое задание 3.2. Сортировка числового массива.

Цель: Разработаем проект, который позволит заполнять числовой массив целыми случайными числами, а затем предоставит возможность сортировать массив различными способами.      

 Проект 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
Private Sub cmdDim_Click()
Randomize
For bytI = 1 To 10
bytA(bytI) = Int(Rnd * 10)
txtDim.Text = txtDim.Text + Str(bytA(bytI))
Next bytI
End Sub

4

Запустить проект и несколько раз щелкнуть по кнопке Заполнить.

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

Поиск минимального элемента. Будем считать сначала, что минимальный элемент равен первому элементу массива bytA(1) и присвоим переменной bytMin его значение.

Затем в цикле сравним последовательно элементы массива со значением переменной bytMin, если какой-либо элемент окажется меньше, присвоим его значение переменной bytMin, а его индекс присвоим переменной bytN.  Распечатаем результаты.

5

Разместить на форме текстовое поле кнопку cmd2 и создать для нее событийную процедуру поиска минимального элемента:  

Private Sub cmdMin_Click()
bytMin = bytA(1)
For bytI = 2 To 10
If bytA(bytI) < bytMin Then bytMin = bytA(bytI): bytN = bytI
Next bytI
Print "Минимальный элемент "; bytMin; "его индекс"; bytN
End Sub

6

Запустить проект. Последовательно щелкать на кнопках Заполнить и Мин. элемент.

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

Сортировка по возрастанию методом перестановок. Идея алгоритма сортировки по возрастанию массива, состоящего из N элементов, методом перестановок элементов состоит в последовательном поиске минимальных элементов и их перемещении к началу массива с помощью перестановок с элементами, имеющими меньший индекс. На первом шаге находим минимальный элемент массива и меняем его местами с первым элементом массива. Остаются неупорядоченными N-1 элемент.

Проводим поиск минимального элемента среди элементов со 2 по N-1 и делаем перестановку. Повторяем процедуру поиска минимального элемента среди оставшихся неупорядоченных элементов многократно.  Повторение реализу-ем с помощью цикла со счетчиком, максимальное значение которого составляет N-1. В результате массив сортируется по возрастанию. 

Так как, поиск минимального элемента массива проводится многократно, реализуем рассмотренную ранее событийную процедуру cmdMin_Click() как общую процедуру МинЭле-мент (bytJ, bytN As Byte), где bytJ – является входным параметром, а bytN – выходным параметром.

7

Ввести программный код общей процедуры поиска минимального элемента:

Sub МинЭлемент(J, N As Byte)
'общая процедура поиска минимального элемента
bytMin = bytA(bytI)
bytN = bytI
For bytJ = bytI + 1 To 10
If bytA(bytJ)< bytMin Then bytMin = bytA(bytJ): bytN = bytJ
Next bytJ
End Sub

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

8

Поместить на форму текстовое поле txtSort и кнопку cmdSort.

9

Ввести программный код событийной процедуры сортировки массива:

Private Sub cmdSort_Click()
'событийная процедура сортировки
txtSort.Text = ""
For bytI = 1 To 9
'вызов общей процедуры поиска минимального элемента
Call МинЭлемент(bytJ, bytN)
'перестановка
bytR = bytA(bytI)
bytA(bytI) = bytA(bytN)
bytA(bytN) = bytR
'печать массива для каждого цикла сортировки
For bytK = 1 To 10
txtSort.Text = txtSort.Text + Str(bytA(bytK))
Next bytK
Next bytI
End Sub

10

Для большей наглядности разместить на форме две метки с номерами элементов массива (горизонтальная) и значениями счетчика цикла сортировки (вертикальная).

11

Запустить проект на выполнение. Щелкнуть по кнопкам Заполнить массив, Мин. элемент и Сортировка.

12

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

Практическое задание 3.3. Сортировка строкового массива.

Цель:  Разработать проект, который позволяет сортировать строковый массив (например, содержащий компьютерные термины) по алфавиту.         

Заполнение строкового массива. Как строковые, так и числовые массивы можно заполнять разными методами. Рассмотренный ранее числовой массив был заполнен непосредственно в самой программе, можно заполнять массивы, вводя данные с клавиатуры с использованием функции 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()
Open"E:\practicum\VisualBasic\project\project5\alphabet.txt" For Input As #1
For bytI = 1 To 33
Input #1, strA(bytI)
txtAlph.Text = txtAlph.Text + strA(bytI)
Next bytI
Close #1
End Sub

Произведем теперь чтение данных из файла term.txt в строковый массив с помощью цикла с предусловием. Это вариант используется, если заранее неизвестно количество элементов данных в файле, и в качестве условия используется функция EOF (End Off File):  EOF(Номер_файла)

Для визуализации заполнения строкового массива терминами удобно использовать управляющий элемент Окно списка (ListBox), который представляет собой упорядоченный список значений. Для размещения с окне списка нового элемента используется метод AddItem, который имеет в качестве аргумента строковую переменную, значение которой и добавляется в список. 

5

Поместить на форму кнопку cmdTerm и окно списка lstTerm, в котором можно наблюдать результат заполнения массива.

6

Создать событийную процедуру считывания данных из файла term.txt в строковый массив strB и его отображения в окне списка lstTerm:  

Private Sub cmdTerm_Click()
Open "E:\practicum\VisualBasic\project\project5\term.txt" For Input As #2
bytI = 1
Do Until EOF(2)
Input #2, strB(bytI)
lstTerm.AddItem strB(bytI)
bytI = bytI + 1
Loop
Close #2
End Sub

Сортировка массива.  В исходном строковом массиве strB термины хранятся в неупорядоченном виде. Сравним последовательно во внутреннем цикле со счетчиком bytI букву «а» алфавита с первыми символами терминов, в случае их совпадения присвоим первому элементу результирующего символьного массива  strC это значение. Повторим эту процедуру последовательно для всех букв алфавита с использованием внешнего цикла со счетчиком bytK. Получим упорядоченный строковый массив strC.

7

Поместить на форму кнопку cmdSort и создать событийную процедуру сортировки массива:

Private Sub cmdSort_Click()
bytJ = 1
For bytK = 1 To 33
For bytI = 1 To 10
If strA(bytK) = Left$(strB(bytI), 1) Then strC(bytJ) = strB(bytI): bytJ = bytJ + 1
Next bytI
Next bytK
End Sub

Визуализация отсортированного массива. Для визуализации отсортированного массива используем второе окно списка.

8

Поместить на форму кнопку cmdRez, окно списка lstSort и создать событийную процедуру визуализации отсортированного массива:

Private Sub cmdRez_Click()
For bytJ = 1 To 10
lstSort.AddItem strC(bytJ)
Next bytJ
End Sub

9

Запустить проект на выполнение. Последовательно щелкнуть по кнопкам Считать алфавит, Считать термины, Сортировать, Показать:

 Практическое задание 3.4. Мультисистемный калькулятор.

 Цель:   Создать электронный калькулятор.

Проект 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.

Для перевода чисел из восьмеричной системы счисления в десятичную воспользуемся функцией 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.

Задания для самостоятельного выполнения

  1. Создать проект вычисления факториала числа. Предусмотреть визуализацию процесса вычисления факториала.
  2. Создать проект, выводящий в текстовые поля текущее время и дату.
  3. Создать проект «Вывод сообщений», в котором на форму выводится текстовое сообщение «Первое задание выполнено!» с помощью метки и текстового поля, а выход из программы реализуется щелчком по кнопке Exit. Продумать графический интерфейс проекта.  
  4. Создать проект, реализующий поиск максимального элемента числового массива.
  5. Создать проект, реализующий сортировку числового массива по убыванию методом перестановок.
  6. Создать проект, реализующий сортировку массива по возрастанию «пузырьковым» методом.
  7. Преобразовать проект «Мультисистемный калькулятор» в проект «Инженерный калькулятор», который позволяет вычислять значение тригонометрических и других функций.
  8. Создать проект «Подсчет цифр в числе», который позволяет определить количество цифр во введенном натуральном десятичном числе.
  9. Создать проект «Печать цифр числа», который обеспечивает вывод на печать (по зонам) цифр, составляющих введенное целое десятичное число.

2.5.   Углубленное изучение темы «Понятие алгоритма. Программирование» на факультативах и во внеклассной работе

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

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

По традиционной методике сначала рассматривалась очередная алго­ритмическая конструкция, а затем демонстрировалось ее применение при решении задач. Такой подход (от теории к практике) оправдан только при наличии устойчивой мотивации, интереса к программированию. Используя методику ТРИЗ можно в некоторой степени подвести учащихся к конструированию основных видов алгоритмов, особенно в необходимости применения вспомогательных алгоритмов, подпрограмм. Программируя, можно показать общность процессов обработки информации разной природы, развить навыки информационной обработки без претензий на овладение профессиональной или научной терминологией.

Отсюда следует вторая особенность современного курса — проблем­ный подход (от практики к теории). Алгоритмические конструкции вводятся по мере необходимости при решении конкретных задач, и затем — в общем виде. Формы и методы обучения существенно зависят от возможности доступа школьников к компьютерам. Поэтому есть необходимость в изучения темы программирования во внеклассной работе.

Среди основных задач любого учителя – поддержание интереса школьников к изучаемому предмету. Один из способов достижения этого – решение занимательных по форме и содержанию задач. Педагогически оправданная занимательность имеет целью привлечь внимание к заданиям, активизировать деятельность учащихся, побудить их к работе с дополнительной литературой. Интерес к программированию, как правило, устойчивый, трудности не убавляют желание детей написать хоть, сколько угодно сложную программу. И чем сложнее программа, тем им интереснее. Интерес вызывает логическое программирование, когда компьютер выступает в роли «искусственного интеллекта». Особое место в программировании занимают задачи на сортировку. При решении прикладных задач, что является актуальным требованием настоящего времени, особое место занимает «линейное программирование». Термин «линейное программирование» характеризует определение программы (плана) работы конкретного экономического объекта на основе выявления линейных связей между его элементами. Задачей линейного программирования является  нахождение оптимального, т.е. наилучшего плана при заданной системе налагаемых на решение ограничений. Конечно, задачи по содержанию должны быть понятны учащимися. Такие задачи часто решают в электронных таблицах, что, несомненно, является  более доступным для большинства учеников. Но программирование решает свои задачи - привитие интереса к программированию и развитие культуры алгоритмического мышления.

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