КрНУ

Інформаційний портал – Коледжу Кременчуцького національного університету імені Михайла Остроградського!

МЕТОДИЧЕСКИЙ ПОСОБИЕ  для самостоятельной работы с дисциплины «ПРОГРАММИРОВАНИЕ»

МЕТОДИЧЕСКИЙ ПОСОБИЕ 

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

«ПРОГРАММИРОВАНИЕ»

для студентов, которые учатся по специальности 5.05010201 «Обслуживание компьютерных систем и сетей» (номер, название специальности)

Отделение компьютерных сетей и электрооборудования техники Кременчуг 2017г.

Методический пособие для самостоятельной работы с дисциплины «ПРОГРАММИРОВАНИЕ»

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

5.05010201 «Обслуживание компьютерных систем и сетей»

(номер, название специальности)

Отделение компьютерных сетей и электрооборудования техники

Составители: Шинкаренко Л.М.

(фамилия преподавателя)

Рассмотрены цикловой комиссией с компьютерной техники

Протокол №__________ от«___»_______________ 20__ г.

Председатель цикловой комиссии___________________С.И. Почтовюк

Утвержден методической советом колледжа

Протокол № ____от«___»________________________г.

Председатель методической рады Левченко Г.В

2

Содержание.

ЗМІСТ……………………………………………………………………………………………………………………………………………………………………….. 3 TURBO PASCAL 7.0……………………………………………………………………………………………………………………………………………………. 7

ЦЕЛЬ И ЗАДАЧИ ПРЕДМЕТА. ИСТОРИЯ СОЗДАНИЯ И РАЗВИТИЯ ЯЗЫКА PASCAL. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ. ИНТЕГРИРОВАННОЕ СРЕДА TURBO PASCAL 7.0…………………………………………………………………………… 7

ССОЗИДАНИЕ И РАЗВИТИЕ РЕЧИ ПАСКАЛЬ. ……………………………………………………………………………………………………………………………………………………………. 7 ЕТАПЫ РАЗРАБОТКИ ПРОГРАММЫ ……………………………………………………………………………………………………………………………………………………………………………. 10 ПОШИБКИ. КОМПІЛЯТОР. СИНТАКСИС И СЕМАНТИКА………………………………………………………………………………………………………………………………………….. 11 ИНТЕГРОВАНЕ СРЕДА TURBO PASCAL 7.0………………………………………………………………………………………………………………………………………………….. 12

АЛФАВИТ ЯЗЫКА. СТРУКТУРА ПРОГРАММЫ. ТИПЫ ДАННЫХ………………………………………………………………………………….. 19

АЛФАВІТ ЯЗЫКА……………………………………………………………………………………………………………………………………………………………………………………………….. 19 ТИПЫ ДАНИХ………………………………………………………………………………………………………………………………………………………………………………………………. 22 Задачи 1: ……………………………………………………………………………………………………………………………………………………….24 СФРАСТРУКТУРА ПРОГРАММЫ. …………………………………………………………………………………………………………………………………………………………………………………… 25

ЛИНЕЙНЫЕ ПРОГРАММЫ. КОМАНДЫ ПРИСВАИВАНИЯ. КОМАНДЫ ВВОДА И ВЫВОД ДАННЫХ. ФОРМАТИРОВАННОЕ ВЫВОД ДАНИХ………………………………………………………………………………………………………………… 28

ЛІНІЙНІ ПРОГРАММЫ………………………………………………………………………………………………………………………………………………………………………………………… 28 ООСНОВНЫЕ ОПЕРАЦИИСТАНДАРТНЫЕ ФУНКЦИИ И ПРОЦЕДУРЫ…………………………………………………………………………………………………………………………………… 28 ККОМАНДЫ ВВОД ДАННЫХ (READREADLN). ………………………………………………………………………………………………………………………………………………….. 31 ККОМАНДЫ ВЫВОД ДАННЫХ (WRITEWRITELN). …………………………………………………………………………………………………………………………………………….. 31 Задачи 2: ……………………………………………………………………………………………………………………………………………………….33

РАЗВЕТВЛЕНИЯ: СОСТАВЛЕНА КОМАНДА, ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ, КОМАНДА ВЕТВЛЕНИЯ IF. КОМАНДА CASE. ………………………………………………………………………………………………………………………………………………………………………. 34

ВЯЗЫКОВОЙ ОПЕРАТОР IF…………………………………………………………………………………………………………………………………………………………………………………… 35 ВКЛАДЕНИЙ IF……………………………………………………………………………………………………………………………………………………………………………………………….. 37 ОПЕРАТОР ВЫБОРА CASE………………………………………………………………………………………………………………………………………………………………………………… 38 Задачи 3. ……………………………………………………………………………………………………………………………………………………….40

ЦИКЛЫ. КОМАНДА ЦИКЛА С ПАРАМЕТРОМ (FOR), КОМАНДА ЦИКЛА С ПРЕДПОСЫЛКОЙ (WHILE), КОМАНДА ЦИКЛА С ПОСЛЕ УСЛОВИЕМ (REPEAT). ……………………………………………………………………………………………….. 42

ВПЕРАТОР ЦИКЛА С ПАРАМЕТРОМ (FOR)……………………………………………………………………………………………………………………………………………………………. 42 КОМАНДА ЦИКЛА С ПРЕДУСЛОВИЕМ (WHILE)……………………………………………………………………………………………………………………………………………………… 44 КОМАНДА ЦИКЛА С ПОСТУСЛОВИЕМ (REPEAT). …………………………………………………………………………………………………………………………………………………… 45

Задачи 4: ……………………………………………………………………………………………………………………………………………………….47 Задание 5: ……………………………………………………………………………………………………………………………………………………….48 Задание 6: ……………………………………………………………………………………………………………………………………………………….49 Задание 7. ……………………………………………………………………………………………………………………………………………………….50 Задание 8 ………………………………………………………………………………………………………………………………………………………..50

ВКАДЕНІ ЦИКЛЫ……………………………………………………………………………………………………………………………………………………………………………………………… 51 Задачи 9 ………………………………………………………………………………………………………………………………………………………..51

МАССИВЫ. ОПИСАНИЕ МАССИВОВ. ДЕЙСТВИЯ НАД МАССИВАМИ. ……………………………………………………………………………………………… 52

ВПИС МАССИВОВ. ……………………………………………………………………………………………………………………………………………………………………………………………… 53 ДЕЕ НАД МАССИВАМИ………………………………………………………………………………………………………………………………………………………………………………………… 54 Задачи 10: ……………………………………………………………………………………………………………………………………………………..57 Задания для самоконтролю……………………………………………………………………………………………………………………………….57

СОРТИРОВКА МАССИВОВ. ДВУМЕРНЫЕ МАСИВИ……………………………………………………………………………………………….. 58

ЛІНІЙНЕ СОРТИРОВКА (СОРТИРОВКА ОТБОРОМ)……………………………………………………………………………………………………………………………………………….. 59 БУЛЬБАШКОВИЙ МЕТОД. …………………………………………………………………………………………………………………………………………………………………………………. 60 Задачи 11: ……………………………………………………………………………………………………………………………………………………..61 ДЕЕ С ДВУМЕРНЫМИ МАССИВАМИ…………………………………………………………………………………………………………………………………………………………………….. 61 Задачи 12: ……………………………………………………………………………………………………………………………………………………..63

ПОДПРОГРАММЫ. ПРОЦЕДУРЫ, ФУНКЦИИ. РЕКУРСИВНЫЕ ФУНКЦИИ………………………………………………………………………. 63

