- •Список рассматриваемых вопросов Лекция 1 Основные этапы решения задач с использованием математического моделирования.
- •Вопрос 1
- •Основные этапы решения задач с использованием математического моделирования.
- •Вопрос 2 Методический пример решения задачи с использованием математического моделирования. Программирование линейных алгоритмов.
- •Вопрос 3 Анализ текста данной программы
- •Вопрос 4 Некоторые стандартные функции (модуль System программной среды Borland Pascal)
- •Вопрос 5 Операции над данными в языке Паскаль
- •Вопрос 6 Приоритет арифметических операций
- •Лекция 2
- •Вопрос 1 Программирование схемы алгоритма (п. 3.4 вопрос 2 лекции 1)на языке Delphi (консольный режим)
- •Вопрос 2 Создание консольного приложения в среде Delphi версия 7
- •Вопрос 3 Особенности подготовки к разработке консольного приложения Delphi в среде Borland Developer Studio 2005 или 2006 (версия 10)
- •Вопрос 4
- •Вопрос 5 Анализ текста данной программы
- •Лекция 3
- •Вопрос 1
- •Вопрос 2
- •Вопрос 3
- •Вопрос 4
- •Вопрос 4
- •Вопрос 5 Пример использования подпрограмм при программировании в среде Паскаль
- •Составление схемы алгоритма
- •Запись алгоритма на языке программирования Borland Pascal.
- •Вопрос 5 Анализ данного программного обеспечения, включающего использование подпрограммы.
- •Лекция 4 составление и реализация разветвляющихся алгоритмов
- •Вопрос 1
- •Базовые логические структуры
- •Вопрос 2 Операторы языка программирования Delphi (Паскаль)
- •Вопрос 3
- •Вопрос 4
- •Вопрос 5.
- •2 Конструкция “если - то”
- •Вопрос 6
- •3 Конструкция “если - иначе”
- •Вопрос 7 Пример конструкции “если” с использованием составного оператора
- •Вопрос 7 Текст программы на языке Delphi (консольный режим)
- •Вопрос 8 Варианты записи условий (логических выражений)
- •Вопрос 9 Пример решения задачи с использованием конструкции “если”, вложенной в другую конструкцию “если”, отладочной печати и стандартного модуля “Printer”
- •Вопрос 10 Использование отладчика при отладке указанной программы
- •Вопрос 11 Конструкция типа ”выбор” (”вариант”)
- •Реализация конструкции Выбор на языке програмирования.
- •Комментарий к фрагменту программы реализующему конструкцию Выбор:
- •Вопрос 12
- •Лекция 5 составление и реализация циклических алгоритмов
- •Вопрос 1
- •Вопрос 2
- •Вопрос 3 Конструкция повторение с постусловием (repeat …until) («до»)
- •Запись конструкции в виде схемы с использованием блока решение.
- •Описание работы конструкции «до» .
- •Запись конструкции на языке Паскаль и Delphi:
- •Пример решения предыдущей задачи с использованием конструкции повторение с постусловием (repeat…until)
- •Программа решения задачи с использованием конструкции repeat … until.
- •Вопрос 4 Запись конструкции повторение в виде схемы с использованием блока модификация
- •Вопрос 5 Конструкция повторение с параметром (for) («Для»)
- •Особенности конструкции «Для»
- •Запись конструкции «Для» в виде схем
- •2.4 Использование блока «модификация» при шаге -1
- •Запись конструкции «Для» на языке Паскаль (Delphi)
- •Замечания по применению конструкции for
- •Пример решения задачи с использованием конструкции
- •Лекция 6 Разработка и программирование итерационных алгоритмов
- •Задача 1 на использование итерационных алгоритмов
- •Условие задачи
- •Вычислить
- •Анализ особенностей задачи
- •Метод решения задачи
- •Условие задачи
- •Анализ особенностей решения задачи
- •Метод решения задачи
- •Алгоритм решения задачи без использования индексированных переменных
Вопрос 5 Анализ данного программного обеспечения, включающего использование подпрограммы.
Рассмотрим использование словаря (алфавита) языка Паскаль. В состав алфавита входят ключевые (служебные) слова и символы. В рассматриваемых программах используются служебные слова: program, uses, const, var, real, text, char, begin, end, integer, string, if, then, else. Символы подразделяются на буквы, арабские цифры, знаки арифметических операций, знаки операций сравнения, разделители (знаки препинания, скобки, апострофы, :=).
Комментарии помещаются в программу только для программистов и пользователей программы. Текст комментария заключается в фигурные скобки и ЭВМ не анализируется. В языке программирования Турбо Паскаль запрещается использовать вне комментария русские буквы, за исключением вывода строки символов.
Вторая строка является заголовком программы. Имя программы lab4. Она находится в файле а:\lab4.pas .Двадцать первая строка- это заголовок процедуры. Имя этой нестандартной, т.е. не входящей в комплект программного обеспечения Турбо Паскаля, процедуры - outpr. Ее вызов осуществляется в 10 строке.
В данном программном обеспечении используются имена (идентификаторы): стандартных подпрограмм - write, writeln, readln, assign, assigncrt, close, rewrite, clrscr, readkey; в основной программе констант - ind, falename и переменных - u , i , r, f, ch; а в процедуре outpr переменных - ind, filename. Стандартными называются подпрограммы, входящие в комплект программного обеспечения языка программирования. Идентификаторы должны начинаться с буквы, за которой могут следовать цифры.
В общем случае используемые в программе подпрограммы, константы, типы переменных и переменные должны быть описаны (объявлены). Это делается либо непосредственно в программе в соответствующем разделе описаний, либо с помощью указания в предложении uses (см. строку 3) имен модулей типа Unit, в которых эти описания выполнены. Исключением являются описания, выполненные в стандартном модуле System, которые всегда доступны программе. Так процедурами, описанными в этом модуле, и используемыми в программе являются: write, writeln, readln, close, а в пользовательской процедуре outpr - assign и rewrite. В модуле Crt описаны используемые подпрограммы - readkey , clrscr, assigncrt. Пользовательская процедура outpr описана в строке 8 с помощью директивы Include, обеспечивающей замену с помощью ЭВМ этой строки на текст файла a:\outpr.pas.
В сроках 4 и 5 описаны константы: целочисленная - ind (индикатор) и типа строка символов - filename(имя файла). При описании переменных (см. строки 6 и 7) должен быть указан их тип. Используются такие стандартные типы данных как геаl (действительный (синоним - вещественный) ), integer (целочисленный), string (строка символов), char (символ), text для описания файловых переменных текстового типа) и др. С помощью типа real, в отличие от типа integer, описываются переменные значения, которых имеют цифры после десятичной точки.
Следует уделять внимание рациональному размещению текста программы. Использование пробелов и отступов позволяет улучшить наглядность программы. Количество используемых строчек для записи каждого оператора и количество операторов в каждой строке не ограничивается и выбирается из соображений удобства чтения программы человеком. Однако нельзя разделять пробелами части одного идентификатора или размещать их на разных строках. Там, где можно по синтаксису языка поставить один пробел, там можно поставить произвольное количество пробелов.
Операторы отделяются друг от друга символом ";".
Для задания границ каждого блока программы служат слова begin и end. Для простых программ, в отличие от сложных, обычно достаточно одной такой пары. Последнее слово end программы должно заканчиваться точкой. После набора этой точки необходимо не забыть нажать на клавишу "Ввод".
В 10 строке вызывается процедура outpr. Она имеет фактические параметры: f - текстовая файловая переменная; ind численное значение этого идентификатора определяет то, куда производится вывод данных и filename. Его значение является именем дискового файла, в который может осуществляться вывод данных.
В заголовке процедуры outpr (21 строка) в скобках указываются формальные параметры (с указанием их типов): параметр-переменная f, параметры-значения этой подпрограммы - ind и filename. Эти параметры получают свои значения от соответствующих фактических параметров при вызове подпрограммы.
В 24 строке вызывается процедура clrscr, которая обеспечивает очистку экрана.
В 25-27 размещается оператор "если-то-иначе". В нем проверяется условие ind=1. Если оно выполняется, то сызывается процедура assign(f,filename). Она устанавливает соответствие между файловой переменной f и дисковым файлом, имя которого является значением переменной filename. В результате данные, выводимые в файловую переменную, f будут автоматически выводиться в указанный дисковый файл.
Иначе (т.е. если условие не верно) выполняется второй оператор "если-то-иначе". В нем проверяется условие ind=2. Если условие истинно, то вызывается процедура assign(f,'prn'). Устанавливается соответствие между переменной f и внешним устройством по имени 'prn' (т.е. принтером). При не выполнении последнего условия вызывается процедура assigncrt(f), которая устанавливает соответствие между переменной f и экраном дисплея.
Затем вызывается процедура rewrite(f), которая открывает файл f для записи в него данных.
После выполнения подпрограммы outpr осуществляется возврат в программу и ввод в интерактивном (диалоговом) режиме исходных данных.
Ввод и вывод значений переменных.
Пусть в рассматриваемой программе вводятся значения u=20.5 i=5. Тогда на экране пользователя появится (после завершения программы) следующий текст:
Укажите исходные данные:
напряжение u(B)=20.5
ток i(A)=5.0
...
Программа завершена. Нажмите любую клавишу
В зависимости от равенства константы ind 1, 2 или 3 также будет выведен следующий фрагмент текста соответственно в дисковый файл output.pas, на принтер, или экран пользователя:
Исходные данные: u=20.5,B i=5.0,A
Результаты: r=4.1,Oм
Как видно из приведенного примера оператор вызова стандартной процедуры вывода writeln (сокр. от write line) обеспечивает вывод строки. Т. е. после того как будут напечатаны данные, указанные в скобках в списке параметров этой подпрограммы, будет осуществлен переход курсора на следующую строку. Таким образом, при выполнении следующего оператора вызова процедуры вывода, вывод будет производиться уже на новую строку.
В случае использования процедуры write указанный переход курсора на новую строку не производится. При выполнении следующего оператора вызова процедуры вывода, вывод будет осуществляться в ту же строку. Процедуры write(f,<...>) и write(<...>) обеспечивают вывод соответственно в файл f и на экран дисплея. Если в процедуре writeln отсутствует список вывода "<...>", то осуществляется только переход курсора на новую строку.