Главная страница
Навигация по странице:

  • Отчёт по лабораторной работе № 1

  • Содержание

  • Алгоритм выполнения задачи

  • Текст решений Текст заголочного файла

  • Текст файла реалиации функции

  • Текст файла функции main

  • Тестовые результаты

  • СТРУКТУРА ПРОЕКТА VISUAL STUDIO И БИБЛИОТЕКИ. Зыонг_Отчет по лаб 1. структура проекта visual studio и библиотеки


    Скачать 27.25 Kb.
    Названиеструктура проекта visual studio и библиотеки
    АнкорСТРУКТУРА ПРОЕКТА VISUAL STUDIO И БИБЛИОТЕКИ
    Дата29.01.2022
    Размер27.25 Kb.
    Формат файлаdocx
    Имя файлаЗыонг_Отчет по лаб 1.docx
    ТипЗадача
    #345454


    Министерство наука и высшего обраования Российской Федерации

    ФГАОУ ВО «Уральский федеральный университет

    имени первого Президента России Б.Н.Ельцина»

    Институт радиэлектроники и информационных технологий – РТФ

    Департамент информационных технологий и автоматики

    Отчёт по лабораторной работе № 1

    Дисциплина:Алгоритмы и структуры данных

    Тема: «СТРУКТУРА ПРОЕКТА VISUAL STUDIO И БИБЛИОТЕКИ »

    Вариант №11

    Студент РИ-190010 Зыонг Нгок Ань

    Преподаватель

    Кандидат технических наук Титаев А.А.

    Екатеринбург

    2020 год

    Содержание


    Задача 3

    Тестовые результаты 9

    Замечание 10


    Задача


    Создать функцию сортировки массива:

    void SortMass (int *Mass, int N),

    где *Mass – указатель на первый элемент массива, N – размер массива.

    Создать функцию нахождения элемента в массиве с помощью двоичного поиска:
    int BinFind (*Mass, int N, int Value),

    где *Mass – указатель на первый элемент массива,

    N – размер массива,

    Value – элемент, который нужно находить.

    1. Разделить код по нескольким файлам одного проекта.

    2. Создать статическую библиотеку функций.

    3. Создать динамическую библиотеку функций

    Алгоритм выполнения задачи


    Написать код функции SortMass с помощью пузырькового алгоритма и функции BinFind с помощью бинарного поиска. В коде функции main: вводить число элементов массив, распределить динамическую память для массива, вводить массив и выводить на экран сортированный массив, вводить искомое значение и выводить результат поиска на экран.
    1. Создать файл заголовка Lib.h,в котором содержатся прототипы функций.
    Создать файл реализации функций Lib.cpp и файл Main.cpp, в котором содержится функция main. Коды файлов Lib.cpp и Main.cpp должны имееть строку «include “Lib.h”» . Загрузить файл и посмотреть результат.
    2. В одном решении создать 2 проекта. Первый проект Lib – статическая библиотека, второй MainFunc – проект функции main.

    Для проекта статической библиотеки надо установить через Свойство тип конфигурации «Статическая библиотека (.lib)», построить её. Когда сборка завершена (файл Lib.lib появится), добавить ссылку к этой библиотеке в проекте MainFunc (Код файл MainFunc.cpp должен имееть строку «include “Lib.h”»). ПКМ в проект MainFunc ->Отладка ->Запустить новый экземпляр и посмотреть результат.

    3. В одном решении создать 2 проекта. Первый проект DynLib – динамическая библиотека, второй MainFunc – проект функции main.

    Для проекта динамической библиотеки надо установить через Свойство тип конфигурации «Динамическая библиотека (.dll)», в заголовочном файле нужны индентификаторы «_declspec(dllexport)» (для самой библиотеки) и «_declspec(dllimport)» (для использования во внешнем проекте). Для удобства пользуем условный директив препроцессора DLIB, заменяем «_declspec(dllexport)» и «_declspec(dllimport)» на «PREFIX» ,через Свойства файла реализации DynLib.cpp ->С/С++->Определения препроцессора ->Добавить DLIB.

    Для проекта MainFunc надо добавить ссылку к динамической библиотеке, и через Свойства ->C/C++->Общие ->Допольнительные каталоги включаемых файлов-> Добавить путь к файлам .dll, .lib и .h.

    Для того, чтобы запустить программу ПКМ в решение MainFunc -> Отладка -> Запустить новый экземляр. Посмотреть результат.


    Текст_решений_Текст_заголочного_файла'>Текст решений


    Текст заголочного файла
    #pragma once

    void SortMass(int* Mass, int N);

    int BinFind(int* Mass, int N, int Value);
    Текст заголочного файла динамической библиотеки
    #pragma once

    #ifdef DLIB

    #define PREFIX _declspec (dllexport)

    #else

    #define PREFIX _declspec (dllimport)

    #endif

    PREFIX void SortMass(int* Mass, int N);

    PREFIX int BinFind(int* Mass, int N, int Value);
    Текст файла реалиации функции
    #include

    #include "Lib.h"

    void SortMass(int* Mass, int N)

    {

    int i, j, temp;

    bool swap = false;

    for (i = 0; i < N - 1; i++)

    {

    swap = false;

    for (j = 0; j < N - i - 1; j++)

    {

    if (Mass[j] > Mass[j + 1])

    {

    temp = Mass[j];

    Mass[j] = Mass[j + 1];

    Mass[j + 1] = temp;

    swap = true;

    }

    }

    if (swap == false)

    {

    break;

    }

    }

    }

    int BinFind(int* Mass, int N, int Value)

    {

    int l = 0; //left - первый элемент

    int r = N - 1; //right - последний элемент

    int mid;

    while (r >= l)

    {

    mid = (l + r) / 2;

    if (Mass[mid] == Value) return mid;

    if (Mass[mid] > Value) r = mid - 1;

    if (Mass[mid] < Value)l = mid + 1;

    }

    return -1;

    }
    Текст файла функции main
    #include

    #include "Lib.h"

    using namespace std;

    int main()

    {

    int N; cin >> N;

    int* Mass = new int[N];

    for (int i = 0; i < N; i++)

    {

    cin >> Mass[i];

    }

    SortMass(Mass, N);

    for (int i = 0; i < N; i++)

    {

    cout << Mass[i] << " ";

    }

    int Value; cin >> Value;

    if (BinFind(Mass, N, Value) != -1)

    cout << endl << Mass[BinFind(Mass, N, Value)] << " found." << endl;

    else

    cout << endl << Value << " not found." << endl;

    system("pause");
    }

    Тестовые результаты


    Ввод

    Вывод

    5

    23

    45

    6757

    453

    2

    45

    2 23 45 453 6757
    45 found.

    6

    32

    56

    4

    37

    456

    7

    8

    4 7 32 37 56 456
    8 not found.



    Замечание


    На данной лабораторной работе учила как разделить код на несколько файлов одного проекта, создать и пользовать статическую и динамическую библиотеки, повторяла алгоритмы сортировки и пузырьков.



    написать администратору сайта