Сделай Сам Свою Работу на 5

Практическая работа в интегрированной среде Pascal





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

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

1. Запуск и настройка среды. В комплект поставки Pascal v.7.0 входят три варианта IDE. Два из них работают под операционной средой DOS. Третий вариант предназначен для написания программ для операционной системы WINDOWS. Для того, чтобы загрузить среду в память компьютера и начать работу, нужно запустить файл TURBO.EXE или BP.EXE, среда программирования для WINDOWS загружается программой BPW.EXE. Программа TURBO.EXE обеспечивает разработку программ в реальном режиме, она требует минимального размера оперативной памяти. Большие возможности имеет среда, загружаемая BP.EXE. Она позволяет писать программы для реального и защищенного режимов, а также для WINDIWS. BP.EXE работает быстрее, предоставляет больше возможностей для программиста.



Для начала работы запустите BP.EXEиз каталога BP/BIN. Загрузка программы производится с параметрами в командной строке или без них. В каталоге BP/BIN имеются также исполняемые файлы компиляторов, работающие в режиме командной строки (то есть без использования интегрированной среды). Это TPC.EXE — компилятор реального режима MS DOS и BPC.EXE — компилятор реального режима MS DOS и BPC.EXE — компилятор защищенного режима.

Примечание. Реальный режим - атавизм современных микропроцессоров Intel, от которого разработчики не избавляются вот уже около двадцати лет. Он существует по причине наличия программного обеспечения, предназначенного для работы в этом режиме. Этот режим был единственным в котором работали процессоры 8086 и 80186, но уже в 80286 был введен защищенный режим, который был доработан в 80386



Для доступа к оперативной памяти в реальном режиме используется сегментная адресация с использованием сегментных регистров CS, DS, ES, SS и появившихся позже FS и GS. Размер этих регистров в 8086 и 80186 составляет два байта. При этом любое обращение к памяти использует какой-нибудь сегментный регистр и физический адрес (т.е. номер ячейки памяти) определяется таким образом: сегментный_регистр*16+указанный_адрес Например команда: mov [0x1234], al поместит содержимое регистра al в следующую ячейку памяти: DS*16+0x1234 Обычно команды работающие со стеком используют SS как сегментный регистр по умолчанию, выборка кода для последующего исполнения процессором производится по адресу CS:IP (т.е. CS*16+IP), остальные работающие с памятью команды обычно используют DS. Любой сегмент может быть переопределен при помощи префиксов переопределения сегмента, т.е:es mov [0x1234], al приведет к тому, что содержимое al запишется по адресу:ES*16+0x1234 Максимально возможный адрес памяти в реальном режиме составляет 10FFEF (1114095 байт), которые получается при использовании FFFF в качестве сегмента и FFFF в качестве адреса.

Защищенный режим появился в микропроцессорах Intel начиная с 80286, но окончательный вид обрел в 80386. После введения защищенного режима, микропроцессоры Intel стали сравнимы с "большими", используемыми в мейнфреймах процессорами. Как следует из своего названия, защищенный режим предоставляет механизм защиты - т.е. процессор может разрешить либо не разрешить выполнять какое-либо действие (доступ к определенному участку памяти, запись в регистр и т.п) в зависимости от текущего уровня привилегий. Механизм защиты применяется главным образом при многозадачности для обеспечения защиты выполняемых программ друг от друга. Существует четыре уровня привилегий ("кольца") в котором может выполняться программа, при этом 0 обозначает наивысшие привилегии, а 3 - наименьшие. В современных ОС ядро системы выполняется на 0 уровне, а пользовательские программы на третьем.



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

Строка меню предоставляет доступ к командам интегрированной среды. Активизировать строку меню можно, нажав клавишу F10 (или Alt и выделенную букву в названии пункта) или мышью, нажав левую кнопку. Каждому пункту меню соответствует группа команд, с которыми связаны подпункты меню. Запуск команды производится нажатием клавиши Enter. Прервать выполняемое действие можно нажатием клавиши Esc, а прервать выполнение программы — одновременным нажатием клавиши Ctrl+Break.

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

Многие опции интегрированной среды Паскаль могут быть изменены при помощи меню Опции. Команда Options>Compiler позволяет установить опции компилятора. Соответствующее окно содержит несколько групп опций.

Первая — Code generation — относится к генерируемому коду. Группа Run-times errors позволяет включить или отключить проверку компилятором некоторых ошибок хода выполнения программы.

Группа Syntax options устанавливает некоторые опции синтаксиса языка. Отметив в группе Numeric processing одну из опций, вы сможете дать указание компилятору использовать аппаратный математический сопроцессор или его программный эмулятор.

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

