Работа в среде Free Pascal
Подробное руководство по установке и компилятор Free Pascal для скачивания Вы найдете здесь.
Установка Free Pascal
1.Запустить файл fpc-2.4.4.i386-win32.exe. При необходимости, нажимайте на кнопку «Далее». После окончания установки на диске «С» появится папка «FPC». Заходим в эту папку. Далее заходим в папку «2.4.4», затем в папку «bin», а затем в папку «i386-win32». Здесь нам необходимо создать папку для хранения исходных кодов наших программ. Создаем папку с названием «Programs».
2. Запускаем Free Pascal с помощью ярлыка на рабочем столе. Для того чтобы программы сохранялись в созданной нами папке "programs" необходимо поменять текущий каталог. Для этого заходим File – Change dir. Выбираем директорию «programs», затем нажимаем Chdir, затем Ok.
3. Откройте меню Options. Выберите пункт Mode... В открывшемся окне вместо Debug выберите Normal.
5. Теперь создадим программу и сохраним ее. Для создания новой программы переходим File - New. Записываем программу. После написания программы нажимаем File – Save as… и в открывшемся окне в поле «Name» указываем название программы. Затем нажимаем «Ok».
6. Перед выполнением программы переводим ее в машинный код меню Compile - Compile (комбинация клавиш Alt+F9). Если в процессе компиляции найдена синтаксическая ошибка, компилятор сообщит о ней и установит курсор на строку, содержащую ошибку. После исправления ошибки нажмите Alt+F9 еще раз.
7. Выполнение программы меню Run - Run (Ctrl+F9). Открыть окно с результатом выполнения программы: Debug - User Screen (Alt+F5). Для возврата в окно программы нажать клавишу Enter.
Меню File
New Новый Открывает новое пустое окно в редакторе.
Open (F3) Открыть Вызывает диалог выбора файла и открывает выбранный файл в новом окне редактора.
Save (F2) Сохранить Сохраняет содержимое окна редактора в текущий файл. Если текущее окно еще не связано с файлом, то будет вызвано диалоговое окно для ввода имени файла.
Save as Сохранить как… Вызывает диалоговое окно для ввода имени файла. Текущее содержимое окна будет сохранено в указанный файл.
Change dir Сменить каталог Вызывает диалоговое окно для выбора каталога. Текущий рабочий каталог будет заменен на выбранную директорию.
Exit (ALT-X) Выход
Меню Edit
Undo (ALT-BKSP) Отмена Отменяет последнее действие, выполненное в редакторе
Redo Возврат Повторяет последнее действие, которое было отменено командой Undo. Эта команда может вернуть множество отмененных действий.
Cut (SHIFT-DEL) Вырезать Удаляет выделенный в окне текст и копирует его в буфер обмена.
Copy (CTRL-INS) Копировать Копирует текущее выделение в буфер обмена.
Paste (SHIFT-INS) Вставить Вставляет содержимое буфера обмена в текст, начиная с позиции курсора. Show clipboard Показать буфер обмена Открывает окно, где отображается текущее содержимое буфера обмена.
Copy to Windows Копировать в Windows Копирует выделение в буфер обмена Windows.
Paste from Windows Вставить из Windows Вставляет содержимое буфера обмена Windows (если он содержит текст) в окно редактора исходного кода в текущую позицию курсора.
Меню Run
Run (CTRL-F9) Пуск Если компиляция завершена без ошибок, то выполняется пуск программы.
Step over (F8) Пошаговое выполнение. Выполняет пошаговое выполнение программы, то есть при выборе этой команды выполняется текущая строка в исходном коде программы.
Goto cursor (F4) Перейти к курсору Запускает и выполняет программу до того места, где в исходном коде находится курсор.
Parameters Параметры Позволяет ввести параметры, которые будут переданы в программу в начале выполнения.
Program reset (CTRL-F2) Сброс программы. Если программа находится в режиме отладки, то сеанс отладки завершается, а запущенная программа принудительно закрывается. Может оказаться полезным при зависании программы.
Меню Compile
Compile (ALT-F9) Компиляция Компилирует содержимое активного окна.
Меню Debug
User screen (ALT-F5) Экран пользователя Позволяет переключаться между экраном программы и окном редактора.
Add watch (CTRL-F7) Добавить элемент наблюдения Добавляет элемент (например, переменную) в список отслеживания.
Watches Список отслеживания Отображает текущий список отслеживания значений в отдельном окне.
Breakpoint (CTRL-F8) Точка останова Устанавливает точку останова на текущей строке. В процессе отладки программа будет остановлена на этой точке.
Наберите и выполните программу:
program z2;
var a,b,c : integer;
begin
readln(a,b);
c:=b;
b:=a;
a:=c;
writeln(a); writeln(b);
end.
Что делает данная программа?
Измените предыдущую программу, не используя дополнительную переменную с.
Меню FREE PASCAL
Меню FileNew Новый Открывает новое пустое окно в редакторе.
Open (F3) Открыть Вызывает диалог выбора файла и открывает выбранный файл в новом окне редактора.
Save (F2) Сохранить Сохраняет содержимое окна редактора в текущий файл. Если текущее окно еще не связано с файлом, то будет вызвано диалоговое окно для ввода имени файла.
Save as Сохранить как… Вызывает диалоговое окно для ввода имени файла. Текущее содержимое окна будет сохранено в указанный файл.
Change dir Сменить каталог Вызывает диалоговое окно для выбора каталога. Текущий рабочий каталог будет заменен на выбранную директорию.
Exit (ALT-X) Выход
Меню Edit
Undo (ALT-BKSP) Отмена Отменяет последнее действие, выполненное в редакторе
Redo Возврат Повторяет последнее действие, которое было отменено командой Undo. Эта команда может вернуть множество отмененных действий.
Cut (SHIFT-DEL) Вырезать Удаляет выделенный в окне текст и копирует его в буфер обмена.
Copy (CTRL-INS) Копировать Копирует текущее выделение в буфер обмена.
Paste (SHIFT-INS) Вставить Вставляет содержимое буфера обмена в текст, начиная с позиции курсора. Show clipboard Показать буфер обмена Открывает окно, где отображается текущее содержимое буфера обмена.
Copy to Windows Копировать в Windows Копирует выделение в буфер обмена Windows.
Paste from Windows Вставить из Windows Вставляет содержимое буфера обмена Windows (если он содержит текст) в окно редактора исходного кода в текущую позицию курсора.
Меню Run
Run (CTRL-F9) Пуск Если компиляция завершена без ошибок, то выполняется пуск программы.
Step over (F8) Пошаговое выполнение. Выполняет пошаговое выполнение программы, то есть при выборе этой команды выполняется текущая строка в исходном коде программы.
Goto cursor (F4) Перейти к курсору Запускает и выполняет программу до того места, где в исходном коде находится курсор.
Parameters Параметры Позволяет ввести параметры, которые будут переданы в программу в начале выполнения.
Program reset (CTRL-F2) Сброс программы. Если программа находится в режиме отладки, то сеанс отладки завершается, а запущенная программа принудительно закрывается. Может оказаться полезным при зависании программы.
Меню Compile
Compile (ALT-F9) Компиляция Компилирует содержимое активного окна.
Меню Debug
User screen (ALT-F5) Экран пользователя Позволяет переключаться между экраном программы и окном редактора.
Add watch (CTRL-F7) Добавить элемент наблюдения Добавляет элемент (например, переменную) в список отслеживания.
Watches Список отслеживания Отображает текущий список отслеживания значений в отдельном окне.
Breakpoint (CTRL-F8) Точка останова Устанавливает точку останова на текущей строке. В процессе отладки программа будет остановлена на этой точке.
Экспериментальный раздел работы
Наберите и выполните программу:program z2;
var a,b,c : integer;
begin
readln(a,b);
c:=b;
b:=a;
a:=c;
writeln(a); writeln(b);
end.
Что делает данная программа?
Задание
Измените предыдущую программу, не используя дополнительную переменную с.
Целый тип данных
В Паскале используются следующие целые типы: Shortint, Integer, Longint, Byte, Word, Int64. Они отличаются диапазоном значений, а значит, и размером памяти, отводимой для их представления.
Shortint от -128 до 127 (1 байт)
Byte от 0 до 255 (1 байт)
Integer от -32 768 до 32 767 (2 байта)
Word от 0 до 65 535 (2 байта)
Longint от -2 147 483 648 до 2 147 483 647 (4 байта)
Int64 от -9*1018 до +9*1018 (8 байт)
Операции с величинами целого типа:
сложение (+),
вычитание (-),
умножение (*),
нахождение целой части деления (Div),
нахождение остатка от деления (Mod).
вычитание (-),
умножение (*),
нахождение целой части деления (Div),
нахождение остатка от деления (Mod).
Важно! Переменной целого типа присваивать значение результата обычной операции деления «/» нельзя.
Приоритетом называется очередность выполнения операций в выражении.
*, /, div, mod - первый
+, - - второй
Правила:
19 div 4 = 4 -19 div -4 =4 19 div -4 =-4 -19 div 4=-4
Приоритет выполнения операций для величин целого типа:
Приоритетом называется очередность выполнения операций в выражении.
*, /, div, mod - первый
+, - - второй
Правила:
- Операнд, находящийся между двумя операциями с различными приоритетами, связывается с операцией, имеющий более высокий приоритет.
- Операция, находящаяся между двумя операциями с равными приоритетами, связывается с той операцией, которая находится слева.
- Выражение, заключенное в скобки, перед выполнением вычисляется как отдельный операнд.
Выполнение операций Div и Mod:
19 div 4 = 4 -19 div -4 =4 19 div -4 =-4 -19 div 4=-4
19 mod 4 = 3 -19 mod -4 =-3 19 mod -4 =3 -19 mod 4=-3
Задание. Определить цифры трехзначного числа.
Задание. Определить цифры трехзначного числа.
Ввод: n (заданное трехзначное число)
Вывод: s d e (число сотен, десятков и единиц числа)
Экспериментальный раздел работы
1. Измените программу z1 для нахождения цифр двузначного числа. Сохраните ее под именем z1_1.pas.
2. Измените программу z1 для нахождения цифр четырехзначного числа. Сохраните ее под именем z1_2.pas.
3. Наберите следующую программу:
Program z2;
Var a:Integer; b:Word; R1:Integer; R2:Longint;
Begin
а:=32000;b:=64000;
R2:=a+b; WriteLn(R2);
R1:=a+b; WriteLn(R1);
End.
End.
После запуска Вы увидите, что значение переменной R2 равно 96000, а значение переменной R1 не определено. Если изменить тип переменной R1 на Word, то результат не изменится. Почему получен такой результат?
Выражение в правой части оператора присваивания вычисляется независимо от размера или типа переменной в левой части!
Перед выполнением любой арифметической операции любой операнд длиной в 1 байт преобразуется в промежуточный операнд длиной в 2 байта, который является совместимым как с Integer, так и с Word.
Задания
Задание 1. С начала суток прошло n секунд ( n- целое). Найти количество полных часов, прошедших с начала суток.
Тесты Посмотреть решение
Задание 2. С начала суток прошло n секунд ( n- целое). Найти количество секунд, прошедших с начала последней минуты.
Тесты Посмотреть решение
Задание 3. Дни недели пронумерованы следующим образом: 0 - воскресенье, 1 - понедельник, 2 - вторник,..., 6 - суббота. Дано целое число K, лежащее в диапазоне 1 - 365. Определить номер дня недели для К-го дня года, если известно, что в этом году 1 января было четвергом.
Задание 3. Дни недели пронумерованы следующим образом: 0 - воскресенье, 1 - понедельник, 2 - вторник,..., 6 - суббота. Дано целое число K, лежащее в диапазоне 1 - 365. Определить номер дня недели для К-го дня года, если известно, что в этом году 1 января было четвергом.
Тесты Посмотреть решение
4. Определить число, полученное выписыванием в обратном порядке цифр заданного трехзначного числа.
4. Определить число, полученное выписыванием в обратном порядке цифр заданного трехзначного числа.
5. Дано х. Получить значения 1-2х +3х2 -4х3 и 1+2х+3х2 +4х3.
6. Дано а. Не используя никаких функций и никаких операций кроме умножения, получить:
1) а8 за три операции;
2) а10 за четыре операции;
3) а15 за пять операций ( указание а2=(а3)5).
1. Чему равны значения переменных а и b после выполнения последовательности действий:
1) a:=17 Div (13 Mod 5); b:= 25 Mod a* 2 — 14 Mod 3 + 4;
2) a:= 5 * 3 Div 2 Mod 3; b:= 5 * 3 Div ( 2 Mod 3);
2. Дано трехзначное число. Определить:
1) сумму и произведение цифр числа;
2) число, полученное перестановкой цифр десятков и единиц;
3) число, полученное перестановкой цифр сотен и десятков;
3. Пятизначное число, получено приписыванием цифры единиц в качестве цифры десяти тысяч (например, из числа 4581 необходимо получить число 14581). Составьте программу.
4. С начала суток прошло n секунд ( n- целое). Найти количество полных минут, прошедших с начала суток.
5. Дни недели пронумерованы следующим образом: 0 - воскресенье, 1 - понедельник, 2 - вторник,..., 6 - суббота. Дано целое число K, лежащее в диапазоне 1 - 365. Определить номер дня недели для К-го дня года, если известно, что в этом году 1 января было пятницей.
1) а8 за три операции;
2) а10 за четыре операции;
3) а15 за пять операций ( указание а2=(а3)5).
Задания для самостоятельной работы
1. Чему равны значения переменных а и b после выполнения последовательности действий:
1) a:=17 Div (13 Mod 5); b:= 25 Mod a* 2 — 14 Mod 3 + 4;
2) a:= 5 * 3 Div 2 Mod 3; b:= 5 * 3 Div ( 2 Mod 3);
2. Дано трехзначное число. Определить:
1) сумму и произведение цифр числа;
2) число, полученное перестановкой цифр десятков и единиц;
3) число, полученное перестановкой цифр сотен и десятков;
3. Пятизначное число, получено приписыванием цифры единиц в качестве цифры десяти тысяч (например, из числа 4581 необходимо получить число 14581). Составьте программу.
4. С начала суток прошло n секунд ( n- целое). Найти количество полных минут, прошедших с начала суток.
5. Дни недели пронумерованы следующим образом: 0 - воскресенье, 1 - понедельник, 2 - вторник,..., 6 - суббота. Дано целое число K, лежащее в диапазоне 1 - 365. Определить номер дня недели для К-го дня года, если известно, что в этом году 1 января было пятницей.