Разработка обучающей программы, поддерживающей изучение темы "Структуры данных"

ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ

Физико-математический факультет

Курсовая работа по информатике

разработка обучающей программы, поддерживающей изучение темы «структуры данных»

Выполнил:

Студент 3 курса

группы м-31

очной формы обучения

Марков Роман

Научный руководитель:

Соболева Е.В.

Киров 2008 г.

Содержание

Глава 1. Анализ теоретического материала..........................................................4

1.1. «Информатика и ИКТ. Базовый курс» Семакин И.Г. и др. 4

1.1.1. Алгоритмы работы с величинами 4

1.1.2. Линейные вычислительные алгоритмы 5

1.1.3. Знакомство с языком Pascal. 6

1.1.4. Программирование ветвлений в Pascal. 7

1.1.5. Таблицы и массивы 8

1.1.6. Массивы 9

1.2. «Информатика» Кузнецов. 10

1.2.1. Язык программирования Pascal. 10

1.2.2. Структура программы на Pascal, ввод и вывод данных 12

1.2.3. Условный оператор 14

1.2.5. Алгоритмы обработки таблиц 17

1.2.6. Обработка строк на языке Pascal 19

1.2.7. Записи 20

1.2.8. Файлы 22

1.3. «Информатика и информационные технологии» Н. Угринович. 23

1.3.1. Тип, имя и значение переменной. 23

1.3.2. арифметические, строковые и логические выражения. Присваивание 25

1.3.3. Функции в языке Visual Basic 26

1.3.4. массивы 26

1.4. Вывод 26

Глава 2. описание и принцип работы обучающей программы.........................29

2.1. Общие сведения о программе. 29

2.2. Принцип работы программы. 32

2.2.1. Модуль регистрации пользователей 33

2.2.2. Модуль изучения материала 33

2.2.3. Модуль проверки знаний 33

Глава 1. Анализ теоретического материала по теме «структуры данных» в школьных учебниках информатики

1.1. «Информатика и ИКТ. Базовый курс» Семакин И.Г. и др.

В этом учебнике изучение программирования начинается после прохожде­ния тем «Базы данных» и «Электронные таблицы». По-этому обучаемые уже знакомы с такими типами данных, как числовой, символьный и логический, известными им, как типы полей в таблицах БД.

1.1.1. Алгоритмы работы с величинами

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

После вступления о способе хранения данных в программе «всякая обраба­тываемая величина занимает своё место – поле в памяти компьютера» из­лагается о 3х основных типах величин, изучаемых в учебнике: числовой, символьный, логический, устанавливаются различия между константами и переменными:

    «константы записываются своими десятичными записями в па­мяти, их значение не изменяется во время работы программы»;

    «переменные обозначаются, как в математике, символьными именами - идентификаторами».

Далее рассматриваются основные операции над переменными:

    Присваивание

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

Пример: Z:=X+Y

До присваивания

X

2

Y

5

Z

-

После присваивания

X

2

Y

5

Z

7

    Команда ввода

Ввод<список переменных>

Пример: ввод A, B, C

Схема выполнения команды

    память до выполнения команды

    A

    -

    B

    -

    C

    -

    получение команды, ожидание действий пользователя

    пользователь набирает на клавиатуре «1 2 3 <ввод>»

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

A

1

B

2

C

3

    команда вывода

вывод<список вывода>

задания по разделу:

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

1.1.2. Линейные вычислительные алгоритмы

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

Свойства присваивания иллюстрируются с помощью трассировочной таб­лицы:

Команда

a

b

a:=1

1

-

b:=2 x a

1

2

a:=b

2

2

b:=a + b

2

4


Свойства:

    пока переменной не присвоено значение она оста­ется неопределенной

    значение переменной сохраняется до следующего присваивания

    новое значение переменной заменяет предыдущее

Примеры:

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

    даны 2 правильные дроби, найти дробь – результат деления одной на вторую.

Решение сводится к правилам учебника математики.

Задания по разделу:

    когда значение переменной считается неопределенным?

    что происходит с предыдущим значением переменной после при­сваивания?

    можно ли в арифметическом выражении использовать неопределен­ную переменную?

1.1.3. Знакомство с языком Pascal

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

Описание переменных

Здесь описывается синтаксис описания переменных, основные типы (вещест­венный – real, целый - integer). Здесь только называются числовые типы: на­звания вещественный и целый полагается уже знакомыми ученикам, знание о диапазонах типов им пока не нужно.