В поле Conditional defines могут быть заданы символы, используемые приусловной компиляции.

Окно, которое активизируется командой Options>Memory Sizes содержит три поля, используемые для определения размера стека, а также минимального и максимального количества динамически распределяемой памяти.

Опции компоновщика задаются в окне Linker (здесь можно определить тип карты распределения памяти, а также местоположение буфера компоновщика (на диске или в оперативной памяти).

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

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

Команда Tools позволяет присоединить к интегрированной среде дополнительные утилиты, такие как утилита поиска grep и другие. Команда Grep –indw %1 *.pas позволяет искать строку, заданную в качестве единственного параметра (%1), игнорируя регистр символов (ш), выводя номера строк (n), выполняя поиск только целых слов (w) во всех файлах *.pas, включая подкаталоги (d).

Одной из замечательных особенностей интегрированной среды является возможность отображения различных элементов программного кода разными цветами. Цвета отображения можно изменить с помощью команды Options>Environment>Colors.

Установки можно сохранять в файлах с расширениями .tp и .dsk или загрузить из ранее сформированного файла.

2. Набор и редактирование исходного текста программы. Набор и редактирование исходного текста программы производится средствами встроенного редактора интегрированной среды (меню Edit). С редактированием также связан пункт меню — Search, который используется для поиска и замены фрагментов текста.

В процессе набора текста программы часто приходится пользоваться встроенной справочной службой (F1, Shift+F1, Alt+F1, Ctrl+F1).

Компиляция программы, поиск и устранение ошибок компиляции. После завершения набора программы и ее записи на диск можно приступать к компиляции (клавиша F9). Результатом успешной компиляции является файл, имя которого совпадает с именем исходного файла, а его расширение — .exe. Задать размещение исполняемого файла можно с помощью команды Destination, которая является переключателем двух возможных значений — Memory и Disk. Далее в меню Compile следуют команды, позволяющие задать основной файл проекта, а также команда Information, активизация которой позволяет получить полезную информацию о скомпилированной программе (размер программы, распределение оперативной памяти и т.д.). При возникновении ошибок следует руководствоваться встроенной справочной службой Паскаля.

Запуск на выполнение, просмотр результатов. После устранения синтаксических ошибок можно запускать программу на выполнение (Ctrl+F9).

Меню Run содержит несколько пунктов. Среди них >Evaluate>Modify; Debug>Add Wath; Run >Trace Into и другие.

3. Простые приемы и методы отладки программы. Интегрированный отладчик Турбо Паскаля дает возможность пошагового выполнения программы. При этом можно просматривать значения различных переменных командой Run>Trace Into (F7). При этом программа вначале компилируется, а затем начинается ее пошаговое выполнение. Каждый шаг заключается в выполнении очередной строки операторов, и происходит он при очередном нажатии на клавишу F7.

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

Просмотреть значение любой переменной программы можно, установив курсор на ее идентификатор и воспользовавшись командой Evaluate/Modify.

Если исходный текст программы достаточно объемен и имеются отлаженные куски программы или вас интересуют значения только в избранных местах программы удобнее воспользоваться командой меню Debug>Breakpoint для размещения в программе точек прерывания. Для каждой точки прерывания указывается номер строки, где она устанавливается, условие, при выполнении которого программа приостановится в указанном месте, а также количество прохождений точки до ее "срабатывания". Ставшие ненужными точки прерывания можно удалить той же командой.

Завершить работу "зациклившейся" программы можно нажатием клавиш Ctrl+Break.

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

 

Задания.

 

1.1.Освоить назначение пунктов меню.

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

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

2.1.Наберите программу "Угадай число":

 

Program n1;

Label 5;

var

I:INTEGER; (*Переменная цикла*)

N:INTEGER; (*Переменная угадывающего числа *)

L:INTEGER; (*Угадываемое число *)

К:INTEGER; (*Счетчик количества угадывания *)

begin

k:=0;

Randomize; L:=Random(100);

5:writeln('Угадайте число:');

read(n);

k:=k+1;

if n=L then writeln('Правильно!')

else

if n>L then

begin

writeln ('Ваше число больше');

goto 5;

end

else

begin

writeln ('Ваше число меньше');

goto 5;

end;

if k=1 then writeln ('Но, Вам просто повезло!');

if k<=5 then writeln ('Молодцы! Вы быстро угадали!')

else writeln ('Вы долго угадывали');

end.

 

2.2.Откомпилируйте ее и запустите на выполнение.

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

3.1. Проследите за работой программы по шагам, исследуйте изменение значений переменной l.

3.2. Просмотрите в отладочном режиме значения других переменных.

 

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.