ПРОЦЕДУРИ (PROCEDUREИ ФУНКЦИИ (FUNCTION)……………………………………………………………………………………………………………………………………………….. 64 ВИКЛИК ПРОЦЕДУР И ФУНКЦИЙ. ………………………………………………………………………………………………………………………………………………………………………… 66 ВБЛАСТЬ ДЕЙСТВИЯ ПАРАМЕТРОВ:……………………………………………………………………………………………………………………………………………………………………………….. 66

Задачи 13: ……………………………………………………………………………………………………………………………………………………..69 ГЕКУРСИВНІ ФУНКЦИИ………………………………………………………………………………………………………………………………………………………………………………………. 69

3

Задачи 14: ……………………………………………………………………………………………………………………………………………………..70 ВІДКРИТІ МАССИВЫ. …………………………………………………………………………………………………………………………………………………………………………………………. 73 Задачи 15: ……………………………………………………………………………………………………………………………………………………..74

ДАННЫЕ СТРОКОВОГО ТИПА STRING. ………………………………………………………………………………………………………………………… 75

ТИП ДАННЫХ CHAR. ………………………………………………………………………………………………………………………………………………………………………………………… 75 ГЯДКОВИЙ ТИП………………………………………………………………………………………………………………………………………………………………………………………………. 76 ВПЕРАЦІЇ НАД СТРОКАМИ …………………………………………………………………………………………………………………………………………………………………………………. 77 ГЯДКОВІ ПРОЦЕДУРЫ И ФУНКЦИИ ……………………………………………………………………………………………………………………………………………………………………….. 78 Задачи 16: ……………………………………………………………………………………………………………………………………………………..81

МОДУЛИ. МОДУЛИ ПОЛЬЗОВАТЕЛЯ. СТАНДАРТНЫЕ МОДУЛИ………………………………………………………………………………… 81

ПОНЯТТЯ МОДУЛЯ ………………………………………………………………………………………………………………………………………………………………………………………….. 81 СФРАСТРУКТУРА МОДУЛЯ……………………………………………………………………………………………………………………………………………………………………………………….. 82 КОМПІЛЯЦІЯ МОДУЛЕЙ …………………………………………………………………………………………………………………………………………………………………………………….. 83 СТАНДАРТНІ МОДУЛИ………………………………………………………………………………………………………………………………………………………………………………………. 84 ГРАФИКА ………………………………………………………………………………………………………………………………………………………………………………………………………. 85 Задачи 17: ……………………………………………………………………………………………………………………………………………………..86

ЗАПИСИ. КОМАНДА ПРИСОЕДИНЕНИЯ WITH…………………………………………………………………………………………………………… 86

ВПЕРАТОР WITH ……………………………………………………………………………………………………………………………………………………………………………………………… 89 Задачи 18: ……………………………………………………………………………………………………………………………………………………..90

ФАЙЛЫ И РАБОТА С НИМИ. …………………………………………………………………………………………………………………………………… 91

ТЕКСТОВІ ФАЙЛЫ……………………………………………………………………………………………………………………………………………………………………………………………. 92 ТИПІЗОВАНІ ФАЙЛЫ. ……………………………………………………………………………………………………………………………………………………………………………………….. 94 Задачи 19: ……………………………………………………………………………………………………………………………………………………..95

ИНТЕГРИРОВАННОЕ СРЕДА РАЗРАБОТКИ DELPHI 7………………………………………………………………………………………. 95

РЕЧЬ ПРОГРАММИРОВАНИЕ DELPHI. СТРУКТУРА ПРОГРАММЫ DELPHI: СТРУКТУРА ПРОЕКТА, СТРУКТУРА МОДУЛЯ, ЭЛЕМЕНТЫ ПРОГРАМИ……………………………………………………………………………………………… 95

ИНТЕГРОВАНЕ СРЕДА РАЗРАБОТКИ. ……………………………………………………………………………………………………………………………………………………………… 96 ИНСТРУМЕНТАЛЬНІ КНОПКИ ……………………………………………………………………………………………………………………………………………………………………………… 98 ПАЛІТРА КОМПОНЕНТОВ…………………………………………………………………………………………………………………………………………………………………………………… 99 ВІКНО ФОРМЫ…………………………………………………………………………………………………………………………………………………………………………………………………. 99 ВІКНО ДЕРЕВА ООБЪЕКТОВ …………………………………………………………………………………………………………………………………………………………………………………..100 ВІКНО ИНСПЕКТОРА ОБОБЪЕКТОВ ……………………………………………………………………………………………………………………………………………………………………………100 ВІКНО КОДА ПРОГРАММЫ …………………………………………………………………………………………………………………………………………………………………………………..102 ВБРОБЛЮВАЧ СОБЫТИЯ ONCLICK ………………………………………………………………………………………………………………………………………………………………………….104 СФРАСТРУКТУРА ПРОГРАММ DELPHI …………………………………………………………………………………………………………………………………………………………………………..107 СФРАСТРУКТУРА ПРОЕКТА ………………………………………………………………………………………………………………………………………………………………………………………107 СФРАСТРУКТУРА МОДУЛЯ ……………………………………………………………………………………………………………………………………………………………………………………….110

КЛАССЫ. СОСТАВЛЯЮЩИЕ КЛАССА. МЕТОДЫ И СВОЙСТВА. …………………………………………………………………………… 112

ВОСНОВНЫЕ СВОЙСТВА ООП…………………………………………………………………………………………………………………………………………………………………………..112 ВГОЛОШЕННЯ КЛАССА………………………………………………………………………………………………………………………………………………………………………………………115

ФОРМЫ. РАЗНОВИДНОСТЬ ФОРМ. СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ФОРМ………………………………………………………….. 117

ГІЗНОВИДИ ФОРМ. …………………………………………………………………………………………………………………………………………………………………………………………..117 КОМПОНЕНТ TFORM……………………………………………………………………………………………………………………………………………………………………………………119 ПОДИИ ФОРМЫ………………………………………………………………………………………………………………………………………………………………………………………………….122 ГАБОТА С ФОРМЕ………………………………………………………………………………………………………………………………………………………………………………………….124

КОМПОНЕНТЫ. СВОЙСТВА КОМПОНЕНТОВ. …………………………………………………………………………………………. 124

СНАЙОМСТВО С КОМПОНЕНТАМИ. …………………………………………………………………………………………………………………………………………………………………….125 ВКЛАДКА STANDARD ………………………………………………………………………………………………………………………………………………………………………………………125 ВКЛАДКА ADDITIONAL…………………………………………………………………………………………………………………………………………………………………………………….126 ВКЛАДКА WINТридцать два …………………………………………………………………………………………………………………………………………………………………………………………….128 ВКЛАДКА SYSTEM …………………………………………………………………………………………………………………………………………………………………………………………..129 ВКЛАДКА DIALOGS………………………………………………………………………………………………………………………………………………………………………………………….130 ВКЛАДКА WINТридцать один …………………………………………………………………………………………………………………………………………………………………………………………….130 ВКЛАДКА SAMPLES …………………………………………………………………………………………………………………………………………………………………………………………131 ВКЛАДКА ACTIVEX…………………………………………………………………………………………………………………………………………………………………………………………131 ГАБОТА С ОБОБЪЕКТАМИ………………………………………………………………………………………………………………………………………………………………………………………131

DELPHI 7. ФАЙЛЫ. ДОСТУП ФАЙЛА. ТЕКСТОВЫЕ ФАЙЛЫ……………………………………………………………………… 137 ФАЙЛЫ ………………………………………………………………………………………………………………………………………………………………………………………………………….137

4

ПРАКТИЧЕСКАЯ РАБОТА № 1…………………………………………………………………………………………………………………………………. 138

ТЕМА: ССОЗИДАНИЕ ПРОСТЕЙШЕГО ПРИЛОЖЕНИЯ «СВІТЛОФОР». ……………………………………………………………………………………………………………………………138 МЕТА: ВИВЧЕННЯ КОМПОНЕНТОВ BUTTON, SHAPE, BEVEL, EDIT, LABEL……………………………………………………………………………………………………………….138 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ…………………………………………………………………………………………………………………………………………………………………………………..138 ХИД РАБОТЫ ……………………………………………………………………………………………………………………………………………………………………………………………………139

ПРАКТИЧЕСКАЯ РАБОТА № 2…………………………………………………………………………………………………………………………………. 143

ТЕМА: ССОЗИДАНИЕ ИГРЫ «СПОЙМАЙ КНОПКУ»……………………………………………………………………………………………………………………………………………………..143 МЕТА: ВИВЧЕННЯ ОСОБЕННОСТЕЙ КОМПОНЕНТА TIMER. ……………………………………………………………………………………………………………………………………143 КОРОТКІ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ. …………………………………………………………………………………………………………………………………………………………………….143 ХИД РАБОТЫ. …………………………………………………………………………………………………………………………………………………………………………………………………..143

ПРАКТИЧЕСКАЯ РАБОТА № 3…………………………………………………………………………………………………………………………………. 146

ТЕМА: ССОЗИДАНИЕ ЛОГИЧЕСКОЙ ИГРЫ. …………………………………………………………………………………………………………………………………………………………………….146 МЕТА: ВИВЧЕННЯ ВОЗМОЖНОСТЕЙ ИСПОЛЬЗОВАНИЕ СВОЙСТВА TAG И ОБОБЪЕКТА SENDER………………………………………………………………………………………146 КОРОТКІ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ. …………………………………………………………………………………………………………………………………………………………………….146 ХИД РАБОТЫ. …………………………………………………………………………………………………………………………………………………………………………………………………..147

ПРАКТИЧЕСКАЯ РАБОТА № 4…………………………………………………………………………………………………………………………………. 149

ТЕМА: ГЕНЕРАТОР ФУНКЦИЙ. ……………………………………………………………………………………………………………………………………………………………………………149 МЕТА: ВИВЧЕННЯ КОМПОНЕНТА PAINTBOX И МЕТОДОВ РИСОВАНИЯ НА КАНВЕ. КОМПОНЕНТ TRACKBAR………………………………………………………………..149 КОРОТКІ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ. …………………………………………………………………………………………………………………………………………………………………….149 ХИД РАБОТЫ. …………………………………………………………………………………………………………………………………………………………………………………………………..149

ПРАКТИЧЕСКАЯ РАБОТА № 5…………………………………………………………………………………………………………………………………. 152

ТЕМА: ССОЗИДАНИЕ ЭЛЕМЕНТОВ ИНТЕРФЕЙСА ПРОСТЕЙШЕГО ГРАФИЧЕСКОГО РЕДАКТОРА. ……………………………………………………………………………………….152 МЕТА: ВИВЧЕННЯ КОМПОНЕНТОВ COLORGRID, SPINEDIT, RADIOGROUP, LISTBOX, COLORDIALOG. …………………………………………………………………………152 КОРОТКІ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ. …………………………………………………………………………………………………………………………………………………………………….152 ХИД РАБОТЫ. …………………………………………………………………………………………………………………………………………………………………………………………………..153

РЕЧЬ ПРОГРАММИРОВАНИЕ С++. ПРОГРАММИРОВАНИЕ БАЗОВЫХ АЛГОРИТМИЧЕСКИХ СТРУКТУР ……………… 156

КОРОТКА ХРОНОЛОГИЯ ВАЖНЕЙШИХ ЭТАПОВ РАЗВИТИЯ ЯЗЫКА :…………………………………………………………………………………………………………………….156 БыАЗОВЕ СРЕДСТВА ЯЗЫКА C++. СКЛАД ЯЗЫКА …………………………………………………………………………………………………………………………………………………………157 ТИПИ ДАННЫХ ………………………………………………………………………………………………………………………………………………………………………………………………….160 СМИННИ. КЛАС ПАМДЛЯ. ……………………………………………………………………………………………………………………………………………………………………………………161 ПЕРЕТВОРЕННЯ ТИПОВ……………………………………………………………………………………………………………………………………………………………………………………..163 ВПЕРАЦІЇ ЯЗЫКА С++……………………………………………………………………………………………………………………………………………………………………………………….164 БыІТОВІ ОПЕРАЦИИ. …………………………………………………………………………………………………………………………………………………………………………………………….166 ВВЕДЕНИЕ И ВЫВОД ДАННЫХ……………………………………………………………………………………………………………………………………………………………………….167 ФОРМАТУВАННЯ ВВЕДЕНИЕВЫВОД СРЕДСТВАМИ ЯЗЫКА С++………………………………………………………………………………………………………………………….169 ФОРМАТУВАННЯ ВВЕДЕНИЕВЫВОД СРЕДСТВАМИ ЯЗЫКА С ……………………………………………………………………………………………………………………………..172 ВПЕРАТОРИ РАЗВЕТВЛЕНИЯ. ВПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА GOTO. ………………………………………………………………………………………………………………178 ВПЕРАТОРИ ЦИКЛА. ………………………………………………………………………………………………………………………………………………………………………………………..178 ВПЕРАТОРИ ПЕРЕДАЧИ УПРАВЛЕНИЯ. …………………………………………………………………………………………………………………………………………………………………180 ФУНКЦІЇ. ……………………………………………………………………………………………………………………………………………………………………………………………………….180 ВБЛАСТОВ ДЕЙСТВИЯ ПЕРЕМЕННЫХ………………………………………………………………………………………………………………………………………………………………………………………181 ГЕКУРСІЯ. ………………………………………………………………………………………………………………………………………………………………………………………………………182 МАСИВИ. ……………………………………………………………………………………………………………………………………………………………………………………………………….183 ПЕРЕДАЧА МАССИВОВ В ФУНКЦИИ. ……………………………………………………………………………………………………………………………………………………………………….184 ВИПАДКОВІ ЧИСЛА………………………………………………………………………………………………………………………………………………………………………………………….186 ДИРЕКТИВА #DEFINE. ……………………………………………………………………………………………………………………………………………………………………………………186 АЛГОРИТМИ СОРТИРОВКА И ПОИСКА……………………………………………………………………………………………………………………………………………………………..187 АЛГОРИТМИ ПОИСКА ……………………………………………………………………………………………………………………………………………………………………………………..196 ДРЕСНИЧНЫЙ ПОИСК ………………………………………………………………………………………………………………………………………………………………………………………..197 ФУНКЦІЇ СТАНДАРТНОЙ БИБЛИОТЕКИ…………………………………………………………………………………………………………………………………………………………………..198 СКЛАД ЗАГЛАВНЫХ ФАЙЛОВ……………………………………………………………………………………………………………………………………………………………………………198

VISUAL STUDIO 2010. СОЗДАНИЕ ПРОСТЕЙШИХ WINDOWS ПРИЛОЖЕНИЙ НА ЯЗЫКЕ С#…………………………. 203

ВВЕДЕНИЕ В РАЗРАБОТКУ ФОРМ …………………………………………………………………………………………………………………………………………………………………………..203 МЕТАИЗУЧЕНИЕ МЕТОДОВ ПОСТРОЕНИЯ ФОРМ WINDOWS И ПОЛУЧЕНИЯ НАВЫКОВ ПО НАСТРОЙКЕ ФОРМСОЗДАНИЮ НЕ ПРЯМОУГОЛЬНЫХ И УНАСЛЕДОВАННЫХ (ПРОИЗВОДНЫХФОРМ. …………………………………………………………………………………………………………………………………………………………………203 ГАБОТА С ЭЛЕМЕНТАМИ УПРАВЛЕНИЕ …………………………………………………………………………………………………………………………………………………………………231 МЕТАИЗУЧЕНИЕ СПОСОБОВ ИСПОЛЬЗОВАНИЯ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ И ПОЛУЧЕНИЕ НАВЫКОВ ПО ОБРАБОТКЕ СОБЫТИЙ. …………………………………………………..231 ССОЗИДАНИЕ ЭЛЕМЕНТОВ УПРАВЛЕНИЕ. ………………………………………………………………………………………………………………………………………………………………..245 МЕТАИЗУЧЕНИЕ СПОСОБОВ РАЗРАБОТКИ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ И ПОЛУЧЕНИЕ НАВЫКОВ ПО ИХ НАСТРОЙКЕ И ПРИМЕНЕНИЮ В ДАЛЬНЕЙШЕЙ РАБОТЕ. ……………………………………………………………………………………………………………………………………………………………………………………………………………………..245 ВИСПОЛЬЗОВАНИЯ ОКОН ДИАЛОГА В ФОРМАХ……………………………………………………………………………………………………………………………………………………….249 МЕТАИЗУЧЕНИЕ СПОСОБОВ ИСПОЛЬЗОВАНИЯ КОМПОНЕНТОВЧТО ПРЕДСТАВЛЯЮТ ДИАЛОГОВЫЕ ОКНА И ПОЛУЧЕНИЯ НАВЫКОВ ПО РАБОТЕ С ОКНАМИ ДИАЛОГА…………………………………………………………………………………………………………………………………………………………………………………………………………249 ВЗАЄМОДІЯ УПРАВЛЯЕМОГО И НЕ УПРАВЛЯЕМОГО КОДА………………………………………………………………………………………………………………………………………………253

5

МЕТАИЗУЧЕНИЕ СПОСОБОВ ИСПОЛЬЗОВАНИЯ ВОЗМОЖНОСТЕЙ ОБЕДИНЕНИЕ СТАРОГО КОДА С КОДОМУПРАВЛЯЕМЫМ СРЕДОЙ CLR И ПОЛУЧЕНИЕ НАВЫКОВ ПО РАБОТЕ СО СЛУЖБАМИ ВЗАИМОДЕЙСТВИЯ УПРАВЛЯЕМОГО КОДА С НЕ УПРАВЛЯЕМЫМ. …………………………………………………………………………………………….253 ВОРГАНИЗАЦИЯ ПЕЧАТИ В ФОРМАХ WINDOWS…………………………………………………………………………………………………………………………………………………………258 МЕТАИЗУЧЕНИЕ КЛАССОВРЕАЛИЗУЯ ЗАДАЧУ ПРОГРАММИРОВАНИЯ ПЕЧАТИ И ПОЛУЧЕНИЯ НАВЫКОВ В РАБОТЕ В ПРОГРАММЕ С ДИАЛОГОВЫМИ ОКНАМИ…….258 АСИНХРОННОЕ ПРОГРАММИРОВАНИЕ……………………………………………………………………………………………………………………………………………………………………….264 МЕТАИЗУЧЕНИЕ ВОЗМОЖНОСТЕЙЧТО РЕАЛИЗУЮТ АСИНХРОННОЕ ПРОГРАММИРОВАНИЕ И ПОЛУЧЕНИЯ НАВЫКОВ ПО РАБОТЕ В ПРОГРАММЕ С ПОТОКАМИ. …….264 ПІДВИЩЕННЯ УДОБСТВА ИСПОЛЬЗОВАНИЕ ПРИЛОЖЕНИЙ. …………………………………………………………………………………………………………………………………………273 МЕТАИЗУЧЕНИЕ СРЕДСТВ ДЛЯ ПОВЫШЕНИЕ УДОБСТВА ИСПОЛЬЗОВАНИЕ РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ И ПОЛУЧЕНИЯ НАВЫКОВ ПО СОЗДАНИИ КОНТЕКСТНОЙ СПРАВКИПЛАВАЮЩЕЙ ПОДСКАЗКИА ТАКЖЕ ФАЙЛОВ ИЗ СПРАВОЧНОЙ ИНФОРМАЦИИ. ………………………………………………………………………………………………273 ПІДКЛЮЧЕННЯ В БАЗЕ ДАННЫХ. ……………………………………………………………………………………………………………………………………………………………………….279 МЕТАИЗУЧЕНИЕ КЛАССОВЧТО ПРЕДСТАВЛЯЮТ СЛУЖБЫ ДОСТУПА ДАННЫХ И ПОЛУЧЕНИЯ НАВЫКОВ ПО ИСПОЛЬЗОВАНИЮ КОМПОНЕНТОВ ADO.NET. 279

ЛІТЕРАТУРА…………………………………………………………………………………………………………………………………………………………. 295

6

Turbo Pascal 7.0.

Цель и задачи предмета. История создания и развития языка Pascal. Этапы разработки программы.

Интегрированное среда Turbo Pascal 7.0.

Основные разделы темы.

1. Создание и развитие речи Паскаль.

2. Программа и язык программирования.

3. Этапы разработки программы.

4. Ошибки. Типы ошибок.

5. Компилятор.

6. Синтаксис и семантика.

7. Интегрированное среда Turbo Pascal 7.0.

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

Мы привыкли считать, что программирование — дитя современного прогресса в области науки и технологии. Но это не совсем так. Первые сложные многоцелевые вычислительные устройства появились еще в XIX веке. Тогда же возникла необходимость в разработке программ для них, и впервые с такой задачей столкнулась легендарная Ада Лавлейс, что работала с вычислительной машиной Чарльза Бэббиджа, которая называлась «Машина для счисления разностей» («Difference Engine»).

Тринадцать июля 1843 года Чарлзу Беббіджу от Ады Лавлейс пришло письмо с конкретным списком операций (алгоритмом) для вычисления чисел Бернулли – так родилась новая наука – компьютерное программирование.

Но настоящие языки программирование появились в эпоху электронных вычислительных машин (ЭВМ). Считают, что первая речь программирование — это язык Short Code, что появилась в 1949 году. Программисты, что работали на первых моделях ЭВМ, вынуждены были программировать в машинных кодах.

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

7

Первыми язык программирования высокого уровня были FORTRAN, Cobol и Algol, что появились в 50-е годы XX века. Первые два из них используются и сейчас — это языка-долгожители, а Algol стал родоначальником целого семейства языков, в числе которых и Pascal. В настоящее время насчитывается несколько тысяч языков программирования, большая часть из которых имеет достаточно узкую специализацию.

Говорят, что как только появилась вторая язык программирования, начались бурные споры о том, какой язык лучше! Эти споры идут и поныне, принимая иногда характер религиозных войн древности.

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

появилась в 1958 году. Одним из разработчиков языка Algol был «отец» языка FORTRAN Джон Бекус. Название языка ALGOrithmic Language подчеркивает то обстоятельство, что он предназначен для записи алгоритмов. Благодаря четкой логической структуре Algol стал стандартным средством записи алгоритмов в научной и технической литературе. Последующими версиями языка стали Algol 60 Algol 68. Algol 68 оказался чрезмерно громоздким, что создавало большие трудности в его реализации. Один из членов комитета, что занимался разработкой спецификации, — швейцарский ученый Никлаус Вирт — протестировал против ее принятия. Он оказался правый — Algol 68 стал «лебединой песней» когда-то самой популярной языки программирования, однако эта речь дала начало целой ветке новых языков.

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

8

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

В 1970 году в мире программирование состоялись по крайней мере две большие события — появились операционная система Unix и новая речь программирование Pascal. Вирт назвал ее на честь большого французского математика и религиозного философа XVII века Блеза Паскаля. Паскаль изобрел вычислительный устройство, именно поэтому новой языке было присвоено его имя.

Благодаря своей четкости, логичности и другим особенностям Pascal надолго занял свою нишу, будучи прекрасной языке для обучения программированию. Язык Pascal использовалась и для разработки серьезных программ-приложений. Шутили, что Вирт разработал игрушку, но многие отнесся к нее очень серьезно.

В 1975 г. вновь две события стали вехами в истории программирование — Билл Гейтс и Пол Аллен заявили о себя, разработав свою версию языка BASIC, а Вирт и Йенсен выпустили классический описание языка Pascal под названием «Pascal User Manual and Report». Впоследствии появились различные версии языка Pascal и его расширения.

Самым известным расширением стал пакет Turbo Pascal фирмы Borland, появился в 1983 году и сразу стал событием в мире компьютерных технологий. В начале Одна тысяча девятьсот восемьдесят четыре пакет Turbo Pascal был перенесен в среду MS-DOS и приобрел огромное популярность. С тех пор появилось несколько версий Turbo Pascal, последняя — седьмая.

Фирма Borland завершила линию продуктов Turbo Pascal и перешла до выпуска системы визуальной разработки для Windows — Delphi.

Речь Turbo Pascal сохраняет свое значение как отличного средства для первого знакомства с миром «серьезного программирования». Это связано как с его четкой логичной структурой, так и с теми его возможностями, которые позволяют использовать Turbo Pascal для решения разнообразных задач. Среди них вычисления и обработка данных, компьютерная графика, работа со звуком, системное программирование. Turbo Pascal позволяет применять приемы объектно-ориентированного программирование, которое стало одной из ведущих современных технологий программирование.

Программа и язык программирования

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

9

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

Программа — это запись (реализация) алгоритма на языке программирования.

Этапы разработки программы

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

Постановка задачи — выполняется специалистом в предметной области на естественный языке (российском, английском и т. д.). Необходимо определить цель задачи, ее содержание и общий подход к решению. Возможно, что задача решается точно (аналитически), и без компьютера можно обойтись. Уже на этапе постановки надо учитывать эффективность алгоритма решение задачи на ЭВМ, ограничения, что накладываются аппаратным и программным обеспечением.

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

Разработка или выбор алгоритма решение задачи — выполняется на основе ее математического описания. Много задач можно решить разными способами. Программист должен выбрать оптимальное решение. Неточности в постановке, анализе задачи или разработке алгоритма могут привести к скрытой ошибки — программист получит неверный результат, считая его правильным.

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

Кодирование — запись алгоритма на языке программирования. Современные системы программирование, подобные Delphi, позволяют ускорить процесс разработки программы, автоматически создавая часть ее текста, однако творческая работа как и ранее лежит на программисты. Для успешной реализации цели проекта программисту необходимо использовать методы структурного программирование.

Отладка и тестирование программы. Под відладкою понимается устранение ошибок в программе. Тестирование позволяет вести их поиск и, конец концом, убедиться в потому, что полностью отлажена программа дает правильный результат. Для этого разрабатывается система тестов — специально подобранных контрольных примеров с такими наборами параметров, для которых решение задачи известное. Тестирование должно охватывать все возможные ветвление в программе, то есть проверять все ее инструкции, и включать такие начальные данные, для которых невозможно. Проверка особых, исключительных ситуаций, необходима для анализа корректности. Например, программа должна отказать клиенту банка в просьбе выдать сумму, недостающую на его счета. В ответственных проектах большое внимание предоставляется так называемом

10

“защиты от дурака” (fool-tolerance), имеет в виду устойчивость программы к неумелого обращения пользователя. Использование специальных программ — / monitor, которые позволяют выполнять программу по отдельных шагах, просматривая при этом значение переменных, значительно упрощает этот этап.

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

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

Ошибки. Компилятор. Синтаксис и семантика

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

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

На отличие от естественных языков, таких как русский, английский и др., речь программирование имеет очень ограниченную количество “слов”, понятных компилятору, и строгие правила записи команд. Совокупность этих требований образует синтаксис языка программирование, а значение команд и других конструкций языка — его семантику.

Типы ошибок

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

Синтаксические ошибки возникают при нарушении правил языка (в нашем случае — языка Turbo Pascal), их находит компилятор, который не может за ошибку “понять” назначение команды.

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

11

Pascal об ошибках содержит более 200 сообщений.

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

Интегрированное среда Turbo Pascal 7.0.

Интегрированное среда объединяет текстовый редактора, компилятор, отладчик и справочную систему. Для работы необходимо установить на ПК весь программный пакет, хотя на самом деле достаточно небольшой количества файлов. Запускается среда командой turbo.

Основные элементы рабочей области интегрированного среды Турбо Паскаль:

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

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

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

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

12

отвечает номера строки, в котором в данный момент расположен курсор, второе – номер позиции в строке.

Строка меню.

Она включает 10 команд меню:

File (файл)

Edit (правка)

Search (поиск)

Run (запуск)

Compile (компиляция)

Debug (отладка)

Tools (инструментальные средства)

Options (опции)

Window (окно)

Help (справка).

Меню File

Меню File имеет три группы пунктов, которые отделены друг от друга вертикальными линиями.

1. Команда New (создать) открывает новое окно редактора с именем NONAMEXX.PAS, где вместо XX присутствуют цифры, обозначающие порядковый номер временного файла от 00 до 99. После набора текста программы надо обязательно изменить имя файла, иначе есть опасность потерять его, если он случайно замещен другим файлом с таким же стандартным именем. Рекомендуется также периодически проводить сохранение файла, нажимая клавишу F2. При в первой записи файла на диск система предложит задать имя файла, причем расширение . PAS прилагается автоматически.

2. Команда Open (открыть), открывает диалоговое окно Open а File . В этом окне есть поле ввода Name, предназначено для ввода имени файла, который нужно открыть. Дело находится кнопка раскрытия список ней можно воспользоваться, если нужен файл уже открывался раньше. Нужен файл можно выбрать в списке Files. Сначала при открытии окна Open, в этом списке отображается содержание текущего каталога. Здесь же будет каталог, имя которого представлено двумя точками с косой чертой . Если попробовать

..\

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

Дело есть также кнопки:

Replace (заменить)- загружает указанный файл в активное окно редактора ;

Cancel (отменить)- закрывает окно;

13

Help – вызывает окно справочной системы.

3. Команда Save (сохранить), сохраняет файл, что содержится в активном окне редактора. Если данный файл еще до этого ни разу не сохранялся, то следует воспользоваться командой

4. Команда Save as (сохранить как). В этом диалоговом окне есть те же управляющие элементы, и в окне Open а File. Необходимо указать файл, который нужен сохранить, при этом его имя окажется в поле ввода Save File as.

5. Команда Save all (сохранить все сохраняет все открытые в данный момент файлы. Если какие-либо из открытых файлов до этого ни разу не сохранялись, для них всех по очереди откроется диалоговое окно Save File as.

6. команда Change dir (изменение каталога) открывает диалоговое окно Change Directory, которое предназначено для изменения текущего каталога. Это окно содержит также как предыдущие окна поле введение и список с прокруткой. Кнопка Chdir позволяет изменить текущий каталог. Для того, чтобы ввести в действие эту смену, необходимо

нажать кнопку ОК. Кнопка Revert (вернуть) позволяет отменить последнюю смену текущего каталога (если оно еще не подтверждено кнопкой ОК). 7. Команда Print (печать) выполняет печать содержания активного окна редактора. 8. Команда Printer setup (установка принтера) позволяет указать, какой принтер подключен к вашему ПК, а также дополнительные установки. Turbo Pascal поддерживает 3 типа принтеров: матричные, лазерные и Post Script – принтера. 9. Команда DOS shell (среда DОS) осуществляет временный выход в DOS 10.Команда Exit (выход) служит для выхода из среды Turbo Pascal. 11.Имена файлов, которые открывались ранее в этом сеансе работы, а потом были закрыты. Для открытие повторно, можно не обращаться до команды Open, а просто выбрать соответствующее имя внизу меню File.

Меню Edit(правка)

Набор и редактирования начального текста программы проводится средствами встроенного текстового редактора интегрированного среды. Если раскрыть меню Edit, то можно увидеть перечень команд редактора. Этот перечень небогатый и включает команды: Undo – отмены предыдущей действия, Redo – повторного выполнение ранее відміненої действия, Cut – удаление в буфер обмена, Сору – копирование в буфер, Paste – вставки из буфера Clear – «безвозвратного удаления».

1. Команда Undo. Для каждого редактируемого файла интегрированное среда бережет долгое запись сделанных в нем изменений и многократным нажатием клавиш F10, затем Е, затем U (или Alt+Backspace) можно отменить внесенные в программу изменения, если они оказались ошибочными. Характерное применение этой команды – восстановление случайно стертого фрагмента (блока) текста.

2. Команда Show clipboard позволяет просмотреть содержимое буфера обмена. Дело в потому, что большинство текстовых редакторов использует специальный файл для временного хранение перемещаемых или копируемых фрагментов текста. При активизации команды Show clipboard открывается новое окно Clipboard, в

14

котором отображаются скопированы в буфер обмена фрагменты текста. Можно провести такой опыт. Загрузите в интегрированное среда любую программу и скопируйте блок текста в буфер обмена, потом скопируйте еще один и посмотрите содержимое буфера. Инверсным изображением выделяется последний блок, скопированный или перемещен в буфер обмена, однако можно выбрать другой блок, если необходимо восстановить именно его. Закройте окно Clipboard, щелкнув на зеленом прямоугольном значок в верхнем левом углу экрана. Теперь при нажатии клавиш Shift+Ins выделенный блок будет вставлен в редактируемый файл справа от положения курсора.

Основные возможности редактора связанные с использованием клавиатуры и специальных комбинаций клавиш.

 15

Меню Search

Меню Search (поиск) позволяет осуществить поиск фрагментов текста, подпрограмм и места обнаружения ошибки.

Команды:

1.Find (найти фрагмент) – в окне диалога задаются фрагмент для поиска и условия поиска, после задача всех параметров осуществляется поиск первого вхождение искомого фрагмента

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

3.Search again (повторный поиск) – после выполнение команды Find и Replace осуществляется поиск следующего вхождение искомого фрагмента текста, при этом сохраняются все заданные условия поиска

4.Go to line number (перейти к строке заданным номером)

5.Show last compile error (показать последнюю ошибку компиляции) выдает сообщение об ошибке

6.Find error (найти ошибку) – находит ошибки, выданной при выполнении, для поиска задается полная адрес ошибках в шестнадцатеричной системе счислення 7.Find procedure (найти подпрограмму) – команда работает во время отладки программы.

Меню Run

Меню Run (Запуск) – назначено для прогона в разных режимах программы с активного окна:

1. команда Run – осуществляет компиляцию и запуск программы, начальный текст которой находится в активном окне редактора. Если программа відкомпілювалася, сразу выполняется ее запуск. Выполнить эту команду можно также, воспользовавшись комбинацией клавиш Ctrl-F9.

2. команда Step over (По шагах) последовательно выполняет операторы в одиночку за раз в программе.( не заходит в подпрограммы)

3. команда Trace into (Трассировать подпрограммы) подобно Step over последовательно выполняет операторы в одиночку, но, если встретится подпрограмма, то данная команда выполнять и ее.

4. команда Go to cursor (Выполнить до курсора) – пошагово выполняет программу, но только до места, где стоит курсор. Если курсор находится в строке, что не является исполняемым оператором, будет выдано сообщение об ошибке.

5. команда Program reset – прекращает процесс отладки программы. Все открытые в процессе работы программы файлы закрывает, программа становится готовой для повторного запуска с начала.

16

6. команда Parameters (Параметры программы) позволяет открыть диалоговое окно, в котором указываются параметры были переданы программе при ее запуска точно так, как они задаются при запуске программы по помощью командной строки.. Меню Compile

Меню Compile (Компиляция). Это меню состоит из трех групп.

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

⮚ Compile – компилирует файл программы, что содержится в активном окне редактора. ⮚ Make (сборник) – если тексты отдельных модулей, которые используются основной программой или основным модулем, были изменены после получение объектных файлов, то соответствующие модули перекомпилируются, после чего компилируется файл, содержащий основную программу или основной модуль.

⮚ Build (создать программу) – аналогично команде Make, только все модули, которые используются основной программой, перекомпилируются в любом случае.

1.2.В второй группе содержатся команды, исполняющие подготовительные перед компиляцией действия. ⮚ Destination (размещение файла) определяет, куда следует разместить исполняемый файл программы – в оперативной памяти Memory или на диске Disk⮚ Primary file (основной файл)– Устанавливает основной файл программы для команд Make и Build. В этом случае выполнение этих команд начинается из компиляции этого основного файла, даже если он находится не в активном окне и даже если он вообще не открытый до момента компиляции.

⮚ Clear primary (отказаться от основного файла) смахивает заданной командой Primary file имя основного файла, в этом случае любая компиляция начинается из файла, что находится в активном окне.

1.3.К третьей группы относится единственная команда Information, которая открывает диалоговое окно с информацией о программе, что компілювалася последней и оперативной памяти.

Меню Debug

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

Меню Tools

Меню Tools (Инструментальные средства) позволяет задать программы которые можно запустить не выходя с интегрированного среды, и запускать эти программы. (Turbo Assembler,Turbo Profiler)

Меню Options

Меню Option (Опции) позволяет задавать различные установки и опции среды Turbo Pascal.

Меню Window

Меню Window (Окно) назначено для работы с окнами, открытыми в рабочей области среды Turbo Pascal:

Меню Help

Меню Help (справка) содержит команды, что позволяют получить доступ к справочной системы Turbo Pascal (на английском языке).

17

Вопрос для самоконтроля.

1. История программирования.

2. История и развитие языка Pascal.

3. Этапы разработки программ.

4. Что такое компилятор?

5. Какие типы ошибок вы знаете?

6. Что такое синтаксис языка?

7. Что такое семантика?

8. Начало работы в среде Turbo Pascal. 9. Как создать новую программу?

10. Редактирование текста.

11. Работа с окнами.

12. Как запустить программу на компиляцию?

13. Как запустить программу на выполнения?

14. Как работать с відгадчиком?

15. Как использовать справочную систему?

Литература: 2.с.13..19, 321..332.

18

Алфавит языка. Структура программы. Типы данных.

Основные разделы темы.

1. Алфавит языка.

2. Типы данных.

3. Стандартные типы данных: целые типы, действительны, символьные,

логические.

4. Нестандартные простые типы данных.

5. Просчитан тип.

6. Диапазонный тип.

7. Строковый тип.

8. Типизированные константы.

9. Структура программы.

Алфавит языка

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

Программа на языке Turbo Pascal формируется с помощью конечного набора знаков, что создают алфавит языка, и состоит с:

⮚ прописных и строчных букв латинского алфавита (А, В …, Z, а, b …, z) и знака подчеркивания;

⮚ десятичных (0, 1 …, 9) и шестнадцатеричных цифр (0, 1 …, 9, А, В …, F). Кроме того, в алфавит включаются специальные символы (табл. 2.4) и комбинации специальных символов — они образуют составлены символы (табл. 2.5).

Неделимые последовательности знаков алфавита образуют слова, обособленные один от друга разделительными знаками.

19

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

Слова делятся на зарезервированы словастандартные идентификаторы (имена) и идентификаторы пользователя.

1. Зарезервированы слова языка Turbo Pascal является составной частью языка, имеют фиксированное изображения и несут в программе определенное значение.

Внутри зарезервированных слов пробелы использовать запрещено. Например, для оператора goto имя метки; форма записи имеет вид: ⮚ goto 10; или goto 10; Допустимые

⮚ gotol0; или go to 10; Являются ошибочными

20

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

Они делятся на несколько групп:

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

char (символьный), integer (целый), real (действительный)

text (текстовый файл) и т.д.;

2) имена стандартных констант: false (неправда), true (истина),

maxint (максимальное целое), pi (число 3,14…) и т.д.;

3) имена стандартных функций: abs, arctan, cos, exp, In, sin

и т.д.;

4) имена стандартных процедур: read, readln, write, writeln,

