Расчет общего среднего времени выбора пункта меню

Страницы работы

Содержание работы

Министерство образования и науки РФ

Новосибирский Государственный Технический Университет

ОТЧЕТ

По лабораторной работе №2: “Расчет общего среднего времени выбора пункта меню”

Выполнили: Астапчук Л.А.

Данилов А.С.

Мещков Д.В.

Студенты: гр.ВИ-61

     Проверила: Лыгина Н.И.

Новосибирск,2010.

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

Ход работы.

НачалоАлгоритм.

Ввод данных,N = 6
L=100
t = выбора = время выбора пункта меню,Генерация случайного числа. X=random ();,Нахождение интервала, в котором лежит X,Выбор пункта меню на основе X,Генерация случайного числа. Y=random ();

,Расчет времени выбора по формуле n-ого закона
T = min(K)+(max(K)-min(K))*Y
,Определяем общее время работы программы T=T+t выбора,Проверка условия окончания работы
K<N
,Вычисляем общее среднее время  T= (∑_(i=1)▒Ti)/L,Выход
 


                                                                                                                    //N-общее количество пунктов меню.

                                                                                                                        //L- общее количество циклов.

p = вероятность выбора пункта меню                                                                                                                        //на основании того, какие пункты

                                                                                                                        выбираться чаще всего.

                                                                                                                        //время, которое у вас уйдет на выбор

                                                                                                                        того или иного пункта меню,

                                                                                                                        минимальное и максимальное.

Да, продолжаем работу

                                                                                                               Нет, окончание работы.

Интерфейс имеет вид, приведенный на рисунке. Чтобы программа начала работать, вводим количество пунктов меню, количество прогонов (повторений) программы, время выбора пункта меню, минимальное и максимальное. Далее жмем на кнопку «Вычисление». И на выходе получаем «Пункт меню», вернее, его номер, и общее среднее время работы программы. Все предельно просто.

Графический интерфейс:

Как было в самом начале.

Как стало:

Ниже приведен код, использованный в программе, с комментариями.

Листинг.

#include <vcl.h>

#pragma hdrstop

#include "uRedaktor.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

     float x;           //случайное число

     float k;           //пункт меню

     float n;          //количество пунктов меню

     float l;            //количество прогонов

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::btnOperationClick(TObject *Sender)

{

  x=random(10)*0.1;      //получение случайного числа

  float n, tmax, tmin, k;

  int i=1;

  tmax=StrToInt(edMax->Text); //получение максимального времени из компонента Edit

  tmin=StrToInt(edMin->Text);  //получение минимального времени из компонента Edit

  n=StrToInt(edN->Text);             //получение количества пунктов меню из компонента Edit

  p=i/n;                                            //Подсчет вероятностей

if (i!=n)

  {

    while (p<i/n)

      {

      i++;

      }

  }

 edK->Text=IntToStr(i);                //вывод пункта меню на экран

  float T;

  T=(tmin+(tmax-tmin)*x);          //нахождение времени выбора пункта меню по нормальному закону

  float Vre;

  Vre=Vre+T;      //нахождение общего времени работы с программой

  float sre;

  float l;

  l=StrToInt(edL->Text);                             //получение количества прогонов из компонента Edit

  sre=Vre*l/l;                                 //нахождение общего среднего времени работы с программой

  edCountMiddleTime->Text=FloatToStr(sre);    //выводим на экран

}

Результаты

1.  Количество

Количество прогонов

10

100

1000

5000

Среднее время

1,89

1,39

1,2

1,1

2.  Число пунктов

Вероятности выбора

Равномерная вероятность выбора

V

VV

VVV

VVVV

VVVV

VVVV

Среднее время

2,3

1,29

1,6

2,2

2,5

3,09

3,4

3.  Среднее время

Вероятности

выбора

Min=1

Max=4

Min=5

Max=8

Min=6

Max=8

Среднее время

1,29

6,19

6,59

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

При работе всего с одним пунктом время работы с программой очень мало, и это естественно. Чем больше пунктов, тем дольше работаешь с программой.

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

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

Похожие материалы

Информация о работе

Предмет:
Моделирование
Тип:
Отчеты по лабораторным работам
Размер файла:
49 Kb
Скачали:
0