Разработка обучающей программы, поддерживающей изучение темы "Структуры данных"
Разработка обучающей программы, поддерживающей изучение темы "Структуры данных"
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ Физико-математический факультет Курсовая работа по информатике разработка обучающей программы, поддерживающей изучение темы «структуры данных» Выполнил: Студент 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 Схема выполнения команды 1. память до выполнения команды 2. получение команды, ожидание действий пользователя 3. пользователь набирает на клавиатуре «1 2 3 <ввод>» 4. память после выполнения команды - команда вывода вывод<список вывода> задания по разделу: отразить значения переменных в ходе последовательного выполнения команд присваивания 1.1.2. Линейные вычислительные алгоритмы В этом параграфе подробно изучается оператор присваивания: его свойства, примеры применения Свойства присваивания иллюстрируются с помощью трассировочной таб-лицы: |
Команда a b
a:=1 1 -
b:=2 x a 1 2
a:=b 2 2
b:=a + b 2 4
| Свойства: 1. пока переменной не присвоено значение она оста-ется неопределенной 2. значение переменной сохраняется до следующего присваивания 3. новое значение переменной заменяет предыдущее | | |
Примеры: 1. обмен значениями 2х переменных. Для решения применяется аналогия с двумя стаканами (с молоком и водой) для смены значений которых использу-ется третий, после которой решение становится очевидным. 2. даны 2 правильные дроби, найти дробь - результат деления одной на вторую. Решение сводится к правилам учебника математики. Задания по разделу: 1. когда значение переменной считается неопределенным? 2. что происходит с предыдущим значением переменной после при-сваивания? 3. можно ли в арифметическом выражении использовать неопределен-ную переменную? 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. как записывается раздел описания переменных 2. с какими типами числовых величин работает паскаль 3. какая задача решается в <пример программы> программе 4. как записываются арифметические выражения 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.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. что такое массив 2. придумайте примеры данных, которые можно реализовать в виде массива 3. решить задачу на формирование и расчет среднего элемента в мас-сивее 1.1.6. Массивы В этом параграфе рассматриваются: описание и обработка массивов в Пас-кале, цикл с параметром в Паскале, форматы вывода и программы с двумя массивами. Описание и обработка массива в паскале Приводится общая форма описания одномерного массива: var <имя масссива>: ar-ray[<нижний_индекс>..<верхний_индекс>] of <тип_массива>; Для примера - описание массива из таблицы 1: var t: array[1..12]of real; далее рассматривается реализация задачи о средней температуре на Паскале, неизученными операторами в которой являются: ограничения на параметр цикла for (целое число, изменяющееся на 1 при прохождении цикла) и фор-маты вывода. Пример write(`T[1]=',I:4:2); Далее объясняется значение знаков в подобном примере. Программа с двумя массивами В этом учебнике не изучаются двумерные массивы, по этому для решения задач с их применением используется другой подход: Задача: для каждого месяца определить отклонение его температуры от сред-негодовой величины. В качестве решения сначала строится таблица в excel, в которой решается эта задача, затем показывается, как с помощью второго одномерного массива ее решить. Задания по разделу: 1. как на паскале описать массив численности населения к концу каж-дого года 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; Ограничения на типы при присваивании: - Если переменная, расположенная слева имеет вещественный тип, то справа - арифметическое выражение: целое или вещественное - Если переменная слева целого типа - арифметическое выражение - только целое Задания по разделу 1) Почему паскаль различает целые и вещественные числа 2) Что такое арифметическое выражение, из чего оно может состо-ять 3) Как работает оператор присваивания 4) Ограничения на типы данных при присваивании 5) Запишите в виде арифметического выражения квадратный трех-член 6) Запишите на паскале tg x , x4
1.2.2. Структура программы на Pascal, ввод и вывод данных В параграфе описаны основные структуры программы на паскале, в том числе разделы описания переменных и типов, операторы ввода и вывода. Раздел описания переменных Основные описатели числовых типов: integer, real Пример var a,b:integer; c:real; Объясняется синтаксис раздела (применение знаков « . » ; « , » ; « : » ; « ; ») и порядок работы транслятора: «Когда транслятор встречает описание пере-менной, он отводит для этой переменной ячейку памяти и ставит в соот-ветствие имени переменной номер первого байта ячейки.» Операторы ввода и вывода В разделе объясняется принцип работы с этими операторами: «Для сообщения данных компьютеру служат операторы ввода и вывода. Оператор ввода помещает вводимое значение переменной в отведенную ей ячейку: read(<список имен>); этот оператор останавливает работу программы и ждет, пока пользователь наберет на клавиатуре число и на-жмет <Enter>. Если список ввода содержит несколько имен, их значения надо вводить через запятую, пробел, или <Enter>. Если после ввода числа необходимо перевести курсор на новую строку, ис-пользуют оператор readln(<список имен>); Для вывода результатов работы программы на экран дисплея используется оператор write(<список вывода>); список вывода содержит перечисленные через запятую имена переменных или арифметические действия, текст, заключенный в апострофы. При выводе вещественных чисел с фиксированной запятой необходимо после имени переменной в списке ввода указать через “:” 2 числа (сколько позиций занимает число, количество цифр дробной части).» Задания по разделу 1) Для чего необходимо описывать данные в программе 2) Какой оператор используется для ввода данных, как он рабо-тает 3) Куда попадают введенные с клавиатуры числа при работе оператора ввода 4) Как перевести курсор на новую строку после ввода данных 5) Как вывести на экран результат работы программы 6) Как сделать, чтобы данные выводились с новой строки 7) Как увидеть результаты вывода на экране дисплея, если уже сработал write 8) Можно ли получить результат вычислений без использова-ния оператора 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
| | |
Примеры построения сложных логических выражений 1. определить, принадлежит ли точка с координатой х отрезку [a,b]. Это условие записывается двойным неравенством a<x<b. На паскале - (x>a) and (x<b). 2. пройдет ли кирпич с ребрами 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) 3. определить принадлежность точки к треугольнику ABC. A(-1,0); B(0,2); C(1,0). 4. условие существования треугольника со сторонами a,b,c. 1.2.4. Массивы В этом параграфе дается определение массива, поясняется область приме-нения этой структуры, синтаксис паскаля для работы с массивом. Рассмотрены также основные действия над одномерными массивами: вы-числение суммы элементов массива, нахождение наибольшего элемента мас-сива, сортировка массива, поиск элемента в массиве. Определение массива При решении задач данные объединяются в различные структуры, наиболее простая из них: массив - именованный набор с фиксированным количеством однотипных данных. В массивы объединяются результаты экспериментов, списки фамилий сотрудников, различные сложные структуры данных. В мас-сиве могут быть одинаковые данные, поэтому элементы массива различаются по своим порядковым номерам. Если каждый элемент массива имеет один порядковый номер, такой массив - одномерный, если два - это таблица из строк и столбцов. Для таблиц первый номер элемента показывает строку, второй - столбец, на пересечении которых находится элемент. Все строки таблицы имеют одинаковую длину. При решении задач с использованием массива необходимо следовать алго-ритму: 1. определить, какие числа даны, целые или вещественные 2. назвать весь массив одним именем 3. описать массив в разделе описания переменных, отведя тем са-мым место в памяти компьютера под массив. 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. вычисление суммы элементов массива Вычисление ничем не отличается от суммирования значений простых пере-менных. Этапы решения: - ввод данных; - вычисление суммы; - печать результатов; … {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 | | |
2. нахождение наибольшего элемента массива Чтобы лучше представить себе, как последовательно рассматривать и сравни-вать между собой числа, записанные в памяти, в учебнике предлагается вооб-разить, что каждое число написано на отдельной карточке и карточки сло-жены стопкой: - первое число запомним, перевернем карточку - сравниваем числа: первое видим, второе помним - запомним большее, перевернем карточку ТО на каждом этапе мы будем помнить большее из рассмотренных чисел и решим задачу. Пример программы: … Max:=a[1]; For i:=2 to n do if max<a[i] then max:=a[i]; … 3. упорядочивание массива по возрастанию При решении задачи используется сортировка методом пузырька. 4. поиск элемента в массиве пример поиска методом сплошного перебора, используется оператор goto. Задания по разделу 1) чем отличается массив от файла 2) для чего необходимо описание массива 3) может ли массив содержать разнородные данные 4) в заданном массиве § замените нулем наибольший элемент § найдите полупроизведение всех положительных элементов § замените все отрицательные числа их модулями и т. п.
1.2.5. Алгоритмы обработки таблиц В этом параграфе рассматривается двумерный массив(таблица), его описа-ние, основные задачи: - вычисление суммы элементов главной диагонали квадратной таб-лицы - нахождение наибольших элементов каждой строки таблицы - нахождение сумм элементов столбцов таблицы - перестановка строк таблицы Описание двумерного массива Для лучшего наглядного представления двумерный массив представляется в учебнике, как таблица, в которой номер строки обозначается первым индек-сом двумерного массива, столбцы - вторым. Объясняется так же, как хра-нится массив в памяти компьютера (построчно, строка за строкой). Если число строк таблицы = числу столбцов, то таблица - квадратная. Основные задачи 1. вычисление суммы элементов главной диагонали квадратной таб-лицы алгоритм: (1) ввести таблицу в память (2) найти сумму элементов главной диагонали (3) напечатать результат при решении диагональ рассматривается, как одномерный массив 2. нахождение наибольших элементов каждой строки таблицы. Идея: рассматривать каждую строку, как одномерный массив 3. нахождение сумм элементов столбцов таблицы идея та же + операции можно совершать как над строками, так и над столб-цами таблицы 4. перестановка строк в таблице воспользоваться алгоритмом обмена значений 2х переменных + цикл по столбцам Задания по разделу 1) в квадратной неотрицательной таблице найдите квадратный корень произведения диагональных элементов 2) найдите наибольший элемент квадратной таблицы 3) в прямоугольной таблице замените все элементы их квадра-тами 4) в квадратной таблице найдите наибольший элемент диаго-нали 5) поменяйте местами первую и последнюю строки прямоуголь-ной таблицы 1.2.6. Обработка строк на языке Pascal В этом параграфе рассказывается о 2х новых для школьников типах данных - символах и строках, а также об основных операциях над ними Символы Для записи символа используется 1 байт памяти. Для данного, описывающего 1 символ используется описатель char. Символы объединяются в массивы. Значение символьного данного - любой символ клавиатуры в апострофах. Символьные массивы обрабатываются теми же алгоритмами, что и числовые. Строки Строка - ограниченная апострофами последовательность любых символов. Длина строки в паскале не должна превышать 255 символов. Операции над строками (объединение, сравнение, присваивание) 1. объединение операция позволяет объединить 2 строки в одну, приписав к концу первой на-чало второй. Пример X:='тепло'; Y:='ход'; Z:=x+y;{получим - теплоход} 2. сравнение `=' - означает посимвольное совпадение строк `<,>' - относятся к длинам строк 3. присваивание - строковой переменной присваивается строковое выражение 4. основные процедуры и функции a:=length(s) - длина строки s:=copy(строковое выражение, начальный символ, количество символов) - копирование части строки a:=pos(подстрока, исх. строка) - поиск подстроки в строке(а-номер первого символа подстроки в исходной строке) insert(вставляемая строка, исходная строка, целое число) - вставка подстроки в строку после данного символа delete(строка, номер начала, количество символов) - удаление из строки дан-ное количество символов после данного элемента. Пример программы В качестве примера использования строковых процедур и функций использу-ется программа пословного перевода с английского языка. Задания по разделу 1. чем отличается символьный тип данных от строковых 2. используя символьный массив, определите, сколько слов в данном тексте, сколько букв «а» в данном слове 3. дана строка с несколькими запятыми, получите слово между пер-вой и второй запятыми
1.2.7. Записи В этом параграфе дается определение записи, описание её структуры на Паскале и простейшие примеры применения. Определение записи С одной стороны запись - последовательность байтов на носителе, ограни-ченная с двух сторон специальными признаками, с другой стороны, в связи со сложной её внутренней структурой, запись - совокупность разнородных дан-ных, описываемых и обрабатываемых, как единое целое. Данные из которых состоит запись - поля. Описание записи Type A = record N:integer; K:string; F:array[1..5,5..10]of real; End; Var rec:a; Примеры записей 1. объект - физическое тело с измерениями a,b,c - длина, ширина, высота 2. объект - товар, характеризующийся названием и ценой 3. объект - дата рождения: день, месяц, год Записи могут объединяться в массивы, например: 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]; 4. Массив сведений о работниках предприятия(имя, должность, дата рождения, зарплата). Операции над записями В программе ввод и вывод записи производится по полям, но можно присво-ить одной записи значение другой, при этом происходит копирование области памяти. Оператор присоединения - используется для краткости. Он позволяет при об-работке записи указать её имя только 1 раз: with список имен do оператор. 1.2.8. Файлы В параграфе описаны основные этапы операций обработки файлов - чтения и записи Операция записи Запись в файл - помещение в него новых данных. Данное для занесения в файл формируется в оперативной памяти как значение некоторой перемен-ной. Операцией записи это значение копируется из оперативной памяти во внешнюю. Следовательно, форма представления данного, его тип и структура должны быть одинаковы и для записей файла и для переменной, из которой это данное копируется. Этапы записи в файл 1. описание файла - в разделе описания типов или переменных. При-мер: var f:file of integer; a:integer; 2. Установление соответствия между физическим и логическим име-нем файла. Оператор установления соответствия: assign(логическое имя, `фи-зическое имя'); например assign(f,'file.dat'); 3. открытие файла для операции запись - rewrite(f); если открыть для записи файл с имеющимися данными - они все пропадут. 4. запись данных в файл - write(f,a); 5. закрытие файла - close(f); Операция чтения. Этапы: Описание файла и установление соответствия между его именами также, как для записи. 3. открытие файла для чтения - reset(f); 4. читать данные из файла - read(f,a); количество записей в файле может быть неизвестно. По этому при чтении удобно использовать функцию признака конца файла - eof(f); 5. закрыть файл На каждую из операций показан простой пример чтения или записи в файл чисел. Также показан прием дозаписи файла, использующий вспомогательный файл. Задания по разделу 1. какие операции можно производить с данными файла 2. почему второй параметр операторов write и read должен быть того же типа, что и данные файла 3. чем отличается физическое имя файла от логического 4. как открыть файл для записи 5. что будет, если ранее созданный файл с данными открыть для за-писи 6. чем отличается файл от массива 7. как прочесть данные из файла, не зная их количества 8. как добавить данные в имеющийся файл
1.3. «Информатика и информационные технологии» Н. Угринович В этом учебнике, в отличие от вышеописанных, изучение темы ведется не по-путно с другими темами, а отдельно, для этого выделено несколько парагра-фов. Поскольку в этом учебнике изучается другая среда программирования, остановимся только на структуре изложения материала.
1.3.1. Тип, имя и значение переменной В этом параграфе даются основные понятия о переменных, их именах, зна-чениях, данных и типах. Понятие переменной Переменные задаются именами, определяющими области памяти, в которых хранятся значения переменных. Значениями переменных могут быть данные различных типов (целые, вещественные числа, последовательности символов и так далее). Переменная в программе представлена именем и служит для обращения к данным определенного типа. Конкретное значение переменной хранится в ячейках оперативной памяти. Тип переменной Тип переменной определяется типом данных, которые могут быть значениями переменной. Значениями переменных числовых типов являются числа, логи-ческих - True или False, строковых - последовательности символов и так да-лее. Над различными типами данных допустимы различные операции. Над число-выми - арифметические операции, над логическими - логические операции, над строковыми - операции преобразования символтных строк и так далее. Различные типы данных требуют для своего хранения в памяти различное ко-личество ячеек (байтов). {таблица типов данных и их размеров в памяти} Задания по разделу 1) В чем разница между типом, именем и значением переменной? 2) Определить, какой диапазон чисел может храниться в переменной типа {тип} с учетом выделения одного байта для хранения знака числа. 3) Определить, какое количество ячеек памяти потребуется для хране-ния строк “ЭВМ”, “информатика”. 1.3.2. арифметические, строковые и логические выражения При-сваивание В параграфе описаны выражения, которые можно составить с основными типами данных - числовой, логический, строковый. Арифметические выражения В состав арифметических выражений могут входить кроме переменных чи-слового типа, также и числа, над переменными и числами могут произво-диться различные арифметические операции, выраженные с помощью функ-ций. Строковые выражения В состав строковых выражений могут входить переменные строкового типа, строки и строковые функции. Над переменными и строками может производиться операция конкатенации, она заключается в объединении строки или значения строковых переменных в единую строку. Операция обозначается знаком «+». Логические выражения В состав логических выражений кроме логических переменных могут входить числа, числовые или строковые переменные или выражения, которые сравни-ваются между собой при помощи операций сравнения. Например (5>3) = true; (2*2 = 5) = false; Над элементами логических выражений могут производиться логические опе-рации - логическое умножение(and), логическое сложение(or), логическое от-рицание(not). Задания по разделу 1) Могут ли в состав одного выражения входить переменные различ-ных типов? 2) В чем разница между операцией логического сложения и опера-цией конкатенации? 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. массивы Изложение материала мало отличается от предыдущих учебников. Задания по разделу 1. в чем различие между переменной и массивом
1.4. Вывод Сравнительная характеристика вышеописанных учебников по изучаемым те-мам приведена в таблице: |
учебники темы | учебник Кузнецова | учебник Семакина | учебник|Угриновича | | Основные поня-тия | раскрытие темы в равной степени наблюдается во всех учебниках, да-ется определение основных понятий, перечислены и охарактеризованы основные числовые типы | | Арифметические выражения | перечислены 4 основ-ных операции (+,-,/,*) и правила их записи, операторы ввода, вы-вода, присваивания кратко - раздел опи-сания | 4 основных операции + sin, cos, ln, sqr, sqrt,abs, пример за-писи выражения, раз-дел описания, опера-торы ввода, вывода, присваивания | даны все, используе-мые в среде VB, типы, их диапазоны, применяемые опера-ции, в том числе пре-образования типов | | логические выра-жения | не вводится как тип, но показаны примеры использования логи-ческих выражений в условиях циклов и условного оператора | не вводится как тип, но рассмотрены ос-новные логические операции и примене-ние их в сложных ус-ловиях | выделен логический тип, рассмотрены все правила логики и их применение в коде программы | | массивы (1-о и 2-мерные) | определение 1мерного массива, его описание, ввод-вывод данных, нахождение среднего значения. | определение 1,2мерного массива, ввод, вывод, описание, задачи на нахождение суммы, наи-большего элемента, упорядочивание и поиск | | строки | не вводятся как тип, используются только как подсказки для операторов вывода и ввода | определение типов char и string, операции объединения, срав-нения, присваивания, удаления части строки | определение строко-вого типа, опера-ции сложения, опре-деле-ния длины, выре-зания подстроки, преобра-зования типов | | записи | Не рассматриваются | Определение, при-меры описания и ис-пользования | не рассматриваются | | файлы | | определение, описа-ние, операции чтения, записи, функция конца файла, при-меры | | | |
Более полное раскрытие тем наблюдается в учебнике Кузнецова. В учебнике Семакина изложение ведется применительно к нескольким разде-лам (программирование, БД и Электронные таблицы). В процессе изучения типов данных более полно во всех учебниках изучаются числовые типы данных - integer и real. Также, в каждом учебнике изучаются одномерные массивы, даются основные понятия и неявное применение пере-менных логического типа. В учебнике Кузнецова, в отличие от Семакина, рассматриваются двумерные массивы, строки, записи и файлы. В обоих учебниках, в отличие от учебника Угриновича, тема раскрывается параллельно с другими структурами языка, по мере необходимости примене-ния нового материала, есть разделы, которые можно дополнить, расширить и систематизировать. В качестве контрольных заданий применяются, вместе с теоретическими во-просами на знание материала такие задания, как: - Написать программу для реализации какой либо ситуации - Определить результат действия программы. На основании сделанных выводов решено создать дополнительное обучаю-щее средство в виде обучающей программы, поддерживающей индивидуаль-ное изучение всех вопросов темы, а также, дополнительные сведения о типах данных. Кроме того, в программу будет встроен блок самоконтроля, поддер-живающий проверку усвоения каждой изучаемой темы. Глава 2. Описание и принцип работы обучающей программы по теме «структуры данных» 2.1. Общие сведения о программе Программа представляет собой электронный учебник со встроенным средством самокон-троля и проверки знаний. После запуска программы открывается окно регистра-ции, в котором пользователь может зарегистрироваться, нажав соответствующую кнопку, или продолжить ра-боту, выбрав свое имя из списка и введя свой пароль. Для контроля работы пользователей, в про-грамме пре-дусмотрена функция «показать оценки». Далее, после регистрации, пользователю предлагается выбрать тему для изу-чения. Здесь также показаны оценки за каждую из изученных тем. Предполагается, что изучение тем происходит в порядке их расположения в списке тем. При нарушении этого условия пользователю будет выведено со-общение об ошибке. После выбора темы открывается окно с обучающим текстом. Процесс работы с ним мало отличается от просмотра страниц Internet. Переходы по страницам материала осуществляются тремя способами: 1. кнопки «назад» и «вперед» 2. гиперссылки в тексте материала 3. список тем и разделов в левой части формы Функции всех кнопок дублируются в строке меню программы. Пользователю доступен также словарь, составленный из новых слов, упот-ребляемых в тексте. После прочтения очередного раздела программа предлагает пройти тест для проверки усвоения темы. В программе предусмотрено 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
|