- •Вопрос №1.Цель, предмет и задачи изучения дисциплины.
- •Вопрос №3. Технология выполнения программ на языке тр в ide
- •Вопрос №4. Принципы алгоритмизации и программирования.
- •Вопрос №5. Этапы решения задач на эвм.
- •Вопрос №6. Алгоритм. Сущность, свойства.
- •Вопрос №7. Методы преобразования алгоритмов.
- •Вопрос №8. Основные приемы разработки алгоритмов.
- •Вопрос №9. Общая структура цикла и получение из нее структур циклов на языке Турбо Паскаль
- •Вопрос №14.
- •Int(X) – значением функции является целая часть вещественного числа X.
- •Вопрос №15. Структура программ и подпрограмм.
- •Вопрос№18. Обработка массивов.
- •Вопрос №19. Пример обработки текстов.
- •Вопрос №20. Порядок обработки текстовых файлов.
- •Вопрос №21. Стандартные файлы ввода-вывода.
- •Вопрос №22. Процедуры и функции ввода-вывода. Типы данных и форматы вывода.
- •Вопрос №23. Организация и использование процедур в языке Паскаль.
Int(X) – значением функции является целая часть вещественного числа X.
Frac(x) – значением функции является дробная часть вещественного числа x.
TRUNC(X) – вырабатывает целый результат путем отбрасывания дробной части вещественного числа x в формате longint. Пример: из 21.53 получится 21.
ROUND(X) – вырабатывает целый результат путем округления вещественного числа до ближайшего целого. Пример: из 21.53 получится 22, из 21.3 получится 21.
Hi(x) – старший байт x (x – integer)
lo(x) – младший байт x (x – integer)
swap(x) – оба байта меняются местами (x – integer)
Вопрос №15. Структура программ и подпрограмм.
Структура описания программ и подпрограмм
[<заголовок>]
<раздел описаний>
begin
<тело программы>
End.
Раздел описаний:
<раздел меток > - label
<раздел констант> const
<раздел типов> type
<раздел переменных> var
<раздел процедур и функций> procedure/function
В ТР порядок любой, но имя должно быть определенно до его использования.
Разделы могут повторятся.
Раздел описания меток и констант.
Метка – любой идентификатор, в целях совместимости со стандартом допускается использование в качестве метки целого без знака в диапазоне (от 0 до 9999).
Любой оператор в программе м.б. помечен меткой. Метка располагается перед оператором и отделяется от него двоеточием. Оператор может иметь несколько меток. Применение меток дает возможность изменять естественный порядок выполнения операторов. Все метки д.б. описаны в разделе описания меток.
LABEL LB1, LB2, R8;
Раздел описания констант.
Const <имя>=<константа>;
Но может быть и выражение пример
Const с=ord(‘9’)-ord(‘0’)+1;
Типированные константы.
Const <имя>:Тип=значение.
Пример
Found:Boolean=true;
Const NEWYEAR:record
D:Byte;
M:Byte;
Y:Integer;
End=
(1,1,2012)
Пример: программа генерации таблицы преобразования градуса Цельсия в градус Фаренгейта.
program CtoF;
const
Separator='_____';
min_gr=0;
max_gr=39;
MulBy=1.8;
Addin=32;
var Grad:Integer;
begin
writeln(separator);
for grad:=min_gr to max_gr do
begin
write(grad:4,'C',round(grad*Mulby+Addin):5,'F');
if Odd(grad) then writeln;
end;
writeln(separator);
readln
end.
Раздел описания типов и переменных.
Type <имя>=<тип>
Раздел переменных.
Var <имя>:тип;
Абсолютная переменная
Var имя:тип absolute <имя другой переменной тип>
Absolute позволяет рассматривать один и ту же память как разные типы данных.
Глобальные имена используются во всей программе, если только в каком-то внутреннем блоке непереобъявлены. Локальная переменная только лишь, где была объявлена.
Переменная доступна в том блоке, где она объявлена. Кроме внутренних блоков, где переобъявлена.
Вопрос №16. Операции на языке ТР.
Приоритет операции:
Если нет () то зависит от приоритета:
Функции
Одноместные операции (+,-,@,NOT)
Мультипликативные(*,div,/,mod,AND,shl,shr)
Аудитивные (+,-,OR,XOR)
Операции отношений
Вопрос №17. Операторы.
Операторы Паскаля
Размещаются только в разделе операторов. Если в состав оператора не входят другие, то он простой, иначе структурный.
Пустой оператор не содержит никаких действий, просто в программу добавляется лишняя точка с запятой. В основном пустой оператор используется для передачи управления в конец составного оператора.
Оператор GOTO (безусловного перехода)
Осуществляет безусловную передачу управления оператору, которому предшествует метка.
Метки применяются в крайних случаях, когда без них невозможно обойтись. Метка, на которую ссылается GOTO, должна быть описана в разделе описаний меток LABEL и обязательно встретиться в теле программы.
Пример:
Program Test;
Label lb1;
Var b:real;
Begin
Goto lb1;
For i:=1 to 4 do
Writeln(b);
Lb1:readln(b);
End.
Оператор присваивания. :=
Присваивает переменной значения, а также используется для определения значения, возвращаемого функцией.
Cоставной оператор (BEGIN END;).
Задает последовательное выполнение операторов, входящих в него. Операторы, входящие в составной, заключаются между собой служебными словами BEGIN END и отделяются друг от друга
Условный оператор IF
Позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие
Оператор выбора CASE
Позволяет выбрать одно из нескольких возможных продолжений программы. Оператор выбора CASE состоит из выражения (переключателя) и ряда предложений, каждое из которых связано константой того же типа, что и переключатель. Этот тип обязательно должен быть порядковым. После выполнения выбранного предложения, управление передается в конец конструкции CASE
Таким образом, CASE предназначен для выбора одного из взаимоисключающих действий, необходимость появления которых возникает с одинаковой вероятностью. Ветка ELSE является необязательной, если она отсутствует, и значение переключателя не совпадает ни с одной из перечисленных констант, то весь оператор рассматривается, как пустой. Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно) сопроводив их одним оператором.
Оператор WHILE (с предусловием).
Этот структурный оператор задаёт повторяющееся выполнение операторов, входящих в него. Он может выполняться 0 и более раз.
While <истина> do <>
Цикл REPEAT UNTIL(с постусловием).
Организует многократное выполнение операторов, входящих в него. Последовательность действий, записанных между словами REPEAT UNTIL, выполнится по крайней мере один раз, так как условие выхода из цикла проверяется после выполнения очередного действия. Если выражение TRUE- цикл прекращается, если FALSE, цикл продолжается.
Repeat
<>
Until <false>
Зацикливание можно избежать, если ставить контроль времени, то есть по прошествию какого времени цикл должен точно прекратиться.
Цикл с параметром FOR DO
Цикл с параметром служит для повторения выполнения оператора (который может быть составным), пока управляющий переменной присваивается возрастающая последовательность значений, т.е. заранее известно, сколько раз можно выполнить цикл
Управляющая переменная должна быть описана в том же блоке, где встречается цикл и принадлежать к одному из порядковых типов. Она не должна стоять в левой части оператора присваивания, не должна присутствовать в READ и READLN, не должна быть использована для другого цикла с параметром.
Начальное и конечное значение управляющей переменной вычисляются только один раз. Если в теле цикла стоит ТО, то начальное значение управляющей переменной должно быть меньше конечного, если DOWNTO – то наоборот.
Оператор присоединения:
Оператор присоединения With . . Do.
Для того чтобы облегчить доступ к компонентам записи очень часто используют оператор присоединения With . . Do.
Префикс – обязательная предшествующая часть составного идентификатора для имен полей в структуре типа запись Паскаля. Очень часто у программиста возникает желание не указывать префикс в имени полей, например, когда идет постоянное использование одних и тех же записей. В языке Паскаль предусмотрена такая возможность, реализуемая при помощи оператора присоединения, который в общем виде выглядит так:
with <имя_записи> do <действие с полем записи>;
Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end ).
