Страницы

Уроки 1, 2 Целый тип данных. Работа в среде Free Pascal


Работа в среде 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.



Меню FREE PASCAL

Меню 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.

Что делает данная программа?



Задание


Измените предыдущую программу, не используя дополнительную переменную с.




 Целый тип данных


В Паскале используются следующие  целые типы: 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 - первый
+, - - второй


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


Выполнение операций 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.

После запуска Вы увидите, что  значение переменной R2 равно 96000, а  значение переменной R1 не определено. Если изменить тип переменной R1 на Word, то результат не изменится. Почему получен такой результат?

Перед выполнением операций  над двумя операндами оба операнда преобразуются к общему для них типу. Им является тип с наименьшим диапазоном, включающим все возможные значения обоих типов. Например, общим типом для Integer и Byte будет Integer, для Integer и Word, — Longint. Результат будет общего типа.

Выражение в правой части оператора присваивания вычисляется независимо от размера или типа переменной в левой части! 

Перед выполнением любой арифметической операции любой операнд длиной в 1 байт преобразуется в промежуточный операнд длиной в 2 байта, который является совместимым как с Integer, так и с Word.



Задания


Задание 1. С начала суток прошло n секунд ( n- целое). Найти количество полных часов, прошедших с начала суток.

        Тесты           Посмотреть решение        



Задание 2.  С начала суток прошло n секунд ( n- целое). Найти количество секунд, прошедших с начала последней минуты.

        Тесты           Посмотреть решение        



Задание 3. Дни недели пронумерованы следующим образом: 0 - воскресенье, 1 - понедельник, 2 - вторник,..., 6 - суббота. Дано целое число K, лежащее в диапазоне 1 - 365. Определить номер дня недели для К-го дня года, если известно, что в этом году 1 января было четвергом.

        Тесты           Посмотреть решение        


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 января было пятницей.




Тест