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

Вариант №5. Лабораторная работа 3 Вариант 5 по дисциплине Программирование Выполнил студент специальности 27. 03. 04 Почтарев Илья Вячеславович


Скачать 310.21 Kb.
НазваниеЛабораторная работа 3 Вариант 5 по дисциплине Программирование Выполнил студент специальности 27. 03. 04 Почтарев Илья Вячеславович
Дата01.03.2023
Размер310.21 Kb.
Формат файлаdocx
Имя файлаВариант №5.docx
ТипЛабораторная работа
#961622

Министерство науки и высшего образования Российской Федерации

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

высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Факультет дистанционного обучения

ОТЧЕТ

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

Вариант №5

по дисциплине

«Программирование»

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

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

Почтарев Илья Вячеславович

2023 год

СОДЕРЖАНИЕ

  1. Введение

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

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

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

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

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

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

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

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

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

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

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

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

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


  1. ВВЕДЕНИЕ

Лабораторная работа №3 состоит из двух задач. Первая задача посвящена созданию программ, отра-жающих приемы работы с файлами.

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

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


  1. РЕШЕНИЕ ЗАДАЧИ № 1

Для файла s, состоящего из целы чисел, определите процедуру, которая находит значения максималь-ного и минимального элементов файла s.

Указание: введите файл s (последний элемент равен 0) и напечатайте значения максимального и ми-нимального элементов файла s.

    1. ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ ПЕРЕМЕННЫХ

s – текстовый файл;

x – значение интегрируемого значения из файла;

min – минимальное значение из файла;

max – максимальное значение из файла

    1. ОПИСАНИЕ АЛГОРИТМА



  1. Связываем переменную s и файл _1.txt;

  2. Считываем значения из файла в переменную х;

  3. Если текущее значение больше максимального, то присваиваем переменной max текущее значение;

  4. Если текущее значение меньше минимального, то присваиваем переменной min текущее значение;

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



    1. БЛОК-СХЕМА АЛГОРИТМА



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



Рис. 2.3.2. Блок-схема процедуры min_max


    1. ТЕСТИРОВАНИЕ ПРОГРАММЫ



Рис. 2.4.1. Содержимое файла



Рис. 2.4.2. Результат



Рис. 2.4.3. Содержимое файла



Рис. 2.4.4. Результат

  1. РЕШЕНИЕ ЗАДАЧИ № 2

const n=…;

type vector = array [1..n] of real;

Описать функцию min (х) для определения минимального элемента вектора х, введя вспомогатель-ную рекурсивную функцию min1 (k), находящую минимум среди последних элементов вектора х, начи-ная с k-го.

Указание: пусть min (х) – функция, которая вычисляет минимум среди элементов массива х, а min1(k) – функция, которая вычисляет минимум среди элементов массива х (для этой функции массив х есть глобальная переменная, определенная в главной программе).

Имеем равенство

min(x) = min1(1)

Определим функцию min1(k) рекурсивно:

  1. если k = n, то функция возвращает результат ;

  2. если k < n, то функция возвращает наименьшее из двух чисел и min1(k+1) (второе число по-лучается при рекурсивном вызове).



    1. ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ ПЕРЕМЕННЫХ

х – вектор;

i – счетчик;

k – номер индекса массива х, начиная с которого будет производиться поиск минимального значения

    1. ОПИСАНИЕ АЛГОРИТМА



  1. С помощью функции random() генерируется массив;

  2. Вводим индекс элемента, начиная с которого будет производиться поиск минимального эле-мента;

  3. Если индекс k является последним, то считаем его значение минимальным, иначе последова-тельно сравниваем индексы k и k+1 и находим минимальное значение.;

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



    1. БЛОК-СХЕМА АЛГОРИТМА



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



Рис. 3.3.2. Блок-схема функции min



Рис. 3.3.3. Блок-схема функции min1


    1. ТЕСТИРОВАНИЕ ПРОГРАММЫ






  1. ЗАКЛЮЧЕНИЕ

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

В первом задании с помощью цикла перебирались значения из текстового файла.

В обоих программах использованы процедуры.

Во второй программе использован рекурсивный метод.

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

program UslessProgrammNumber_Five;

var

s : TextFile;

x, min, max: longint;

procedure min_max(var current_value: longint);

begin

if current_value < min then

begin

min := current_value;

end;

if current_value > max then

begin

max := current_value;

end;

end;

begin

assign(s,’_1.txt’);

reset(s); x:=0;

min:=999999;

max:=-999999;

while not eof(s) do

begin

read(s, x);

min_max(x)

end;

close(s);

writeln(‘Минимальное значение равно:’, min);

writeln(‘Максимальное значение равно:’, max);

end.

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

program pascal_is_alive_yet;

const

n = 10;

type

vector = array [1..n] of real;

var

x: array [1..n] of real;

i, k: integer;

function min1(a, b: real);

begin

min1 := a;

if b < a then min1 := b;

end;

function min(k: integer): real;

begin

if k = n then

min := x[k]

else

min := min1(x[k], min(k+1));

end;

begin

writeln(‘Сгенерированный массив:’);

for i := 1 to n do

begin

x[i] := random(1000)

end;

writeln(x);

writeln(‘Введите номер индекса, с которого будет применяться функция min1:’);

readln(k);

writeln(‘Минимальное значение элемента вектора равно:’, min(k));

end.


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