- •Вопрос №1.Цель, предмет и задачи изучения дисциплины.
- •Вопрос №3. Технология выполнения программ на языке тр в ide
- •Вопрос №4. Принципы алгоритмизации и программирования.
- •Вопрос №5. Этапы решения задач на эвм.
- •Вопрос №6. Алгоритм. Сущность, свойства.
- •Вопрос №7. Методы преобразования алгоритмов.
- •Вопрос №8. Основные приемы разработки алгоритмов.
- •Вопрос №9. Общая структура цикла и получение из нее структур циклов на языке Турбо Паскаль
- •Вопрос №14.
- •Int(X) – значением функции является целая часть вещественного числа X.
- •Вопрос №15. Структура программ и подпрограмм.
- •Вопрос№18. Обработка массивов.
- •Вопрос №19. Пример обработки текстов.
- •Вопрос №20. Порядок обработки текстовых файлов.
- •Вопрос №21. Стандартные файлы ввода-вывода.
- •Вопрос №22. Процедуры и функции ввода-вывода. Типы данных и форматы вывода.
- •Вопрос №23. Организация и использование процедур в языке Паскаль.
Вопрос №23. Организация и использование процедур в языке Паскаль.
Процедуры и функции – это подпрограммы, которые можно многократно вызывать.
Procedure name(список параметров:<тип>);
Function name(список параметров):имя типа
Функция вызывается по своему имени, как часть выражения.
Н-р: y=sin(x);
При использовании формальных параметров(без var перед списком параметров) обращении к переменной идет по ссылке и изменение формальной переменной не влияет на фактическую переменную. а при использовании фактических параметров передача идет по адресу, то есть в процедуре меняется фактическая переменная.
Пример. Моделирование RS-триггера.
RS-триггер[10][11], или SR-триггер — триггер, который сохраняет своё предыдущее состояние при нулевых входах и меняет своё выходное состояние при подаче на один из его входов единицы. (на всякий случай)
Procedure Trigger(R,S:Boolean;var q,noq,error:Boolean);
Begin
Error:=randS;
If not error then
If r then q:=false
Else
If s then q:=true;
Noq:=notq;
End;
Var r,s,q,notq,error:Boolean;
Begin
Q:=false;
Notq:=not q;
For r:=false to true do
For s:=false to true do begin
Trigger(r,s,q,notq,error);
If error then writeln(byte(R):3,byte(s):3,’Запрещено’);
Else writeln(ord(r):3,ord(s):3,ord(q):3);
End;
End.
Генерация случайных чисел.
В языке программирования Паскаль для генерации псевдослучайных чисел в заданных диапазонах используется функция random. Перед ее использованием обычно выполняется процедура инициализации датчика случайных чисел - randomize; иначе программа всегда будет выдавать один и тот же результат. Randomize задает начальное значение последовательности, от которого вычисляются все последующие. При каждом запуске программы это значение будет разным, а значит и результат работы функции random будет различным.
Функция random генерирует случайное число в диапазоне от 0 (включительно) до единицы. Если в скобках указан аргумент, то от 0 до значения указанного в скобках (не включая само значение). Так выражение random (10), говорит о том, что будет получено любое число в диапазоне [0, 10). Если требуется получать значения в каком-либо другом диапазоне (не от нуля), то прибегают к математической хитрости. Например, чтобы получить случайное число от -100 до 100 достаточно записать такое выражение: random (200) – 100. В результате, сначала будет получено число из диапазона [0, 199], а затем из него будет вычтена сотня. И если случайное число было меньше 100, то результат выражения будет отрицательным.
Отличие процедур от функций в том, что функция – это часть выражения, процедура, часть программы.
Опережающее описание процедур и функций.
Это когда процедуры вызываются в других процедурах.
Пример.
Prodram TestForward;
Procedure Flop(N:Integer);Forward;
Procedure flip(N:Integer);
If N>0 then begin
Writeln(‘Flop’); flop(n-1);
End;
End;
Procedure flop(N:integer);
Begin
If n>0 then begin
Writeln(‘flop’);
Flip(n-1);
End;
End;
Begin
Flop(3);
End.
