Программирование линейных алгоритмов

Лабораторная работа № 6

ОСНОВЫ ПРОГРАММИРОВАНИЯ В СИСТЕМЕ

TURBO PASCAL.

РАБОТА С ГЛАВНЫМ МЕНЮ СИСТЕМЫ.

ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ

Цель:

 

Изучить элементы диалоговой среды Turbo Pascal версии 7.0. и меню опции FILE. Изучить структуру и правила записи программ на языке Turbo Pascal. Приобрести начальные навыки работы в системе Turbo Pascal на примере программирования линейных алгоритмов и по отладке и тестированию программ.

Общие сведения

ЭЛЕМЕНТЫ ДИАЛОГОВОЙ СРЕДЫ

 

При работе с Турбо Паскалем на экране ПК может формироваться сложная структура прямоугольных участков экрана рассматриваемых как единое целое и предназначенных для тех или иных действий. Такие участки в тексте книги называются меню, окнами, полями и т.д.

Меню будем называть прямоугольный участок экрана, содержащий кодовые слова и предназначенный для диалогового выбора продолжения работы. Меню фиксирует некоторое текущее состояние диалоговой среды и предлагает несколько альтернативных путей перехода из этого состояния. Содержащиеся в меню кодовые слова обозначают возможные альтернативы. Условимся называть их в дальнейшем опциями (option — выбор).

Окно в Турбо Паскале предназначено для обмена информацией между программистом и средой. В окно редактора программист помещает текст программы, в окне программы среда показывает результат ее прогона, в справочном окне появляются справочные сообщения, в отладочном окне программист может наблюдать за изменением переменных в процессе отладки программы. Одновременно на экране может присутствовать сразу несколько окон, однако только одно из них активно в каждый момент. Активное окно очерчивается двойной рамкой, неактивные — одинарной.

Диалоговое окно разворачивается на экране по мере надобности. С помощью диалогового окна пользователь уточняет выбранное действие. Внутри диалогового окна может быть несколько полей. В поле ввода программист может подготовить текстовую строку (например, имя файла). В поле выбора среда предлагает несколько возможных имен файлов. В поле переключаемой опции можно установить необходимую настройку среды, с помощью командныx полей - передать среде ту или иную команду.

Работа с меню и окнами значительно упрощается, если Ваш ПК оснащен устройством ввода типа «мышь». Условимся в дальнейшем вместо длинного «устройство ввода типа «мышь» писать просто мышь, что соответствует обиходному названию этого прибора. Подвигая мыть по столу, Вы тут же заметите перемещающийся по экрану указатель мыши. С помощью этого указателя можно выбрать нужный элемент диалоговой среды. Для этого подведите к нему указатель и нажмите левую кнопку мыши.

 

Работа с окнами

 

В среде Турбо Паскаля используется несколько окон, которые могут частично или полностью накладываться друг на друга. Для последовательной смены окон используется клавиша F6: нажатие на эту клавишу делает активным очередное окно; если это окно закрыто другими окнами, оно накладывается поверх них. Для смены активности окон можно использовать и мышь: переместите указатель мыши внутрь неактивного окна и нажмите левую кнопку.

В верхней части рамки, очерчивающей активное окно, имеются два небольших поля, используемых при работе с мышью. Поле [  ]служит для удалений окна с экрана, поле [ ­ ]- для распахивания окна на весь экран, а если это поле помечено значком ­, — для возврата к прежним размерам после распахивания. Эти же действия выполняются и с помощью клавиатуры: F5 распахивает окно или возвращает окну обычный размер, Alt – F3 закрывает окно (удаляет его с экрана). Закрытое окно удаляется из системы окон Турбо Паскаля и его уже нельзя вызвать с помощью F6. Перед закрытием окна редактора, содержащего несохраненный на диске текст, среда спросит, нужно ли его сохранить,