Пример var a,b:integer;c:real;

Синтаксис операторов ввода, вывода, присваивания.

    Ввод - Read[ln](<список переменных>);

    Вывод - Write[ln](<список переменных>);

    Присваивание - <числовая переменная>:=<Арифметическое выраже­ние>;

    Арифметические операции +,-,*, /;

Правила записи арифметических выражений

Пример

Выражение записывается так

A*A+B*B-12*C или SQR(A)+SQR(B)-12*C

Задания по разделу:

    как записывается раздел описания переменных

    с какими типами числовых величин работает паскаль

    какая задача решается в <пример программы> программе

    как записываются арифметические выражения

1.1.4. Программирование ветвлений в Pascal

В этом параграфе не изучаются структуры данных, как таковые, но , в про­цессе изучения ветвлений изучаются логические операции и сложные логи­ческие выражения

Логические операции

Изучение вопроса начинается с примера программы

Var a,b,c,d: real;

Begin readln(a,b,c,d);

If (a>=b) and (a<=c) then d:=a;

If (b>=a) and (b>=c) then d:=b;

Здесь применяется неиспользуемое ранее логическое выражение and, с кото­рым обучаемые уже познакомились, изучая БД.

Далее ученикам напоминается эта операция и её результат, далее приводится список логических операций, используемых в паскале: and; or; not.

Сложные логические выражения

В этом разделе описывается структура сложных логических выражений в пас­кале:

If (a<0)or(b<0)or(c<0)then …

Задания по разделу:

    найдите результат работы программы (условный оператор со слож­ным условием)

1.1.5. Таблицы и массивы

В этом параграфе вводятся основные понятия о массивах: определение, опи­сание, ввод значений на ШАЯ, пример задачи – расчет среднего значения эле­ментов массива.

Школьники уже знакомы с принципом табличной организации данных из БД.

Что такое массив

Дается определение массива: М – представление таблиц в языках программи­рования.

Пример – запись температуры воздуха по месяцам

Месяц

1

2

3

4

5

6

7

8

9

10

11

12

температура

23

12

1

0

-1

-12

-1,2

2,2

2

3

0

-1

.

На основе этого примера вводится понятие линейной таблицы с индексиро­ванными именами, которая

«в программировании называется одномерным массивом.

В примере: Запись Т[1] в данном примере показывает температуру в 1 ме­сяце. Т - имя массива. Порядковый номер элемента – его индекс.

Каждый элемент обозначается так: <имя массива>[<индекс>]»

Так вводится имя массива и его элементов. Далее говорится, что элементы массива должны иметь одинаковый тип. (в примере - вещественный).

Описание и ввод значений в массив на ШАЯ

Здесь приводится два примера программ на ШАЯ, позволяющих понять, как выводятся и вводятся в массив значения. Для реализации используются цикл с параметром и цикл с предусловием.

Расчет среднего значения элементов массива

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

При решении (алгоритм приводится на ШАЯ) обучаемые знакомятся с цик­лом, суммирующем элементы массива.

Задания по разделу:

    что такое массив

    придумайте примеры данных, которые можно реализовать в виде массива

    решить задачу на формирование и расчет среднего элемента в мас­сивее

1.1.6. Массивы

В этом параграфе рассматриваются: описание и обработка массивов в Пас­кале, цикл с параметром в Паскале, форматы вывода и программы с двумя массивами.

Описание и обработка массива в паскале

Приводится общая форма описания одномерного массива:

var <имя масссива>: ar­ray[<нижний_индекс>..<верхний_индекс>] of <тип_массива>;

Для примера – описание массива из таблицы 1:

var t: array[1..12]of real;

далее рассматривается реализация задачи о средней температуре на Паскале, неизученными операторами в которой являются: ограничения на параметр цикла for (целое число, изменяющееся на 1 при прохождении цикла) и фор­маты вывода.

Пример write(‘T[1]=’,I:4:2);

Далее объясняется значение знаков в подобном примере.

Программа с двумя массивами

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

Задача: для каждого месяца определить отклонение его температуры от сред­негодовой величины.

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

Задания по разделу:

    как на паскале описать массив численности населения к концу каж­дого года 20 века

1.2. «Информатика» Кузнецов

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

