Освоение интегрированной среды программирования Turbo Pascal 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Освоение интегрированной среды программирования Turbo Pascal



Введение

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

Порядок выполнения работ (исключая первую) может быть следующим:

1. студент должен получить задание у преподавателя;

2. изучить теоретическую часть лабораторной работы;

3. разработать алгоритм решения своего варианта и составить блок-схему;

4. в соответствии с блок-схемой написать программу;

5. отладить программу и проанализировать результат решения;

6. результаты работы программы студент должен показать преподавателю,

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

8. ответить на контрольные вопросы и упражнения;

9. по отчету защитить лабораторную работу, объяснить смысл составленной программы.

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

Часть заданий лабораторного практикума заимствованы из методических указаний прошлых лет авторов Гудкова А.Л., Иванова В.Е., Калининой С.А., Смирновой Т.А., Пожидаева В.Г. Также использованы некоторые примеры и программы из литературы приведенного списка.

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

Освоение интегрированной среды программирования Turbo Pascal

Цель работы: научиться использовать средства, имеющиеся в интегрированной среде (ИС) системы Turbo Pascal.

Теоретическая часть

Интегрированная среда системы Turbo Pascal

Экран и меню

После того, как загрузится Turbo Pascal, на экране появится главное меню и информация о данной версии. После нажатия любой клавиши, эта информация исчезает.

Поле экрана разделено на части:

¨ главное меню с командами Паскаля,

¨ окно редактора (с именем файла в заголовке) для ввода текста программы,

¨ указатель координат курсора (номер строки и позиция символа в строке),

¨ нижняя строка, показывающая, какие клавиши в данный момент активны и их назначение.

Для ориентации в интегрированной среде используйте следующую информацию:

Для выбора команд из меню пользуйтесь мышью, выделенными заглавными буквами или клавишами со стрелками.

Для выхода из меню нажимайте <Esc>.

Для перемещений между меню и активным окном нажимайте <F10>.

Если вы находитесь в главном или дополнительном меню, то для перемещения в окно, которое было ранее активно, нажмите <Esc>.

Команды главного меню

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

File – команда взаимодействия с файлами.

New - открыть новое окно.

Open - загрузить существующий файл. Для определения списка файлов, один из которых вы хотите загрузить, можно использовать собирательные символы * и?, а также указывать дисковод, с которого должна производиться загрузка. При указании несуществующего дисковода или папки на экране появится сообщение об ошибке. Данная команда вызывается также клавишей <F3>.

Save - сохранить в текущей папке с прежним именем (если файл имеет имя NONAME01, то система предложит ввести уникальное имя).

Save as - сохранить файл под новым именем или изменить расположение. Файл, находящийся в редакторе, переписывается на диск под новым именем. Если файл с таким именем уже существует, то вас спросят, надо ли его заменить.

Change dir - управление каталогами: просмотреть и (или) изменить.

Print - печать содержимого текущего окна.

DOS shell - временный выход в DOS. Для возвращения в Turbo Pascal наберите команду EXIT.

Exit - завершение работы Turbo Pascal.

Edit - позволяет создавать и редактировать исходные тексты программ с помощью встроенного текстового редактора, операции выполняются над выделенными фрагментами текста.

Пометить участок программы можно с помощью мыши или при одновременном использовании клавиши <Shift> и клавиш со стрелками. Выполнение этих действий вне текста программы снимает выделение.

Undo – редактор отменяет последнее действие.

Redo – редактор восстанавливает изменения, удаленные предыдущей командой.

Cut – удаляет выделенный блок текста в буфер.

Copy – копирует выделенный участок текста в промежуточный буфер.

Paste – помещает информацию из буфера в текущую позицию.

Clear – удаляет выделенный участок программы.

Show clipboard – открывает окно промежуточного буфера. Окно буфера Clipboard является разновидностью окна редактирования. Данные в это окно переносятся командами Cut и Copy. Текст в буфере можно редактировать, переносить и копировать, как в любом окне.

Search - меню поиска информации. Команда предназначена для поиска фрагментов текста и места обнаружения ошибок.

