Главная страница

РГР. Тройки Хоара


Скачать 10.82 Kb.
НазваниеТройки Хоара
Дата08.04.2022
Размер10.82 Kb.
Формат файлаodt
Имя файлаРГР.odt
ТипДокументы
#453758

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ

Федеральное государственное бюджетное

образовательное учреждение высшего образования

«Тверской государственный университет»

Факультет прикладной математики и кибернетики

Направление: 09.03.03 — «Прикладная информатика»


Расчётно-графическая работа

по дисциплине «Теоретические основы информатики»
Тема: «Тройки Хоара»


Автор:

студент 11-й группы

Романов Даниил Денисович
Проверил:

к.ф.-м.н., Карлов Борис Николаевич

Тверь — 2021

Вариант № 68

Написать структурированную программу и доказать её правильность методом Хоара. Проверить, можно ли из пятеричной записи числа x отбросить несколько первых цифр так, чтобы оно стало квадратом. Использовать s – прибавление 1, =, <, +, -, *, : - целочисленное деление, % - остаток от деления.

Структурированная программа

algorithm Five;

arguments x;

returns r;

r = 0;

z = x

while z > 0
num = 0;

while num < z do

if num * num == z then

r = 1;

end;

num = num + 1;

end;

tenX = z;

fiveX = 0;

n = 0;

last = 0;

while tenX > 4 do

fiveX = fiveX * 10;

last = tenX % 5

fiveX = fiveX + last;

tenX = tenX / 5;

n = n + 1;

end;

s = 0;

while s < n do

last = last * 5;

s = s + 1;

end;

z = z - last;

end;

end;

Ограничители и инварианты

Первый внутренний цикл:

Ограничитель: x – num.

Инвариант: ( y) (y < x (y * y = x)) r

Второй внутренний цикл:

Пусть S(x) – сумма цифр числа х

Ограничитель: x

Инвариант: S(tenX) + S(fiveX)

Третий внутренний цикл:

Ограничитель: n - s

Инвариант:

Внешний цикл:

Пусть S(x, y) = 1, если х может быть получен из у откидыванием нескольких первых цифр в пятеричной системе счисления, 0 – иначе.

Пусть P(x) = 1, если х – квадрат какого-либо числа.

Ограничитель: x

Инвариант: (∀y)(S(y, x) ∧¬S(z, y)∧ ¬y=z ∧ P(y))


написать администратору сайта