1.2.1. Язык программирования Pascal

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

Основные определения.

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

    Ячейка последовательность разного количества байтов памяти для разных данных

    Для каждой переменной надо указывать её тип, чтобы трансля­тор знал, сколько памяти под ее хранение выделить

Числа в Паскале

Числа бывают целые и действительные (с фиксированной или плавающей точкой).

Переполнение ячейки памяти – значение переменной не входит в предостав­ленную ей ячейку. Для избегания переполнения используют вещественные числа с плавающей точкой.

Пример: 243,7 = 2.437 ∙ 102 = 2.4370000000 Е + 02

В примере показано, что 2437 – мантисса, 2 – порядок.

Числовые операции

    «+» - сложение

    «-» - вычитание

    «/» - деление

    «*» - умножение

    Mod – остаток от деления (только для целых чисел)

    Div - деление нацело (только для целых чисел)

    Математические выражения:

Sin(x); cos(x); ln(x); sqr(x); sqrt(x); abs(x);

Пример арифметического выражения в Pascal

Оператор присваивания

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

Примеры: x:=3,14; a:=b+c; i:=i+1;

Ограничения на типы при присваивании:

    Если переменная, расположенная слева имеет вещественный тип, то справа – арифметическое выражение: целое или вещественное

    Если переменная слева целого типа – арифметическое выражение – только целое

Задания по разделу

      Почему паскаль различает целые и вещественные числа

      Что такое арифметическое выражение, из чего оно может состо­ять

      Как работает оператор присваивания

      Ограничения на типы данных при присваивании

      Запишите в виде арифметического выражения квадратный трех­член

      Запишите на паскале tg x , x4

1.2.2. Структура программы на Pascal, ввод и вывод данных

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

Раздел описания переменных

Основные описатели числовых типов: integer, real

Пример var a,b:integer; c:real;

Объясняется синтаксис раздела (применение знаков « . » ; « , » ; « : » ; « ; ») и порядок работы транслятора: «Когда транслятор встречает описание пере­менной, он отводит для этой переменной ячейку памяти и ставит в соот­ветствие имени переменной номер первого байта ячейки.»

Операторы ввода и вывода

В разделе объясняется принцип работы с этими операторами:

«Для сообщения данных компьютеру служат операторы ввода и вывода.

Оператор ввода помещает вводимое значение переменной в отведенную ей ячейку: read(<список имен>); этот оператор останавливает работу программы и ждет, пока пользователь наберет на клавиатуре число и на­жмет <Enter>. Если список ввода содержит несколько имен, их значения надо вводить через запятую, пробел, или <Enter>.

Если после ввода числа необходимо перевести курсор на новую строку, ис­пользуют оператор readln(<список имен>);

Для вывода результатов работы программы на экран дисплея используется оператор write(<список вывода>);

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

При выводе вещественных чисел с фиксированной запятой необходимо после имени переменной в списке ввода указать через “:” 2 числа (сколько позиций занимает число, количество цифр дробной части).»

Задания по разделу

    Для чего необходимо описывать данные в программе

    Какой оператор используется для ввода данных, как он рабо­тает

    Куда попадают введенные с клавиатуры числа при работе оператора ввода

    Как перевести курсор на новую строку после ввода данных

    Как вывести на экран результат работы программы

    Как сделать, чтобы данные выводились с новой строки

    Как увидеть результаты вывода на экране дисплея, если уже сработал write

    Можно ли получить результат вычислений без использова­ния оператора Write

1.2.3. Условный оператор

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

Таблицы истинности для операций

X

Y

X AND Y

X

Y

X OR Y

1

1

1

1

1

1

1

0

0

1

0

1

0

1

0

0

1

1

0

0

0

0

0

0

X

NOT X

1

0

0

1


Примеры построения сложных логических выражений

    определить, принадлежит ли точка с координатой х отрезку [a,b].

Это условие записывается двойным неравенством a<x<b.

На паскале – (x>a) and (x<b).

    пройдет ли кирпич с ребрами x,y,z в отверстие a,b?

(a>x)and(b>y)or

(a>y)and(b>x)or

(a>x)and(b>z)or

(a>z)and(b>x)or

(a>y)and(b>z)or

(a>z)and(b>y)

    определить принадлежность точки к треугольнику ABC.

A(-1,0); B(0,2); C(1,0).

    условие существования треугольника со сторонами a,b,c.

