
2.2 Инструменты разработки
Инструментами разработки будут являться:
среда программирования Turbo Pascal;
среда визуального программирования Delphi;
операционная система семейства Windows.
Язык программирования Turbo Pascal представляет собой интегрированную интерактивную среду (Interactive Development Environment-IDE). Интерактивность подразумевает наличие диалогового режима работы, т.е. обмена данных между человеком и машиной в темпе, соизмеримом с темпом обработки данных человеком. Интегрированность среды означает, что она объединяет в себе средства различного назначения, например, в IDE Turbo Pascal 7.0 входят: текстовый редактор, компилятор, компоновщик (редактор связей), запускающая программа, отладчик, справочная подсистема. И это позволяет, не выходя из среды, проводить полный цикл операций редактирование, компиляция, запуск, просмотр результатов работы и отладка. Под интерфейсом в программировании обычно понимают способ взаимодействия программы с окружающей средой, в частном случае - с пользователем. ИнтерфейссредыTP7.0реализуетсяспомощьютрехсоставляющих:строка меню в верхней части экрана, оперативная область и строка состояния в нижней части экрана. Строка меню в верхнейчастиэкранасостоит из списка предлагаемыхальтернатив:File(работасфайлами),Edit(редактированиетекста), Search(поиск), Run (запуск), Compile (компиляция), Debug (отладка), Tools (инструменты), Options (настройки), Window (работа с окнами), Help (справка). Под окном понимают прямоугольную область экрана, которую можно перемещать, масштабировать, перекрывать, выводить без перекрытия, открывать, закрывать и изменять ее размер. В среде TP существует четыре типа окон: окна редактирования, окна диалога, информационные окна, окна меню. Для входа в среду необходимо вызвать файл turbo.exe или bp.exe из папки BIN. Текст программы набирается в окне редактирования. Для входа в меню необходимо нажать клавишу F10, для возврата из меню в окно редактирования - клавишу Esc.
Основное меню среды TurboPascal7.0содержит следующие пункты:
- File(работа с файлом);
- Edit(редактирование программного кода);
- Search(обеспечение контекстного поиска и замены);
- Run(выполнение программного кода);
- Compile(компиляция программного кода);
- Debug(отладчик);
- Tools(инструментальные средства среды программирования TurboPascal);
- Options(задание параметров);
- Windows(работа с окнами);
- Help(справка).
Паскаль — это язык процедурного программирования. Чтобы расширить возможности языка Паскаль с целью программирования сложных объектов, была предложена среда программирования Delphi. Delphi - это визуальный компилятор, который работает в среде Windows на базе языка Pascal, а если точнее, то на базе языка Object Pascal. С появлением Delphi отпала необходимость программировать стандартные элементы управления Windows, такие как строка редактирования, кнопки и диалоговые окна: все это уже есть в виде готовых шаблонов компонентов. Если для описания удобного интерфейса пользователя на языке Паскаль требуется много времени, то в Delphi — сравнительно мало, так как многие элементы интерфейса уже представлены в виде готовых к использованию компонентов: достаточно только перетащить их с помощью мыши на форму программы. Delphi наряду с процедурным программированием поддерживает и объектно-ориентированное программирование, основные концепции которого — инкапсуляция, полиморфизм и наследование. Инкапсуляция — это механизм, который объединяет данные и программу, манипулирующую этими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. Полиморфизм — это свойство, которое позволяет один и тот же метод использовать для решения двух или более похожих, но технически разных задач. После запуска среды программирования Delphi на экране отображаются четыре окна: окно главного меню с панелями инструментов (стандартная, вывод определенного окна на экран, отладка, визуальных компонентов); окно инспектора объектов (Object Inspector), редактор кода и окно формы.
В главном меню представлены следующие меню:
File—командыдляпроведенияоперацийсфайламипроекта; Edit — команды для редактирования кода программы в окне редактора кода;Search — команды для контекстного поиска в тексте программы и автоматической замены одного текста другим;View — команды для вывода на экран (на передний план) какого-либо из окон среды программирования, а также файла или формы;Project — команды для присоединения готового модуля к проекту или отсоединения модуля от проекта;Run — средство запуска программы и ее отладки;Component — команды для включения в палитру компонентов новых компонентов и создания собственных новых компонентов;Database — средство для доступа к базам данных;Tools — средства для настраивания среды программирования, а также вызова вспомогательных программ, таких как Database;Desktop — команды для создания файлов данных;Image Editor —средства для создания собственных рисунков;Help — справочник по Delphi, вспомогательным программам, а также основным функцям Windows API (Application Programs Interface — интерфейс прикладных программ).Функции и процедуры описываются точно так же, как и в языке Паскаль.
В августе 1995 года вышла в свет Windows 95, но её выход не привел к вытеснению MS - DOS , хотя почти все функции MS - DOS были перенесены в Windows . Как Windows 95, так и новая версия MS - DOS 7.0 содержали большинство особенностей монолитной операционной системы, включая виртуальную память и управление процессами. Однако ОС Windows 95 не была полностью 32-разрядной программой. Она содержала большие куски 16-разрядного ассемблерного кода (а также немного 32-разрядного) и продолжала использовать файловую систему MS - DOS , практически со всеми её ограничениями. Единственное значительное изменение файловой системы заключалось в добавлении длинных имен файлов к именам из 8+3 символа, разрешенным в MS - DOS .Даже в выпуске Windows 98 в июне 1998 года MS - DOS все ещё присутствовала (теперь она называлась версией 7.1) и состояла из 16-разрядного кода. Хотя теперь ещё больше функций было переведено из MS - DOS -части системы в часть Windows , а поддержка больших дисковых разделов стала стандартом, по своему строению ОС Windows 98 не сильно отличалась от Windows 95. Основное отличие заключалось в интерфейсе пользователя, в большей степени интегрировавшем в себе Интернет и рабочий стол пользователя. В 2000 году корпорация Microsoft выпустила слегка измененную версию системы Windows 98, названную Windows Me ( Windows Millennium Edition — Windows , выпуск тысячелетия). Хотя в данной версии были исправлены некоторые ошибки, а также добавлены новые функции, под внешней оболочкой скрывалась все та же Windows 98. Новые функции включали в себя улучшенные возможности организации и совместного использования изображений, музыки и фильмов, серьезнее поддерживали работу с сетью на дому и многопользовательские игры, а также содержали больше функций, относящихся к Интернету, таких как поддержка мгновенных сообщений и широкополосных соединений (кабельных модемов и ADSL ).
Операционная система Microsoft Windows XP ( от англ . eXPerience — опыт ), известная также под кодовым наименованием Microsoft Codename Whistler, является новой ОС семейства Windows, созданной на базе технологии NT. Первоначально в планы корпорации Microsoft входила разработка двух независимых операционных систем нового поколения. Windows XP объединяет в себе достоинства уже знакомых пользователям операционных систем предыдущих поколений: удобство, простоту в инсталляции и эксплуатации ОС семейства Windows 98 и Windows ME, а также надежность и многофункциональность Windows 2000. В настоящее время Windows XP для настольных ПК и рабочих станций выпускается в трех модификациях: Home Edition для домашних персональных компьютеров, Professional Edition — для офисных ПК и, наконец, Microsoft Windows XP 64bit Edition — это версия Windows XP Professional для персональных компьютеров.
Программирование на языке Паскаль в среде Турбо Паскаль
2.3.1 Структурное программирование
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, Составить словесное (математическое) описание и блок-схему следующей задаче: найти периметр трапеции с вершинами в точках A(x1,0), B(x2,0), C(x2,y3), D(x1,y4). При неправильном вводе значений, вывести на экран сообщение об ошибке и предложением повторно ввести правильные данные. Результат отобразить на экране.
Даны числа а, в, с и d вводимые с клавиатуры. Необходимо найти периметр трапеции р
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.1.
Текст программы приведён в Приложении А в листинге А.1.
Для тестирования программы использовались данные, приведённые в таблице 1. Полученные результаты приведены там же.
Таблица 1– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
||
а |
в |
с |
m |
2 |
3 |
7 |
5 |
Результат решения задачи представлен на рисунке 1.
Рисунок 1 – Результат работы программы в Turbo Pascal
2.3.2 Пошаговая детализация
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, Составить словесное (математическое) описание и блок-схему следующей задаче: найти периметр трапеции с вершинами в точках A(x1,0), B(x2,0), C(x2,y3), D(x1,y4). При неправильном вводе значений, вывести на экран сообщение об ошибке и предложением повторно ввести правильные данные. Результат отобразить на экране.
Даны числа а, в, с и d вводимые с клавиатуры. Необходимо найти периметр трапеции р
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.2.
Текст программы приведён в Приложении А в листинге А.2.
Для тестирования программы использовались данные, приведённые в таблице 2. Полученные результаты приведены там же.
Таблица 2– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
||
а |
в |
с |
m |
2 |
3 |
7 |
5 |
Результат решения задачи представлен на рисунке 2.
Рисунок 2 – Результат работы программы в Turbo Pascal
2.3.3 Массивы
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, дан квадратный массив размерностью 5х5. Найти произведение элементов массива, расположенных в строках, которые начинаются с отрицательного элемента.
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.3.
Текст программы приведён в Приложении А в листинге А.3.
Для тестирования программы использовались данные, приведённые в таблице 3. Полученные результаты приведены там же.
Таблица 3– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
Инициализируются случайно |
k |
7 |
Результат решения задачи представлен на рисунке 3.
Рисунок 3 – Результат работы программы в Turbo Pascal
2.3.4 Строки
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить длину самого короткого (длинного) слова.
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.4.
Текст программы приведён в Приложении А в листинге А.4.
Для тестирования программы использовались данные, приведённые в таблице 1. Полученные результаты приведены там же.
Таблица 4– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
||
S1 |
S2 |
S2 |
S1 |
abc |
dif |
wzy |
difwzy |
Результат решения задачи представлен на рисунке 4.
Рисунок 4 – Результат работы программы в Turbo Pascal
2.3.5 Записи
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, которая обеспечивает ввод данных, вывод данных, поиск по цене товара и количеству товара К. Каждая запись содержит информацию: количество товара (тип integer); наименование товара (тип string); цена (тип real).
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.5.
Текст программы приведён в Приложении А в листинге А.5.
Для тестирования программы использовались данные, приведённые в таблице 5. Полученные результаты приведены там же.
Таблица 5– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
|||||
Familia |
Data rozhdenia |
gruppa |
Poisk po familii |
Poisk po gody rozhdenia |
Poisk po famlii |
Poisk po gody |
Metelitsa |
1993 |
T093 |
Metelitsa |
1994 |
Metelitsa 1993 T093 |
Narkevich 1994 T093 |
Narkevich |
1994 |
T093 |
||||
Shamak |
1993 |
T093 |
Результат решения задачи представлен на рисунке 5.
Рисунок 5 – Результат работы программы в Turbo Pascal
2.3.6 Оформление и подключение модуля
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, удалите из заданного массива A(N) элементы кратные шести. Выполнить вывод на печать полученного массива..
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.6.
Текст программы приведён в Приложении А в листинге А.6.
Для тестирования программы использовались данные, приведённые в таблице 1. Полученные результаты приведены там же.
Таблица 6– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
||
Размер массива |
Исходный массив |
Массив без нулей |
|
5 |
|
3 0 1 1 1 |
3 1 1 1 |
Результат решения задачи представлен на рисунке 6.
Рисунок 6 – Результат работы программы в Turbo Pascal
2.3.7 Рекурсия
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, рекурсивную подпрограмму вычисления n-ого члена последовательности по рекуррентной формуле аi =i* аi-1 + аi-2 , где а1 = а2 = 1, i=3,4,5, …
Необходимо найти вычисления n-ого члена последовательности рекуррентной формуле
аi =i* аi-1 + аi-2 ; (3)
где а1 = а2 = 1, i=3,4,5, …
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.7.
Текст программы приведён в Приложении А в листинге А.7.
Для тестирования программы использовались данные, приведённые в таблице 7. Полученные результаты приведены там же.
Таблица 7– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
||||
n |
n |
1-я последовательность |
2-я последовательность |
Случайная последовательность |
|
3 |
4 |
|
622 672 588 |
818 924 443 832 |
622 672 818 924 443 832 588 |
Результат решения задачи представлен на рисунке 7,8,9.
Рисунок 7 – Результат работы программы в Turbo Pascal
Рисунок
8 – Результат работы программы в Turbo
Pascal
Рисунок 9 – Результат работы программы в Turbo Pascal
2.3.8 Косвенная рекурсия
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу, Составить программу определения является ли введенное число простым с использованием рекурсивной функции.
Блок-схема алгоритма задачи приведена в Приложении Б на рисунке Б.8.
Текст программы приведён в Приложении А в листинге А.8.
Для тестирования программы использовались данные, приведённые в таблице 1. Полученные результаты приведены там же.
Таблица 8– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
i |
y |
5 |
1,7562384876 |
Результат решения задачи представлен на рисунке 10.
Рисунок 10 – Результат работы программы в Turbo Pascal
2.3.9 Бинарный поиск
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу. В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента массива
Текст программы приведён в Приложении А в листинге А.9.
Для тестирования программы использовались данные, приведённые в таблице 9. Полученные результаты приведены там же.
Таблица 9– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
массив |
Число 6 встречается под номером |
6 7 4 5 8 9 3 2 4 |
1 |
Результат решения задачи представлен на рисунке 11.
Рисунок 11 – Результат работы программы в Turbo Pascal
2.3.10 Сортировка включением
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу. Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном массиве найти индексы элементов, которые кратны минимальному значению элемента массива.
Текст программы приведён в Приложении А в листинге А.10.
Для тестирования программы использовались данные, приведённые в таблице 10. Полученные результаты приведены там же.
Таблица 10– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
массив |
Число >5 |
3 4 7 7 |
7 |
Результат решения задачи представлен на рисунке 12.
Рисунок 12 – Результат работы программы в Turbo Pascal
2.3.11 Обменные сортировки
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу. Задан массив AX (N). Добавить массив С(К). Выполнить обменную сортировку. В полученном массиве найти индексы элементов, которые кратны минимальному значению элемента массива.
Текст программы приведён в Приложении А в листинге А.11.
Для тестирования программы использовались данные, приведённые в таблице 11. Полученные результаты приведены там же.
Таблица 11– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
||
массив |
Число >5 |
3-й массив состоящий из 1-го и 3-го массива |
|
3 4 7 7 |
5 6 4 5 |
7 |
массив |
Результат решения задачи представлен на рисунке 13.
Рисунок 13 – Результат работы программы в Turbo Pascal
2.3.12 Сортировка разделением
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу. Задан массив A(N). Добавить массив С(К). Выполнить сортировку разделением. В полученном массиве вычислите среднее геометрическое и среднее арифметическое значения для положительных элементов.
Текст программы приведён в Приложении А в листинге А.11.
Для тестирования программы использовались данные, приведённые в таблице 12. Полученные результаты приведены там же.
Таблица 12– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
|
Массив |
Переделанный 1-й массив |
Переделанный 2-й массив |
Инициализация случайным образом |
47 3 86 20 27 67 31 16 37 42 8 0 |
7 84 36 29 91 5 |
Результат решения задачи представлен на рисунке 14.
Рисунок 14 – Результат работы программы в Turbo Pascal
2.3.13 Обработка динамических массивов
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу. Заполнить массив У(10) случайными значениями. Организовать вывод на экран. Присвоить указателю адрес начала размещения массива в памяти. Напечатать значения первой половины элементов массива. Присвоить указателю адрес 2-го элемента, напечатать его значение, используя текущий базовый адрес сегмента и смещение с преобразованием в значение типа указатель. Заменить его содержимое на утроенное его значение. Напечатать его новое значение
Текст программы приведён в Приложении А в листинге А.13.
Для тестирования программы использовались данные, приведённые в таблице 13. Полученные результаты приведены там же.
Таблица 13– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
|||
Размер массива |
Нечетные элементы |
6-й элемент массива |
Уменьшенные в двое элементы |
Полученный массив |
Инициализация случайным образом |
-23 31 |
40 |
20 |
-23 11 -20 22 31 20 |
Результат решения задачи представлен на рисунке 15,.
Рисунок 15 – Результат работы программы в Turbo Pascal
2.3.14 Организация списков
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу. Создать связанный список из записей, содержащих сведения о косметике (код товара, наименование товара, цена товара), реализовать операции со связанным списком: запись первым в список, удаление первого объекта из списка, просмотр всего списка, удаление объекта, следующего за указанным.
Текст программы приведён в Приложении А в листинге А.14.
Для тестирования программы использовались данные, приведённые в таблице 14. Полученные результаты приведены там же.
Таблица 14– Результаты выполнения линейного алгоритма
Входные данные |
Выходные данные |
||||
Марка, , телевизора |
диагональ экрана |
цена товара |
Просмотр всего списка |
Список после удаления 1-й записи |
Список после удаления 1-й записи |
LG |
17 |
300000 |
См.рис2 |
См.рис3 |
См.рис4 |
LG |
15 |
500000 |
Результат решения задачи представлен на рисунке 17,18,19,20.
Рисунок 17 – Результат работы программы в Turbo Pascal
Рисунок 18 – Результат работы программы в Turbo Pascal
Рисунок
19 – Результат работы программы в Turbo
Pascal
Рисунок 20– Результат работы программы в Turbo Pascal
2.3.15 Модуль GRAPH
Для закрепления полученных навыков программирования в среде Турбо Паскаль необходимо решить задачу. Написать программу, которая рисует на экране каждую окружность с задержкой по времени в 1000 мс. После полной прорисовки стирать изображение и повторно выводить узор до нажатия Esc.
Текст программы приведён в Приложении А в листинге А.15.
Результат решения задачи представлен на рисунке 21.
Рисунок 21 – Результат работы программы в Turbo Pascal
2.3.16 Объектно-ориентированное программирование
Опишите тип объектов – линия с параметрами: координаты вершин, стороны, цвет. Пусть методами будут А) порождение линии; Б) изменение ее цвета; В) изменение ее размера. Опишите массив из 50 объектов, используя его в программе, порождающей 50 разноцветных линий со случайным расположением, “пульсирующих”. Добавьте объект типа закрашенный линия, дочерний для типа линия. Объекты типа закрашенная линия должны “стихийно” то увеличиваться, то уменьшаться.
Текст программы приведён в Приложении А в листинге А.16.
Для тестирования программы использовались данные, приведённые в таблице 15. Полученные результаты приведены там же.
Результат решения задачи представлен на рисунке 22.
Рисунок 22 – Результат работы программы в Turbo Pascal
Заключение
В рамках учебной практики была поставлена задача программной реализации индивидуального задания, вычисляющего сумму, разность и произведение двух заданных элементов.
Данное задание было отлажено и реализовано с использованием среды программирования Turbo Pascal и среды визуального программирования Delphi.
В процессе разработки программы использовался в большом объёме материал по программированию.
Цели по решению задач, поставленные во время прохождения учебной практики, достигнуты. Работа программы проверена на тестовом примере.