Find – найти фрагмент. Открывается окно диалога, где задается цепочка символов для поиска, указываются условия поиска: различать или нет прописные и строчные буквы, искать как слово или часть слова, по всему тексту или в выделенном фрагменте, вперед или назад от курсора и т.д.

Replace – заменить фрагмент. Отличается от предыдущей команды тем, что одновременно с поиском выполняется замена.

Search again – повторное выполнение команд Find или Replace при заданных условиях поиска.

Go to line number – осуществляет переход к строке с заданным номером.

Show last compile error – показывает последнюю ошибку, обнаруженную при компиляции, выдает сообщение о виде ошибки.

Run - меню позволяет запускать программу, а также выполнять отдельные части программы во время ее отладки.

Run - запускает программу, если ее исходный текст не был изменен. Если программа была изменена, то при очередном запуске программы происходит ее перекомпиляция (см. меню компиляции). Затем начинается выполнение программы. Для просмотра результатов программы используйте команду User Screen из меню Debug (или Output), либо сочетание клавиш <Alt> + <F5>.

Для того чтобы прервать выполнение программы, например, в случае зависания или зацикливания, следует нажать комбинацию клавиш <Сtrl>+<Вгеаk>. Программа запускается либо до конца, либо до ближайшей из точек останова, если они были заданы.

Step over - трассировка без захода в подпрограммы. Выполняет очередные операторы программы, соответствующие одной строке текста, причем трассировка подпрограмм (выполнение по отдельным операторам) не производится - они рассматриваются как единые операторы.

Trace into - трассировка с заходом в подпрограммы.

Go to cursor - выполнить до строки, помеченной курсором. Выполняет программу до строки, на которой находится курсор. Если курсор находится на строке, не являющейся выполняемым оператором, будет выдано предупреждение об ошибке.

Program reset - прекратить сеанс отладки программы, закрывает все открытые в процессе работы программы файлы, программа становится готовой для повторного запуска с начала.

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

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

В случае обнаружения синтаксической ошибки выдается сообщение об этой ошибке, а курсор помещается в место ее нахождения

Destination - размещение файла. Определяет, где следует разместить исполняемый файл программы - в оперативной памяти (Меmоrу) или на диске (Disk).

Information - выводит информацию о текущем файле и оперативной памяти.

Debug – меню отладки, позволяет задавать и просматривать параметры, необходимые при отладке программы.

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

Текущее выражение в окне наблюдения отмечается выделенной полосой, если это окно активно; если же окно неактивно, текущее выражение помечается точкой.

Output – активизирует окно выходных результатов.

User screen – открывает и активизирует окно пользователя. Появляется экран с изображением результатов программы. Тот же экран используется при выполнении и отладке программ, а также при временном выходе в DOS.

Add Watch – добавляет в окно наблюдаемых параметров новый параметр (переменную или выражение).

Options – меню параметров среды.

Environment – условия работы. Подменю Colors/Syntax – цвета. Команда позволяет выбрать цвет символов (Foreground) и фона (Backround) всех элементов интегрированной среды Turbo Pascal. Выделяются другим цветом:

Reserved words - ключевые слова,

Identifiers – идентификаторы,

Comments –комментарии,

Symbols – символы,

Strings - строковые постоянные,

Numbers - числа.

Window - Меню окон, позволяет открывать, закрывать, активизировать окна, перемещать их в поле экрана.

Tile - размещение окон без перекрытия. Окна располагаются в поле экрана встык друг к другу.

Cascade - каскадное размещение окон. Окна перекрывают друг друга.

Close all - удалить все окна. Очищает поле экрана, закрывая все окна, и очищает все списки предыстории.

Refresh display - обновить экран. Обновляет экран среды, если программа пользователя изменила его содержимое.

Size/Move - позволяет изменить размеры окна, переместить его по полю экрана. Для изменения размеров экрана следует с клавишей <Shift> одновременно нажать одну из клавиш "стрелка вверх", "стрелка вниз", "стрелка влево" или "стрелка вправо". Для перемещения окна по полю экрана следует воспользоваться клавишами "стрелка вверх", "стрелка вниз", "стрелка влево" или "стрелка вправо". Завершить работу следует нажатием клавиши <Enter>. Эти же операции можно выполнить с помощью "мыши".