1.2.4. Массивы

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

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

Определение массива

При решении задач данные объединяются в различные структуры, наиболее простая из них: массив – именованный набор с фиксированным количеством однотипных данных. В массивы объединяются результаты экспериментов, списки фамилий сотрудников, различные сложные структуры данных. В мас­сиве могут быть одинаковые данные, поэтому элементы массива различаются по своим порядковым номерам. Если каждый элемент массива имеет один порядковый номер, такой массив – одномерный, если два – это таблица из строк и столбцов. Для таблиц первый номер элемента показывает строку, второй – столбец, на пересечении которых находится элемент. Все строки таблицы имеют одинаковую длину.

При решении задач с использованием массива необходимо следовать алго­ритму:

    определить, какие числа даны, целые или вещественные

    назвать весь массив одним именем

    описать массив в разделе описания переменных, отведя тем са­мым место в памяти компьютера под массив.

    ввести данные в память.

Описание массивов в Pascal

Пример описания массива

const n=10;

Var a:array[1..n]of real;

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

Описание из примера означает, что для массива а отведено 10 ячеек по 6 байт каждая. Имена ячеек: в Паскале будут записаны: a[1],a[2],…,a[10].

Ввод и вывод данных массива осуществляется через цикл, например:

For i:=1 to n do read(a[i]);

Базовые задачи на массивы

    вычисление суммы элементов массива

Вычисление ничем не отличается от суммирования значений простых пере­менных.

Этапы решения:

    ввод данных;

    вычисление суммы;

    печать результатов;

{1} For i:=1 to n do read(a[i]);

{2} S:=0; For i:=1 to n do s:=s+a[i];

{3} Writeln(s);

Пример решения представлен в таблице:

Исходные данные: 3, -2, 9, 7, -1, 6, 1

i

1

2

3

4

5

6

7

a[i]

3

-2

9

7

-1

6

1

S

0

1

10

17

16

22

23

    нахождение наибольшего элемента массива

Чтобы лучше представить себе, как последовательно рассматривать и сравни­вать между собой числа, записанные в памяти, в учебнике предлагается вооб­разить, что каждое число написано на отдельной карточке и карточки сло­жены стопкой:

      первое число запомним, перевернем карточку

      сравниваем числа: первое видим, второе помним

      запомним большее, перевернем карточку

ТО на каждом этапе мы будем помнить большее из рассмотренных чисел и решим задачу.

Пример программы:

Max:=a[1];

For i:=2 to n do

if max<a[i] then max:=a[i];

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

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

    поиск элемента в массиве

пример поиска методом сплошного перебора, используется оператор goto.

Задания по разделу

    чем отличается массив от файла

    для чего необходимо описание массива

    может ли массив содержать разнородные данные

    в заданном массиве

    замените нулем наибольший элемент

    найдите полупроизведение всех положительных элементов

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

1.2.5. Алгоритмы обработки таблиц

В этом параграфе рассматривается двумерный массив(таблица), его описа­ние, основные задачи:

    вычисление суммы элементов главной диагонали квадратной таб­лицы

    нахождение наибольших элементов каждой строки таблицы

    нахождение сумм элементов столбцов таблицы

    перестановка строк таблицы

Описание двумерного массива

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

Если число строк таблицы = числу столбцов, то таблица – квадратная.

Основные задачи

    вычисление суммы элементов главной диагонали квадратной таб­лицы

алгоритм:

    ввести таблицу в память

    найти сумму элементов главной диагонали

    напечатать результат

при решении диагональ рассматривается, как одномерный массив

    нахождение наибольших элементов каждой строки таблицы.

Идея: рассматривать каждую строку, как одномерный массив

    нахождение сумм элементов столбцов таблицы

идея та же + операции можно совершать как над строками, так и над столб­цами таблицы

    перестановка строк в таблице

воспользоваться алгоритмом обмена значений 2х переменных + цикл по столбцам

Задания по разделу

    в квадратной неотрицательной таблице найдите квадратный корень произведения диагональных элементов

    найдите наибольший элемент квадратной таблицы

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

    в квадратной таблице найдите наибольший элемент диаго­нали

    поменяйте местами первую и последнюю строки прямоуголь­ной таблицы

1.2.6. Обработка строк на языке Pascal

В этом параграфе рассказывается о 2х новых для школьников типах данных – символах и строках, а также об основных операциях над ними

