Структурное программирование Лекция 4. Ломаско Павел Сергеевич 23 июля 2015 г.
План 1. Основные принципы структурного программирования. 2. Программирование на Object Pascal: основные понятия. 3. Следование и линейные программы.
Основные принципы структурного программирования
Структурное программирование методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э.В. Дейкстрой, разработана и дополнена Н. Виртом.
Основные особенности 1. Любая программа может быть представлена при помощи 3 алгоритмических структур: Следования (композиции) Ветвления (альтернативы) Повторения (итерации, цикла)
Основные особенности 2. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций).
Язык программирования Pascal
Исторический аспект Алгоритмический язык Паскаль разработан профессором Цюрихского технологического института Никлаусом Виртом в годах язык профессионального программирования. Был назван в честь французского математика и философа Блеза Паскаля ( ).
Алфавит и структура языка Алфавит ( набор используемых символов ) включает буквы латинского алфавита: от a до z и от A до Z, арабские цифры: от 0 до 9, специальные символы: _ + - * / =,. : ; ( ) [ ] { } $ #, пробел "_" и управляющие символы с кодами от #0 до #31. Используются также служебные (зарезервированные) слова, например: absolute, and, array, begin и другие.
При написании программы применяются: константы - данные, значения которых не изменяются в программе; переменные - данные, могущие изменяться при выполнении программы; выражения - константы, переменные и обращения к функциям, соединенные знаками операций; операторы - специальные символы и слова, выполняющие действия; функции, процедуры и модули - отдельные программные блоки, имеющие имена и подключаемые к основной программе.
Имена Для обозначения имен констант, переменных, функций, процедур и модулей используются буквы и цифры, входящие в алфавит языка, и знак подчеркивания "_". Имена начинаются с буквы или знака подчеркивания "_" и содержат до 63 значащих символов. Символ пробела в имени не допускается. Эти имена принято называть идентификаторами. Различие прописных и строчных букв в идентификаторах Паскаля не учитывается.
Общая структура программы Program NAME; { Заголовок программы - не обязательный оператор } { NAME - имя программы } { Раздел описания } Uses CRT, WINDOWS; { Подключение внешних библиотек} Const { Задание значений констант, используемых в программе } Type {Описание типов введенных программистом } Var { Описание переменных } { Раздел описания подпрограмм } BEGIN { Начало выполнения программы } { Раздел выполнения (тело программы) } END. { Конец выполнения программы }
Операторы ввода и вывода Вывод (на экран) write(переменная); - без перевода на новую строку writeln(переменная); - c переводом на новую строку Текст выводится с использованием специальных символов (апострофов): writeln (Это текст); Ввод (с клавиатуры) read(переменная); - без последующего перевода на новую строку readln(переменная); - c переводом на новую строку
Наша первая программа Вывести на экран текст: Hello, world!
Оператор присваивания - основной оператор любого языка программирования. Общая форма записи оператора: имя величины := выражение A:=5; (читается: А присвоить 5) B:=7; C:=A+B;
Арифметические выражения НАЗВАНИЕ ОПЕРАЦИИ ФОРМА ЗАПИСИ сложениеz:= x + y; вычитаниеz:= x – y; умножениеz:= x * y; делениеz:= x / y;
Типы данных Для временного хранения информации в операторах памяти машины в языке Паскаль используются константы и переменные. Они могут быть различных типов: целых чисел действительных чисел символьный тип строковый логический сложные (комбинированный, множественный и другие)
Целые типы Название Длина в байтах Диапазон значений Byte ShortInt Word Integer LongInt
Операции над целыми типами НАЗВАНИЕ ОПЕРАЦИИОПЕРАНД ФОРМА ЗАПИСИ сложение+z:= x + y; вычитание-z:= x – y; умножение*z:= x * y; целая часть от деленияdivz:= x div y; остаток от деленияmodz:= x mod y;
Пример Написать программу, в которой с клавиатуры вводятся два целых числа и на экран выводится их сумма. Использовать оператор присваивания. А+В=?
Вещественные типы Длина, байт Название Количество значащих цифр Диапазон десятичного порядка 6Real Double Extended Comp * *63-1 Большие числа как можно записать в виде чисел с десятичным порядком 1.37·10 8. Такие числа имеют вид mEp. Здесь: m - мантисса; E - признак записи числа с десятичным порядком; p - степень числа 10. Получится 1.37Е+8. Такие числа, представленные с десятичным порядком и называются числами с плавающей точкой.
Пример Написать программу, в которой с клавиатуры вводятся два вещественных числа и на экран выводится частное от деления первого числа на второе. Не использовать оператор присваивания. А/В=?
Стандартные математические функции Обращение Тип параметра Тип результата Примечание abs (x)Real, Integer Тип аргумента Модуль аргумента sin (х)Real Cинус, угол в радианах cos (х)To же То же Косинус, угол в радианах ехр (х)""Экспонента frас (х)""Дробная часть числа int(x)""Целая часть числа ln(x)""Логарифм натуральный Pi-" π =
Стандартные математические функции Обращение Тип параметра Тип результата Примечание Random-" Псевдослучайное число, равномерно распределенное в диапазоне 0...[1] Randomize-- Инициация генератора псевдослучайных чисел Аrс Таn (х)Real Арктангенс, угол в радианах sqr (x) Real Integer Real Integer Квадрат аргумента sqrt (x)""Корень квадратный
Пример С помощью параметра – вводимого с клавиатуры вещественного числа вычислить
Следование и линейные программы
Следование (композиция) или последовательное исполнение однократное выполнение операций в том порядке, в котором они записаны в тексте программы; Программа, в которой присутствует только следование, называется линейной.
Пример Составить программу вычисления площади произвольного треугольника, пользуясь любой из известных формул (задав необходимые исходные данные):
Для самостоятельной работы Занятия 1-6
Спасибо за внимание!