Положение и размеры активного окна можно изменять по своему вкусу. При работе с клавиатурой для изменения этих параметров используется команда Ctrl – F5. После этой ко­манды изменяются цвет и линии рамки: таким образом среда сигнализирует о переходе к режиму настройки. Теперь клавишами смещения курсора Вы можете перемещать окно по экрану и этими же клавишами, нажатыми в сочетании c клавишей Shift можно менять размеры окна. После того, как положение и размеры окна установлены нужным образом, нажимается клавиша Enter. При работе с мышью для изменения положения активною окна следует подвести указатель к левому верхнему углу рамки окна и нажать левую кнопку — окно будет «схвачено» мышью, о чем свидетельствует изменение цвета и линий рамки. Затем, не отпуская кнопки, перемещайте мышь по столу. При этом окно будет смещаться по экрану. Передвинув окно нужным образом, отпустите кнопку. Для изменения размеров окна используется правый нижний угол рамки, который «захватывают» мышью точно так же, как и при перемещении окна.

В окнах редактора и справочной службы содержится текст, который может не помещаться целиком в окно. Правая и нижняя рамки такого окна содержат указатели размеров, в которых показывается положение демонстрируемого в окне фрагмента относительно полных размеров текста. Эти поля можно использовать для того, чтобы перемещать окно относительно текста с помощью мыши.

 

Работа с меню

 

Для перехода из состояния редактирования к выбору из главного меню используется клавиша F10, для возврата в редактор — клавиша Esc. В активном меню указателем (цветом или оттенком) выделяется очередная опция. Для выбора того или иного продолжения переместите клавишами смещения курсора указатель к нужной опции и нажмите Enter. Выбирать можно и другим способом. В кодовом слове опции цветом выделяется одна из букв. Для выбора опции нажмите клавишу с нужной буквой, если выбирается опция из дополнительного меню, или комбинацию Alt-<буква>, если выбирается опция главного меню. При работе с мышью для выбора из меню нужно переместить указатель мыши к соответствующей опции и нажать левую кнопку.

Выбор опции обычно приводит к развертыванию нового меню или диалогового окна. Если справа от опции стоит многоточие, эта опция связана с развертыванием диалогового окна, если стоит значок >, вызывaeтcя дoпoлнительное меню.

Некоторые часто используемые опции, содержащиеся в дополнительных меню, можно вызывать непосредственно из режима редактирования. Справа от таких опций в меню указывается клавиша или комбинация клавиш, которая позволяет сделать это.

Следует учесть, что детальную информацию на английском языке о том или ином продолжении (опции) можно получить с помощью справочной службы, если клавишами перемещения курсора сместить указатель к этой опции и нажать клавишу F1.

Работа с диалоговым окном

 

С диалогового окна уточняется выбранное действие. В диалоговом окне имеется несколько полей, в которых группируется информация о возможностях среды и ее настройке.

Сразу после развертывания диалогового окна активизируется то или иное поле, которое выделяется цветом (оттенком). В активных полях ввода, переключаемых опций или выбора файла, кроме того, виден мигающий курсор. Запомним следующие правила:

· для перехода от одного поля к другому предназначена клавиша табуляции Tab (клавиша располагается в левой верхней части основной зоны клавиатуры и обозначена двумя разнонаправленными стрелками);

· для перехода внутри поля используются клавиши смещения курсора;

· закрыть диалоговое окно можно клавишей Esc (в этом случае не происходят никаких действий, связанных с окном) или клавишей Enter (в этом случае выполняются все указанные в окне установки или выбирается указанный файл).

Если по смыслу того или иного исполняемого действия необходимо ввести текстовую строку (например, имя файла), то сразу после раскрытия диалогового окна активизируется поле ввода с мигающим курсором. Следует ввести нужный текст и нажать Enter. Если после подготовки текста Вы нажмете Enter, текст будет введен и диалоговое окно закроется, однако Вы по каким-либо причинам измените свое решение, достаточно нажать Esc, чтобы закрыть диалоговое окно без ввода текста.

