
- •Исходная формулировка
- •Формальная постановка задачи
- •Контрольный пример
- •Пользовательские типы
- •Ограничение, условленное исполнением на компьютере
- •Организация интерфейса пользователя
- •Макеты ввода/вывода
- •Этапы трансляции
- •Средства обеспечения ввода/вывода
- •Параметры функций:
- •Алгоритм работы
- •Текст программы
- •Результаты работы программы
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра систем автоматизированного проектирования
отчет
по лабораторной работе №3
по дисциплине «Программирование»
Тема: «Основные операции над линейным списком и их реализация на языке С++ с использованием структур. Удаление элементов списка.»
Студентка гр. 3352 |
|
|
Преподаватель |
|
|
Санкт-Петербург
2024
Исходная формулировка
3.18 - Удалить каждый элемент, расположенный перед элементом с заданным значением
3.6 - Удалить весь список
Формальная постановка задачи
Из входного и доп. файлов в списки считываются строки. В доп. файле одна строка - заданное значение. После считывания строк из файлов происходит обработка первого списка. Текущий элемент изначально является головным. Если этот элемент совпадает с заданным значением, мы переходим к следующему элементу. Как только у текущего элемента появляется предшествующий ему, мы можем удалять текущий элемент и соединять предшествующий с следующим после текущего. После выполнения обработки списка происходит вывод в выходной файл. В конце оба списка удаляются.
Контрольный пример
Заданное значение: Hello |
Список: Hello Privet Bye Hello |
Результат: Hello Privet Hello
|
Пользовательские типы
Struct StrL |
||
Поля структуры |
Тип |
Назначение |
M |
char |
Строка списка1 |
A |
char |
Строка списка2 |
Len |
int |
Длина строки1 |
dl |
int |
Длина строки 2 |
Read_S() |
bool |
Чтение строки1 |
Print1() |
void |
Вывод строки1 |
Search1() |
bool |
Проверка строк на совпадение |
Read_El() |
int |
Чтение строки2 |
printEl() |
void |
Вывод строки2 |
Struct ListNode |
||
Поля структуры |
Тип |
Назначение |
line |
StrL |
Элемент списка |
*next |
ListNode |
Указатель на следующий элемент списка1 |
addMemo() |
void |
Создание текущего элемента списка1 |
addNext() |
void |
Создание следующегоэлемента списка1 |
*nextE |
ListNode |
Указатель на следующий элемент списка2 |
elemMemo() |
void |
Создание текущего элемента списка2 |
elemNext() |
void |
Создание следующегоэлемента списка2 |
Struct Text |
||
Поля структуры |
Тип |
Назначение |
count |
int |
Количество строк в списке1 |
chet |
int |
Количество строк в списке2 |
Read_file() |
bool |
Считывание строк и занесение в список1 |
Read_Elem() |
bool |
Считывание строк и занесение в список2 |
Print2() |
void |
Вывод списка1 |
PrintElem() |
void |
Вывод списка2 |
Process() |
void |
Обработка списка1 |