Задание 1.
Постановка задачи:
Описать процедуру Swap(X, Y), меняющую содержимое переменных X и Y (X и Y — вещественные параметры, являющиеся одновременно входными и выходными). С ее помощью для данных переменных A, B, C, D последовательно поменять содержимое следующих пар: A и B, C и D, B и C и вывести новые значения A, B, C, D.
Таблица 5 - Таблица внешних спецификаций
|
Имя переменной |
Назначение переменной |
Тип переменной |
Входные данные
|
A
B
C
D
X
Y
E |
Переменная
Переменная
Переменная
Переменная
Переменная процедуры
Переменная процедуры
Вспомогательная переменная |
real
real
real
real
real
real
real |
Выходные данные |
A
B
C
D |
Переменная
Переменная
Переменная
Переменная |
real
real
real
real |
Расчет контрольных примеров:
При a=’4’, b='5', c='6', d='7'. Результат после смены пар: ’5746’;
При a=’2.4’, b='4.3', c='5.7', d='1'. Результат после смены пар: ’4.312.45.7’.
Блок схема.
Рисунок 7 - Блок-схема к заданию №1. Процедура Swap.
Рисунок 8 - Блок-схема к заданию №1.Основная часть программы.
Программная реализация:
program laba10_1;
uses
crt;
procedure Swap(var x,y:real);
var
e: real;
begin
e:=X;
X:=Y;
Y:=e;
end;
var
A,B,C,D: real;
begin
clrscr;
write('Введите A: ');
readln(A);
write('Введите B: ');
readln(B);
write('Введите C: ');
readln(C);
write('Введите D: ');
readln(D);
Swap(A,B);
Swap(C,D);
Swap(B,C);
Write('После смены пар: ');
Writeln(A,B,C,D);
end.
Задание 2.
Постановка задачи:
Описать функцию IsPalindrome(K), возвращающую True, если целый параметр K (> 0) является палиндромом (т. е. его запись читается одинаково слева направо и справа налево), и False в противном случае. С ее помощью найти количество палиндромов в наборе из 10 целых положительных чисел.
Таблица 6 - Таблица внешних спецификаций
|
Имя переменной |
Назначение переменной |
Тип переменной |
Входные данные |
S
j |
Вводимое число
Количество вводимых чисел |
integer
integer |
Выходные данные |
e |
Количество чисел, являющихся палиндромом |
integer |
Таблица 7 - Таблица внешних спецификаций функции IsPalindrome(K)
Имя переменной |
Назначение переменной |
Тип переменной |
i
a
b
c
q |
переменная цикла
сравнивает число в функции и введённое
определяет остаток числа
определяет частное числа
Определяет количество цифр в числе |
integer
integer
integer
integer
integer |
Расчет контрольных примеров:
Блок схема.
Рисунок 9 - Блок-схема к заданию №2. Процедура IsPalindrome(K).
Рисунок 10 - Блок-схема к заданию №2.Основная часть программы.
Программная реализация:
program laba10_4;
uses
crt;
function IsPalindrome(K: integer): boolean;
var
i,n,q,a,b,c: integer;
begin
q:=0;
a:=k;
c:=k;
while a <>0 do
begin
a:=a div 10;
inc(q);
end;
for i:=1 to q do
begin
b:=c mod 10;
a:=a*10+b;
c:=c div 10;
end;
if a=k then IsPalindrome:=True
else IsPalindrome:=False;
end;
var
s: integer;
j,e: integer;
begin
clrscr;
for j:=1 to 10 do
begin
write('Введите число: ');
readln(s);
writeln(IsPalindrome(s));
if Ispalindrome(s)=True then inc(e);
end;
write('Количество полиндромов= ',e);
end.
СОСТАВНЫЕ ТИПЫ ДАННЫХ В ПРОЦЕДУРАХ И ФУНКЦИЯХ
Цель работы: изучение правил описания и использования процедур и функций в Паскале, изучение вариантов передачи параметров в процедуры и функции и особенностей локальных и глобальных переменных программы. Использование составных типов данных в процедурах и функциях.
