Методические указания к лабораторным работам по дисциплине "Информатика" для студентов специальности 230102



страница6/6
Дата06.07.2013
Размер0.54 Mb.
ТипМетодические указания
1   2   3   4   5   6

Вариант 14

Исходные данные хранятся в файле


Название фильма

Кассовый сбор

Определить десятку самых кассовых фильмов.

Использовать структурные переменные.
Вариант 15

Исходные данные хранятся в файле

Пункт назначения

№ поезда

Время отправления

Стоимость билета

Составить список поездов до заданного пункта назначения.

Использовать структурные переменные.
Вариант 16

Исходные данные хранятся в файле


Пункт назначения

№ поезда

Время отправления

Стоимость билета

Составить список поездов до заданного пункта назначения (указать стоимость билета) .

Использовать структурные переменные.
Вариант 17

Исходные данные хранятся в файле




комнаты

гостиницы

Категория

(количество мест)

Ф.И.О.

проживающих

Составить список жильцов гостиницы, занимающих одноместные номера.

Использовать структурные переменные.
Вариант 18

Исходные данные хранятся в файле



комнаты

гостиницы

Категория (количество мест)

Ф.И.О.

проживающих

Составить список свободных номеров с указанием категории .

Использовать структурные переменные.
Вариант 19

Исходные данные хранятся в файле



комнаты

гостиницы

Категория (количество мест)

Ф.И.О.

проживающих

Составить список свободных мест с указанием номера и категории.

Использовать структурные переменные.

Вариант 20

Исходные данные хранятся в файле


Фамилия

Группа




Оценки










Физика

Операционные системы

Математика

Информатика

Составить список студентов заданной группы, сдавших экзамены без троек.

Использовать структурные переменные.
Вариант 21

В файле хранятся сведения о парке легковых автомобилей города (номер, цвет, марка, ФИО владельца)

Составить программу, которая распечатывает список фамилий с именем и отчеством владельцев по неполным данным:

-часть номера + цвет;

-марка + цвет;

-часть номера + марка.

Использовать структурные переменные.

Лабораторная работа № 8
ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ
Организация списков и их обработка
Линейные списки

Линейный список - это конечная последовательность однотипных элементов (узлов), возможно, с повторениями. Количество элементов в последовательности называется длиной списка, причем длина в процессе работы программы может изменяться.

Операции над списком

При работе со списками на практике чаще всего приходится выполнять следующие операции:

- найти элемент с заданным свойством;

- определить первый элемент в линейном списке;

- вставить дополнительный элемент до или после указанного узла;

- исключить определенный элемент из списка;

- упорядочить узлы линейного списка в определенном порядке.

Стеки и очереди

В зависимости от метода доступа к элементам однонаправленного линейного списка различают разновидности линейных списков называемые стеком, очередью.

Стек - это конечная последовательность некоторых однотипных элементов - скалярных переменных, массивов, структур или объединений, среди которых могут быть и одинаковые.

Реализация стеков и очередей в программе может быть выполнена в виде последовательного или связанного хранения.

Допустимые операции над стеком:

- проверка стека на пустоту;

- добавление нового элемента в конец стека;

- изъятие последнего элемента из стека;

- доступ к его последнему элементу.

Таким образом, операции добавления и удаления элемента, а также доступа к элементу выполняются только в конце списка.

Очередь - это линейный список, где элементы удаляются из начала списка, а добавляются в конце списка (как обыкновенная очередь в магазине).

Реализация стеков и очередей в программе может быть выполнена в виде последовательного или связанного хранения.

Далее приведены примеры реализации связного хранения стека.

Операции над списком типа стек

#include

#include

#include

//звено стека

struct list {int info; // информационное поле целого типа

list *next; }; //ссылка на структуру типа list

int input_num () //функция ввода целого числа

{ int num;

printf ("вводите число: \n");

scanf("%d",&num);

return num;

}

//Создание первого элемента списка

list *first()

{ list *Top;

Top=NULL; //дно стека

return Top;

}

//Добавление элементов в стек

list *add(list *Top)

{ list *cur;

/*Ввод элементов списка с клавиатуры*/

while (1)

{ int num;

num=input_num();

if (num==999) break; //условие прекращения ввода данных

cur=new list;

cur->info=num;

cur->next=Top;

Top=cur;

}

return Top;

}

// Удаление из списка с вершины

list *detach(list *Top)

{list *cur;

cur=Top;

Top=Top->next;

delete cur;

cur=Top;

return Top;

}

//Просмотр списка

list *display(list *Top)

{list *cur;

cur=Top;

while (cur!=NULL)

{printf(" %d",cur->info);

cur=cur->next;

}

return Top;

}

//Поиск элемента по ключу

int find(list *Top,const int num)

{list *cur;

int n=0,nomer=1;

cur=Top;

while (cur!=NULL)

{

if (cur->info==num)

n=nomer;

cur=cur->next;

nomer++;

}

if (n==0) printf("нет в списке");

return n;

}

Удаление элемента с номером n

void del(list *Top,const int n)