Переключаемые опции задают выбор нужной настройки среды из двух или нескольких вариантов. Варианты могут быть связаны с включением или отключением какого—либо параметра опции. Например, можно потребовать от компилятора использовать арифметический сопроцессор или не использовать его. Слева от таких опций в диалоговом окне имеется небольшое поле выбора, выделенное квадратными скобками; включенный параметр отмечается символом Х в этом поле: [х]; если поле пустое [ ], то данный параметр не задействован. Если переключаемая опция задает выбор из нескольких вариантов, слева от указателя каждого варианта имеется поле выбора, выделенное двумя круглыми скобками, причем выбранный вариант отмечается точкой: (·).

Чтобы изменить состояние переключаемого параметра или выбрать другой его вариант, нужно клавишами смещения курсора подвести указатель к соответствующей опции и нажать клавишу Пробел (длинная клавиша в самом низу клавиатуры) или подвести указатель мыши к полю выбора слева от опции и нажать левую кнопку. Можно также нажать клавишу с буквой, которая выделена цветом в нужной опции.

В диалоговом окне обязательно имеется несколько командных полей, которые располагаются в правой или нижнeй части окна и выделяются цветом. С каждым таким полем связана некоторая команда. Эту команду можно выполнить, если активизировать поле клавишей табуляции нажать Enter или указать на него мышью и нажать левую кнопку.

СИСТЕМА МЕНЮ

 

Все управления средой Турбо Паскаля осуществляется в основном с помощью системы последовательно разворачивающихся меню. Лишь одно из них — главное меню — постоянно присутствует на экране, остальные разворачиваются по мере выбора продолжений.

Главное меню содержит фактически лишь, оглавление дополнительныx меню. В этих меню сгруппированы близкие по своему роду действия, условное название которых и служит кодовым словом соответствующей опции главного меню:

· File {файл) - действия с файлами и выход из системы;

· Edit {редактирование) — восстановление испорченной строки и операции с временным буфером;

· Search {искать) - поиск текста, процедуры, функции или места ошибки;

· Run (работа) - прогон программы;

· Compile {компилировать) - компиляция программы;

· Debug (отладка} — отладка программы;

· Tools {инструменты) — вызов вспомогательных программ (утилит);

· Options {варианты) - установка параметров среды;

· Window (окно) - работа с окнами;

· Help {помощь) - обращение к справочной службе.

 

Меню опции FILE

NEW. Создает и открывает новое окно редактора с именем NONAMEхх.PAS. порядковый номер хх окна зависит от количества окон со стандартным именем NONAME, открытых к моменту обращения к опции.

 

OPEN. Открывает новое окно редактора и помещает в него указанный дисковый файл. При обращении к этой опции открывается диалоговое окно, в поле ввода которого можно написать нужное имя файла. Если в имени опущено расширение, среда добавит стандартное расширение .PAS. Имени файла может предшествовать путь. Нужный файл Вы можете открыть доступ из поля выбора, предварительно активизировав это ноле мышью или клавишей Tаb. Командное поле OPEN (открыть) используется для чтения файла в новое редакторское окно, REPLACE (заменить) - для замены сущетвующего в активном редакторском окне текста на текст, считанный из файла.

Опция вызывается непосредственно из редактора клавишей F3.

SAVE. Записывает содержимое активного окна редактора в дисковый файл. Если это окно связано с именем NONAMEхх..PAS, среда запросит новое имя файла (см. ниже опцию SAVE AS). Опция вызывается непосредственно из редактора клавишей F2.

SAVE AS. Записывает содержимое активного окна редактора в дисковый файл под другим именем. В поле ввода Вы должны на­писать имя того файла, в который будет переписано содержимое активного окна редактора. Вы можете выбрать уже существующий файл из поля выбора или из протокола опции. В этом случае в зависимости от настройки среды старое содержимое файла будет уничтожено или сохранено в виде страховочной копии с расширением .ВАК (настройку среды см. в опции OPTIONS/ENVIRONMENT).

SAVE ALL. Записывает содержимое всех окон редактора в соответствующие дисковые файлы.

 

CHANCE DIR. Позволяет изменить текущий каталог пользователя. В поле выбора диалогового окна этой опции приводится дерево каталогов текущего диска.

