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

Посмотреть архив целиком

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


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






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


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




Выполнил:

Студент 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. память до выполнения команды

    A

    -

    B

    -

    C

    -

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

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

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

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


Свойства:

  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

  1. пройдет ли кирпич с ребрами 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)

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

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

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


1.2.4. Массивы

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

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

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

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

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

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

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

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

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

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

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

const n=10;

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

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


Случайные файлы

Файл
123519.rtf
26424.rtf
15976-1.rtf
10862.rtf
6019-1.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.