Zoom - позволяет увеличить размеры окна до всего поля экрана. Если окно уже раскрыто, оно уменьшается до первоначальных размеров.

Next - следующее окно.

Previous - предыдущее окно.

Close - закрывается активное окно.

List - открывает окно диалога со списком открытых окон, которые можно активизировать либо закрыть.

Help - меню информационной помощи. Меню позволяет получить имеющуюся в системе справочную информацию.

Contents - сведения о выводимой на экран информации - активном окне, выбранной команде меню, обнаруженной ошибке и т.д.

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

Topic search (предметный поиск) - выводится информация о слове, на котором находится курсор. Если информации о таком слове нет, выводится список ключевых слов, в котором выделено слово, у которого совпадает с требуемым максимальное число начальных символов.

Previous topic (предыдущая тема) - выводятся сведения по теме, соответствующей предыдущему запросу. Система сохраняет до 20 предыдущих запросов.

Нижняя полоса на экране ИС

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

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

Для главного меню или окна редактора содержимое нижней полосы следующее:

<FI> - Help. Открывает окно, содержащее информацию о командах редактора Turbo Pascal.

<F2> - Save. Сохраняет текущий файл.

<F3> - Open. Загружает ранее созданный файл.

<Alt> + <F9> - Compile. Компилирует исходный текст.

<F9> - Make. Вызывает встроенную в Turbo Pascal программу Make. В результате этого начинается компиляция файла, последнего из загруженных в редактор. Turbo Pascal проверяет все файлы, от которых зависит компилируемый.

<Alt> + <FIO> - Local menu. Позволяет активизировать локальное меню, которое существует помимо основного меню в версии 7.0. Локальное меню можно вызвать щелчком правой кнопки мыши.

Local menu в основном повторяет наиболее часто используемые команды основного меню.

В режиме редактирования в меню входят следующие команды:

Cut - удаляет выделенный блок текста и помещает его в промежуточный буфер Clipboard.

Copy - копирует выделенный блок текста в промежуточный буфер (Clipboard) без удаления его из текущего файла.

Paste - помещает информацию из промежуточного буфера (Clipboard) в текущий файл, начиная с позиции курсора.

Clear - удаляет выделенный блок текста.

Open file at cursor - открывает в новом окне диалога файл, на имя которого в данный момент указывает курсор.

Topic search (предметный поиск) - выводится информация о слове, на котором находится курсор. Если информации о таком слове нет, выводится список ключевых слов, в котором выделено слово, у которого совпадает с требуемым максимальное число начальных символов.

Toggle breakpoint - задает точку останова в строке, на которой находится курсор. Если на этой строке уже задана точка останова, то при использовании этой команды она будет удалена.

Go to cursor - выполняет программу до строки, на которой находится курсор. Если курсор находится на строке, не являющейся выполняемым оператором, будет выдано предупреждение об ошибке.

Add watch - добавляет в окно наблюдаемых параметров новый параметр (переменную или выражение).

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

Окно редактора

Экран редактора Turbo Pascal содержит, помимо основной рамки редактора, линию текущего статуса редактора. В этой линии указана информация о местоположении курсора (3:55, где 3 - номер строки, 55 - номер позиции). В верхнем правом углу указан номер текущего из открытых окон (5).

Если курсор на экране представлен как " _ " (символ подчеркивания), это означает, что включен режим вставки текста, если курсор изображается как "z" (вытянутый прямоугольник) – включен режим замены. Переключение осуществляется клавишей <Insert>.

При вводе текста программы для перехода на следующую строку надо нажимать <Enter>, максимальное число символов в строке 248, при переполнении строки выдается звуковой сигнал. В окне редактора помещается 77 столбцов, при переходе за 77-й столбец текст сдвигается влево.

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

Рекомендации позволяют быстрее понять суть работы программы, легко находить и исправлять ошибки.

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

¨ Не следует в одной строке объединять несколько сложных или больших операторов, так как минимальный выполняемый блок команд в процессе отладки соответствует одной строке текста. Это осложняет поиск ошибок.

