- •Исходная формулировка
 - •Формальная постановка задачи
 - •Контрольный пример
 - •Пользовательские типы
 - •Ограничение, условленное исполнением на компьютере
 - •Организация интерфейса пользователя
 - •Макеты ввода/вывода
 - •Этапы трансляции
 - •Средства обеспечения ввода/вывода
 - •Параметры функций:
 - •Алгоритм работы
 - •Текст программы
 - •Результаты работы программы
 
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра систем автоматизированного проектирования
отчет
по лабораторной работе №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  | 
		
