Файл: Лабораторная работа 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 Распечатки тестов