Символы

Для записи символа используется 1 байт памяти. Для данного, описывающего 1 символ используется описатель char. Символы объединяются в массивы. Значение символьного данного – любой символ клавиатуры в апострофах.

Символьные массивы обрабатываются теми же алгоритмами, что и числовые.

Строки

Строка – ограниченная апострофами последовательность любых символов.

Длина строки в паскале не должна превышать 255 символов.

Операции над строками (объединение, сравнение, присваивание)

    объединение

операция позволяет объединить 2 строки в одну, приписав к концу первой на­чало второй.

Пример

X:=’тепло’;

Y:=’ход’;

Z:=x+y;{получим - теплоход}

    сравнение

‘=’ – означает посимвольное совпадение строк

‘<,>’ – относятся к длинам строк

    присваивание – строковой переменной присваивается строковое выражение

    основные процедуры и функции

a:=length(s) – длина строки

s:=copy(строковое выражение, начальный символ, количество символов) – копирование части строки

a:=pos(подстрока, исх. строка) – поиск подстроки в строке(а-номер первого символа подстроки в исходной строке)

insert(вставляемая строка, исходная строка, целое число) – вставка подстроки в строку после данного символа

delete(строка, номер начала, количество символов) – удаление из строки дан­ное количество символов после данного элемента.

Пример программы

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

Задания по разделу

    чем отличается символьный тип данных от строковых

    используя символьный массив, определите, сколько слов в данном тексте, сколько букв «а» в данном слове

    дана строка с несколькими запятыми, получите слово между пер­вой и второй запятыми

1.2.7. Записи

В этом параграфе дается определение записи, описание её структуры на Паскале и простейшие примеры применения.

Определение записи

С одной стороны запись – последовательность байтов на носителе, ограни­ченная с двух сторон специальными признаками, с другой стороны, в связи со сложной её внутренней структурой, запись – совокупность разнородных дан­ных, описываемых и обрабатываемых, как единое целое.

Данные из которых состоит запись – поля.

Описание записи

Type

A = record

N:integer;

K:string;

F:array[1..5,5..10]of real;

End;

Var rec:a;

Примеры записей

    объект – физическое тело с измерениями a,b,c – длина, ширина, высота

    объект – товар, характеризующийся названием и ценой

    объект – дата рождения: день, месяц, год

Записи могут объединяться в массивы, например:

Type

A = record

N:integer;

K:string;

F:array[1..5,5..10]of real;

End;

Mas = array[1..n] of A;

Var masrec:mas;

Для обращения к полю записи используются сложные имена из имени записи из раздела var и имени поля, разделенных точкой: rec.n; rec.f[1,5]; mas­rec[1].f[2,8];

    Массив сведений о работниках предприятия(имя, должность, дата рождения, зарплата).

Операции над записями

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

Оператор присоединения – используется для краткости. Он позволяет при об­работке записи указать её имя только 1 раз: with список имен do оператор.

1.2.8. Файлы

В параграфе описаны основные этапы операций обработки файлов – чтения и записи

Операция записи

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

Этапы записи в файл

    описание файла – в разделе описания типов или переменных. При­мер: var f:file of integer; a:integer;

    Установление соответствия между физическим и логическим име­нем файла. Оператор установления соответствия: assign(логическое имя, ‘фи­зическое имя’); например assign(f,’file.dat’);

    открытие файла для операции запись – rewrite(f); если открыть для записи файл с имеющимися данными – они все пропадут.

    запись данных в файл – write(f,a);

    закрытие файла – close(f);

Операция чтения. Этапы:

Описание файла и установление соответствия между его именами также, как для записи.

    открытие файла для чтения – reset(f);

    читать данные из файла – read(f,a); количество записей в файле может быть неизвестно. По этому при чтении удобно использовать функцию признака конца файла – eof(f);

    закрыть файл

На каждую из операций показан простой пример чтения или записи в файл чисел.

Также показан прием дозаписи файла, использующий вспомогательный файл.

Задания по разделу

    какие операции можно производить с данными файла

    почему второй параметр операторов write и read должен быть того же типа, что и данные файла

    чем отличается физическое имя файла от логического

    как открыть файл для записи

    что будет, если ранее созданный файл с данными открыть для за­писи

    чем отличается файл от массива

    как прочесть данные из файла, не зная их количества

    как добавить данные в имеющийся файл