Перемещаясь по этому дереву, можно указать на нужный каталог, после чего с помощью командного поля CHDIR сменить текущий каталог. Если выбран указатель DRIVES, можно изменить также текущий диск. Командное поле REVER позволит восстановить прежний текущий каталог, если Вы по каким-либо причинам решите отказаться от сделанного Вами изменения.

 

PRINT. Печатает содержимое активного окна редактора на принтере или выводит его в файл (см. опцию PRINTER SETUP).

PRINTER SETUP. Настраивает среду на печать текущего файла. Поле ввода Filter path должно содержать имя программы— фильтра PRNFLTR.EXE и, возможно, путь к этой про­грамме. Поле ввода Command line содержит выбор принтера/файла и параметров печати. Турбо Паскаль поддерживает три типа принтеров: матричные принтеры Epson, лазерные принтеры HP LaserJet и так называемые постскрипт—принтеры, т.е. принтеры, «понимающие» язык описания страниц PostScript.

 

DOS SHELL.. Обеспечивает временный выход в ДОС. Турбо Паскаль остается резидентным в оперативной памяти и занимает значительную ее часть, поэтому под управлением ДОС в этом состоянии могут выполняться только сравнительно небольшие по объему программы. Чтобы увеличить объем свободной памяти для ДОС, необходимо перед обращением к этой опции сбросить режим отладки клавишами Ctrl - F2. Для возврата в Турбо Паскаль нужно в ответ на запрос ДОС напечатать слово EXIT и нажать Enter.

ЕХIT. Завершает работу с Турбо Паскалем. Опция вызывается непосредственно из редактора командой Alt— X.

 

 

Программирование линейных алгоритмов

 

Линейным называется алгоритм, в котором результат получается путем однократного выполнения заданной последовательности действий при любых значениях исходных данных. Согласно линейному алгоритму, прогон программы начинается с ее первого выполняемого оператора. Операторы будут задействованы последовательно, один за другим, в соответствии с их расположением в тексте программы.

Перед выполнением этой работы необходимо ознакомиться со структурой программы на языке Паскаль, правилами записи выражений, операторами присваивания и ввода-вывода, стандартными арифметическими функциями Система Turbo Pascal обладает развитыми средствами для подготовки, редактирования, отладки и выполнения программ. В предыдущей работе Вы ознакомились с минимальным набором команд, необходимым для программи­рования простых задач.

Скорее всего вам не удастся сразу написать правильную программу. За ис­ключением очень простых программ, это не получается даже у опытных программистов. В поиске ошибок вам поможет система Turbo Pascal.

Различают три типа ошибок: синтаксические ошибки (ошибки компиляции), ошибки выполнения и ошибки в алгоритме программы.

Синтаксические ошибки возникают при нарушении правил языка Паскаль, их обнаруживает компилятор. При этом курсор будет указывать на тот оператор в программе, где возможна ошибка, а в первой строке окна редактирования (выделенной другим цветом) появится сообщение об ошибке. Сообщение об ошибке содержит ее номер и поясняющий текст на английском языке.

Компилятор языка Turbo Pascal не всегда точно указывает на оператор с ошибкой. Вполне возможно, что ошибка находится в предыдущем операторе. Во всяком случае, место, на которое указывает компилятор, выбрано не случайно. Приобретя некоторый опыт работы, вы без труда будете находить ошибки.

Ошибки выполнения - это такие ошибки, которые не нарушают синтаксис языка Паскаль, но приводят к ошибочным операциям в процессе выполнения программ (например, попытка деления на нуль). В этом случае система также выдаст сообщение об ошибке с указанием оператора, но уже на этапе выполне­ния программы.

Ошибки в алгоритме программы - это такие ошибки, которые при верных исходных данных и безошибочной работе программы в системе Turbo Pascal приводят к неверным результатам. Такие ошибки должен обнаруживать сам программист. Система Turbo Pascal помогает ему в этом, предоставляя услуги встроенного отладчика (пошаговое выполнение F4,F7,F8 и др.). Возможности отладчика системы Turbo Pascal будут рассмотрены в следующих работах.

 

