- •Введение в конструирование программ
- •Пенза 2006 г.
- •Предисловие
- •1 Обработка информации на компьютере
- •1.1 Модель обработки информации на компьютере
- •1.2 Основные объекты языка программирования
- •1.2.1 Синтаксические элементы языка программирования
- •1.2.2. Значения и типы
- •1.2.3. Константы и переменные
- •1.2.4. Выражения
- •1.2.5. Операторы
- •1.3 Лабораторные задания
- •1.3.1 Логическая разминка
- •1.3.2 Реализовать схемы программ на языке Object Pascal
- •2 Структурное конструирование программ
- •2.1 Простая программа
- •2.2 Консольное приложение
- •2.2.1 Создание, сохранение и загрузка программы
- •2.2.2 Компиляция и выполнение программы
- •2.3 Лабораторные задания
- •2.3.1 Составление простых программ
- •2.3.2 Выполните трассировку и определите результаты работы программы
- •2.3.3 Программирование с использованием управляющих структур
- •2.4 Подпрограммы
- •2.4.1 Глобальные данные
- •2.4.2 Способы передачи параметров
- •2.4.3 Функции
- •2.4.4 Процедуры
- •2.4.5 Значения параметров по умолчанию
- •2.4.6 Перегрузка функций
- •2.4.7. Рекурсивные подпрограммы
- •2.4.8. Передача наименования подпрограммы как параметра
- •2.5 Отладка программ
- •2.6 Лабораторные задания. Подпрограммы
- •2.6.1 Конструирование подпрограмм
- •2.6.2 Разработка рекурсивных подпрограмм
- •2.7. Модули
- •Interface {интерфейс модуля}
- •Implementation {реализация}
- •Initialization {инициализация}
- •3. Структуры данных
- •3.1. Массивы
- •3.1.1. Действия над массивами
- •I, j : byte; { индексы элементов массивов }
- •3.1.2 Передача массивов в качестве параметров
- •3.1.2.1. Формальные параметры как массивы с фиксированными размерами
- •3.1.2.2. Формальные параметры как массивы со «свободными» размерами
- •3.1.2.3. Определение наименьшего/наибольшего значения массива
- •3.1.3 Лабораторные задания
- •3.1.3.1 Одномерные массивы
- •3.1.3.2. Двумерные массивы
- •3.2. Строки
- •3.2.1 Лабораторные задания
- •3.3. Записи
- •3.3.1 Лабораторные задания
- •3.4 Файлы.
- •3.4.1 Основные понятия и операции
- •3.4.2 Типизированные файлы
- •3.4.3 Текстовые файлы
- •3.4.4 Лабораторные задания
- •3.5 Динамические структуры данных. Указатели
- •3.5.1 Основные понятия и определения
- •3.5.2 Процедуры выделения и освобождения памяти
- •3.5.3 Односвязный список
- •3.5.4 Лабораторные задания. Указатели, список
- •3.5.5 Динамические массивы
- •4. Введение в объектно-ориентированное конструирование программ
- •4.1 Основные понятия и определения
- •4.2 Классы и объекты
- •4.2.1 Структура класса
- •4.2.2 Создание и уничтожение объектов
- •4.2.3 Пример. Класс – динамический массив
- •4.2.5 Операции с объектами
- •4.2.5.1 Оператор is
- •4.2.5.2 Оператор as
- •4.2.5.3 Копирование объектов одного класса
- •4.2.6 Свойства
- •4.2.7 Наследование и полиморфизм
- •4.2.8 События
- •4.2.9 Исключительные ситуации
- •4.2.9.1 Операторы try…except
- •4.2.9.2 Операторы try…finally
- •5. Визуальная разработка программ в delphi
- •5.1. Интегрированная среда разработки программ
- •5.1.1 Проект
- •5.2 Конструирование простого приложения
- •5.2.1 Интерфейс Пользователя
- •5.2.2 Визуальное конструирование
- •5.2.3 Реализация методов
- •5.2.4 Обработка исключительных ситуаций
- •5.2.5 Файлы приложения Калькулятор
- •5.3 Компоненты ввода/вывода данных StringGrid и Memo
- •5.3.1 Компонент StringGrid – таблица строк
- •5.3.1 Ввод массива. Компонент StringGrid
- •5.3.3 Компонент Memo – многострочное окно редактирования
- •5.3.4 Ввод массива. Компонент Memo
- •5.4 Немного о графике
- •5.4.1 Свойство Canvas. Построение графика функции
- •5.4.2 Событие OnPaint
- •Список литературы
- •Приложение а. Кратко о Delphi а.1 Свойства проекта
- •А.2 Программный код пустой формы
- •А.3 Главная форма
- •А.3.1 Свойства главной формы
- •А.3.2 События главной формы
- •А.4 Компоненты Delphi
- •Приложение b. Приложение «Калькулятор»
1.3 Лабораторные задания
1.3.1 Логическая разминка
1. В поезде ехали Аня, Галя и Женя. Их профессии – журналист, доктор и менеджер. Они читали газеты «Аргументы и факты», «Жизнь России», «Правда». Кто, какую газету читал и у кого, какая профессия, если известно, что:
Галя не доктор
Аня не читала «Аргументы и факты»
Имя, профессия одного из пассажиров и название газеты совпадают по первой букве.
2. Программист был в гостях у своего друга, у которого трое детей. Друг предложил программисту определить возраст каждого ребенка, сообщив ему, что произведение их возрастов равно 36. Обдумав задачу, программист сказал, что ему необходима подсказка. Тогда его друг назвал ему сумму возрастов детей. Подумав еще немного, программист попросил еще какую-нибудь подсказку. «Старший играет на пианино». Услышав это, программист назвал возраст каждого ребенка. Сколько лет детям?
3. Когда вы садились в лодку, ваша шляпа упала в воду, но вы этого не заметили. Скорость течения реки 2.5 км/час. Шляпа поплыла вниз по течению. Тем временем вы плыли вверх против течения реки со скоростью 4,75 км/час (относительно воды). Спустя 10 минут вы заметили пропажу, развернули лодку и поплыли вниз по реке догонять шляпу. Через какое время вы поймаете шляпу?
4 Допустим, у нас есть большой и маленький стаканчики для вина. Сначала наполним вином маленький стаканчик и перельем его в большой. Затем наполним маленький стаканчик водой. Перельем некоторое количество воды из маленького стаканчика в большой стаканчик и смешаем воду с вином. После этого перельем смесь из большого стаканчика в маленький стаканчик, пока он не наполнится. Чего теперь больше в маленьком стаканчике – воды в вине или вина в воде?
5. Перед соревнованиями участники A, B, C, D делали прогнозы:
Участник A предсказал, что победит B
Участник B предсказал, что D будет последним
Участник C предсказал, что A будет третьим
Участник D предсказал, что сбудется прогноз A.
Только один прогноз был верным, и это был прогноз победителя. В каком порядке закончили соревнования участники?
6. Путешественник, у которого есть золотая цепочка из 7 звеньев, должен остановиться в уединенном отеле на 7 ночей. Плата за каждую ночь в отеле составляет одно звено его цепочки. Какое наименьшее число звеньев надо разрезать, чтобы путешественник мог платить владельцу отеля одно звено каждое утро, не внося плату заранее?
7. Отец с двумя сыновьями отправился в поход. На их пути встретилась река, у берега которой находилась лодка. Лодка выдерживает на воде либо отца, либо сыновей.
Как переправиться на другой берег путешественникам и сколько им потребуется времени, если каждая поездка через реку занимает 5 минут?
8. На некоторой планете Х деревья растут очень быстро. За день пока солнце поднимается и находится в зените, они вырастают на 1 метр, когда же солнце заходит их рост сокращается на 10 сантиметров.
На какой день высота нового дерева превысит 4.5 метра?
9. В кафе встретились три друга: скульптор Белов, скрипач Чернов и художник Рыжов. «Замечательно, что один из нас имеет белые, другой – черные, а третий – рыжие волосы, но при этом ни у одного из нас нет волос того цвета, на который указывает фамилия», – заметил черноволосый. «Ты прав», – сказал Белов. Какой цвет волос у художника?
10. Определите значение выражения: x and 1 = 0 при различных значениях логической переменной x. Зависит ли значение выражения от x?