1 Алгоритмом называется точное и понятное предписаниe исполнителю совершить последовательность действий, направленных на решение поставленной задачи. Слово «алгоритм» происходит от имени математика Аль Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмом понимали только правила выполнения четырех арифметических действий над числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные. Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результатные.
Основными свойствами алгоритма являются:
детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;
результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;
массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;
дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений.
Алгоритм должен быть формализован по некоторым правилам посредством конкретных изобразительных средств. К ним относятся следующие способы записи алгоритмов: словесный, формульно-словесный, графический, язык операторных схем, алгоритмический язык.
Наибольшее распространение благодаря своей наглядности получил графический (блок-схемный) способ записи алгоритмов.
Блок-схемой называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций. Перечень символов, их наименование, отображаемые ими функции, форма и размеры определяются ГОСТами.
При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:
линейный;
ветвящийся;
циклический.
Линейным называется такой вычислительный процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов.
Ветвящимся называется такой вычислительный процесс, в котором выбор направления обработки информации зависит от исходных или промежуточных данных (от результатов проверки выполнения какого-либо логического условия).
Циклом называется многократно повторяемый участок вычислений. Вычислительный процесс, содержащий один или несколько циклов, называется циклическим. По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений. Количество повторений последних зависит от соблюдения некоторого условия, задающего необходимость выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет о цикле с предусловием, или в конце — тогда это цикл с постусловием.
2 Для входа в среду необходимо вызвать файл turbo.exeили bp.exe из папки BIN. После этого появится основной экран, на котором находятся: главное меню (верхняя строка), рабочее поле и строка состояния (строка в нижней части экрана). Если в центре рабочего поля находится окно с информацией о программе, то для того, чтобы начать работу, необходимо нажать какую-либо клавишу.
Текст программы набирается в окне редактирования. Для входа в меню необходимо нажать клавишу F10, для возврата из меню в окно редактирования - клавишу Esc.
Основное меню среды TurboPascal7.0содержит следующие пункты:
- File(работа с файлом)
- Edit(редактирование программного кода)
- Search(обеспечение контекстного поиска и замены)
- Run(выполнение программного кода)
- Compile(компиляция программного кода)
- Debug(отладчик)
- Tools(инструментальные средства среды программирования TurboPascal)
- Options(задание параметров)
- Windows(работа с окнами)
- Help(справка).
Каждый пункт основного меню имеет свое подменю, которые мы сейчас и рассмотрим.
Пункт Fileсостоит из следующих подпунктов:
- New- создание нового файла (программы). При выборе этого подпункта открывается пустое окно редактирования, в котором и набирается текст. Новому файлу присваивается имя NonameNN, где NN– номер временного файла от 00 до 99. Если закрыть такое окно или выйти из среды, то будет произведен запрос, сохранять ли этот файл, и в случае утвердительного ответа необходимо ввести имя файла (расширение .pasдобавляется по умолчанию).
- Open- открыть существующий (сохраненный) файл (программу). Имя файла выбирается в появляющемся после выбора этого пункта диалоговом окне. Для указанного файла открывается новое окно редактирования.
- Save- сохранение редактируемого файла. Если файл до этого ни разу не сохранялся, то производится запрос имени нового файла (см. подпункт New).
- Saveas...- сохранение файла под другим именем (например, изменить имя дисковода или имя файла). Файл с предыдущим именем также останется на диске.
- Saveall- сохранение всех измененных файлов.
- Changedir- изменение текущего каталога.
- Print- печать файла или выделенного блока на принтер.
- Printersetup- установка параметров принтера.
- DOSshell- временный выход в операционную систему. Для возврата обратно в TurboPascalиз DOSследует набрать команду exit.
- Exit- окончательный выход в операционную систему.
Ниже находятся строки с именами пяти последних редактируемых файлов. Если нужно открыть какой-либо из этих файлов, можно воспользоваться не пунктом Open, а выбрать одну из этих строк.
Напротив некоторых строк находятся названия клавиш, например, напротив Exitстоит Alt-X, напротив Save- F2. Это означает, что для выхода из среды TurboPascalможно вместо выбора в меню нажать клавиши Altи Х, а для сохранения файла - клавишу F2.
Меню Editвключает следующие возможности:
- Undo- отменить последнее изменение текста.
- Redo- восстановить отмененное при помощи Undoизменение.
- Cut- удалить выделенный блок текста и поместить его в буфер (Clipboard), т.е. вырезать.
- Сору- скопировать выделенный блок текста в буфер Clipboard.
- Paste- вывести с текущего положения курсора текст из буфера Clipboard.
- Clear- удалить выделенный блок текста.
- Showclipboard- открыть окно Clipboardи показать в нем содержимое буфера.
Пункт Searchвключает следующие возможности:
- Find- поиск фрагмента. В открываемом диалоговом окне задаются сам фрагмент (в строке Texttofind) и опции поиска. В TurboPascal7.0 предусмотрены следующие опции управления поиском:
Casesensitive- различие строчных и заглавных букв.
Wholewordsonly- поиск только целых слов, т.е. если искомая строка является подстрокой какого-либо слова, то поиск будет продолжаться.
Regularexpression- поиск по выражению-описателю. Выражение-описатель формируется из специальных символов:
^- показывает в начале строки в выражении-описателе начало текстовой строки в искомом тексте;
$- показывает в конце строки в выражении-описателе конец текстовой строки;
. - на этом месте возможен любой символ;
<символ>*- последовательность из любого количества (в том числе и 0) символа, после которого знак "*" находится в выражении-описателе;
<символ>+- последовательность из любого количества (но больше 0) символа, после которого знак "+" находится в выражении-описателе;
[<символы>] - на этом месте возможен один из символов, находящийся в этих скобках;
[^<символы>] - на этом месте возможны любые символы, за исключением перечисленных после "^" в этих скобках;
|<символ 1>-<символ 2>] - на этом месте возможен любой символ из диапазона <символ 1>..<символ 2>, включая границы диапазона;
\<специальный символ>- означает сам символ в строке, например, сочетание символов "\." означает, что в искомом тексте на указанном месте должна стоять точка, а не любой символ.
- Forward- поиск ведется по тексту сверху вниз.
- Backward- поиск ведется по тексту снизу вверх.
- Global- поиск во всем тексте.
- Selectedtext- поиск только в выделенном блоке текста.
- Fromcursor- поиск необходимо начать с текущего положения курсора.
- Entirescope– поиск ведется с начала всего текста. Текст ищется только один раз, для повторного поиска следует воспользоваться пунктом Searchagain.
- Replace- замена фрагмента. Диалоговое окно похоже на окно Find, но в строке Newtextзадается еще и фрагмент, на который заменяется искомый. Кроме того, предусмотрены опции:
Promptonreplace- необходимо запрашивать подтверждение на замену;
Changeall- поиск и замена всех обнаруженных вхождений искомого текста.
- Searchagain- поиск или замена следующего вхождения искомого фрагмента после найденного при помощи команды Findили Replace.
- Gotolinenumber- переход к строке с заданным номером (номер задается в диалоговом окне).
- Showlastcompileerror- повторно показать последнюю ошибку, обнаруженную компилятором.
- Finderror- поиск места ошибки, возникшей при выполнении.
- Findprocedure- поиск процедуры (функции) с именем, заданным в диалоговом окне.
Пункт Runсодержит следующие возможности:
- Run- запуск программы на выполнение. Если программа не была откомпилирована, то перед запуском производится ее компиляция. При запуске программа выполняется либо до конца, либо до точки прерывания (если такая была установлена).
- Stepover- выполнение программы по операторам (без трассировки процедур и функций).
- Traceinto- выполнение программы по строкам с заходом в процедуры и функции.
- Gotocursor- выполнение программы до строки, на которой находится курсор.
- Programreset- прекратить выполнение программы (например, при отладке).
- Parameters- задание параметров программе (аналогично тому, как они задаются в подпрограмме).
Пункт Compileвключает следующие возможности:
- Compile- компиляция программы. Компиляция производится до первой обнаруженной ошибки. Сообщение об ошибке выдается в верхней строке.
- Make- перекомпиляция в случае изменения всех модулей программы.
- Build- перекомпиляция модулей программы.
- Destination- установка места размещения исполняемого файла - в памяти (Memory- по умолчанию) или на диске (Disk). В случае размещения исполняемого файла на диске в текущем каталоге появляется ехе-файл данной программы.
- Primaryfile- установка основного файла для Makeи Build.
- Clearprimaryfile- отказ от установки основного файла.
- Information- получить информацию о текущем файле.
Пункт Debugвключает следующие возможности:
- Breakpoints- работа с окном точек прерывания.
- Callstack- открыть окно используемых подпрограмм.
- Register- открыть окно регистров.
- Watch- открыть окно отладки, в котором просматриваются значения переменных.
- Output- открыть окно результатов.
- Userscreen- открыть окно пользователя.
- Evaluate/modify- вычисление или модификация значения переменной или вычисление выражения.
- Addwatch- добавить в окно отладки переменную, значение которой необходимо определять во время отладки.
- Addbreakpoint- добавить точку прерывания.
Пункт Toolsпозволяет задавать и запускать программы, которые можно запустить непосредственно из среды.
В пункте Optionsпредусмотрены следующие возможности:
- Compiler- параметры компиляторов. В открываемом диалоговом окне возможно установить параметры компиляции. Параметры компиляции можно указывать и непосредственно в тексте программы в фигурных скобках и со знаком $ (например, параметр {$1-} - отключить проверку ввода-вывода). Соответствующая параметру буква в диалоговом окне выделена. Перечислим некоторые из параметров компиляции:
Forcefarcalls({$F+}) - возможность формирования "дальних" адресов у подпрограмм (этот параметр необходимо включить, например, при использовании процедурных типов).
Overlayallowed({$O+})- создание оверлейной программы.
286 instructions({$G+})- формирование программы для процессора 80286.
Rangechecking({$R+})- проверка допустимости значения переменных порядковых типов.
Stackchecking({$S+})- проверка на наличие свободного места в стеке для размещения локальных переменных процедур и функций.
I/Ochecking({$I+}) - проверка результатов операций ввода-вывода (при включенной проверке при ошибках ввода-вывода производится аварийный выход из программы).
Overflowchecking({$Q+})- проверка переполнения.
8087/80287 *({$N+}) - работа с сопроцессором (необходима, например, при использовании типа extended).
Emulation({$E+})- осуществление эмуляции сопроцессора в случае его отсутствия.
Существуют также ключи, задающие компилятору параметры. К ним относятся:
{$Iname}- включение в текст программы на место указанного ключа текста файла с именем name.pas. Heразрешается использовать этот ключ внутри составного оператора.
{$Lname} - производится компоновка к основному файлу объектного файла с именем name.obj.
{$М size, hmin, hmax} - управление размерами памяти, выделяемой под программу, size- размер стека (в диапазоне от 1024 до 65 520 байт), hmin- минимальный размер heap(в диапазоне от 0 до 655 360 байт), hmax- максимальный размер heap(в диапазоне от hminдо 655360). По умолчанию первый параметр равен 16 384, второй - 0, третий - 655 360.
- Compiler- задание параметров отладки.
- Directories- задание каталогов:
ЕХЕ & TPUdirectory- каталоги для размещений exe, tpuи тар файлов.
Includedirectories- каталоги, содержащие файлы, указанные в ключе компиляции {I}.
Unitdirectories- каталоги, содержащие модули, используемые программой.
Objectdirectories- каталоги, содержащие объектные файлы, используемые в программе.
- Tools- включение программ в список программ, вызываемых из среды.
- Environment- условия работы в среде, например размеры экрана, автосохранение и т.д.
Пункт Windowsобеспечивает следующие возможности:
- Tile- размещение окон без перекрытий друг друга.
- Cascade- размещение окон с перекрытием друг друга.
- Closeall- закрытие всех окон.
- Refreshdisplay-обновление экрана.
- Size/Move- изменение размеров (положения) окна.
- Zoom- расширение окна на весь экран.
- Next - активизация следующего окна.
- Previous- активизация предыдущего окна.
- Close- закрытие окна.
- List- выдача списка окон, которые можно открыть или закрыть.
В пункте Helpпредусмотрены такие возможности:
- Contents- вывод помощи о выводимой в настоящий момент на экран информации (об обнаруженной ошибке, об активном пункте меню и т.д.).
- Index- вывод в алфавитном порядке всех имеющихся в системе помощи ключевых слов.
- Topicsearch- вывод информации о слове, находящемся в текущем положении курсора. В случае, если в системе помощи отсутствует такое ключевое слово, то выводится список ключевых слов (см. п. Index), в котором выделяется слово, имеющее наибольшее число символов, совпадаемых с требуемым словом.
- Previoustopic- вывод помощи по предыдущему запросу.
- Usinghelp- вывод информации об использовании контекстной помощи.
- Files- вывод окна диалога, в котором можно задать файлы контекстной помощи.
- Compilerdirectives- вывод списка директив компилятора данной версии.
- Reservedwords- вывод списка зарезервированных слов данной версии.
- Standardunits- вывод списка стандартных модулей данной версии.
- TurboPascallanguage- вывод списка основных элементов языка Паскаль данной версии.
- Errormessage- вывод информации о сообщениях об ошибках.
При выводе помощи информация о том или ином ключевом слове часто содержит примеры программ применения оператора, процедуры или функции, по которым помощь запрашивается. С этими фрагментами можно работать так же, как и с блоками текстов программ, например, помещать блоки в буфер для того, чтобы скопировать фрагмент текста примера в редактируемую программу.
3 Логическое выражение в программировании — конструкция языка программирования, результатом вычисления которой является «истина» или «ложь».
4 В программировании, как и в любой науке (хотя это и искусство также), с течением исторического времени накапливается опыт, методы решения различных задач. Решение многих задач является достаточно универсальным. Незачем каждый раз писать алгоритм для ее решения, если он уже был написан много лет назад и одобрен сообществом программистов. Такие алгоритмы оформляются в виде функций и модулей, а затем используются в программах, которые пишутся здесь и сейчас.
Функция или процедура может быть уже включена в сам язык программирования, а может входить в модуль, который требуется «подключить» к программе.
Ниже описаны стандартные (включенные в язык) функции языка программирования Паскаль.
Арифметические функции можно использовать только с величинами целого и вещественного типа.
Функция Назначение Тип результата
abs (x) абсолютное значение аргумента совпадает с типом аргумента
sqr (x) квадрат аргумента совпадает с типом аргумента
sqrt (x) квадратный корень аргумента вещественный
cos (x) косинус аргумента вещественный
sin (x) синус аргумента вещественный
arctan (x) арктангенс аргумента вещественный
exp (x) ex вещественный
ln (x) натуральный логарифм вещественный