inc, dec и т.д.

Например, стандартный идентификатор sin(x) вызывает функцию, что вычисляет синус угла х, заданного в радианах. Любой из стандартных идентификаторов, на отличие от зарезервированных слов, допускается переопределить. Пользователь может написать свою собственную функцию с именем sin. Конечно это ведет к ошибкам. Поэтому стандартные идентификаторы лучше использовать без изменений.

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

Общие правила написания идентификаторов (имен):

⮚ состоят из букв, цифр и знака подчеркивания, специальные символы, в том числе и пропуск, не допускаются. Буквы русского алфавита не могут входить к состав идентификатор Turbo Pascal, их можно использовать только в строчных константах;

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

⮚ между двумя идентификаторами должен стоять, по крайней мере, один разделитель; ⮚ максимальная длина — 127 символов, но значимыми, которые распознает Turbo Pascal, есть первые 63, что на практике более чем достаточно;

⮚ не можно использовать имена, совпадающие по написанию с приведенными ранее зарезервированными словам. Крайне нежелательно также переопределение стандартных идентификаторов;

⮚ при написании имен можно использовать как прописные, так и строковые буквы. Компилятор не делает различий между ними. Например, myvar, Myvar, myvar — это три разные варианты написания имени одной и той же переменной.

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

21

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