{list *cur;

int i;

cur=Top;

for(i=1;i
{if (cur!=NULL)

cur=cur->next;

}

if (cur->next!=NULL)

cur->next=cur->next->next;

}

Вставка элемента после элемента с номером n

void ins(list *Top,const int n,const int num)

{list *cur,*new_elem;

int i;

cur=Top;

for(i=1;i
{if (cur!=NULL)

cur=cur->next;

}

if (cur->next!=NULL)

new_elem =new list;

new_elem->info=num;

new_elem->next=cur->next;

cur->next=new_elem;

}

main()

{ list *Top; int n,num=3,new_elem=8;

Top=first();

Top=add(Top);

Top=detach(Top);

Top=display(Top);

n=find(Top,num);

printf("%d",n);

del(Top,n);

ins(Top,n,new_elem);

Top=display(Top);

}

Исходный текст программы, иллюстрирующий выполнение операций над стеком находится на диске U:, в разделе методических материалов по информатике в папке "Примеры".
Контрольные вопросы

  1. Чем отличаются линейные списки с организацией "стек" от линейных списков с организацией "очередь"?

  2. Какие операции со списками на практике чаще всего приходится выполнять на практике?

  3. Сколько указателей требуется для создания стека?

  4. Сколько указателей требуется для создания очереди?


Задания на лабораторную работу

Вариант 1

Описать функцию, которая объединяет два упорядоченных по не убыванию списка L1 и L2 в один упорядоченный по неубыванию список, построив новый список.
Вариант 2

Описать функцию, которая объединяет два упорядоченных по не убыванию списка L1 и L2 в один упорядоченный по неубыванию список, меняя соответствующим образом ссылки в L1 и L2 и присвоив полученный список параметру L2.
Вариант 3

Описать функцию, которая по списку L строит два новых списка: L1 - из положительных элементов и L2 - из остальных элементов списка L.
Вариант 4

Описать функцию, которая переворачивает список L, т.е. изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке.
Вариант 5

Описать функцию, которая заменяет в списке L все вхождения E1 на E2.
Вариант 6

Описать процедуру или функцию, которая вставляет новый элемент E после N-го элемента непустого списка L.
Вариант 7

Описать функцию, которая находит сумму последнего и предпоследнего элементов списка L, содержащего не менее двух элементов.
Вариант 8

Описать функцию, которая определяет, входит ли список L1 в список L2.
Вариант 9

Описать функцию, которая вставляет в список L за первым вхождением элемента E все элементы списка L1, если E входит в L.
Вариант 10

Описать функцию, которая находит среднее арифметическое элементов непустого списка L.

Вариант 11

Описать функцию, которая в списке L из каждой группы подряд идущих равных элементов оставляет только один.
Вариант 12

Описать функцию, которая вставляет в непустой список L, элементы которого упорядочены по неубыванию, новый элемент E так, чтобы сохранялась упорядоченность.
Вариант 13

Описать процедуру или функцию, которая удаляет из списка L за каждым вхождением элемента Е один элемент, если такой есть и он отличен от E.
Вариант 14

Описать функцию, которая удаляет из списка L все отрицательные элементы.
Вариант 15

Описать функцию, которая формирует список L, включив в него по одному разу элементы, которые входят хотя бы в один из списков L1 и L2.
Вариант 16

Описать функцию, которая формирует список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.
Вариант 17

Описать функцию, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2.


Вариант 18

Описать функцию, которая формирует список L, включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входят в другой из них.
Вариант 19

Описать функцию, которая находит максимальный элемент непустого списка L.
Вариант 20

Описать рекурсивную функцию, которая подсчитывает число вхождений элемента Е в список L.
Вариант 21

Разработать программу, определяющую симметричность произвольного текста любой длины. Текст всегда должен оканчиваться точкой. Эту задачу рекомендуется решать с помощью двух стеков. В первый стек следует поместить весь текст, затем во второй стек пере нести его половину так, чтобы последний символ стека находился на дне стека. Далее путем поэлементного сравнения стеков получить ответ на вопрос о симметричности текста.

1   2   3   4   5   6

Похожие:

Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания к лабораторным работам по дисциплине «Моделирование систем» для студентов всех форм обучения специальности
Имитационное моделирование систем управления с помощью пакета программ vissim: Методические указания к лабораторным работам по дисциплине...
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания к лабораторным работам «спектрофотометрический анализ»
Методические указания к лабораторным работам «спектрофотометрический анализ» по спецкурсу «оптические методы анализа» для студентов...
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания по планированию проектов с помощью «Microsoft Project»
Методические указания к лабораторным работам по дисциплине «Управление проектами» для студентов и слушателей факультета «Инженерный...
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconДепартамент научно-технологической политики и образования
Методические указания к лабораторным работам по дисциплине «Теоретические основы прогрессивных технологий» (физика) предназначены...
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconДепартамент научно-технологической политики и образования
Методические указания к лабораторным работам по дисциплине «Теоретические основы прогрессивных технологий» (физика) предназначены...
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания к лабораторным работам для студентов Казань 2004 Составители: М. Г. Габидуллин, Д. С. Смирнов удк 691: 620
Проектирование составов и испытания тяжелых бетонов и строительных растворов. Методические указания к лабораторным работам по курсу...
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания к лабораторным работам по дисциплине "Моделирование систем" для студентов всех форм обучения специальности
Имитационное моделирование автоматических систем с помощью пакета программ vissim
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания к лабораторным работам
Дискретная математика: Методические указания к лабораторным работам / Рязанская государственная радиотехническая академия; Сост....
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания к лабораторным работам №1,2,3,4 для студентов 3-го курса физико-технического факультета Екатеринбург 2000
Механика сплошных сред: Методические указания к лабораторным работам для студентов 3-го курса физико-технического факультета
Методические указания к лабораторным работам по дисциплине \"Информатика\" для студентов специальности 230102 iconМетодические указания к лабораторным работам для студентов строительных специальностей
Древесина методические указания к лабораторным работам для студентов строительных специальностей
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org