Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по лабораторной работе №1.docx
Скачиваний:
6
Добавлен:
17.02.2023
Размер:
213.72 Кб
Скачать

4. Заключение

В процессе написания программ была применена циклическая конструкция, а именно цикл FOR. В первом задании с помощью цикла сравнивалась разность анализируемого числа с квадратом случайного числа. Во-второй же программе конструкция использовалась поиска элементов строки, соотвутсвующих регулярному выражению.

Кроме того, в первой программе используются функции abs_difference и _print_.

Приложение а листинг программы №1

var

n, j, minimum_value_number, minimum_value, random_int, sqr_value, difference, minimum_value_difference, minimum_value_sqr: integer;

function abs_difference(k: integer): integer;

var

// Объявляем переменную счетчика и переменную для временного значения результата вычисления разницы полученного числа и квадрата числа

i, tmp: integer;

// Объявляем переменную результата

begin

// задаем значение результата заведомо большим

difference := 9999;

// перебираем в цикле значения от 1 до 100 для возведения в квадрат и последуещего сравнения с переданным значением для функции

for i := 1 to 100 do

begin

// абсолютное значение разности переданного числа и квадрата числа

tmp := abs(trunc(k) - sqr(i));

// Если конечное значение разности больше временного,то присваиваем конечному значению значение временной переменной tmp

if tmp <= difference then

begin

difference := tmp;

sqr_value := i;

// если разность равна нулю, то выходим из цикла. Минимальное значение найдено.

if difference = 0 then break;

end;

end;

end;

// функция для вывода результатов обработки

function _print_(): integer;

begin

println('Порядковый номер числа, наиболее близкого к квадрату какого-либо числа:', minimum_value_number);

println('Это число:', minimum_value);

println('Квадрат числа от которого найдена разность:', minimum_value_sqr);

println('Разность составила:', minimum_value_difference);

end;

begin

// Запрашиваем количество чисел и считвыем его из стандартного ввода в перменную n

writeln('Введите количество чисел:');

readln(n);

// Порядковый номер числа с минимальной разницей. Присвоено заведомо малое значение

minimum_value_number := 0;

// Число с минимальной разницей. Присвоено заведомо большое значение

minimum_value_difference := 999;

// Цикл ввода чисел для обработки

for j := 1 to n do

begin

// Читаем стандарнтый ввод в переменную

writeln('Введите число для анализа:');

readln(random_int);

// Запускаем функцию проверки разности

abs_difference(random_int);

// Если значение разности полученное функцией abs_difference меньше или равно искомому значению минимальной разности

if difference <= minimum_value_difference then

begin

// То присваиваем переменным значения полученные функцией abs_difference

minimum_value := random_int;

minimum_value_number := j;

minimum_value_difference := difference;

minimum_value_sqr := sqr_value;

// Если значение минимаьной разности равно нулю, то предполагаем,что искомое минимальное значение разности найдено

// и выводим все полученные зачения с помощью функции _print_

if minimum_value_difference = 0 then _print_

end;

end;

// Если нулевого значения разности не получено, то выводим накопленные результаты только один раз в конце обработки всех чисел

if minimum_value_difference <> 0 then _print_

end.