Error 4: Duplicate identifier (Ошибка 4: Двойной идентификатор).

Например, metkai3, Biok_i5 — допустимые имена.

Примеры неправильного записи имен:

3DGraph — начинается с цифры;

Nomer.Doma — содержит точку

blok#1 — содержит специальный символ;

My Program — содержит пропуск;

Div — зарезервировано слово.

ТИПЫ ДАННЫХ

Одним из важнейших понятий в программировании есть переменная.

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

Стандартные типы данных.

Стандартные типы данных нужно описывать в разделе type. Для представление числовых данных предназначены цели и действительны типы.

Цели типы

Имя типа

byte

Диапазон значений

0..255

shortint

-128..127

word

0..65535

integer (основной тип)

-32768..32767

longint

-2147483648..2147483647

Объявим переменные: var x : byte; в : integer. Этим переменным можно присвоить, например, такие значения х := 65; в := -5. Отметим, что переменная х не может принимать отрицательные значение, поскольку они не входят в диапазон допустимых значений типа byte (дополнительные).

Действительны типы

Имя типа

Диапазон

single(единичный)

1.5*10 -45– 3.4*1038

real (основной тип)

2.9*10-39 – 1.7*38

double(удвоенный)

5.0*10-324- 1.7*10308

extended(расширенный)

