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

Министерство образования и науки РФ

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

высшего профессионального образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

ОТЧЕТ

Лабораторная работа № 1

по дисциплине «Программирование»

Выполнил студент:

Доценко Илья Сергеевич

специальность 09.03.01

СОДЕРЖАНИЕ

1. Введение 3

2. Решение задачи №1 4

2.1. Описание используемых переменных 4

2.2. Описание алгоритма 5

2.3. Блок-схема алгоритма 6

2.4. Тестирование программы 7

3. Решение задачи №2 8

3.1. Описание используемых переменных 8

3.2. Описание алгоритма 8

3.3. Блок-схема алгоритма 9

3.4. Тестирование программы 10

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

ПРИЛОЖЕНИЕ А ЛИСТИНГ ПРОГРАММЫ №1 12

ПРИЛОЖЕНИЕ B ЛИСТИНГ ПРОГРАММЫ №2 13

1. Введение

Лабораторная работа №1 посвящена созданию программ с использованием простых управляющих структур: условного оператора, цикла.

Условный оператор применяется для задания разветвления в программе, т.е. выбора действий в зависимости от истинности или ложности какого-либо условия. Имеется две формы записи условного оператора: полная (if – then - else) и сокращенная (if - then). Циклом называется последовательность, которая может выполняться более одного раза.

В Паскале существует три вида циклических конструкций.

  1. Цикл с предусловием.

Используется в случае, когда циклическими действиями управляет логическое условие, и. как правило, к моменту выполнения не ясно, сколько нужно повторить циклические действия.

while <логическое выражение> do | заголовок цикла

<оператор> | тело цикла

  1. Цикл с постусловием.

Используется в случае, когда число повторений заранее неизвестно, но известно условие, при выполнении которого цикл должен завершиться.

repeat <оператор> until <логическое выражение>

  1. Цикл с параметром.

Используется в случае, когда число повторений цикла может быть определено перед его выполнением.

for <переменная>:=<диапазон> do <оператор>

<диапазон>::=<выражение> <направление>

<направление>::= to | downto

По ходу написания программы можно определить новые функции, чтобы определить алгоритм вычисления нового значения некоторого простого (или ссылочного) типа. Функции подобны выражениям, которые также вычисляют значения. Новая функция определяется в разделе описания, как правило, после описания переменных в виде:

function <имя функции> <формальные параметры>:<тип значения>;

<описание локальных констант, типов, переменных>

begin

<операторы>

end;

В задании используются простые типы данных (нет необходимости использовать массивы). Программы должны быть разработаны в рамках структурного программирования, без использования переходов и меток.

2. Решение задачи №1

Дано n вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к квадрату какого-нибудь целого числа. Например, если n = 10 и вводим числа 110, 90, 80, 30, 50, 40, 40, 30, 22, 60, то ответ равен 3 или 5 (имеем |80 – 92| = | 50 – 72| = 1).

Подсказка: определите функцию f(k), которая вычисляет абсолютную величину разности k и ближайшего целого квадрата (ближайшим целым квадратом будет (trunc( k ))2или (trunc( k )+1)2).

2.1. Описание используемых переменных

Глобальные переменные:

n – количество чисел;

j – счетчик основного цикла;

minimum_value_number – Порядковый номер искомого числа;

minimum_value - искомого числа;

random_int – вводимое для анализа число;

sqr_value = квадрат числа для поиска разности;

difference – разность квадрата числа и искомого числа;

minimum_value_difference – минимальная разность квадрата числа и искомого числа;

minimum_value_sqr – значение квадрата числа, с минимальной разностью по отношению к анализируемому числу;

Локальны переменные функции abs_difference:

i – счетчик для цикла;

tmp – абсолютное значение разности между анализируемым числом и квадратом числа;

2.2. Описание алгоритма

  1. Вводим количество чисел

  2. Вводим число для анализа

  3. Перебираем числовой ряд от 1 до 100 пока значение разности не будет минимальным

  4. Повторяем операцию для всех вводимых чисел и определяем число с минимальной разностью.

2.3. Блок-схема алгоритма

Рис. 2.3Блок-схема алгоритма основной программы Блокх

Рис. 2.4 Блок-схема алгоритма функции abs_difference

Рис. 2.4 Блок-схема алгоритма функции abs_difference

2.4. Тестирование программы

Последовательности чисел: 3,8,25:

Рис. 2.4.1

Последовательности чисел: 4,9,25,81:

Рис. 2.4.2

3. Решение задачи №2

Для заданной строки определить длину содержащейся в ней максимальной подстроки, не имеющей латинских букв.

3.1. Описание используемых переменных

Stdinput – переменная для ввода строки;

i – счетчик цикла;

k- длина текущей последовательности не латинских символов;

m – длина максимальной последовательности не латинских символов.

3.2. Описание алгоритма

  1. Вводим строку

  2. Проверяем, что строка не пуста

  3. Начинаем последовательный перебор значений строки в поиск латинских символов

  4. Определяем максимальную последовательность не латинских символов

  5. Выводим результат

3.3. Блок-схема алгоритма

Рис. 3.3

3.4. Тестирование программы

Вводим “123456F123F1F123456789”

Рис. 3.4.1

Вводим “ f”

Рис. 3.4.2

Вводим “Pascal”

Рис. 3.4.3