¨ Рекомендуется последовательность операторов, выполняющих какое-то законченное действие, отделять от предыдущих и последующих операторов пустыми строчками.

¨ Идентификаторам в программе следует давать имена, отражающие их суть, например Familia, Summa, Stroka и т. д. Можно использовать и длинные имена, так как редактор позволяет копировать их многократно.

¨ Рекомендуется использовать комментарии для пояснения отдельных разделов программы или операторов. Комментарий открывается символами (*, закрывается *). Пояснения можно записать и между фигурными скобками. Например:

(* Вывод результатов на экран *) или

{ Группа 03 - ИЭ, студент Савенко Ю.А., вариант 7. }

¨ Следует помнить, что все лишние с точки зрения языка Паскаль пробелы, пустые строчки, знаки табуляции, комментарии компилятором игнорируются. Они добавляются пользователем для удобочитаемости программы.

 

Задание к лабораторной работе

1. Загрузить Turbo Pascal.

2. Изучить основные средства ИС Turbo Pascal.

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

Программа 1.1.

Program Raschet;

(* Заголовок программы РАСЧЕТ *)

(* Лабораторная работа: интегрированная среда Turbo Pascal *)

const Sbor1 = 5; Sbor2 =10;

(* Вводятся константы сбор1 и сбор2 *)

Var

(* Блок описания исходных данных *)

Kol,Cena,Zatraty: integer;

(* Переменные будут принимать целые значения *)

Begin

(* Блок выполнения расчетов *)

writeln ('Введите количество и цену товара'); readln (Коl, Cena);

(* С клавиатуры вводятся целые значения:

количество и цена товара *)

Zatraty:= Kol * Cena;

(* Вычисляются затраты *)

if Zatraty < 100

then Zatraty:= Zatraty + Sbor1

else Zatraty:= Zatraty + Sbor2;

(* Если значение затрат меньше 100,

то к результату добавляется сбор1,

в противном случае – сбор2 *)

writeln ('Затраты составили - ', Zatraty);

(* Выводится на экран результат вычислений *)

End.

(* Последний выполняемый оператор *)

4. Запустить программу на компиляцию командой Compile/ Compile. При получении сообщений об ошибках отредактировать текст программы. Повторить компиляцию: <Alt>+<F9>.

5. Запустить программу на выполнение командой Run/Run. При получении новых сообщений об ошибках вновь внести изменение в текст программы, повторить пункты 3 и 4.

6. В процессе выполнения программа требует ввода двух величин (количество товара и его цена) и вычисляет затраты с учетом почтового сбора.

7. Ознакомиться с результатами выполнения программы, вызвав экран с результатами командой Debug/Output (Или Window/Output).

8. Выполнить программу по шагам Run/Step over (затем <F8>).

9. Записать программу с именем START командой File/Save (при активном окне редактора).

10. Изменить цвет для любых элементов окна: Options/Environment/Colors/...

11. Организовать поиск переменной Kol командами Search/Find с фиксацией Whole words only (искать как слово). Командами Search/Find/Search again продолжить поиск. Найти фрагмент текста Kol командами Search/Find, очистив поле Whole words only.

12. Завершить работу с Turbo Pascal (File/Exit). Загрузить Turbo Pascal, вызвать программу (File/Open/start.PAS).

13. Изменить эту программу, с учетом приобретения группы товаров различного количества и цены:

Программа 1.2.

Program Raschet;

(* Лабораторная работа: интегрированная среда Turbo Pascal *)

const Sbor1 = 5; Sbor2 =10;

Var

KolVid,Kol,Cena, SumZatr: integer;

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

Begin

writeln ('Введите количество покупок'); read (KolVid);

(* С клавиатуры вводится целое значение

количества покупок *)

SumZatr:= 0;

(* Начальное значение суммы затрат обнуляется *)

while KolVid > 0 do begin

(* Если количество покупок больше 0,

то выполняются следующие действия:*)

writeln ('Введите количество и цену очередного товара');

readln (Коl, Cena);