3.4*10-4951-1.1*104932

22

Действительны числа можно записывать в формате с фиксированной точкой, например, 5.04, -12.109, или в формате с плавающей точкой. Запись -5.2 Е+2 есть представлением числа -520.0, а 16.1 Е-3 – числа 0.0161. Символы Е+2 обозначают умножение на 10 в степени +2, а Е-3 – на супень -3, то есть пэм = n*10m.

Символьный тип (char– это множество символов кодовой таблицы компьютера ASCII. Символьная константа – это символ, взятый в кавычки, например ‘а’, ‘5’, ‘%’

Логический тип (boolean) характеризуется двумя значениями: false (ложь) и true (истина).

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

Тип данных важен при выделении памяти под переменные. Для хранение символьной переменной достаточно 1байта (Байт=8 бит, максимальное двоичное число 11111111 соответствует десятичном 255, причем от 0). Для хранения переменной integer нужен 2 байт

Нестандартные простые типы.

Пользователь может определить свои собственные типы данных в разделе описания типов type таким образом:

type <имя типа 1> = <описание типа 1>;

<имя типа n> = <описание типа n>;

Type

week=(sunday, monday, tuesday, wednesday, thursday,

friday, satufday);

work_week=monday..friday;

day=1..31;

Обратите внимание на то, что при объявлении предназначенных для пользователя типов между их именем и конструкцией, что определяет тип, относится знак равно. К простых нестандартных типов относятся пересчитан, диапазонный и строчный. Просчитан тип пользователь создает путем указания (перечни) всех значений, которые могут принимать переменные этого типа, в виде списка слов-идентификаторов, взятого в скобки:

type <имя типа> = (<значение 1> <значение 2> …,<значение n>); Значениями не могут быть данные числовых и символьного типов. Пример, Опишем два переліченних типы (названия дней недели и цветов): type week = (mon, tue, wed, , fri, sat, sun);

color = (red, green, yellow, white);

и объявим две переменные – day и avto этих типов:

var day : week;

avto : color;

Этим переменным можно предоставить, например, следующие значения:

day := fri; avto := green; avto := red.

Нумерация элементов список начинается с 0. Над данным перечисленного типа определены функции ord, pred и succ.

23

Функция Pred(x) определяет значение, которое стоит перед х;

функция Ord(x) возвращает порядковый номер величины х;

функция Succ(x) определяет значение, которое стоит за х.

Например

ord(avto)= 0, ord(day)= 4

pred(day)=, succ(day)= sat.

Данные этого типа не можно вводить с клавиатуры или выводить на экран.

Задачи 1:

1. Пусть заданы описания :

var x,y : (winter, spring, summer, autumn);

t : (cold, warm);

а) Допустимы присвоения:x:=spring; t:=warm: t:=hot; y:=x; y:=t; б) Вычислить значение выражений Допустимы присвоение:

spring<summer;

autumn<winter;

Succ(spring);

Pred(autumn);

Ord(spring);

winter<=summer;

spring<>warm;

Pred(spring);

Pred(cold);

Pred(autumn) + Ord(cold);

в) Или допустим оператор цикла с заголовком : For x:=spring To autumn Do 2. Заданные описания следующих переменных :

VAR m, m1: (january, february, march, april, may, june, july, august, september, october, november, december);

k: 1..maxint; n: 1..12;

Присвоить переменного m1:

а) название месяца, следующий за месяцем m;

б) название k-го месяца после месяца n.

1. Диапазонный тип – это сужение некоторого базового упорядоченного типа. Его описывают так:

type <имя типа> = <значение 1> .. <значение 2>;

24

Пример. Создадим три типа (weekdays, workdays, months), которые описывают все дни и рабочие дни недели, а также номера месяцев года. Объявим переменные dayl, day2, day3 и month этих типов:

Type weekdays = (mon, tue, wed, fri, sat, sun);

workdays = mon..fri;

months=1..12;

var dayl, day2 : weekdays;

day3 : workdays;

month1 : months;

2. Строковый тип данных (string). Значениями переменной строкового типа может быть любая последовательность, что состоит не более чем из 255 символов. Данные строчного типа можно описать в разделе типов, задать в разделе констант или объявить в разделе переменных. Например:

type t = string[10];

const s = ‘Bye!’;

var top : t; w : string;

Типизированные константы.

Кроме обычных существуют типизированные константы. Они дают возможность объявлять переменные и сразу присваивать им значения:

const <имя константы 1> : <тип 1> = <переменная 1>;

. . .

< имя константы n> : <тип n> = <переменная n>;

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

const s : char = ‘a’; n : integer = 5; р : real = 1.73;

b : boolean = true;

Структура программы.

Программа состоит из следующих разделов:

заголовка

program < имя программы >;

описательной части

uses — присоединение библиотек и модулей;

label — объявления меток;

const — объявления констант;

type — описание типов;

var — объявления переменных;

procedure— объявления процедур пользователя;

function – объявления функций пользователя

исполняющей части

begin

< раздел команд >

end.

25

⮚ Заголовок и все разделы, кроме последнего, необязательны.

⮚ Разделителем между командами программы служит символ ;

⮚ В конце программы всегда должна стоять точка .

⮚ Заголовок программе привсвоює программист. В служебных словах и именах, какими пользователь называет свои программы и переменные, прописные и строчные буквы равноправные: имена А и а (или MyName и myname) обозначают один и тот же объект.

⮚ В программу могут входить комментарии. Комментарий -фрагмент текста программы, взятый в фигурные скобки {это комментарий} или записан так: (* комментарий *). Комментарий служит для объяснение работы программы и не влияет на выполнение команд. Он может быть размещен в любом месте программы.

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

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

const <константа 1> = <значение 1>;

<константа n> = <значение n>;

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

var <список переменных 1> <тип переменных 1>;

… { Элементы списков записывают через кому}

<список переменных n> <тип переменных n>;

Первая программа.

Программа – это последовательность команд, предназначенных для реализации алгоритма решение задачи. Алгоритм (и программу) составляют по таким принципом: вводят начальные данные, вычисляют и выводят результаты. Так же решают задачи по математике и физике, однако, здесь вычисления вручную не выполняют, это делает компьютер.

Задача. Вычислить периметр р и площадь s треугольника со сторонами а = 5, b = 3.6, с = 4.2.

Для решения задачи используем формулу Герона. Рассмотрим программу под названием triangle. Все команды, приведены в программе, будут подробно описаны ниже. program Triangle;

uses Crt;

const а = 5; b = 3.6; c = 4.2; {Задаем значение сторон} var p, s : real; {Объявляем переменные числового вещественного типа для периметра- г и площади –s.}

begin

26

clrscr; {Очищаем экран перед выводом результатов} г := а + b + c; {Вычисляем периметр}

writeln(‘p = ‘, p:5:2); {Выводим значение периметра} г := г / 2; {Вычисляем напівпериметр} s:=sqrt(p * (р – а) * (р – b) * (р – c)); {Вычисляем площадь}

writeln(‘s = ‘, s:5:2); {Выводим значение площади} end.

Символ обозначает операцию умножения – распределения, sqrt(x) – это функция вычисления квадратного корня с хДва символы := обозначают операцию присвоения. Команда writeln служит для вывода результатов.

После выполнение программы на экране получим:

г = 12.80

s = 7.43

Вопрос для самоконтроля.

1. Из чего состоит алфавит языка.?

2. Что такое идентификатор?

3. Какие типы ідентіфікаторов вы знаете?

4. Что такое комментарии?

5. Константы.

6. Переменные.

7. Типы данных. Классификация типов.

8. Стандартные типы.

9. Целые типы данных.

10. Действительны.

11. Символьные, логические.

12. Нестандартные типы данных.

13. Разделы программы.

14. Раздел описания данных.

15. Описание данных пользователя.

16. Раздел описания процедур и функций.

Литература: 2.с.20..46.

27

Линейные программы. Команды присваивания. Команды ввода и вывод данных. Форматированное вывод данных. Основные разделы темы.

1. Линейные программы.

2. Команда присваивания.

3. Основные операции.

4. Стандартные функции и процедуры.

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

6. Команды ввода данных (read, readln).

7. Команды вывода данных (write, writeln).

8. Форматированное вывод данных

Линейные программы.

Раздел команд простой (линейной) программы состоит из команд присваивания, ввода – вывода данных и вызова процедур. Команда присваивания.

Команда присваивания выглядит таким образом:

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

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

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

г := а + b + с;

p:=p/2;

s := sqrt(p * (р – а) * (р – b) * (р – с));

Здесь исчисляется значение периметра, которое присваивается переменной г, напівпериметра (присваивается тоже переменной г) и площади (присваивается переменной s).

Основные операции,

стандартные функции и процедуры.

Основные операции

Приоритет

1

Операция

Действие операции

+ –

not

присвоение знака Логическое отрицание

2

* /

div mod

and

Умножения, деление

Целочисленные операции

Логический произведение

3

+ –

or xor

Составление, вычитание, Логические суммы

4

=,<>,<,>,<=,>=

in

Отношение (сравнение)

Принадлежность к множеству

28

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

2 * -3 – 2 = -8 5 * (2 + 13) = 75; 20 + 100 / 20 * 5 = 45;

Результатом операции div есть доля от деления двух чисел, а mod – остаток, например:

(9 – 2) div 2 = 3; 7 mod 2 = 1; -17 mod 5= -2; 17 mod -5=2

Определение логических операций будут поданы ниже.

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

Функция

abs(x)

Тип

аргумента

Тип

результата

Математический

запись, комментарий

integer, real

integer, real

х

arctan(x)

integer, real

real

arctg(x)

cos(x)

integer, real

real

cos(x)

sin(x)

integer, real

real

sin(x)

exp(x)

integer, real

real

x

ln(x)

integer, real

real

ln(x), x>0

sqrt(x)

integer, real

real

0

sqr(x)

integer, real

integer, real

x2

ord(x)

упорядоченный

integer

ASCII-код символа

succ(x)

упорядоченный

упорядоченный

возвращает следующее значение х

pred(x)

упорядоченный

упорядоченный

возвращает предварительное значение х

round(x)

real

integer

округляет число х к целого

trunc(x)

real

integer

отвергает дробную

часть х

int(x)

real

real

отвергает дробную

часть х

frac(x)

real

real

дробная часть

числа х

odd(x)

integer

boolean

true(x-нечетное)

false(х-четное)

Процедуры

inc(x,y)

integer

integer

увеличивает x на в

inc(x)

integer, char

integer, char

увеличивает x на 1

dec(x,y)

integer

integer

уменьшает x на в

dec(x)

integer, char

integer, char

уменьшает x на 1

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

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

2. Записывать все составляющие части в один строка без подстрочных и надстрочных индексов.

3. Использовать скобки одного типа – круглые ( [{ и другие скобки применять запрещается).

4. Нельзя записывать рядом 2 знаки арифметических операций. 5. Вычисления выполняются слева направо соответственно до старшинства операций:

29

1) вычисления функций;

2) * / DIV (деление без остатка)

MOD (получение остатка от деления)

3) + –

Правила записи стандартных функций.

1. Имя функции записывается латинскими буквами.

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

ax2+ bx + c записывают так: a*x*x +b*x + c

2записывают так: sqrt(b*b – 4*a*c)

4ac

a c b

3

2записывают так: (a + c – 2*b)/(3-x) x

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

Верно :

VAR a,b : integer;

r,s : integer;

……………………….

r:=a div b; {r=3 при a=7, b=2}

r:= a mod b; {r=1 при a=7,b=2}

s:=a*b;

s:=a div b;

Ошибка :

VAR a,b : integer;

r : integer;

r:=a/b; {если результат объявлен как цілочисленний, нельзя использовать наклонну черту деления}

VAR a,b : real;

r : integer;

……………..

r:=a div b; { нельзя использовать операцию div для действительных чисел} r:=a mod b; { операция mod используется только по отношению до целых чисел}

VAR a,b : integer;

r : real;

r:=a div b; {r должно быть целым}

Слева по отношению к оператору присваивания должен стоять более широкий тип

VAR a : integer;

b : real;

c : real;

………..

c:=a+b {верно}

30

a:=c+b; {ошибка}

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

round(2.1)=2 int(2.1)=2.0 round(6.8)=7 int(6.8)=6.0

trunc(2.1)=2 frac(2.1)=0.1 (truncate- усікати, trunc(6.8)=6 frac(6.8)=0.8 fraction-дробь)

x:=l; inc(x,5); (х=6); x:=’a’; inc(x); (x=’b’) (increase- увеличить на 1, x:=7; dec(x,3); (x=4); x:=’d’; dec(x); (x=’c’). decrease)

Команды ввод данных (read, readln).

Присвоить значение переменным можно двумя способами: помощью команды привсвоєння, например, х:= 5, или команды ввод данных с клавиатуры readВторой способ делает программу более универсальной (массовой), так дает возможность решать одни и те же задачи для различных значений переменных. Команда read в общем виде записывается так:

read(<переменная 1>, … , возможен n>);

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

Команда readln выглядит так:

геаdln(<переменная 1>, … , < переменная n>);

Отличие между командами read и readln заключается в том, что под время выполнение команды readln лишние данные в строке введение игнорируются. Следующая команда введение считывать данные с нового строки. Эту команду используют конечно при работе с текстовыми файлами.

Значение сторон треугольника можно ввести, например, так: readln(а, b); read(c). Тогда во время выполнения программы на клавиатуре набираем

Пять 3.6 (нажимаем клавишу ввода)

4.2 (нажимаем клавишу ввода)

В результате выполнение команд readln(а,b) и read(c) переменные получат следующие значения: а = 5; b = 3.6; с = 4.2.

Замечание. Значение переменных логического и перечисленного типов вводить с клавиатуры не можно.

Команды вывод данных (write, writeln).

Для вывод на экран сообщений и результатов работы программы используют команды write и writeln. Команда write имеет такой вид:

write(<выражение 1> … < выражение n>);

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

Действие команды. Константы, значения переменных и выражений выводят на экран в окно вывода.

31

Команда writeln(<выражение 1> … < выражение n>);

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

Для перехода на новый строка экрана или для пропуска строки используют команду writeln без параметров.

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

write(‘p = ‘, р);

writeln(‘s = ‘, s);

то для входных данных

а = 5, b = 3.6, с = 4.2, на экране получим такой результат:

г = 1.2800000000 E+01 s = 7.429239530 Е+00.

Форматированное вывод данных.

Форматирование – это представление результатов в нужном для пользователя виде. Для этого после выражения записывают формат – двоеточие и число (:n)обозначая количество позиций на экране, которые необходимо выделить для вывода значение этого выражения.

Формат :n применяют для данных целого и строчного типов.

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

Рассмотрим команду вывод writeln(‘p=’, р:5:2) Она обеспечивает вывод на экран (с целью объяснение результата работы программы) строчной константы ‘р =’ без кавычек и числа 12,8 в формате :5;2, то есть так: р = 12.80.

Если не использовать форматированное вывода, то для данных целого и логического типов на экране выделяется до 15 позиций, для данных действительного типа – 18. Данные действительного типа выводятся в виде

х.ххххххххххЕзнакхх

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

Задача 1:

Написать программу нахождения цифр трехзначного числа

.program examp1_1;

var

a, z1,z2,z3, rez : integer;

begin

writeln(‘Введите число’); readln(a);

z1:=a Mod 10;

writeln(‘Цифра единиц числа – ’z1);

z2:=(a Div 10) Mod 10;

writeln(‘Цифра десятков числа – ’z2);

z3:=a Div 100;

writeln(‘Цифра сотен числа – ’z3);

32

rez:=z3*100+z2*10+z1;

writeln(Это тоже самое число – ’rez);

end.

Вопрос для самоконтроля.

1. Действие команды присваивания.

2. Основные операции, и их приоритет.

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

4. Правила записи стандартных функций

5. Результатом операции trunc(2.1) будет?

6. Результатом операции frac(2.1) будет?

7. Результатом операции round(2.1) будет?

8. Результатом операции int(2.1) будет?

9. Если x:=l; inc(x,5); то х= ?

10. Если x:=7; dec(x,3); то x=?

11. Если x:=’d’; dec(x); х= ?

12. Если результат объявлен как цілочисленний, можно

использовать наклонну черту деления?

13. Можно ли использовать операцию div для действительных чисел?

14. Операция mod используется только по отношению к которым

чисел?

15. Какие команды ввод данных вы знаете?

16. В чем заключается отличие между командами read и readln?

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

перечисленного типов?

18. Какие команды вывод данных вы знаете?

19. В чем заключается отличие команд вывода данных (write,

writeln).

20. Форматированное вывод данных.

21. Формат :n применяют для…?

22. Формат для выведение которых чисел выглядит так :n:m?

Задачи 2:

1. Введите целое число 3476589. Посмотрите результат..

2. Вместо числа введите какой-нибудь символ. убедитесь, что компьютер выдает сообщение об ошибке “Error 106: Invalid numeric format”. 3. Добавьте лишний знак апострофа в оператору Writeln и убедитесь что программа не проходит компиляцию, а система сообщает об ошибке “Error 8: String constant” exceeds line”.

4. Измените программу exampl1_1 для нахождения цифр двузначного числа. Сохраните ее с именем exampl1_2.

5. Измените программу exampl1_2 для нахождения цифр четырехзначного числа. Сохраните ее с именем exampl1_3.

6. Решите следующую задачу : Дано двохзначне число. Найти: а) сумму и произведение цифр числа;

б)число, образованное перестановкой цифр начального числа.

Литература: 2.с.47..64, 5.с.60..62, 67..72.

33

Разветвления: составлена команда, логическое выражение, команда ветвления IF. Команда CASE.

Основные разделы темы.

1. Составлен оператор.

2. Пустой оператор.

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

4. Определение логических операций.

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

6. Две формы оператора IF.

7. Полная форма оператора IF.

8. Краткая форма оператора IF.

9. Оператор GOTO.

10.Метка.

11.Вложенный IF.

12.Оператор выбора CASE.

Разветвления

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

Составлен оператор.

Составлен оператор – это группа операторов, ограничена операторными скобками begin и end. Составлен оператор компилятор рассматривает как один оператор.

begin< оператор 1>;

. . .

end;

< оператор n>;

Замечание. Запись begin end; или ;; называется пустой командой. В дальнейшем под командой или оператором понимать пустую, простую или составленную команду.

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

Условные операторы и операторы выбора обеспечивают выполнение или невыполнение некоторого оператора в зависимости от справедливости условии, что проверяется.

Логический выражение – это способ записи на языке программирования условий для поиска необходимых данных. Логический выражение может принимать значение true (истина) или false (ложное значения).

Логические выражения простые и составленыПростые — это два арифметические выражения, соединенные символом отношения, а составлены — это простые логические выражения, соединенные логическими операциями not, and или or. Приоритет выполнение логических операций такой: 1) not 2) and 3) or.

34

Определение логических операций.

Выражение

Значение

Выражение

Значение

not true

false

not false

true

true and true

true

true or true

true

true and false

false

false or true

true

false and true

false

true or false

true

false and false

false

false or false

false

Приклад1. Пусть х = 3, у = -9. Рассмотрим некоторые логические выражения и их значение.

Простые выражения

Значение

Сложные выражения

Значение

x=3

true

not (y<=-50)

true

x>y

true

(1<x) and (x<5)

true

Семь mod 3=1

true

(x 4) or (в < -15)

false

в div 2 = 4

false

(x > 4) or (в -15)

true

Приклад2. Двойная неравенство 1 < x < 5 как сложный логическое выражение записывают так: (1 < х) and (x 5). Совокупность неровностей вида х< 1; х > Пять так: (х < 1) ог (х > 5). Простые логические выражения, из которых состоят сложные, всегда берут в круглые скобки.

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

Оператор разветвления if имеет две формы: полную и короткую.

1. Полная форма оператора разветвления выглядит так:

if < логическое выражение > then < оператор 1>

else < оператор 2>;

Действие оператора. Если логическое выражение истинный, то выполняется оператор 1, в противоположном случае – оператор 2.

Пример. Пусть а = 5. Тогда в результате выполнение команд

if а < 7 then

begin

b := а – 2; с := 1 + 2 * а

end

else

begin

b := 2 + 5* а; с := 12 – 4 * (а – 3)

end;

