Создание и обработка динамического списка
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: государство реферат, изложения по русскому языку 9
| Добавил(а) на сайт: Vassian.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
gaseta c;
5
6) Локальные переменные основной части программы:
a – переменная типа int. Несет информацию о текущей процедуре и является
параметром цикла и оператора множественного выбора.
int a;
6
3. Разработка состава и структуры исходных данных и результата
Исходные данные и результат представляют собой однонаправленный
динамический список. Элементом списка будет являться структура, состоящая
из внутренней структуры и указателя на следующий элемент списка. Внутренняя
структура состоит из полей:
1) название газеты (тип char)
2) название статьи (тип char)
3) номера страниц (тип int)
[pic]
На экране исходные данные будут представлены:
Введите данные о 1 статье
Название: Комсомольская правда
Статья: О вреде курения
Страница: 12
………………………………
Результат будет представлен в виде таблицы:
+---------------+--------------+--------------+
| газета | статья
| страница |
|Комсомольская правда | О вреде курения |
12 |
7
4. Разработка алгоритма
4.1 Основная часть программы.
0. Начало
1 Очищаем экран
2 Присваиваем переменной а, которая является параметром последующего цикла
и оператора множественного выбора значение равное единицы
3 Открываем цикл с предусловием (условие: переменная а не равна 5); в цикле
будут выполняться шаги с 4 по 11
4 Вводим переменную а
5 Выполняем оператор множественного выбора с параметром а; оператор
включает шаги с 6 по 10
6 Если а=1, вызываем процедуру ввода данных
7 Если а=2, вызываем процедуру вывода данных
8 Если а=3, вызываем процедуру удаления первого элемента
9 Если а=4, вызываем процедуру перемены мест элементов, которые заданы
названиями
10 Если а не равно не одному из указанных раннее значений, то а присваиваем
значение 5
11 Закрываем оператор множественного выбора
12 Закрываем цикл с предусловием
13 Конец
4.2 Процедура ввода данных
0 Начало процедуры
1 Резервируем область оперативной памяти размером равным размеру элемента и
присваиваем указателю на последний элемент q адрес этой области.
2 Последовательно вводим данные внутренней структуры, на которую будит
указывать указатель q.
3 Присваиваем указателю на первый элемент списка un и указателю на текущий
элемент p значение указателя q. Присваиваем переменной i, которая содержит
данные о числе элементов списка и переменной j, которая является параметром
последующих циклов значение равное 1
4 Открываем цикл с предусловием (условие: переменная j равна 1); в цикле
будут выполняться шаги с 5 по 9
8
5 Увеличиваем значение переменной i на единицу
6 Резервируем область оперативной памяти размером равным размеру элемента и
присваиваем указателю q адрес этой области
7 Последовательно вводим данные внутренней структуры, на которую будит
указывать указатель q
8 Устанавливаем указатель введенного ранее элемента n на элемент, введенный
шагом 7, а указателю p значение указателя q
9 Вводим новое значение переменной j
10 Закрываем цикл с предусловием
11 Устанавливаем указатель n текущего элемента на NULL
12 Конец процедуры
4.3 Процедура вывода данных
0 Начало процедуры
1 Устанавливаем указатель p на первый элемент списка, а переменную j, которая будет параметром следующего цикла, устанавливаем в 1
2 Открываем цикл с предусловием (условие: переменная j меньше или равно i);
в цикле будет выполняться шаги с 3 по 4
3 Последовательно выводим данные внутренней структуры, на которую будит
указывать указатель p
4 Указатель текущего элемента p устанавливаем на следующий элемент, а
значение переменной j увеличиваем на 1
5 Закрываем цикл с предусловием
6 Конец процедуры
4.4 Процедура удаления первого в списке элемента
0 Начало процедуры
1 Указатель текущего элемента p устанавливаем в начало, а указатель первого
элемента в списке un устанавливаем на следующий элемент
2 Освобождаем область памяти, на которую указывает указатель текущего
элемента p
9
3 Значение переменной i, которая содержит данные о числе элементов в
списке, уменьшаем на 1
4 Конец процедуры
4.5 Процедура перемены мест элементов, которые заданы номерами
0 Начало процедуры
1 Вводим переменную k1, которая указывает на название первого элемента в
операции перемены мест
2 Устанавливаем указатель p на первый элемент списка.
3 Открываем цикл с заданным числом повторений (j=0…k1); в цикле будет
выполняться шаг 4
4 Указатель на текущий элемент p устанавливаем на следующий элемент списка
5 Закрываем цикл с заданным числом повторений
6 Вводим переменную k2, которая указывает на название второго элемента в
операции перемены мест
7 Устанавливаем указатель p2 на первый элемент списка.
8 Открываем цикл с заданным числом повторений (j=0…k2); в цикле будет
выполняться шаг 4
9 Указатель на текущий элемент p2 устанавливаем на следующий элемент списка
10 Закрываем цикл с заданным числом повторений
11 Переменной с присваиваем данные внутренней структуры, на которые
указывает указатель текущего элемента p
12 Данные внутренней структуры, на которые указывает указатель текущего
элемента p2, копируем в переменные внутренней структуры, на которые
указывает указатель текущего элемента p.
13 Значение переменной с присваиваем переменным внутренней структуры, на
которые указывает указатель текущего элемента p2.
14 Конец процедуры
10
5. Выбор языка
Язык программирования СИ++ является языком высокого уровня. Язык СИ++ был разработан на основе языка СИ Бьярном Страуструпом. Выбор языка СИ++ для решения данной задачи обусловлен наличием в языке СИ++ средств для динамического распределения памяти.
Динамическое распределение памяти осуществляется операциями new и
delete. Это 2 особые унарные операции, появившиеся в языке СИ++ (в языке СИ
этих операций не было). Операция new имя_типа или new имя_типа
инициализатор позволяет выделить и сделать доступным свободный участок в
основной памяти, размеры которого соответствуют типу данных, определяемому
именем типа. В выделенный участок заносится значение, определяемое
инициализатором, который не является обязательным элементом. В случае
успешного выполнения операции new возвращает адрес начала выделенного
участка памяти. Если участок нужных размеров не может быть выделен (нет
памяти), то операция new возвращает нулевое значение адреса (NULL).
Синтаксис применения операции: указатель=new имя_типа инициализатор.
Продолжительность существования выделенного с помощью операции new участка памяти – от точки создания до конца программы или до явного его освобождения.
Для явного освобождения выделенного операцией new участка памяти используется оператор delete указатель, где указатель адресует освобождаемый участок памяти, ранее выделенный с помощью операции new.
Рекомендуем скачать другие рефераты по теме: доклад на тему, кредит реферат.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата