
- •Введение в конструирование программ
- •Пенза 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. Приложение «Калькулятор»
2.3.3 Программирование с использованием управляющих структур
Сконструировать простое консольное приложение в соответствии с одним из приведенных ниже заданий.
Напишите программу, которая осуществляет обработку информации по одному из условий, заданных ниже.
Присвоить переменной К значение 1, если два числа из трех чисел x, y, z являются положительными и кратными 3, и значение 0 в противном случае.
Найти наибольшее из трех чисел x, y, z.
Присвоить переменной К значение true, если точка с координатами x, y принадлежит заданной области, и значение false в противном случае:
Дано натуральное число N. Определить:
Сколько цифр 5 и 8 входит в это число
Произведение цифр заданного натурального числа
Определить число, получаемое выписыванием в обратном порядке цифр заданного натурального числа
Является ли заданное натуральное число палиндромом, т.е. таким, десятичная запись которого читается одинаково слева направо и справа налево
Сколько чисел натурального ряда необходимо перемножить, чтобы их произведение превысило заданное натуральное число
Определить десятичный эквивалент целого положительного двоичного числа К.
Определить двоичный эквивалент целого положительного десятичного числа N.
Вычислить сумму:
с точностью 0.001
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?
Вычислить приближенную площадь одной арки косинусоиды, разделив отрезок от –π/2 до π/2 на 10 частей и суммируя площади десяти прямоугольников с основанием π/10 и высотой, равной значению функции на правой границе каждого интервала.
Найти три таких целых числа a, b и c в диапазоне от 0 до 20, для которых справедливо равенство Пифагора: a2 + b2 = c2.
2.4 Подпрограммы
Сложные программы составляются из концептуальных блоков, значительно более крупных, чем отдельные операторы языка программирования. Такими блоками являются подпрограммы и модули.
Декомпозиция (разбиение) программы на небольшие логически завершенные блоки – это один из основных путей написания программы в ясной и понятной форме.
Подпрограмма – это логически завершенный компонент программы. Подпрограмма представляет собой некоторую функцию обработки информации, которая отображает конкретный набор аргументов в некоторый набор результатов. Определение подпрограммы состоит из двух частей: спецификации и реализации.
Спецификация (прототип) подпрограммы включает:
Тип подпрограммы: function (функция), procedure (процедура).
function – подпрограмма явно возвращает только один результирующий объект данных;
procedure – подпрограмма возвращает более одного значения или действия подпрограммы сводятся только к модификации ее аргументов вместо возвращения результата.
Имя подпрограммы;
Формальные параметры: аргументы (входные значения) и результаты (возвращаемые значения).
Реализация подпрограммы (тело подпрограммы) включает:
Описание локальных данных, используемых подпрограммой;
Операторы, задающие действия, которые должна выполнить подпрограмма.
Локальные данные и операторы инкапсулированы (спрятаны), так что ни локальные данные, ни операторы по отдельности не доступны Пользователю подпрограммы. Пользователь может только вызвать подпрограмму. В тело подпрограмм могут входить определения других (вложенных) подпрограмм.
Вызывающая программа – программа (подпрограмма), которая обращается к подпрограмме (вызывает подпрограмму).
Оператор вызова – оператор вызывающей программы, с помощью которого она обращается к подпрограмме. Оператор вызова подпрограммы содержит:
имя подпрограммы;
список фактических параметров.
Фактические параметры – это элементы вызывающей программы (константы, переменные, массивы и другие), значения которых передаются в подпрограмму или возвращаются из нее.
Типы фактических и соответствующих им формальных параметров должны совпадать!
Вызываемая программа – подпрограмма, к которой обращается вызывающая программа. Вызываемая программа возвращает управление вызывающей программе, которая продолжает свое выполнение с оператора, следующего за оператором вызова.
Схема передачи управления между вызывающей и вызываемой программами приведена на рисунке 2.4.
Рисунок 2.4 – Схема передачи управления между вызывающей
и вызываемой программами
Обмен информацией между вызывающей и вызываемой программами может осуществляться с использованием глобальных данных или передачей параметров.