- •Міністерство освіти Та науки україни Запорізький національний технічний університет
- •Методичні вказівки
- •Загальні положення
- •1 Типи даних та арифметичні вирази
- •1.1 Теоретичні відомості
- •1.2 Порядок виконання роботи
- •1.3 Приклад
- •1.5 Завдання на лабораторну роботу
- •1.6 Контрольні запитання
- •2 Умовні оператори
- •2.1 Теоретичні відомості
- •2.2 Порядок виконання роботи
- •2.3 Приклад
- •2.5 Завдання на лабораторну роботу
- •2.6 Контрольні запитання
- •3 Оператори циклів
- •3.1 Теоретичні відомості
- •3.2 Порядок виконання роботи
- •3.3 Приклад
- •3.5 Завдання на лабораторну роботу
- •3.6 Контрольні запитання
- •4 Масиви
- •4.1 Теоретичні відомості
- •4.2 Порядок виконання роботи
- •4.3 Приклад
- •4.5 Завдання на лабораторну роботу
- •4.6 Контрольні запитання
- •5 Робота з динамічною пам’яттю
- •5.1 Теоретичні відомості
- •5.2 Порядок виконання роботи
- •5.3 Приклад
- •5.5 Завдання на лабораторну роботу
- •5.6 Контрольні запитання
- •6 Функції. Створення та використання
- •6.1 Теоретичні відомості
- •6.2 Порядок виконання роботи
- •6.3 Приклад
- •6.5 Завдання на лабораторну роботу
- •6.6 Контрольні запитання
- •7 Абстрактні типи даних
- •7.1 Теоретичні відомості
- •7.2 Порядок виконання роботи
- •7.3 Приклад
- •7.5 Завдання на лабораторну роботу
- •7.6 Контрольні запитання
- •8 Пошук та сортування
- •8.1 Теоретичні відомості
- •8.2 Порядок виконання роботи
- •8.3 Приклад
- •8.5 Завдання на лабораторну роботу
- •8.6 Контрольні запитання
- •9 Основи ооп
- •9.1 Теоретичні відомості
- •9.2 Порядок виконання роботи
- •9.3 Приклад
- •9.5 Завдання на лабораторну роботу
- •9.6 Контрольні запитання
- •10 Створення похідних класів
- •10.1 Теоретичні відомості
- •10.2 Порядок виконання роботи
- •10.3 Приклад
- •10.5 Завдання на лабораторну роботу
- •10.6 Контрольні запитання
- •11 Основи Об’єктно орієнтованого проектування
- •11.1 Теоретичні відомості
- •11.2 Порядок виконання роботи
- •11.4 Завдання на лабораторну роботу
- •11.5 Контрольні запитання
- •12 СТворення графічного інтерфейсу користувача
- •12.1 Порядок виконання роботи
- •12.3 Завдання на лабораторну роботу
- •12.4 Контрольні запитання
- •Література
- •69039 М. Запоріжжя, знту, друкарня, вул Жуковського, 64
7.2 Порядок виконання роботи
При виконанні лабораторної роботи дотримуйтесь рекомендованого порядку.
Ознайомтесь з прикладом (листінг 7.1), наведеним у підрозділі 7.3.
Отримайте від викладача варіант завдання.
Розробіть схему алгоритму роботи програми.
Запишіть програму на мові програмування С++.
Створіть новий проект Visual Studio .NET” та введіть початковий код програми.
Проведіть її компіляцію з використанням середовища “Visual Studio .NET”.
Виправить синтаксичні та логічні помилки. Та повторіть компіляцію.
Запустить на виконання отриманий код.
Проведіть тестування для різних початкових даних.
Запишіть результати роботи програми та проконтролюйте їх коректність.
7.3 Приклад
Завдання. Реалізувати двохзв’язний кільцевий список для цілих чисел: функції вставки, видалення, пошуку необхідного числа у списку.
#include <stdio.h> //бібліотека функцій стандартного вводу/виводу #include <conio.h> //бібліотека функцій консольного вводу/виводу
using namespace System;
struct list{ int data; list* prev; list* next; } typedef plist list*;
void init(plist spisok); void insert(plist spisok,int pos,int data); void remove(plist spisok,int pos); void find(plist spisok,int data); void print(plist spisok); void destroy(plist spisok); int _tmain(void) { plist spisok; init(spisok); for(int i=1;i<=3;i++) insert(spisok,0,i); print(spisok); remove(spisok,2); print(spisok); int pos=find(spisok,1); printf("Position: %i",pos); pos=find(spisok,2); printf("Position: %i",pos); pos=find(spisok,3); printf("Position: %i",pos); getch(); }
void init(plist spisok){ spisok=new list; spisok->data=0; spisok->prev=spisok; spisok->next=spisok; }
void insert(plist spisok,int pos,int data){ if(spisok->data>pos){ plist Prev=spisok; for(int i=0;i<pos;i++) Prev=Prev->next; plist Next=Prev->next; plist New=new list; New->data=data; New->prev=Prev; New->next=Next; Prev->next=New; Next->prev=New; spisok->data=spisok->data+1; } if(spisok->data==0){ plist New=new list; New->data=0; New->prev=New; New->next=New; spisok->next=New; spisok->data=1; } }
void remove(plist spisok,int pos){ if(spisok->data>pos){ plist Prev=spisok; for(int i=0;i<pos;i++) Prev=Prev->next; plist Old=Prev->next; plist Next=Old->next; Prev->next=Next; Next->prev=Prev; delete Old; }}
void find(plist spisok,int data){ if(spisok->data>0){ plist Prev=spisok->next; int i=0; while((i<spisok->data)&&(Prev->data!=data)) i++; return i; }
void destroy(plist spisok){ if(spisok->data>0){ plist Prev=spisok->next; plist Next; int i=0; while(i<spisok->data) { Next=Prev->next; delete Prev; Prev=Next; } } delete spisok; }
void print(plist spisok){ if(spisok->data>0){ plist Prev=spisok->next; int i=0; while(i<spisok->data) { printf("Pos: &i, Data: %i",i,Prev->data); Prev=Prev->next;}}} |
Листінг 7.1 – Приклад виконання індивідуального завдання
7.4 Зміст звіту
Звіт з лабораторної роботи повинен містити:
мету роботи;
завдання на виконання роботи;
схему алгоритму роботи програми;
текст програми;
результати роботи програми для різних початкових даних;
висновки.