Пример выполнения работы: вычислить значение р, используя расчетную формулу:

 

p =

 

 

На языке Турбо Паскаль:

 

program prim;

{Лабораторная работа № 5

выполнил студент гр. Ф-15 Иванов А.И.}

var

x, y, p : real;

begin

writeln(‘Введите x, y’);

read(x, y);

p:= (ln(x)/ln(10)–exp(x+y))/(sqrt(2)+sqr(y)+abs(exp(3*ln(x)))-ln(y));

writeln(’ p=’,p:8:3,’для х=’,x:8:3,’;y=’,y:8:3);

end.

 

Порядок выполнения работы

 

1. Изучить описание лабораторной работы и ответить на контрольные вопросы.

2. Загрузить систему программирования Turbo Pascal.

3. Войти в режим редактирования и набрать текст программы (в соответствии с полученным вариантом задания). После каждой строки нажимать Enter.

4. Подобрать исходные данные так, чтобы не возникали ошибки выполнения.

5. Запустить программу на трансляцию и выполнение. Для этого: нажать Ctrl – F9 (синоним команды Run). После того как опять появится меню и текст программы (т.е. программа выполнена), нажать Alt – F5 для просмотра ре­зультатов, для возврата в меню - любую клавишу.

6. При выполнении п.5 могут возникнуть ошибки, как на этапе трансляции, так и на этапе выполнения. Сообщение компилятора об ошибке выдается в верхней части окна редактирования. При этом курсор устанавливается в ту позицию, где возможна ошибка. Если сразу после этого нажать F1, то на экране появляется дополнительная информация об ошибке. Нажатие любой другой клавиши стирает информацию об ошибке. При возникновении ошибки необходимо:

а) исправить ошибку;

б) повторить выполнение п.5.

7. Продемонстрировать результаты выполнения п.3 - 5 преподавателю.

8. Внести изменения в исходные данные и программу и повторить п.3 - 6.

9. Оформить отчет по лабораторной работе, защитить и сдать его преподавателю. Отчет должен содержать цель работы, задание, блок-схему программы, распечатку программы и результатов прогона программы.

 

Варианты заданий

 

Задание. Разработать программу для вычисления арифметического выражения (табл.) и вывода полученного результата. Ввод соответствующих исходных данных организовать с клавиатуры. На печать вывести значения вводимых исходных данных и результаты вычислений, сопровождая вывод наименованиями выводимых переменных.

Табл. Варианты выражений для расчетов

 

Номер варианта Выражение Исходные данные
a = ln( y- )× ( sin(x) + e(x+y)) x,y
b = c,x,y
c = arctg (x) - exy + 0,5 b,x,y
D = x,y,z
e = x,y,z
f = yx + x,y,z
g = x,y
h = 2 + x,y,z
f = ((1+y) x,y,z
k = ln x,y,z
l = 0,5 x5 + 3×cos (x + y) + e-0.1 y×z - x,y,z
m = x,y
n = x,y
P = x,y
g = x,z
r = lg |1 – 2x +3x2 – 4x3| + x,z
s = x,y
t = x,y,z
u = x,y,z
w = x,y,z
g = yx + x,y,z
h = 2 + x,y,z
s = ((1+y) x,y,z
  k = x,y
g = x,z

 

 

f = yx + x,y,z
g = x,y
h = 2 + x,y,z
f = ((1+y) x,y,z
k = ln x,y,z
r = lg |1 – 2x +3x2 – 4x3| + x,z

 

Контрольные вопросы.

 

1. Каковы назначение и возможности системы программирования Turbo Pascal?

2. Какие подменю имеет главное меню интегрированной среды?

3. Опции меню FILE.

4. Как запустить программу на трансляцию и выполнение?

5. Как записываются операторы начала и конца программы?

6. Из каких разделов состоит программа на языке Turbo Pascal?

7. В какой последовательности должны быть записаны разделы программы на языке Turbo Pascal?