SumZatr:= SumZatr + Kol * Cena;

(* Вычисляется общая сумма затрат *)

KolVid:= KolVid - 1;

(* Количество покупок уменьшается на 1 *)

end;

(* Если количество покупок меньше или равно 0,

то выполняются следующие действия:*)

if SumZatr < 100

then SumZatr:= SumZatr + Sbor1

else SumZatr:= SumZatr + Sbor2;

writeln ('затраты составили - ', SumZatr);

End.

14. Сохранить файл под любым другим именем (File/Save as).

15. Запустить программу на компиляцию (<Alt>+<F9>) и выполнение (<Ctrl>+<F9>).

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

17. Ознакомиться с результатами, вызвав экран с результатами командой Window/User screen (или <Alt>+<F5>). Для возврата в окно ИС Turbo Pascal достаточно нажать любую клавишу.

18. Командой Debug/Add watch занести в окно наблюдения переменную KolVid. Используя локальное меню (<Alt>+<F10> при активном окне редактора), командой Add watch добавить переменную SumZatr. Открыть окно наблюдения Debug/Watch.

19. Выполнить программу по шагам <F8>, наблюдая изменение значений переменных KolVid и SumZatr.

20. Загрузить программу START (File/Open/start.PAS).

21. Последовательно выполнить команды, размещая окна каскадом (Window/Cascade), без перекрытия (Window/Tile), вывести только список (Window/List), закройте окно (Window/Close при активном окне Watch).

22. Установить расположение окон вертикально вдоль экрана (слева и справа), используя команды Window/Size/Move. Для изменения размеров экрана следует применять клавишу <Shift> одновременно с клавишами:, ­, ®, ¯, для перемещения окна по полю экрана - клавиши со стрелками. Завершить работу следует нажатием клавиши <Enter>.

23. Увеличить размеры окон до всего поля экрана: Window/Zoom.

24. Завершить работу с Turbo Pascal (File/Exit).

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

Как загрузить Turbo Pascal? Как завершить работу с Turbo Pascal?

Как выделить фрагмент программы? Какие действия редактора предусмотрены для выделенного фрагмента?

Как сохранить текст программы на диске? Как сохранить тот же текст программы с новым именем? Как сохранить тот же текст на дискете?

Какие варианты просмотра результатов на экране предусмотрены в языке Turbo Pascal?

В чем назначение комментария?

Как запустить программу на решение?

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

Перечислите этапы решения задачи с ввода программы до просмотра результатов.

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

Теоретическая часть

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

Этапы линейного вычислительного процесса - ввод исходных данных, вычисление значений искомых переменных, вывод на экран результатов вычислений - выполняются однократно и последовательно друг за другом вне зависимости от исходных данных (см. рис. 2.1).

 
 

 


Рис. 2.1. Блок-схема линейного вычислительного процесса.

Для реализации линейного вычислительного процесса необходимы операторы присваивания, ввода и вывода.

В результате выполнения оператора присваивания переменная принимает значение некоторого выражения.

Примеры операторов:

x1:= (-b+sqrt (sqr (b)-4*a*c)) / (2*a);

м:= 0.231;

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

Для ввода данных и вывода результатов используются операторы ввода и вывода.

Ввод может выглядеть, например, так:

read (a);

readln(x1, x2,y);

Оператор ввода состоит из идентификатора read и следующего за ним в круглых скобках списка переменных. Число переменных в списке может быть любым, если переменных больше одной, то они разделяются запятыми.

При выполнении оператора ввода переменным присваиваются значения исходных данных. Те числа, которые являются исходными данными, надо своевременно набрать на клавиатуре компьютера. Пусть на клавиатуре набрано число 3.6, тогда в результате выполнения оператора read (a) переменная а получит значение 3.6, после чего начнет выполняться следующий оператор программы.

При чтении числовых данных в использовании операторов read и readln нет различий.

Оператор вывода состоит из идентификатора write и следующего за ним в круглых скобках списка переменных, выражений и констант:

write (x, 2*x-a, sqrt(x), ' Результат=', y);

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

Например, последовательность операторов вывода

