Скачать 126.35 Kb.
|
ОГЛАВЛЕНИЕ Общие указания к выполнению лабораторной работы 2 Цель работы 2 Постановка задачи 2 Последовательность выполнения 2 Методический пример 2 Отчет по лабораторной работе 6 Контрольные вопросы 6 Литература 8 Общие указания к выполнению лабораторной работыЛабораторные работы выполняются на персональных компьютерах в операционной среде Windows с установленной системой Borland C++. Указания по технике безопасности совпадают с требованиями, предъявляемыми к пользователю ЭВМ. Другие опасные и вредные факторы отсутствуют. ^ Целью лабораторной работы является ознакомление с методами работы с динамическими элементами с использованием структур. ^ Разработать программный продукт в соответствии с основными методами работы с динамическими элементами по конкретному варианту задания. ^ Для выполнения лабораторной работы «Освоение работы с динамическими элементами(списки) с использованием структур.» необходимо:
Работа считается выполненной только после создания программы и защиты ее у преподавателя. ^ Задание: создать 2 двунаправленный список элементов целого типа и поиск в них чисел соответствующих числу введенному с клавиатуры. Если такие числа есть в первом списке, то они добавляются в конец второго списка, и наоборот. #include #include #include #include void main() // объявление структуры элемента списка // и указателей на требуемые элементы struct el { struct el* pred; int ELEM; struct el* posl; } EL1,*pTEK,*pPRED,*temp, *pSTART1,*pEND1,*pSTART2,*pEND2; int i,z,flag=0; clrscr(); // бесконечный цикл для ввода элементов первого списка // так как количество элементов неизвестно for(;;) { cout<<"\nввести элемент?";cin>>z; if (z<1) break; pTEK=(struct el*)(malloc(sizeof(EL1))); //выделенная память //заносится в указатель //на текущий элемент cout<<" \nэлемент=";cin>>pTEK->ELEM; //первоначальное //опреде- pTEK->pred=0; //ление полей элемента pTEK->posl=0; // списка //при создании первого элемента сохраняются соответствующие адреса if(flag==0){pSTART1=pTEK;pPRED=pTEK; pEND1=pTEK;flag=1; continue;} pPRED->posl=pTEK; // заполнение полей pTEK->pred=pPRED; // элементов списка pEND1=pPRED=pTEK; // изменение указателей на конец списка // и предыдущий элемент } // вывод на экран первого списка pTEK=pSTART1; cout<<"\nадрес нач элем:"< do cout<<"\n "< pred<<" "< ELEM<<" "< posl; pTEK=pTEK->posl; while(pTEK!=0); cout<<"\nадрес кон элем:"< // бесконечный цикл для ввода элементов второго списка // так как количество элементов неизвестно flag=0; for(;;){ cout<<"\n ввести элемент:";cin>>z; if (z<1) break; pTEK=(struct el*)(malloc(sizeof(EL1))); cout<<"\n элемент=";cin>>pTEK->ELEM; pTEK->pred=0; pTEK->posl=0; if(flag==0){pSTART2=pTEK;pPRED=pTEK;pEND2=pTEK;flag=1; continue;} pPRED->posl=pTEK; pTEK->pred=pPRED; pEND2=pPRED=pTEK; } // вывод на экран второго списка pTEK=pSTART2; cout<<"\nадрес нач элем:"< do cout<<"\n "< pred<<" "< ELEM<<" "< posl; pTEK=pTEK->posl; while(pTEK!=0); cout<<"\nадрес кон элем:"< int ch,d; cout<<"\nВвести число для проверки "; cin>>ch; // поиск искомого числа в первом списке и добавление его // в конец второго списка flag=0; //flag указание на начало работы с первым эл pTEK=pSTART1; for(;;){ temp=pTEK->posl; // в temp хранится адрес послед элем списка // что требуется для выхода из цикла if(pTEK->ELEM!=ch) if (temp==0) break; {pTEK=pTEK->posl;flag=1; continue;} if(flag==0)pSTART1=pTEK->posl;//если начальный элемент списка //удаляется то изменяется //начальный адрес списка ((pTEK->pred)->posl)=(pTEK->posl); // перезапися адресов впер- ((pTEK->posl)->pred)=(pTEK->pred); // вом списке pEND2->posl=pTEK; //добавлениеэлемента в pTEK->posl=0; // конец второго списка, и pTEK->pred=pEND2; // настройка //соответствующих pEND2=pTEK; // полей элем pTEK=temp; // занесение в указатель // адреса след элем // вывод на экран первого списка cout<<"\n--------------------------"; pTEK=pSTART1; cout<<"\nадрес нач элем:"< do cout<<"\n "< pred<<" "< ELEM<<" "< posl; pTEK=pTEK->posl; while(pTEK!=0); // вывод на экран второго списка pTEK=pSTART2; cout<<"\nадрес нач элем:"< do cout<<"\n "< pred<<" "< ELEM<<" "< posl; pTEK=pTEK->posl; while(pTEK!=0); cin>>d; /* добавление в первый список */ flag=0; pTEK=pSTART2; for(;;) temp=pTEK->posl; if(pTEK->ELEM!=ch) if (temp==0) break; pTEK=pTEK->posl;flag=1; continue; if(flag==0)pSTART2=pTEK->posl; ((pTEK->pred)->posl)=(pTEK->posl); ((pTEK->posl)->pred)=(pTEK->pred); pSTART1->pred=pTEK; pTEK->pred=0; pTEK->posl=pSTART1; pSTART1=pTEK; pTEK=temp; cout<<"\n--------------------------"; pTEK=pSTART1; cout<<"\nадрес нач элем:"< do cout<<"\n "< pred<<" "< ELEM<<" "< posl; pTEK=pTEK->posl; while(pTEK!=0); pTEK=pSTART2; cout<<"\nадрес нач элем:"< do cout<<"\n "< pred<<" "< ELEM<<" "< posl; pTEK=pTEK->posl; while(pTEK!=0); ^ Отчет оформляется в соответствии с требованиями, предъявляемыми к оформлению лабораторных работ в вузе (возможен электронный вид), и должен содержать:
^
Варианты заданий
Литература
А.А. Мерсов, составление, оформление, 2002 МГАПИ, 2002 Оригинал-макет подготовлен в Microsoft Word2000 |
![]() | Отчет по лабораторной работе 4 Контрольные вопросы 4 Лабораторные работы выполняются на персональных компьютерах в операционной среде Windows с установленной системой Borland C++. Указания... | ![]() | Отчет по лабораторной работе №2 «Исследование диодных схем» по дисциплине «Электроника» Подготовиться к лабораторной работе, т е знать и понимать процессы, происходящие в исследуемых схемах |
![]() | Отчет по лабораторной работе №15 по дисциплине "Программирование... Отчет по лабораторной работе №15 по дисциплине "Программирование на языке высокого уровня" | ![]() | Отчет по лабораторной работе №1 По дисциплине «Название дисциплины» |
![]() | Отчет по лабораторной работе должен содержать номер, название, цель... Основным носителем информации является файл. Файлы организованы в системе не хаотическим образом, а виде определенной структуры,... | ![]() | Отчет по лабораторной работе № «освоение технологии реализации позиционных, линейных коллекций на примере атд "список"» |
![]() | Отчёт По лабораторной работе м-04 «Изучение законов равноускоренного движения» Цель работы: Изучение динамики поступательного движения связанной системы тел с учётом силы трения: оценка силы трения как источника... | ![]() | Отчет по лабораторной работе №2 по курсу «Электроника» Овладеть методикой снятия вольт-амперных характеристик (вах) нелинейных элементов |
![]() | Отчет по лабораторной работе №4 по дисциплине электроника “ Что должно быть получено в результате его выполнения (прогнозируемый результат)? | ![]() | Отчет по лабораторной работе №4 по дисциплине электроника исследование Что должно быть получено в результате его выполнения (прогнозируемый результат)? |