Файл: Лабораторная работа 2 по дисциплине Программирование Выполнил студент Доценко Илья Сергеевич специальность 09. 03. 01 Содержание.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 46
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
A : array [1..6,1..6] of boolean;
B : array [1..5,1..5] of boolean;
Получить массив B из массива A удалением n-ой строки и k-го столбца.
2.1. Описание используемых переменных.
A – двумерная матрица булевых значений размерностью 6 * 6;
B – двумерная матрица булевых значений размерностью 5 * 5;
C – двумерная матрица булевых значений размерностью 5 * 5;
Рис. 2.3Блок-схема алгоритма основной программы Блокх
stdinput –переменная для ввода строки из стандартного ввода;
sortedResult – результат сортировки строки из uppercaseLettersOnly;
Локальные переменные процедуры sorting:
minChar – символ с минимальным индексом ASCII.
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра автоматизированных систем управления (АСУ)
ОТЧЕТ
Лабораторная работа № 2
по дисциплине «Программирование»
Выполнил студент:
Доценко Илья Сергеевич
специальность 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. Введение
Лабораторная работа N 2 посвящена созданию программ с использованием массивов (одномерных и матриц) и множеств. В этих программах полезно использовать подпрограммы.
2. Решение задачи №1
var
A : array [1..6,1..6] of boolean;
B : array [1..5,1..5] of boolean;
n,k : 1..6;
Получить массив B из массива A удалением n-ой строки и k-го столбца.
2.1. Описание используемых переменных.
A – двумерная матрица булевых значений размерностью 6 * 6;
B – двумерная матрица булевых значений размерностью 5 * 5;
C – двумерная матрица булевых значений размерностью 5 * 5;
n, k: 1..6 - ;
i – счетчик;
2.2. Описание алгоритма
-
Вводим номера столбца и строки, которые необходимо удалить; -
Перебираем числовой ряд от 1 до 6, и если индекс строки и столбца не соотвествует ранее введенным значениям, то заполняем матрицу С; -
Выводим построчно матрицу С
2.3. Блок-схема алгоритма
Рис 2.3.1 Блок-схема основной части программы.
Рис 2.3.2 Блок-схема процедуры printMatrix.
Рис 2.3.3 Блок-схема процедуры deleteRowsAndColumns.
Рис. 2.3Блок-схема алгоритма основной программы Блокх
2.4. Тестирование программы
Срока 4, столбец 5:
Рис. 2.4.1
Срока 4, столбец 5:
Рис. 2.4.2
3. Решение задачи №2
Дана строка. В алфавитном порядке напечатайте (по разу) все большие латинские гласные буквы, входящие в эту строку. Указание: гласные буквы - а, e, i, o, u; остальные — согласные. Решение задачи простое, если вы будете использовать множества.-
Описание используемых переменных
Глобальные:
i - счетчик;
stdinput –переменная для ввода строки из стандартного ввода;
uppercaseLettersOnly – переменная, в которую записывается строка, соержащая только заглавные символы из введенной строки;
sortedResult – результат сортировки строки из uppercaseLettersOnly;
Локальные переменные процедуры sorting:
i - счетчик;
minChar – символ с минимальным индексом ASCII.
3.2. Описание алгоритма
-
Вводим строку -
Проверяем, что строка не пуста -
Последовательно для каждого символа из введённой строки сравниваем с множеством заглавных гласных латинских букв , а так же проверяем на уникальность; -
Сортируем полученную последовательность; -
Выводим результат
3.3. Блок-схема алгоритма
Рис 3.3 Блок-схема основной части программы.
Рис 3.4 Блок-схема процедуры sorting.
3.4. Тестирование программы
Вводим “ AAwdwAWGHHYEWIYTRUJERUU”
Рис. 3.4.1
Вводим “ФЖЩЦГМВ{UOAVWawdblawdoIUBAW)OADIAPWD()!*@&$Y!Y*(P#O(!@OUKANLKSFA:@E!53”
Рис. 3.4.2
4. Заключение
В процессе написания программ были применены циклическая конструкция.
В первом задании с помощью вложенного цикла перебирались занчения двумерной матрицы, во втором задании цикл был использован для перебора значений строки.
В обоих программах использованы процедуры. Во второй программе использован рекурсивный метод обработки строки.
ПРИЛОЖЕНИЕ А ЛИСТИНГ ПРОГРАММЫ №1
(*
Задача 1
var
A : array [1..6,1..6] of boolean;
B : array [1..5,1..5] of boolean;
n,k : 1..6;
Получить массив B из массива A удалением n-ой строки и k-го столбца.
*)
var
A: array [1..6, 1..6] of boolean;
B: array [1..5, 1..5] of boolean;
C: array [1..5, 1..5] of boolean;
n, k: 1..6;
i: integer;
procedure deleteRowsAndColumns(n, k: 1..6);
var
i, j, ci, cj: integer;
begin
ci := 1; cj := 1;
for i := 1 to high(A) do
for j := 1 to high(A[i]) do
begin
if (i <> n) and (j <> k) then
begin
C[ci, cj] := A[i, j];
ci := ci + 1; cj := cj + 1;
end;
end;
end;
procedure printMatrix();
var
i: integer;
begin
writeln('Дана матрица А:');
for i := 1 to high(A) do
begin
println(A[i]);
end;
writeln('Преобразуем ее к виду матрицы B:');
for i := 1 to high(B) do
begin
println(B[i]);
end;
writeln('Для чего удалим указанные стоблец и строку.');
end;
begin
printMatrix;
writeln('Введите номер строки в диапазоне от 1 до 6');
readln(n);
writeln('Введите номер столбца в диапазоне от 1 до 6');
readln(k);
if (n >= 1) and (n >= 6) and (k >= 1) and (k <= 6) then deleteRowsAndColumns(n, k);
for i := 1 to high(B) do
begin
println(C[i]);
end;
end.
ПРИЛОЖЕНИЕ B ЛИСТИНГ ПРОГРАММЫ №2
(*
Задача 2
Дана строка. В алфавитном порядке напечатайте (по разу)
все большие латинские гласные буквы, входящие в эту строку.
Указание: гласные буквы — а, e, i, o, u; остальные — соглас-
ные. Решение задачи простое, если вы будете использовать
множества.
*)
program UseSetsToOptimizeYourUslessWork;
var
i: integer;
stdinput, uppercaseLettersOnly, sortedResult: string;
procedure sorting(sortInput: string);
var
i: integer;
minChar: char;
begin
minChar := 'Z';
if length(sortInput) > 0 then
begin
for i := 1 to length(sortInput) do
begin
if sortInput[i] < minChar then minChar := sortInput[i];
end;
sortedResult := sortedResult + minChar;
delete(sortInput, pos(minChar, sortInput), 1);
sorting(sortInput);
end;
end;
begin
uppercaseLettersOnly := '';
writeln('Введите строку');
readln(stdinput);
for i := 1 to length(stdinput) do
if (stdinput[i] in ['A', 'E', 'I', 'O', 'U']) and (pos(stdinput[i], uppercaseLettersOnly) = 0) then
uppercaseLettersOnly := uppercaseLettersOnly + stdinput[i];
sorting(uppercaseLettersOnly);
writeln(sortedResult);
end.
2023 г.