writeln; writeln (‘x1=‘,(-b+d)/a); writeln (‘x2=‘,(-b-d)/a);

задает вывод результатов в следующем виде:

x1=...

x2=...

Пример 2.1. Программа kopni вычисляет корни квадратного уравнения ax2+bx+c=0, заданного коэффициентами a, b, c (предполагается, что а ¹ 0 и что дискриминант уравнения неотрицателен):

Программа 2.1.

program kopni;

var a, b, c: real;

begin

writeln ('Введите значения a, b, c');

read (a, b, c);

write((-b+sqrt(sqr(b)-4*a*c))/(2*a),

(-b-sqrt(sqr(b)-4*a*c))/(2*a),

end.

При выполнении этой программы придется дважды вычислить значение sqrt(sqr(b)-4*a*c) и дважды - значение 2*a. Поэтому более разумным вариантом будет программа:

Программа 2.2.

program kopni;

var a, b, c, d, e: real;

begin

writeln ('Введите значения a, b, c');

read (a, b, c);

d:=sqrt(sqr(b)-4*a*c));

e:=2*a;

writeln ('корень 1= ',(-b+d)/e,' корень 2 = ',(-b-d)/e)

end.

При выполнении оператора writeln пользователь увидит на экране результат в экспоненциальном виде, где под вещественное число отведено 17 позиций, например:

корень 1=-7.2436795801Е+01

Изменить стандартную форму вывода, можно используя систему форматов языка Паскаль.

Рассмотрим систему форматов для вывода информации.

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

Так, для вывода числа 999 будут требоваться три позиции.

Для вывода числа -23.045 требуется семь позиций (с учетом знака и десятичной точки), из которых три позиции будет занимать дробная часть.

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

Если указанный размер поля меньше требуемого, то значение печатается без пробелов и учета указанного пользователем поля.

Для вывода вещественных данных указывается общая длина поля и количество позиций под дробную часть (в том числе).

Если требуется, то дробная часть числа округляется до указанного количества позиций.

Рассмотрим примеры вывода данных. Так, если значения переменных d и s соответственно равны "1234" и "-123.451", при выполнении оператора вывода с форматами, результаты представлены в таблице 2.1

 

Таблица 2.1

Оператор Представление результата Примечание
writeln (d:4)    
writeln (d:7) _ _ _1234  
writeln (d:12) _ _ _ _ _ _ _ _1234  
writeln (d:2)   вывод без учета указанного поля
writeln (s:9:3) _-123.451  
writeln (s:8:1) _ _-123.5  
writeln (s:12:2) _ _ _ _ _-123.45  
writeln (s:4:3) -123.451 вывод без учета указанного поля

 

При форматированном выводе оператор writeln программы 2.2 может быть следующим:

writeln ('корень 1= ', (-b+d)/e:12:4,

' корень 2 = ', (-b-d)/e:12:4)

Задание к лабораторной работе

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

1. По заданным коэффициентам уравнения прямой линии на плоскости (Ах + By + С = 0) должен вычисляться угол (в градусной мере, образуемый этой прямой с положительным направлением оси ОХ (полагается, что A ¹О, В ¹ 0).

2. По заданным коэффициентам уравнения прямой линии на плоскости (Ах + By + С = 0) и координатам некоторой точки Р (хо, уо) должна вычисляться абсолютная величина отклонения точки от прямой.

3. По заданным координатам двух точек на плоскости Р1 (x1, y1) и Р22, у2) должно вычисляться расстояние между ними.

4. По заданным координатам точки Р (хо, уо) должно вычисляться расстояние точки от начала координат.

5. По заданным коэффициентам уравнений двух непараллельных прямых (A1x + B1y + C1 = О, А2Х + В2у + С2 = 0) должны вычисляться координаты точки пересечения этих прямых.

6. По заданным координатам вершин треугольника Р1 (x1, y1), Р22, у2) и Р33, у3) должна вычисляться его площадь.

7. По заданным координатам вершин треугольника Р1 (x1, y1), Р22, у2) и Р33, у3) должен вычисляться его периметр.