получим b = 3, с = 11.

Задачи. Вычислите значения b и с, если а = 8.

2. Короткая форма команды ветвления if выглядит так:

if < логическое выражение > then < оператор>;

Действие оператора. Если логическое выражение истинный, то выполняется оператор, иначе выполняется оператор, который находится после данной конструкции. Пример. Пусть х = 25. Тогда в результате выполнение команд

35

if х > 12 then у := 2 * х; z := 10;

if х < 5 then z := 10 + х / 2;

получим у = 50, z = 10.

Задача2:

Составить программу вывода на экран крупнейшего из двух чисел. PROGRAM prim1;

USES Crt;

var

x,y : real;

begin

ClrScr; (* очистка экрана *)

Writeln(‘Введите два числа’);

Readln(x,y);

IF x>y THEN Writeln(x)

ELSE Writeln(y);

end.

Задача 3.

Решить квадратное уравнение вида ax2+ bx +c = 0

План решения задачи :

1. задать коефіціенти a,b,c.

2. вычислить значение дискримінанту.

3. проверить значение дискримінанту, в зависимости от полученного результата, выполнить ту или иное действие.

program kvyr;

var

a,b,c : integer;

x1,x2,d : real

begin

writeln(‘введите коэффициенты квадратного уравнения’);

read(a,b,c);

d:=b*b-4*a*c;

if d>=0 then begin

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

writeln(‘корни x1=,x1,’ x2’,x2)

end

else if d=0 then writeln(‘x1=x2=’,-b/(2*a))

else writeln(‘нет развязку’);

end.

Оператор GOTO.

Оператор goto — это оператор безусловного перехода. Он предназначен для изменения последовательности выполнение операторов в программе путем передачи управление некотором оператору с меткой.

36

goto <метка>;

Метка может стоять перед любым оператором в программе. Она отделяется от оператора двоеточием (:)

<метка> : < оператор >;

Метка может быть идентификатором или числом от 0 до 9999. Метки нужно заранее объявить в разделе label:

label <список меток>;

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

Вложенный IF

Один оператор if может входить в состав другой оператора if. В этом случае говорят о вложенность операторов.

⮚ Вариант 1.

if <Умова1> then

if < Условие 2> then <Оператор 2.1>

else <Оператор 2.2>

else <Оператор1>;

⮚ Вариант 2.

if < Условие 1> then <Оператор 1>

else if < Условие 2> then <Оператор2>

else <Оператор3>;

⮚ Вариант 3.

if < Условие 1> then

if < Условие 2> then <Оператор1>

else <Оператор2>;

Если Условие 1, Условие 2… которые проверяются не влияют одна на одну, то есть последовательность их вычисления не берется внимание, в тексте программы их рекомендуется располагать в определенном порядке. Условие, с наибольшей вероятностью которая принимает значение trueдолжна стоять на первом месте, с меньше вероятностью — на втором и т.д. Это ускорит выполнение программы.

Следует знать:

⮚ при вложенности операторов каждое else соответствует поэтому then, которое непосредственно ему предшествует (вариант 3);

⮚ конструкций со степенью вложенности больше 2-3 необходимо избегать через сложность их анализа при отладке программы;

⮚ – в условных операторах часто используют Составлен оператор begin.. .end; ⮚ в условных операторах точка с запятой не ставится после then и перед else;

Задача 4.

Сравнение возраста

var agel,age2: integer;

begin

write(‘Введите возраст брата: ‘); readln(agel);

37

write(‘Введите возраст сестры: ‘); readln(age2);

if agel>age2 then writeln(‘Брат старше.’)

else if agel<age2 then writeln(‘Сестра старше.’)

else writeln(‘Они близнецы.’);

end.

Задача 5.

.Проверка числа на четность

var n: integer;

begin

write(‘Введите целое число: ‘); readln(n);

write(‘Число ‘,n, ‘ — ‘);

if n mod 2=0 then writeln(‘четное’)

else writeln(‘нечетное’);

end.

Оператор выбора CASE.

Оператор выбора case есть обобщением оператора if и используется для выбора одного из нескольких направлений дальнейшего хода программы.

case <выражение>

<список значений 1> < оператор 1>;

. . .

< список значений n> < оператор n>

else < оператор n+1>

end;

где

⮚ выражение — это простая переменная целого, символьного, перечисленного или логического типов;

⮚ списки значений – константы или диапазоны, тип которых должен совпадать с типом выражения. Если список значений состоит из нескольких элементов, то они перечисляются через запятую, диапазоны записываются через «..».

⮚ else < оператор n+1> можно не писать, тогда получаем короткую форму команды case.

⮚ точка с запятой не ставится после последнего элемента списка выбора. Действие оператора. Если значение выражения совпадает с некоторым значением из списка, то выполняется соответствующий оператор этому значению, а другие операторы этой конструкции не выполняются. Если значение выражения не совпадает ни с одним значением из любого список значений, то выполняется оператор n+1. В случае короткой формы—следующая команда после команды case.

Задача 6.

Пусть населенные пункты обозначены номерами от 1 до 8. Стоимость одного билета к пункта определяется так:

22, N = 1

Cena=

25, N = 2,3,4 30, N = 5,6

38

35, N = 7,8.

Сколько стоит т билетов до населенного пункта, номер которого пользователь должен ввести с клавиатуры?

program Biletі;

uses Crt;

var N, m, сепа : integer;

begin

clrscr;

writeln(‘Введите номер пункта и количество билетов:’); readln(N, m); case N

Один : сепа:=22;

2..4 : сепа:=25;

5,6 : cena:=30

else сепа:=35

end;

write(m, ‘билетов в пункта ‘, N, ‘ стоят ‘);

writeln(m * сепа);

end.

Вопрос для самоконтроля.

1. Что такое ветвление?

2. Как записывается составлен оператор?

3. Что такое пустой оператор?

4. Что такое логический выражение?

5. Какие логические выражения вы знаете?

6. Пусть х = 3, у = -9 которое значение принимает выражение: not (y<=-50) 7. Пусть х = 3, у = -9 какое значение принимает выражение: (1<x) and (x<5) 8. Пусть х = 3, у = -9 какое значение принимает выражение: (x > 4) or (в < -15) 9. Пусть х = 3, у = -9 какое значение принимает выражение: (x > 4) or (в > -15) 10. Пусть х = 3, у = -9 какое значение принимает выражение: 7 mod 3=1

11. Пусть х = 3, у = -9 которое значение принимает выражение: в div 2 = 4

12. Пусть х = 3, у = -9 которое значение принимает выражение: в div 2 = 4

13. Полная форма оператора разветвления if.

14. Пусть а = 5. Тогда что получим в переменных и с в результате выполнение команд

if а < 7 then

begin

b := а – 2; с := 1 + 2 * а

end

else

begin

b := 2 + 5* а; с := 12 – 4 * (а – 3)

end;

15. Краткая форма команды ветвления if имеет вид:?

16. Пусть х = 25. Тогда что получим в переменных в и в результате выполнение команд

if х > 12 then у := 2 * х; z := 10;

if х < 5 then z := 10 + х / 2;

17. Для чего предназначен оператор безусловного перехода?

18. В каком разделе нужно объявить метки?

39

19. Можно передавать управление команде, которая находится в

середине подпрограммы или в середине составляющей команды?

20. Вложенный IF.

21. Оператор выбора case.

22. Что содержат списки значений в операторе case?

23. Что содержит выражение в операторе case?

Задачи 3.

Написать и отладить следующие программы.

Условие задачи

1.

Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 10% предоставляется, если сумма покупки больше 1000 грн. Ниже представлен рекомендован вид экрана во время работы программы.

Вычисления стоимости покупки с учетом скидки.

Введите сумму покупки и нажмите <Ввод>

-> 1200

Вам предоставляется скидка 10%

Сумма покупки с учетом скидки: 1080.00 грн.

2.

Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется в том случае, если сумма покупки больше 500 грн., в 5% — если сумма более 1000 грн. Ниже представлен рекомендован вид экрана во время работы программы. Вычисления стоимости покупки с учетом скидки.

Введите сумму покупки и нажимайте <Ввод>

-> 640

Вам предоставляется скидка 3%

Сумма покупки с учетом скидки: 620.80 грн.

3.

Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 999), что обозначает денежную единицу, дописывает слово “гривна” в правильной форме. Например 12 гривен, 21 гривен и т.д.

4.

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

Введите цифрами сегодняшнюю дату (число месяц, год) -> 31 12 1999

Последний день месяца!

С наступающим новым годом!

5.

Данные действительные числа х, у. Найти значение

sin х при (х, у) D;

Z=

х + 2у при (х, у)  D.

Область D задается графически:

6.

Данные натуральные числа i, к (i >= k).

Вычислить

i + k i, кратном k;

G=

2(i – k) при i, не кратном k.

40

7.

Используя оператор IF, придать переменной значение 0, если из введенных чисел х, в, z только два числа равны между собой, и значение 1 — в противном случае.

8.

Написать программу, которая вычисляет оптимальную вес пользователя, сравнивает его с реальным и выдает рекомендацию о необходимости набрать вес или похудеть. Оптимальная вес исчисляется по формуле: рост (в сантиметрах)-100. Рекомендован вид экрана во время работы программы

Введите в одной строке через пробел

рост (см) и вес (кг) затем нажмите <Ввод>

170 68

Вам надо набрать вес 2.00 кг.

9.

В зависимости от введенного числа в диапазоне от 1 до 9 провідмінювати слово «Предмет» ( 1- предмет; 2 – предметы; .. 5 – предметов).

10.

Провідмінювати слово “Час” в зависимости от введенного времени на часах.

Литература: 2.с.67..80, 5.с.62..64.

41

Циклы. Команда цикла с параметром (FOR),

команда цикла с предусловием (WHILE),

команда цикла с после условием (REPEAT).

Основные разделы темы.

1. Циклический алгоритм.

2. Оператор цикла с параметром.

3. Два вида оператора for.

4. Команда цикла с предпосылкой (while).