Файл: Лабораторная работа 3 по дисциплине Программирование Вариант 8 задача 1 Выполнил студент Подъянов Алексей Григорьевич.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.12.2023

Просмотров: 13

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство науки и высшего образования РФ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра компьютерных систем в управлении и проектировании (КСУП)

ОТЧЕТ

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

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

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

Вариант 8

задача № 1

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

Подъянов Алексей Григорьевич

Специальность: 09.03.01 «Информатика и вычислительная техника» направленность (профиль) программы «Программное обеспечение средств вычислительной техники и автоматизированных систем»

2023

СОДЕРЖАНИЕ

1. Введение…………………………………………………………….……..…..3

2. Анализ задачи № 1……………………………………………………………. 3

3. Решение задачи………………………………………………...……………...3

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

обоснование выбора типа данных…………………………...………………….3

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

3.3. Тестирование программы……………………………………………….......3

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

Приложение 1.Блок-схема….………………………………………………..….4

Приложение 2. Листинг программы……………………………………………5

Приложение 3. Распечатки тестов…………………………………………........6

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

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

Задача 1 (вариант 8).

«type rad = file of 1..maxint;

Описать процедуру prim (f, n), записывающую в файл f все простые числа 2,3,5,7,11,13,17..., не превосходящие целого положительного числа n. Указание: введите n. Выполните процедуру prim (f, n). Распечатайте файл f.»

2. Анализ задачи № 1.

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

3.1.Определяется тип файла из целых чисел.


Затем объявляется процедура Prim с параметрами f (файл целых чисел), n (целое число).

Внутри процедуры объявляются три переменные (integer) которые будут счетчиками, а значит целыми числами.

Открывается файл для записи.

Затем в цикле начиная с 2 по всем цифрам до n, и во вложенном цикле вычисляются простые числа и помещаются в файл. Затем файл закрывается.

В основной программе объявляются две переменные (integer) которые будут счетчиками, а значит целыми числами.

Затем, файл связывается с файловой переменной, считывается n, выполняется обозначенная процедура Prim и результат записывается в файл.

Указанный файл вычитывается в цикле и выводится на печать.

Файл закрывается.

3.2. Сначала пользователь вводит значение n.

Затем в процедуре Prim подсчитывается каждый элемент искомого значения простых чисел.

Итоговая последовательность выводится на экран.

3.3 Программа протестирована в программной среде PascalABC.NET 3.8.2 на двух значениях n = 9 и n = 51 получены следующие итоговые значения (2 3 5 7; 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 )

4. Программный код отрабатывает корректно. Скриншоты подтверждают данный вывод (приложение №3).

ПРИЛОЖЕНИЕ № 1. Блок-схема алгоритма


Начало





type rad = file of integer;





procedure Prim(var f: rad; n: integer);




assign(f, 'data');

write('Введите n = ');

readln(n);




Prim(f, n);

reset(f);



while not Eof(f)

нет






да


read(f, k);

write(k:3);




close(f);







Конец

ПРИЛОЖЕНИЕ № 2 Листинг программы

type rad = file of integer; // создание типа файла из целых чисел

procedure Prim(var f: rad; n: integer); { объявление процедуры Prim с параметрами f (файл целых чисел), n (целое число)}

var

i, k, count: integer; // объявление целочисленных переменных i, k, count

begin

rewrite(f); // открытие файла для записи

for i := 2 to n do begin // в цикле от 2 до всем числам по n

count := 0; // обнуление счетчика

for k := 2 to i do // вложенный цикл от 2 до i

if i mod k = 0 then // если i кратно k

Inc(count); // увеличение счетчика

if count = 1 then write(f, i); { если счетчик равен 1, записываем значение i в файл}

end;

close(f); // закрытие файла

end;
var

f: rad; // объявление переменной f типа rad (файл целых чисел)

k, n: integer; // объявление целочисленных переменных k, n

begin

assign(f, 'data'); {связываем переменную f с файлом с именем 'data'}

write('Введите n = ');

readln(n); // вводим значение переменной n

Prim(f, n); // вызываем процедуру Prim, передаем ей f и n

reset(f); // открываем файл для чтения

while not Eof(f) do begin // пока не достигнут конец файла

read(f, k); // читаем целое число из файла и сохраняем его в k

write(k:3); // выводим k с шириной символа на экран

end;

close(f); // закрываем файл

end.

ПРИЛОЖЕНИЕ № 3 Распечатки тестов