8. По заданным диаметрам D1 и D2 двух окружностей с общим центром должна вычисляться площадь образуемого ими кольца.

9. По заданным координатам центра Р0о, уо) и некоторой точки окружности Р1 (x1, y1) должны вычисляться длина окружности и площадь круга, образованного ею.

10. По заданным коэффициентам уравнения прямой линии на плоскости (Ах + By + С = 0) должны вычисляться площадь и периметр прямоугольного треугольника, образованного отрезком этой линии и полуосями координат, исходящими из их начала (полагается A ¹О, В ¹ 0, С ¹ 0).

11. По заданным коэффициентам уравнения прямой на плоскости (Ах + By + С = 0) должно вычисляться наименьшее расстояние между началом координат и прямой.

12. По заданным радиусу окружности с центром в начале координат R и координатам некоторой точки Р (хо, уо) должно вычисляться наименьшее расстояние от точки Р до окружности.

13. По заданным стороне А и диагонали D прямоугольника должны вычисляться его периметр и площадь.

14. По заданным основанию А и высоте Н равнобедренного треугольника должны вычисляться его периметр и площадь.

15. По заданным катету А и гипотенузе С прямоугольного треугольника должны вычисляться периметр и площадь треугольника.

16. По заданным декартовым координатам вершин четырехугольника Р1(x1,y1), P2(x2,y2), P3(x3,y3),P4(x4,y4) должен вычисляться его периметр.

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

18. По заданным основаниям трапеции А и В, высоте H, углу при основании F (в градусах) вычисляется периметр трапеции.

19. По заданным радиусам R1 и R2 двух окружностей с общим центром и центральному углу F (в градусах) должна вычисляться площадь части кольца.

20. По заданным координатам центра одной окружности x1,y1 с радиусом R1 и центра другой окружности x2,y2 с радиусом R2 должно вычисляться наименьшее расстояние между окружностями.

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

Теоретическая часть

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

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

Для описания таких процессов служит условный оператор.

Например, если мы хотим, чтобы переменной max присвоилось наибольшее из значений переменных x1 и x2, то надо сравнить значения x1 и x2, в зависимости от результата сравнения выполнить либо оператор max:=x1, либо max:=x2. Действия такого рода задаются условным оператором:

if B then P1 else P2;

где B - условие, P1 и P2 - операторы. Если значение B истинно, то выполняется P1, иначе выполняется P2. См. рис. 3.1.

 

 

 


Рис. 3.1 Блок-схема условного оператора IF … THEN … ELSE

В качестве условий используют отношения, которые представляют собой записи равенств и неравенств.

На клавиатурах современных компьютеров нет знаков ¹, ³, £, и вместо этих знаков используются соответственно комбинации < >, >=, <=.

Для решения задачи о присваивании переменной max наибольшего из значений x1 и x2 достаточно выполнить условный оператор

if x1>x2 then max:=x1 else max:=x2;

Допускается сокращенная форма условного оператора:

if B then P;

где B - условие, P - оператор.

В случае если B соблюдается, должен быть выполнен оператор Р, если же B не соблюдается, его выполнять не нужно. См. рис. 3.2.

 


Вход

 

Выход

Рис. 3.2 Блок-схема условного оператора IF … THEN

 

При записи операторов и блоков IF следует помнить, что "условия", проверка которых предусматривается этими средствами Турбо-Паскаль при решении задачи, представляются после ключевого слова IF в виде логических выражений - как одно отношение или несколько отношений, соединенных знаками логических операций: AND (И), OR (ИЛИ), NOT (HE), XOR (исключающее ИЛИ).

Например, если структура выбора определяет, что для присваивания переменной Р значения 1 необходимо, чтобы значение переменной А было положительно, а одно из значений - либо переменной В, либо переменной С - ненулевым, то условный оператор запишется в виде:

IF ((А > 0) AND ((В <> О) OR (С <>О))) THEN Р = 1;

В условном операторе после then и else можно помещать по одному оператору. Однако часто необходимо в зависимости от результата проверки некоторого условия выполнить ту или иную группу операторов. Паскаль предоставляет возможность сделать из



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 141; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.205.146 (0.25 с.)