1.3. «Информатика и информационные технологии» Н. Угринович

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

1.3.1. Тип, имя и значение переменной

В этом параграфе даются основные понятия о переменных, их именах, зна­чениях, данных и типах.

Понятие переменной

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

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

Тип переменной

Тип переменной определяется типом данных, которые могут быть значениями переменной. Значениями переменных числовых типов являются числа, логи­ческих – True или False, строковых – последовательности символов и так да­лее.

Над различными типами данных допустимы различные операции. Над число­выми – арифметические операции, над логическими – логические операции, над строковыми – операции преобразования символтных строк и так далее.

Различные типы данных требуют для своего хранения в памяти различное ко­личество ячеек (байтов).

{таблица типов данных и их размеров в памяти}

Задания по разделу

    В чем разница между типом, именем и значением переменной?

    Определить, какой диапазон чисел может храниться в переменной типа {тип} с учетом выделения одного байта для хранения знака числа.

    Определить, какое количество ячеек памяти потребуется для хране­ния строк “ЭВМ”, “информатика”.

1.3.2. арифметические, строковые и логические выражения При­сваивание

В параграфе описаны выражения, которые можно составить с основными типами данных – числовой, логический, строковый.

Арифметические выражения

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

Строковые выражения

В состав строковых выражений могут входить переменные строкового типа, строки и строковые функции.

Над переменными и строками может производиться операция конкатенации, она заключается в объединении строки или значения строковых переменных в единую строку. Операция обозначается знаком «+».

Логические выражения

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

Например (5>3) = true; (2*2 = 5) = false;

Над элементами логических выражений могут производиться логические опе­рации – логическое умножение(and), логическое сложение(or), логическое от­рицание(not).

Задания по разделу

    Могут ли в состав одного выражения входить переменные различ­ных типов?

    В чем разница между операцией логического сложения и опера­цией конкатенации?

1.3.3. Функции в языке Visual Basic

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

Функции перевода типов данных

Применительно к Pascal в этом разделе можно упомянуть такие процедуры, как STR(a); VAL(s,a,b);

Математические функции

Здесь упомянуты такие математические числовые функции, как

Sin, cos, tan, atn, sqr, sqrt, log, exp, random, abs.

Строковые функции

    Функция длины строки

    Функция вырезания подстроки

Функции ввода и вывода

Аналог в паскале – readln, writeln

1.3.4. массивы

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

Задания по разделу

    в чем различие между переменной и массивом

      Вывод

Сравнительная характеристика вышеописанных учебников по изучаемым те­мам приведена в таблице:

учебники

темы

учебник Кузнецова

учебник Семакина

учебник|Угриновича

Основные поня­тия

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

Арифметические выражения

перечислены 4 основ­ных операции (+,-,/,*) и правила их записи, операторы ввода, вы­вода, присваивания кратко – раздел опи­сания

4 основных операции + sin, cos, ln, sqr, sqrt,abs, пример за­писи выражения, раз­дел описания, опера­торы ввода, вывода, присваивания

даны все, используе­мые в среде VB, типы, их диапазоны, применяемые опера­ции, в том числе пре­образования типов

логические выра­жения

не вводится как тип, но показаны примеры использования логи­ческих выражений в условиях циклов и условного оператора

не вводится как тип, но рассмотрены ос­новные логические операции и примене­ние их в сложных ус­ловиях

выделен логический тип, рассмотрены все правила логики и их применение в коде программы

массивы

(1-о и 2-мерные)

определение 1мерного массива, его описание, ввод-вывод данных, нахождение среднего значения.

определение 1,2мерного массива, ввод, вывод, описание, задачи на нахождение суммы, наи­большего элемента, упорядочивание и поиск

строки

не вводятся как тип, используются только как подсказки для операторов вывода и ввода

определение типов char и string, операции объединения, срав­нения, присваивания, удаления части строки

определение строко­вого типа, опера­ции сложения, опре­деле­ния длины, выре­зания подстроки, преобра­зования типов

записи

Не рассматриваются

Определение, при­меры описания и ис­пользования

не рассматриваются

файлы

определение, описа­ние, операции чтения, записи, функция конца файла, при­меры

Более полное раскрытие тем наблюдается в учебнике Кузнецова.

В учебнике Семакина изложение ведется применительно к нескольким разде­лам (программирование, БД и Электронные таблицы).

