ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.07.2019
Просмотров: 762
Скачиваний: 9
Федеральное агентство связи
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Поволжский государственный университет
телекоммуникаций и информатики
Кафедра Информационных систем и технологий
Лабораторная работа №3
По дисциплине «Инструментальные средства информационных систем»
Тема: «Структура программы и типы в языке FreePascal»
Руководитель доцент к. т. н.
__________________ Никитин К.А.
Самара 2018
Цель работы
Изучение интегрированной среды разработки FreePascal.
Получение практических навыков создания простых программ в среде FreePascal.
1. Активизировать ИСР. Ознакомится с окнами ИСР.
Пункты главного меню главного окна ИСР:
Пункт |
Назначение |
File |
Работа с файлами |
Edit |
Правка |
Search |
Поиск фрагментов |
Run |
Прогон и отладка |
Compile |
Компиляция |
Debug |
Отладка |
Tools |
Инструментарий |
Options |
Опции |
Window |
Перечень окон для выбора фокуса |
Help |
Справка |
2. Создать проект Prg_1_1. Он должен в символьном режиме выводить на экран фразу «Hello World!».
Листинг программы
program prg_1_1; // имя программы
uses // Используемый модуль – SysUtils
SysUtils;
begin
writeln('Hello World!’); // для вывода на экран сообщения и перевода курсора на другую строчку;
readln; // для ввода данных
end.
3. Создать программу взаимных преобразований численных данных в соответствии с вариантом. Нужно преобразовывать численные данные из типа Start в типы Fin1 и Fin2 для вещественных и целых чисел.
№ |
Типы вещественных чисел |
Типы целых чисел |
||||
Start |
Fin_1 |
Fin_2 |
Start |
Fin_1 |
Fin_2 |
|
5. |
Extended |
Real |
Double |
Shortint |
Cardinal |
LongInt |
Листинг программы
program prg_1_2;
uses // Используемый модуль – SysUtils
SysUtils;
const //не изменяющиеся значения
real_0: extended =3.7145;
int_0:shortint =113;
var
real_1:real;
real_2:double;
int_1:cardinal;
int_2:longint;
begin
writeln('Вещественное число в разных типах');
writeln;
real_1:=real_0;
real_2:=real_0;
real_3:=real_0;
writeln('Значения и размер в байтах в разных типах');
writeln('real_0=',real_0:10:6,sizeof(real_0):4,' extended''); //10 – отведённое место для целых
writeln('real_1=',real_1:10:6,sizeof(real_1):4,' real); //10 – отведённое место для дроби
writeln('real_2=',real_2:10:6,sizeof(real_2):4,' double'); //SizeOf возвращает размер аргумента в байтах
readln;
writeln('Целое число в разных типах');
int_1:=int_0;
int_2:=int_0;
writeln;
writeln('Значения и размер в байтах в разных типах');
writeln('int_0=',int_0:10,sizeof(int_0):4,' shortint');
writeln('int_1=',int_1:10,sizeof(int_1):4,' cardinal');
writeln('int_2=',int_2:10,sizeof(int_2):4,' longint');
readln;
end.
4. Создать программу взаимных преобразований строковых и символьных типов. Она должна отображать фамилию студента строками разного типа и добавлять к строке символ.
program prg_1_3;
uses
SysUtils;
var
Str_1:string;
Str_2:string[15];
ShortStr:ShortString;
AnsiStr:AnsiString;
WideStr:WideString;
MyChar:char;
begin
Str_1:=’SmolStepanova';
writeln('Строки в разных типах');
writeln;
Str_2:=Str_1;
ShortStr:=Str_1;
AnsiStr:=Str_1;
WideStr:=Str_1;
writeln('Значения и размер в байтах в разных типах');
writeln;
writeln('AnsiStr =',AnsiStr:15,SizeOf(AnsiStr):5,' AnsiString');
writeln('Str_1 =',Str_1:17,SizeOf(Str_1):7,' String');
writeln('WideStr =',WideStr:15,SizeOf(WideStr):5,' WideString');
writeln('ShortStr =',ShortStr:14,SizeOf(ShortStr):7,' ShortString');
writeln('Str_2 =',Str_2:17,SizeOf(Str_2):6,' String[..]');
readln;
writeln('Добавим к строке символ !');
writeln;
MyChar:='!';
Str_2:=Str_2+MyChar; // Операция + выполняет конкатенацию (присоединение в конец)
writeln('Str_2 =',Str_2:9,SizeOf(Str_2):5,' String[..]');
readln;
end.
5. Создать программу работы с типом TDateTime. Она должна запрашивать дату и время рождения студента, выводить текущие дату/время, запрашивать желаемое время дальнейшего обучения, выводить дату/время и день недели конца обучения.
Для работы с датой и временем определен тип TDateTime. Он в формате вещественного числа содержит и дату (целая часть - число суток, прошедших с 30.12.1899) и время (дробная часть - часть суток, прошедших с 0 часов). Тип позволяет выполнять с датой/временем операции, как с вещественными числами.
program prg_1_4;
uses
SysUtils;
var
Date_1,Time_1,DateTime1:string;
DateTime_1,DateTime_2:TDateTime; // тип TDateTime в формате вещественного числа содержит и дату (целая часть - число суток, прошедших с 30.12.1899) и время (дробная часть - часть суток, прошедших с 0 часов)
Day,Time:integer;
begin
writeln('Введите дату рождения день.месяц.год');
readln(Date_1);
writeln;
writeln('Введите время рождения часы.минуты.секунды');
readln(Time_1);
writeln;
DateTime_2:=Now;
writeln('Сегодня ',DateTimeToStr(Now)); // встроенная функция Now - получения текущей даты и времени и встроенная функция DateTimeToStr для преобразования данных в строку
writeln;
writeln('Сколько времени в часах вы ещё хотите учиться?');
readln(Time);
DateTime_2:=DateTime_2+(Time/24);
Day:=DayOfWeek(DateTime_2);// встроенная функция DayOfWeek- получения дня недели
writeln('Вы станете умным ', DateTimeToStr(DateTime_2)); // встроенная функция DateToStr для преобразования данных в строку
writeln('Это будет день недели номер ',Day);
readln;
end.
Результат программы:
Type
TDateTime = Record
Year, Month,
Day : Word;
Hour, Min, Sec :
Word;
End;
Допустимые диапазоны:
Year
1980 .. 2099 { Год }
Month 1
.. 12 { Месяц }
Day 1
.. 31 { День }
Hour 0
.. 23 { Часы }
Min 0
.. 59 { Минуты }
Sec 0
.. 59 { Секунды }
Сколько времени в часах
Сколько времени в минутах
Сколько времени в секундах
Сколько времени в часах и минутах
Функция
StrToTime (Const S: ShortString; сепаратор:
Char): TDateTime;
Преобразует строку времени
К.В.
4.1. Активизация ИСР и выход из среды.
4.2. Назначение и содержание окна ИСР.
Интегрированная среда разработки (ИСР) FreePascal предназначена для создания консольных приложений с использованием компилятора FPC (Free Pascal Compiller). Она включает редактор с синтаксическими выделениями, отладчик, браузер символов и др. Среда не поддерживает графику.
При старте ИСР из Windows выводится окно ИСР. Оно содержит:
• Строку заголовка с именем ИСР – Free Pascal.
• Главное меню.
• Рабочее поле.
• Окно сообщений Messages.
• Строка быстрого выбора часто используемых команд.
4.3. Назначение пунктов меню File, Edit, Search.
Меню работы с файлами (File)
New (создать новый файл)Расширение.PAS
Open (открыть существующий файл)
Save (сохранить файл)
Save as (сохранить файл под именем...)
Save all (сохранить все измененные файлы)
Change dir (изменить текущий каталог) Изменяет текущий каталог, в котором производится поиск файлов и в который записываются файлы.
Print (распечатать файл) Если необходимо распечатать только фрагмент программы, следует Ctrl+K .Для прекращения печати следует нажать клавишу Esc.
Printer setup (установить параметры принтера)
DOS shell (выход в операционную систему) Осуществляет временный выход в операционную систему без удаления из оперативной памяти интегрированной среды. Для возврата в среду следует набрать команду Exit.
Exit (выход)
Меню редактирования (Edit)
Undo (удалить изменения) Восстанавливает первоначальное содержание текущей редактируемой строки.
Redo (восстановить изменения) Восстанавливает изменения, удаленные командой Undo.
Cut (удалить фрагмент) Удаляет выделенный блок текста
Сору (скопировать фрагмент) Копирует выделенный блок текста
Paste (вставить информацию).
Clear (удалить фрагмент) Удаляет выделенный блок текста
Show clipboard (открыть окно промежуточного буфера)
Меню поиска информации (Searh)
Find (найти фрагмент) Открывает окно диалога, с помощью которого задаются: фрагмент для поиска и условия поиска - критерии (различать или нет заглавные и строчные буквы, искать ли только целые слова, учитывать ли при поиске какие-либо дополнительные признаки), диапазон поиска (поиск во всем тексте или только в выделенном фрагменте), направление поиска (вперед или назад по тексту), начало поиска (с начала или конца текста, от курсора).
Replace (заменить фрагмент) Открывает окно диалога, похожее на окно при использовании команды Find и отличающееся от него тем, что необходимо задать фрагмент, на который следует заменить исходный фрагмент.
Search again (повторный поиск) После выполнения команды Find или Replace осуществляет поиск следующего вхождения искомого фрагмента текста, при этом сохраняются все заданные условия поиска.
Go to line number (перейти к строке с заданным номером) Осуществляет переход к строке с заданным номером, задаваемым в окне диалога.
Show last compile error (показать последнюю ошибку компиляции) Позволяет повторно определить место последней ошибки компиляции и выдает сообщение о виде ошибки.
Find error (найти ошибку) Находит в тексте программы место ошибки, выданной операционной системой и возникшей на этапе выполнения.
Find procedure (найти подпрограмму) Осуществляет поиск подпрограммы, имя которой задано в окне диалога. Команда работает только во время отладки программы.
4.4. Назначение пунктов меню Run, Compile, Debug.
Меню выполнения программы (Run)
Run (запустить программу) Запускает программу, если ее исходный текст не был изменен. Если текст программы был изменен, то при очередном запуске программы происходит ее перекомпиляция
Step over (трассировка без захода в подпрограммы) Выполняет очередные операторы программы, соответствующие одной строке текста, причем трассировка подпрограмм (выполнение по отдельным операторам) не производится - они рассматриваются как единые операторы.
Trace into (трассировка с заходом в подпрограммы) Выполняет те же действия, что и команда Step over (см. выше), однако если встречается подпрограмма, она также выполняется по отдельным строкам.
Go to cursor (выполнить до строки, помеченной курсором) Ctrl+Break
Program reset (прекратить выполнение программы)
Parameters (параметры) Позволяет задать параметры программе точно так же, как они задаются при запуске программы с помощью командной строки.
Меню компиляции (Compile)
Compile (компиляция) Осуществляет компиляцию файла, находящегося в активном окне. В случае обнаружения синтаксической ошибки выдается сообщение об этой ошибке, а курсор помещается в место ее нахождения. Если ошибки не обнаружены, выдается сообщение об успешной компиляции.
Make (собрать программу) Если тексты отдельных модулей, которые используются основной программой или основным модулем, были изменены после получения объектных файлов, то соответствующие модули перекомпилируются, после чего компилируется файл, содержащий основную программу или основной модуль.
Build (создать программу) Работает аналогично Make, только все модули, которые используются основной программой или основным модулем, перекомпилируются в любом случае.
Destination (размещение файла) Определяет, где следует разместить исполняемый файл программы - в оперативной памяти (Memory) или на диске (Disk).
Primary file (основной файл) Устанавливает основной файл программы для команд Make и Build. В этом случае выполнение этих команд начинается с компиляции этого основного файла, даже если он находится не в активном окне и даже если он вообще не открыт к моменту компиляции.
Clear primary file (отказаться от основного файла) Сбрасывается заданное командой Primary file имя основного файла. В этом случае любая компиляция начинается с файла, находящегося в активном окне.
Information (получить информацию о файле) Выводит информацию о текущем файле и оперативной памяти.
Меню отладки (Debug)
Breakpoints (работа с точками останова) Позволяет работать с окном точек останова
Call stack (окно используемых подпрограмм) Открывается и активизируется окно используемых подпрограмм.
Register (окно регистров) Открывается и активизируется окно регистров.
Watch (окно отладки) Открывается и активизируется окно отладки.
Output (окно выходных результатов)
User screen (окно пользователя)
Evaluate/modify (вычислить/модифицировать) Позволяет задать переменную или выражение, для которого следует вычислить значение, а также задать новое значение для переменной.
Add watch (добавить наблюдаемый параметр) Добавляет в окно наблюдаемых параметров новый параметр переменную или выражение).
Add breakpoint (добавить точку останова) Задает точку останова и условия останова.
4.5. Назначение пунктов меню Options, Window, Help.
Меню параметров среды (Options)
Compiler (параметры компилятора) Все устанавливаемые параметры сгруппированы в 5 триггерных списков. Список Code generation (параметры формирования программы):
Список Syntax options (синтаксические параметры):
Список Numeric processing (использование арифметического сопроцессора):
Список Map file (файл карты загрузки) включает параметры, определяющие создание карты загрузки:
Список Link buffer (буфер компоновщика) определяет расположение буфера компоновщика
Memory sizes (размеры памяти) Открывает окно диалога, с помощью которого задаются размеры используемой оперативной памяти - размеры стека, минимальный и максимальный размер динамической памяти
Linker (параметры компоновщика) Открывает окно диалога, с помощью которого можно установить параметры, определяющие работу компоновщика. Все устанавливаемые параметры сгруппированы в два селективных списка.
Debugger (отладчик) Открывает окно диалога, с помощью которого можно установить параметры, определяющие работу отладчика. Все устанавливаемые параметры сгруппированы в один триггерный и один селективный списки.
Directories (каталоги) Задает каталоги, из которых извлекаются или в которые помещаются файлы.
Environment (условия работы) Содержит 5 подменю, с помощью которых задаются условия работы в среде.
Tools (инструментальные средства) Открывает окно диалога, с помощью которого можно включить в список вы-зываемых из среды программ новую программу, отредактировать ее параметры, удалить программу из списка.
Open (открыть файл для сохранения параметров) Открывается файл конфигурации, в котором сохраняются установленные параметры интегрированной среды.
Save <имя файла> (сохранить параметры)Сохраняется конфигурация среды в файле, открытом командой меню Options | Open.
Save as (сохранить в файле с именем...) Выводится окно диалога, с помощью которого выбирается имя файла конфигурации, отличное от заданного командой меню Options | Open, в который затем записываются установленные параметры интегрированной среды.
Меню окон (Window)
Tile (размещение окон встык) Окна располагаются в поле экрана встык друг к другу без перекрытий.
Cascade (каскадное размещение окон) Окна перекрывают друг на друга.
Close all (удалить все окна) Очищает поле экрана, закрывая все окна и очищает все списки предыстории.
Refresh display (обновить экран)
Size/Move (изменить размеры, переместить) Позволяет изменить размеры окна, переместить его по полю экрана. Для изменения размеров экрана следует с клавишей Shift одновременно нажать одну из клавиш "стрелка вверх", "стрелка вниз", "стрелка влево" или "стрелка вправо". Для перемещения окна по полю экрана следует воспользоваться клавишами "стрелка вверх", "стрелка вниз", "стрелка влево" или "стрелка вправо". Завершить работу следует нажатием клавиши Enter