Файл: Лабораторная работа 2 по дисциплине Программирование Выполнил студент Доценко Илья Сергеевич специальность 09. 03. 01 Содержание.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 109
Скачиваний: 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. Введение 32. Решение задачи №1 42.1. Описание используемых переменных 42.2. Описание алгоритма 52.3. Блок-схема алгоритма 62.4. Тестирование программы 73. Решение задачи №2 83.1. Описание используемых переменных 83.2. Описание алгоритма 83.3. Блок-схема алгоритма 93.4. Тестирование программы 104. Заключение 10ПРИЛОЖЕНИЕ А ЛИСТИНГ ПРОГРАММЫ №1 12ПРИЛОЖЕНИЕ B ЛИСТИНГ ПРОГРАММЫ №2 13
2.3. Блок-схема алгоритмаРис 2.3.1 Блок-схема основной части программы.Рис 2.3.2 Блок-схема процедуры printMatrix.Рис 2.3.3 Блок-схема процедуры deleteRowsAndColumns.
Рис. 2.4.1
Рис 3.4 Блок-схема процедуры sorting.
ные. Решение задачи простое, если вы будете использоватьмножества.*)program UseSetsToOptimizeYourUslessWork;vari: integer;stdinput, uppercaseLettersOnly, sortedResult: string;procedure sorting(sortInput: string);vari: integer;minChar: char;beginminChar := 'Z';if length(sortInput) > 0 thenbeginfor i := 1 to length(sortInput) dobeginif sortInput[i] < minChar then minChar := sortInput[i]; end;sortedResult := sortedResult + minChar;delete(sortInput, pos(minChar, sortInput), 1);sorting(sortInput);end;end;beginuppercaseLettersOnly := '';writeln('Введите строку');readln(stdinput);for i := 1 to length(stdinput) doif (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 г.
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:
Срока 4, столбец 5:
Рис. 2.4.23. Решение задачи №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.24. ЗаключениеВ процессе написания программ были применены циклическая конструкция.В первом задании с помощью вложенного цикла перебирались занчения двумерной матрицы, во втором задании цикл был использован для перебора значений строки.В обоих программах использованы процедуры. Во второй программе использован рекурсивный метод обработки строки.ПРИЛОЖЕНИЕ А ЛИСТИНГ ПРОГРАММЫ №1
(*Задача 1varA : array [1..6,1..6] of boolean;B : array [1..5,1..5] of boolean;n,k : 1..6;Получить массив B из массива A удалением n-ой строки и k-го столбца.*)varA: 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);vari, j, ci, cj: integer;beginci := 1; cj := 1;for i := 1 to high(A) dofor j := 1 to high(A[i]) do beginif (i <> n) and (j <> k) thenbeginC[ci, cj] := A[i, j];ci := ci + 1; cj := cj + 1;end;end;end;procedure printMatrix();vari: integer;beginwriteln('Дана матрица А:');for i := 1 to high(A) dobeginprintln(A[i]);end;writeln('Преобразуем ее к виду матрицы B:');for i := 1 to high(B) dobeginprintln(B[i]);end;writeln('Для чего удалим указанные стоблец и строку.');end;beginprintMatrix;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) dobeginprintln(C[i]);end;end.ПРИЛОЖЕНИЕ B ЛИСТИНГ ПРОГРАММЫ №2
(*Задача 2Дана строка. В алфавитном порядке напечатайте (по разу)все большие латинские гласные буквы, входящие в эту строку.Указание: гласные буквы — а, e, i, o, u; остальные — соглас-ные. Решение задачи простое, если вы будете использоватьмножества.*)program UseSetsToOptimizeYourUslessWork;vari: integer;stdinput, uppercaseLettersOnly, sortedResult: string;procedure sorting(sortInput: string);vari: integer;minChar: char;beginminChar := 'Z';if length(sortInput) > 0 thenbeginfor i := 1 to length(sortInput) dobeginif sortInput[i] < minChar then minChar := sortInput[i]; end;sortedResult := sortedResult + minChar;delete(sortInput, pos(minChar, sortInput), 1);sorting(sortInput);end;end;beginuppercaseLettersOnly := '';writeln('Введите строку');readln(stdinput);for i := 1 to length(stdinput) doif (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 г.