В процессе изучения типов данных более полно во всех учебниках изучаются числовые типы данных – integer и real. Также, в каждом учебнике изучаются одномерные массивы, даются основные понятия и неявное применение пере­менных логического типа.

В учебнике Кузнецова, в отличие от Семакина, рассматриваются двумерные массивы, строки, записи и файлы.

В обоих учебниках, в отличие от учебника Угриновича, тема раскрывается параллельно с другими структурами языка, по мере необходимости примене­ния нового материала, есть разделы, которые можно дополнить, расширить и систематизировать.

В качестве контрольных заданий применяются, вместе с теоретическими во­просами на знание материала такие задания, как:

    Написать программу для реализации какой либо ситуации

    Определить результат действия программы.

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

Глава 2. Описание и принцип работы обучающей программы по теме «структуры данных»

2.1. Общие сведения о программе

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

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

Для контроля работы пользователей, в про­грамме пре­дусмотрена функция «показать оценки».


Далее, после регистрации, пользователю предлагается выбрать тему для изу­чения.

Здесь также показаны оценки за каждую из изученных тем.

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

После выбора темы открывается окно с обучающим текстом. Процесс работы с ним мало отличается от просмотра страниц Internet.

Переходы по страницам материала осуществляются тремя способами:

    кнопки «назад» и «вперед»

    гиперссылки в тексте материала

    список тем и разделов в левой части формы

Функции всех кнопок дублируются в строке меню программы.

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

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

В программе предусмотрено 5 вариантов теста для каждой темы, вариант вы­бирается случайно при каждом открытии теста.

Количество вопросов и вариантов ответа может быть различным (в зависимо­сти от составленного теста), оценка выставляется по формуле:

(5*кол-во верных ответов)div(кол-во вопросов).

Пройдя тест и нажав на кнопку «проверить», пользователь может увидеть не только оценку за тест, но и список тем, которые нужно повторить, чтобы улучшить результаты. Список правильных ответов НЕ выводится.

Время прохождения теста также ограничено и определяется при его составле­нии.

Во время работы пользователь может контролировать время решения теста по таймеру и двум прогрессбарам (первый показывает время решения текущего задания, второй – всего теста).

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

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

Прервать выполнение теста пользователь может в любой момент, нажав соот­ветствующую кнопку.

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

Процесс редактирования прост и нагляден, не требует дополнительного пояс­нения. Для редактирования других модулей программы (тестов и определе­ний) созданы вспомогательные программы: Testmaker.exe и Defedit.exe, вход в которые также осуществляется по паролю 9091433506.

2.2. Принцип работы программы

Программа состоит из трех главных модулей:

    Модуль регистрации пользователей;

    Модуль изучения материала;

    Тестовый модуль (проверка знаний)

И пяти вспомогательных, на которых, для краткости, останавливаться не бу­дем.

2.2.1. Модуль регистрации пользователей

Принцип работы модуля основан на записи и чтении из файла «users.dat» ос­новной информации о пользователях:

    Имя

    Пароль для входа в программу

    Оценки за выполнение каждого раздела программы.

Структура реализована в форме файла из записей.

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

2.2.2. Модуль изучения материала

Основан на файле «forms.dat» и файлов вида «mn.rtf», где m, n – номер темы и раздела соответственно, которым принадлежит материал файла.

Вся информация об отображаемом на форме материале хранится в файле «forms.dat», а именно:

    Название раздела

    Имена, положение гиперссылок и номера разделов, на которые они ссылаются

    Положение, размер, и адрес картинок, отображаемых на форме

    Количество разделов в теме

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

2.2.3. Модуль проверки знаний

Основан на текстовых файлах с вопросами теста. Ответы на тест располага­ются ОТДЕЛЬНО от вопросов в файле «test.dat», в котором хранится массив записей – данных для отображения нужного вопроса теста.

Поля записи:

    Имя файла с вопросом теста

    Время на выполнение каждого вопроса

    Массив ответов

    Номер верного ответа

    Адрес страницы обучающего материала, на которой рассмотрено и решение вопроса.

    Адрес картинки, подгружаемой, при необходимости к вопросу ирррррр теста.

Это основные принципы работы программы, более детально их можно рас­смотреть, ознакомившись с кодом программы.

Программу можно скачать по адресу: fizmath.net\kurs.rar