- •4.1. Активизация иср и выход из среды.
- •4.2. Назначение и содержание окна иср.
- •4.3. Назначение пунктов меню File, Edit, Search. Меню работы с файлами (File)
- •Меню редактирования (Edit)
- •Меню поиска информации (Searh)
- •4.4. Назначение пунктов меню Run, Compile, Debug. Меню выполнения программы (Run)
- •Меню компиляции (Compile)
- •Меню отладки (Debug)
- •4.5. Назначение пунктов меню Options, Window, Help. Меню параметров среды (Options)
- •Меню окон (Window)
- •17.5.10. Меню информационной помощи (Help)
- •4.6. Отличия проектов Программа и Модуль.
- •4.7. Кодировки ansi и ascii.
- •4.8. Алфавит языка FreePascal, операции, идентификаторы.
- •4.9. Структура программы. Разделы объявления констант, переменных, меток, типов данных, подпрограмм.
- •4.10. Константы. Их объявление. Константные выражения.
- •4.11. Переменные. Их объявление.
- •4.12. Форматы представления чисел (с фиксированной и плавающей точкой).
- •4.16. Тип tDateTime и его использование.
- •4.17. Логические типы данных Boolean.
- •4.20. Строковые типы для коротких строк: ShortString, String[n].
- •4.21. Совместимость типов при присвоениях.
- •4.22. Тип Variant и его использование.
Федеральное агентство связи
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Поволжский государственный университет
телекоммуникаций и информатики
Кафедра Информационных систем и технологий
Лабораторная работа №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 (найти подпрограмму) Осуществляет поиск подпрограммы, имя которой задано в окне диалога. Команда работает только во время отладки программы.