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

  • Задание № 2

  • Задание № 4.

  • ЛАБОРАТОРНАЯ РАБОТА № 12. ИНТЕГРАЦИЯ МОДУЛЯ В ИНФОРМАЦИОННУЮ СИСТЕМУ Цель

  • Теоретические вопросы Понятие модуля.Управление модулями. Задание № 1.

  • ЛАБОРАТОРНАЯ РАБОТА № 13. РАЗРАБОТКА ПРИЛОЖЕНИЙ ДЛЯ МОДЕЛИРОВАНИЯ ПРОЦЕССОВ И ЯВЛЕНИЙ. ОТЛАДКА ПРИЛОЖЕНИЯ Цель

  • Теоретические вопросы Понятие модели.Моделирование процессов и явлений.Технологии моделирования процессов и явлений в приложениях. Задание № 1.

  • ЛАБОРАТОРНАЯ РАБОТА № 14. ПРОГРАММИРОВАНИЕ ОБМЕНА СООБЩЕНИЯМИ МЕЖДУ МОДУЛЯМИ Цели

  • Теоретические вопросы Понятие и структура сообщения. Обмен сообщениями между модулями. Задание № 1.

  • Задание № 3.

  • Лабы по sql. лабы по sql. Методические рекомендации для выполнения лабораторных работ по дисциплине мдк. 05. 02 разработка кода информационных систем


    Скачать 126.92 Kb.
    НазваниеМетодические рекомендации для выполнения лабораторных работ по дисциплине мдк. 05. 02 разработка кода информационных систем
    АнкорЛабы по sql
    Дата31.01.2022
    Размер126.92 Kb.
    Формат файлаdocx
    Имя файлалабы по sql.docx
    ТипМетодические рекомендации
    #347099
    страница4 из 4
    1   2   3   4

    Цель: получение навыков разработки и отладки генератора случайных символов.

    Теоретические вопросы

    Понятие генератора случайных символов. Управление генератором случайных символов.

    Задание № 1. Разработать генератор случайных чисел.

    Случайные числа в языке программирования С++ могут быть сгенерированы функцией rand() из стандартной библиотеки С++. Функция rand() генерирует числа в диапазоне от 0 до





    RAND_MAX. RAND_MAX – это константа, определённая в библиотеке . Для MVS RAND_MAX = 32767, но оно может быть и больше, в зависимости от компилятора. Ниже  показана простая программка, использующая генератор случайных чисел rand():

    #include "stdafx.h" #include using namespace std;

     

    int main(int argc, char* argv[])

    {

    cout << "RAND_MAX = " << RAND_MAX << endl; // константа, хранящая максимальный предел из интервала случайных чисел

    cout << "random number = " << rand() << endl; // запуск генератора случайных чисел system("pause");

    return 0;

    }

    Максимальное случайное число в примере – это 32767. Зачастую, нам не нужен такой большой диапазон чисел от 0 до RAND_MAX. Например, в игре «Наперстки» необходимо отгадать, под каким из трёх напёрстков спрятан шарик, то есть генерация чисел должна выполняться в пределе от 1 до 3-х. Бросая монету, может возникнуть только два случая, когда монета упадёт «орлом» или «решкой» вверх, нужный интервал – от 1 до 2. Возникает потребность в масштабировании интервала генерации случайных чисел. Для того чтобы масштабировать интервал генерации чисел нужно воспользоваться, операцией нахождения остатка от деления «%»:

    // пример масштабирования диапазона генерации случайных чисел rand() % 3 +1 // диапазон равен от 1 до 3 включительно

    Число 3 является масштабируемым коэффициентом. То есть, какое бы не выдал число генератор случайных чисел rand() запись rand() % 3 в итоге выдаст число из диапазона от 0 до 2. Для того чтобы сместить диапазон, мы прибавляем единицу, тогда диапазон изменится на такой – от 1 до 3 включительно.

    Задание № 2Разработать программу, использующую масштабируемый генератор случайных чисел. Ниже показан код программы, которая несколько раз запускает функцию rand().

    // rand_ost.cpp: определяет точку входа для консольного приложения.

     

    #include "stdafx.h" #include using namespace std;

     

    int main(int argc, char* argv[])

    {

    cout << "1-random number = " << 1 + rand() % 3 << endl; // первый запуск генератора случайных чисел

    cout << "2-random number = " << 1 + rand() % 3 << endl; // второй запуск генератора случайных чисел

    cout << "3-random number = " << 1 + rand() % 3 << endl; // третий запуск генератора случайных чисел





    cout << "4-random number = " << 1 + rand() % 3 << endl; // четвёртый запуск генератора случайных чисел

    cout << "5-random number = " << 1 + rand() % 3 << endl; // пятый запуск генератора случайных чисел

    cout << "6-random number = " << 1 + rand() % 3 << endl; // шестой запуск генератора случайных чисел

    cout << "7-random number = " << 1 + rand() % 3 << endl; // седьмой запуск генератора случайных чисел

    cout << "8-random number = " << 1 + rand() % 3 << endl; // восьмой запуск генератора случайных чисел

    system("pause"); return 0;

    }

    При повторном запуске программы, печатаются те же самые числа. Суть в том, что функция rand() один раз генерирует случайные числа, а при последующих запусках программы всего лишь отображает сгенерированные первый раз числа. Такая особенность функции rand() нужна для того, чтобы можно было правильно отладить разрабатываемую программу. При отладке программы, внеся какие-то изменения, необходимо удостовериться, что программа срабатывает правильно, а это возможно, если входные данные остались те же, то есть сгенерированные числа. Когда программа успешно отлажена, нужно, чтобы при каждом выполнении программы генерировались случайные числа. Для этого нужно воспользоваться функцией srand() из стандартной библиотеки С++. Функция srand() получив целый положительный аргумент типа unsigned или unsigned int (без знаковое целое) выполняет рандомизацию, таким образом, чтобы при каждом запуске программы функция srand() генерировала случайные числа. Программа, использующая функцию srand() для рандомизации генератора случайных чисел rand():

    // srand.cpp: определяет точку входа для консольного приложения.

     

    #include "stdafx.h" #include using namespace std;

     

    int main(int argc, char* argv[])

    {

    unsigned rand_value = 11;

    srand(rand_value); // рандомизация генератора случайных чисел cout << "rand_value = " << rand_value << endl;

    cout << "1-random number = " << 1 + rand() % 10 << endl; // первый запуск генератора случайных чисел

    cout << "2-random number = " << 1 + rand() % 10 << endl; // второй запуск генератора случайных чисел

    system("pause"); return 0;

    }





    Задание № 3. Разработать обобщённый пример использования автоматического генератора случайных чисел с масштабированием. Пример работы программы:

    // srand_time.cpp: определяет точку входа для консольного приложения. #include "stdafx.h"

    #include 

    #include using namespace std;

     

    int main(int argc, char* argv[])

    {

    srand( time( 0 ) ); // автоматическая рандомизация cout << "rand_value = " << 1 + rand() % 10 << endl; system("pause");

    return 0;

    }

    Теперь при каждом срабатывании программы будут генерироваться совершенно случайные числа в интервале от 1 до 10, включительно.

    Задание № 4. Разрабать генератор случайных символов. Сформировать случайную сивольную последовательность.

     

    Литература

     

    1.   Страуструп Б. Язык программирования C++ для профессионалов [Электронный ресурс] / Б. Страуструп. – 2-е изд. – Электрон. текстовые данные. – М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 670 c. – 2227-8397. – Режим доступа: http://www.iprbookshop.ru/73737.html.

    2.   Кирнос В.Н. Информатика 2. Основы алгоритмизации и программирования на языке C++ [Электронный ресурс] : учебно-методическое пособие / В.Н. Кирнос. – Электрон. текстовые данные. – Томск: Томский государственный университет систем управления и радиоэлектроники, Эль Контент, 2013. – 160 c. – 2227-8397. – Режим доступа:http://www.iprbookshop.ru/14011.html.

    3.   Зоткин С.П. Программирование на языке высокого уровня C/C++ [Электронный ресурс] : конспект лекций / С.П. Зоткин. – 3-е изд. – Электрон. текстовые данные. – М. : МИСИ-МГСУ,  ЭБС АСВ, 2018. – 140 c. – 978-5-7264-1810-0. – Режим доступа: http://www.iprbookshop.ru/76390.html.

     

     

    ЛАБОРАТОРНАЯ РАБОТА № 12. ИНТЕГРАЦИЯ МОДУЛЯ В ИНФОРМАЦИОННУЮ СИСТЕМУ

     

    Цель: получение навыков интеграции модулей в информационную систему.

    Теоретические вопросы

    Понятие модуля.

    Управление модулями.





    Задание № 1. Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента с его инициалами, оценки по четырем экзаменам и пяти зачетам («з» означает зачет, «н» – незачет). Экзамены и зачеты нумеровать цифрами. Количество записей в файле не менее двадцати.

    При разработке приложения использовать стандартные модули.

    Задание № 2. Разработать программу, интегрирующую модули из приложения, разработанного в рамках задания №1, выводящую следующую информацию:

         фамилии неуспевающих студентов с указанием индексов групп и вида задолженности;

         фамилии студентов, сдавших все зачеты и получившие на экзаменах четверки и пятерки;

         средний бал, полученный каждым студентом.

     

    Литература

     

    1.   Страуструп Б. Язык программирования C++ для профессионалов [Электронный ресурс] / Б. Страуструп. – 2-е изд. – Электрон. текстовые данные. – М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 670 c. – 2227-8397. – Режим доступа: http://www.iprbookshop.ru/73737.html.

    2.   Кирнос В.Н. Информатика 2. Основы алгоритмизации и программирования на языке C++ [Электронный ресурс] : учебно-методическое пособие / В.Н. Кирнос. – Электрон. текстовые данные. – Томск: Томский государственный университет систем управления и радиоэлектроники, Эль Контент, 2013. – 160 c. – 2227-8397. – Режим доступа:http://www.iprbookshop.ru/14011.html.

    3.   Зоткин С.П. Программирование на языке высокого уровня C/C++ [Электронный ресурс] : конспект лекций / С.П. Зоткин. – 3-е изд. – Электрон. текстовые данные. – М. : МИСИ-МГСУ,  ЭБС АСВ, 2018. – 140 c. – 978-5-7264-1810-0. – Режим доступа: http://www.iprbookshop.ru/76390.html.

     

     

    ЛАБОРАТОРНАЯ РАБОТА № 13. РАЗРАБОТКА ПРИЛОЖЕНИЙ ДЛЯ МОДЕЛИРОВАНИЯ ПРОЦЕССОВ И ЯВЛЕНИЙ. ОТЛАДКА ПРИЛОЖЕНИЯ

     

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

    Теоретические вопросы

    Понятие модели.

    Моделирование процессов и явлений.

    Технологии моделирования процессов и явлений в приложениях.

    Задание № 1. Разработать физико-математическую модель системы при сободном падении физического тела, брошенного с высоты h и падающего свободно в течение t времени. При построении модели принять следующие гипотезы:

    1)  падение происходит в вакууме (то есть коэффициент сопротивления воздуха равен нулю);

    2)  ветра нет;

    3)  масса тела неизменна;

    4)  тело движется с одинаковым постоянным ускорением g в любой точке.

    Слово "модель" (лат. modelium) означает "мера", "способ", "сходство с какой-то вещью".





    Проблема моделирования состоит из трех взаимосвязанных задач: построение новой (адаптация известной) модели; исследование модели (разработка метода исследования или адаптация, применение известного); использование (на практике или теоретически) модели.

    Схема построения модели М системы S с входными сигналами X и выходными сигналами Y изображена на рисунке 28.












     

    Рисунок 28

     

    Если на вход М поступают сигналы из X и на входе появляются сигналы из Y, то задан закон, правило f функционирования модели, системы.

    Классификацию моделей проводят по различным критериям.

    Модель – статическая, если среди параметров описания модели нет (явно) временного параметра.

    Модель – динамическая, если среди параметров модели явно выделен временной параметр.

    Модель – дискретная, если описывает поведение оригинала лишь дискретно, например, в дискретные моменты времени (для динамической модели).

    Модель – непрерывная, если описывает поведение оригинала на всем промежутке времени.

    Модель – детерминированная, если для каждой допустимой совокупности входных параметров она позволяет определять однозначно набор выходных параметров; в противном случае – модель недетерминированная, стохастическая (вероятностная).

    Модель – функциональная, если представима системой функциональных соотношений (например, уравнений).

    Модель – теоретико-множественная, если представима некоторыми множествами и отношениями их и их элементов.

    Модель – логическая, если представима предикатами, логическими функциями и отношениями.

    Модель – информационно-логическая, если она представима информацией о составных элементах, подмоделях, а также логическими отношениями между ними.

    Модель – игровая, если она описывает, реализует некоторую игровую ситуацию между элементами (объектами и субъектами игры).

    Модель – алгоритмическая, если она описана некоторым алгоритмом или комплексом алгоритмов, определяющим ее функционирование, развитие. Введение такого, на первый взгляд, непривычного типа моделей (действительно, кажется, что любая модель может быть представлена алгоритмом ее исследования), на наш взгляд, вполне обосновано, так как не все модели могут быть исследованы или реализованы алгоритмически.

    Модель – графовая, если она представима графом (отношениями вершин и соединяющих их ребер) или графами и отношениями между ними.





    Модель – иерархическая (древовидная), если она представима иерахической структурой (деревом).

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

    Модель – визуальная, если она позволяет визуализировать отношения и связи моделируемой системы, особенно в динамике.

    Модель – натурная, если она есть материальная копия оригинала.

    Модель – геометрическая, если она представима геометрическими образами и отношениями между ними.

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

    Задание № 2. Разработать статическая модель движения тела по наклонной плоскости F = am. Динамическая модель типа закона Ньютона: F(t) = a(t)m(t) или, еще более точно и лучше, F(t)=s''(t)m(t). Если рассматривать только t = 0.1, 0.2, …, 1 (с), то модель St = gt2/2 или числовая последовательность S0 = 0, S1 = 0.01g/2, S2 = 0.04g, …, S10 = g/2 может служить дискретной моделью движения свободно падающего тела. Модель S = gt2/2, 0 < t < 10 непрерывна на промежутке времени (0;10).

    Задание № 3. Разработать модель популяции рыб, из которой в текущий момент времени изымается некоторое количество особей (идет лов рыбы). Динамика такой системы определяется моделью вида: xi + 1 = xi + аxi – kxi, х0 = c , где k – коэффициент вылова (скорость изъятия особей). Стоимость одной пойманной рыбы равна b руб. Цель моделирования – прогноз прибыли при заданной квоте вылова. Для этой модели можно проводить имитационные вычислительные эксперименты и далее модифицировать модель, например следующим образом.

    Эксперимент 1. Для заданных параметров a, c изменяя параметр k, определить его наибольшее значение, при котором популяция не вымирает.

    Эксперимент 2. Для заданных параметров c, k изменяя параметр a, определить его наибольшее значение, при котором популяция вымирает.

    Модификация 1. Учитываем естественную гибель популяции (за счет нехватки пищи, например) с коэффициентом смертности, равным, b: xi + 1 = xi + аxi – (k + b)xi, х0 = c .

    Модификация 2. Учитываем зависимость коэффициента k о от x (например, k = dx):

     

    .

     

    Литература

     

    1.   Страуструп Б. Язык программирования C++ для профессионалов [Электронный ресурс] / Б. Страуструп. – 2-е изд. – Электрон. текстовые данные. – М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 670 c. – 2227-8397. – Режим доступа: http://www.iprbookshop.ru/73737.html.

    2.   Кирнос В.Н. Информатика 2. Основы алгоритмизации и программирования на языке C++ [Электронный ресурс] : учебно-методическое пособие / В.Н. Кирнос. – Электрон. текстовые данные. – Томск: Томский государственный университет систем управления и радиоэлектроники, Эль Контент, 2013. – 160 c. – 2227-8397. – Режим доступа:http://www.iprbookshop.ru/14011.html.





    3.   Зоткин С.П. Программирование на языке высокого уровня C/C++ [Электронный ресурс] : конспект лекций / С.П. Зоткин. – 3-е изд. – Электрон. текстовые данные. – М. : МИСИ-МГСУ,  ЭБС АСВ, 2018. – 140 c. – 978-5-7264-1810-0. – Режим доступа: http://www.iprbookshop.ru/76390.html.

     

     

    ЛАБОРАТОРНАЯ РАБОТА № 14. ПРОГРАММИРОВАНИЕ ОБМЕНА СООБЩЕНИЯМИ МЕЖДУ МОДУЛЯМИ

     

    Цели: получение навыков программирования обмена сообщениями между модулями.

    Теоретические вопросы

    Понятие и структура сообщения. Обмен сообщениями между модулями.

    Задание № 1. Составить программу, помогающую сотрудникам Государственной инспекции безопасности дорожного движения (ГИБДД) обработать следующие данные: регистрационный номер автомобиля, марка автомобиля, цвет автомобиля, год выпуска, адрес владельца. Программа должна по требованию пользователя выдавать следующие сведения:

    •  адреса владельцев автомобилей заданной марки, определенного цвета;

    •  все данные об автомобиле с заданным регистрационным номером;

    •  все данные об автомобилях с известной цифровой частью регистрационногономера.

    Задание № 2. Программу, разработанную в задании №1, разбить на модули. Например, создать такие модули, как главный (содержащий функцию main()), чтения из файла в массив структур, вывод на экран содержимого массива структур, сортировка данных (при необходимости), меню, формирование документов и т.д.

    Задание № 3. Разработать схему межмодульных вызовов.

    Задание № 4. Проанализировать способы передачи аргументов между функциями и целесообразность использования глобальных данных.

     

    Литература

     

    1.   Страуструп Б. Язык программирования C++ для профессионалов [Электронный ресурс] / Б. Страуструп. – 2-е изд. – Электрон. текстовые данные. – М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 670 c. – 2227-8397. – Режим доступа: http://www.iprbookshop.ru/73737.html.

    2.   Кирнос В.Н. Информатика 2. Основы алгоритмизации и программирования на языке C++ [Электронный ресурс] : учебно-методическое пособие / В.Н. Кирнос. – Электрон. текстовые данные. – Томск: Томский государственный университет систем управления и радиоэлектроники, Эль Контент, 2013. – 160 c. – 2227-8397. – Режим доступа:http://www.iprbookshop.ru/14011.html.

    3.   Зоткин С.П. Программирование на языке высокого уровня C/C++ [Электронный ресурс] : конспект лекций / С.П. Зоткин. – 3-е изд. – Электрон. текстовые данные. – М. : МИСИ-МГСУ,  ЭБС АСВ, 2018. – 140 c. – 978-5-7264-1810-0. – Режим доступа: http://www.iprbookshop.ru/76390.html.
    1   2   3   4


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