Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.73
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
#1

Сколько клиентов обслужит мастер за смену продолжительностью T? - C++

01.10.2011, 16:22. Просмотров 2818. Ответов 47
Метки нет (Все метки)

Задали задачи на Си.
Для каждого посетителя парикмахерской (с одним мастером) известны t - момент его прихода и to – продолжительность его обслуживания. Сколько клиентов обслужит мастер за смену продолжительностью T?
Я так понял что тут нужно использовать циклы.Но написать прогу не могу.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <math.h.>
using namespace std; 
int main(void)
{ int t;  // момент прихода посетителя
  int to; // продолжительность его обслуживания
  int T;  // продолжительность смены
cout << "\nVvedite vremya prihoda kazhdogo klienta po poraydku:";
cin >> t;
cout << "\nVvedite prodolghitelnost obslughivaniya";
cin >>to;
Добавлено через 1 минуту
Подскажите как дальше прогу писать.... а то запутался капитально)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2011, 16:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сколько клиентов обслужит мастер за смену продолжительностью T? (C++):

Сколько клиентов обслужит мастер за смену? - C++
Для каждого посетителя парикмахерской с одним мастером известны следующие величины: t - момент его прихода, r - продолжительность его...

Определить сколько деталей можно изготовить за смену - C++
Продолжительность смены и время,требуемое на изготовление одной детали.Определить сколько деталей можно изготовить за смену. ...

Скольких обслужит мастер за смену - Pascal ABC
Спасайте с зачетом Для каждого посетителя парикмахерской(с одним мастром) известны слелующие величины: t-время его прихода,...

Сколько клиентов? - MySQL
Привет. Есть серверок на котором MySQL и программы получающие данные по сети или через rs 232 их 8 штук. Они все (программы) скидывают...

сколько клиентов выдержит хостинг - Linux
Извените, если не в том разделе, скажите сколько такой сервер: Сервер выдержит клиентов если на 1 профиль клиента будет 1 гб , 3 домена?...

Определить, сколько клиентов пользуются услугами определенного банка - Pascal ABC
1. Создать массив записей в соответствии с заданной структурой. Количество записей не больше 10. Определить, сколько клиентов пользуются...

47
#pragma
Временно недоступен
954 / 225 / 6
Регистрация: 12.04.2009
Сообщений: 921
03.10.2011, 10:27 #16
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
/* -------------------------------------------------------------------------- */
#define MAX_CLIENTS 10
#define INPUT_STREAM  stdin
#define OUTPUT_STREAM stdout
#define ERRORS_STREAM stderr
/* -------------------------------------------------------------------------- */
int main()
{
    int arriving_time [MAX_CLIENTS]; /* time t  */
    int serving_time  [MAX_CLIENTS]; /* time to */
    int working_time;                /* time T  */
    int i;                         
    int result;
 
    fprintf(OUTPUT_STREAM, "[ INFO: Please input data for each client ]\n");
 
    for (i = 0; i < MAX_CLIENTS; ++i) {
 
       result = fscanf(INPUT_STREAM,"%d %d",&arriving_time[i],&serving_time[i]);
 
       if (result != 2) {
          fprintf(ERRORS_STREAM, "[ ERROR: fscanf returned an error ]\n");
          return 1;
       }
    }
 
    fprintf(OUTPUT_STREAM, "[ INFO: Please input working time T of barber ]\n");
 
    result = fscanf (INPUT_STREAM, "%d", &working_time);
 
    if (result != 1) {
       fprintf(ERRORS_STREAM, "[ ERROR: fscanf returned an error ]\n");
       return 1;
    }
 
    /* Далее тут идёт код сортировки (про сортировку поищи по форуму, есть куча
     * материала, а после сортировки цикл сложения.
     */
 
    return 0;
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
03.10.2011, 11:40 #17
Цитата Сообщение от diagon Посмотреть сообщение
Как-то это на одну олимпиадную задачку смахивает...
Стыдно такие задачи для олимпиады давать. Особенно, если время прихода и обслуживания не пересекается.
Но задача с подвохом, ибо:

Цитата Сообщение от Вася1q Посмотреть сообщение
Для каждого посетителя парикмахерской (с одним мастером) известны t - момент его прихода и to – продолжительность его обслуживания.
Т.е. уже в условии задачи оговорено количество клиентов (массив времён приходов).
В противном случае, в задаче не хватает времени начала смены и времени обеденного перерыва.
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
05.10.2011, 04:41  [ТС] #18
ахах обеденный перерыв точно не помешал бы)))

Добавлено через 1 минуту
Ребята, а что означает INPUT_STREAM и ERRORS_STREAM и например еще "%d. Мы просто пока это не учили. Это случайно не на языке СИ? Просто мы си ++ учим. Там немножко по-другому. Растолкуйте кому не сложно)

Добавлено через 6 часов 25 минут
Цитата Сообщение от #pragma Посмотреть сообщение
return 0
а это как я понял пауза?
0
alkagolik
Заблокирован
05.10.2011, 06:22 #19
Цитата Сообщение от Вася1q Посмотреть сообщение
а это как я понял пауза?
это не пауза. это код окончания команды "stop", которая завершает команду "play" и сигнализирует что "play" завершена без ошибок. вроде получилось решить задачу. сначала условие не мог понять...
программа не учитывает случай когда стрижка последней бороды выходит за рамки рабочего дня, но... "кто платит женщину, тот её и танцует".
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
 
int compare(const void *i, const void *j){
    return *(int *)i - *(int *)j;
}
 
int main(){
    int to = 30, T, beginwork, count = 0;
    int t[50], i;
 
    srand(time(0));
    T = (24 * 60) / 2; //длина рабочего дня 12 часов (в суточных минутах), как на плантациях
    beginwork = 0;     //сдвиг начала рабочего дня. начинаем трудиться в 00:00 как реальный линуксойд, который "всю ночь gentoo пилил"
 
    //генерируем время прихода овечков
    //условно считаем его относительно начала рабочего дня
    for (i = 0; i < 50; ++i)
        t[i] = rand() % T + 15;
 
    qsort(t, 50, sizeof(int), compare);
    i = 0;
 
    while(beginwork < T && i < 50){
 
        if (i == 0){
            beginwork += t[i] + to;
            ++count;
        }
        else{
            if (beginwork >= t[i]){
                beginwork += to;
                ++count;
            }
            else{
                beginwork += (t[i] - beginwork + to);
                ++count;
            }
        }
        ++i;
    }
    printf("\nвремя приходов посетителей в минутах относительно начала работы\n\n");
    for (i = 0; i < 50; ++i)
        printf("%d ", t[i]);
    printf("\n\n");
    printf("успели подстичь посетителей %d", count);
    printf("\n\n");
    return 0;
}
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.10.2011, 10:59 #20
Цитата Сообщение от Вася1q Посмотреть сообщение
а это как я понял пауза?
Это означает, что функция возвращает нулевое значение. Точнее в данном случае эта запись ничего не делает и не несет никакой смысловой нагрузки.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:02 #21
Цитата Сообщение от diagon Посмотреть сообщение
очнее в данном случае эта запись ничего не делает и не несет никакой смысловой нагрузки.
о_0
А как же код завершения программы, который возвращается системе? Это оч смысловая нагрузка.
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.10.2011, 11:04 #22
Цитата Сообщение от Deviaphan Посмотреть сообщение
о_0
А как же код завершения программы, который возвращается системе? Это оч смысловая нагрузка.
Там return 0 в конце main'a стоит.
А последняя строка main'a интерпретируется как return 0, или что-то в этом роде.
В общем возвращается 0 по умолчанию.
Хотя насчет С89 не уверен...
1
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
06.10.2011, 08:50  [ТС] #23
Объясните пожалуйста, что это еще за оператор "beginwork" и функции srand qsort???? Блин...мы такое еще даже не учили. Можно ли упростить эту программу?

Добавлено через 18 часов 37 минут
В общем нужно считать что клиенты приходили по очереди и один за другим.

Добавлено через 11 минут
вот ошибки:
In function `int main()':
`time' undeclared (first use this function)
0
alkagolik
Заблокирован
06.10.2011, 08:51 #24
C
1
#include <time.h>
1
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
06.10.2011, 08:57  [ТС] #25
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int compare(const void *i, const void *j){
    return *(int *)i - *(int *)j;
}
 
int main(){
    int to = 30, T, beginwork, count = 0;
    int t[50], i;
 
    srand(time(0));
    T = (24 * 60) / 2; //äëèГ*Г* Г°Г*áî÷åãî Г¤Г*Гї 12 Г·Г*ñîâ (Гў ñóòî÷Г*ûõ ìèГ*ГіГІГ*Гµ), ГЄГ*ГЄ Г*Г* ГЇГ«Г*Г*ГІГ*öèÿõ
    beginwork = 0;     //ñäâèã Г*Г*Г·Г*Г«Г* Г°Г*áî÷åãî Г¤Г*Гї. Г*Г*Г·ГЁГ*Г*ГҐГ¬ òðóäèòüñÿ Гў 00:00 ГЄГ*ГЄ ðåГ*ëüГ*ûé ëèГ*óêñîéä, êîòîðûé "ГўГ±Гѕ Г*î÷ü gentoo ïèëèë"
 
    //ГЈГҐГ*åðèðóåì âðåìÿ ïðèõîäГ* îâå÷êîâ
    //óñëîâГ*Г® Г±Г·ГЁГІГ*ГҐГ¬ ГҐГЈГ® îòГ*îñèòåëüГ*Г® Г*Г*Г·Г*Г«Г* Г°Г*áî÷åãî Г¤Г*Гї
    for (i = 0; i < 50; ++i)
        t[i] = rand() % T + 15;
 
    qsort(t, 50, sizeof(int), compare);
    i = 0;
 
    while(beginwork < T && i < 50){
 
        if (i == 0){
            beginwork += t[i] + to;
            ++count;
        }
        else{
            if (beginwork >= t[i]){
                beginwork += to;
                ++count;
            }
            else{
                beginwork += (t[i] - beginwork + to);
                ++count;
            }
        }
        ++i;
    }
    printf("\nâðåìÿ ïðèõîäîâ ïîñåòèòåëåé Гў ìèГ*ГіГІГ*Гµ îòГ*îñèòåëüГ*Г® Г*Г*Г·Г*Г«Г* Г°Г*áîòû\n\n");
    for (i = 0; i < 50; ++i)
        printf("%d ", t[i]);
    printf("\n\n");
    printf("óñïåëè ïîäñòè÷ü ïîñåòèòåëåé %d", count);
    printf("\n\n");
    return 0;
}
вот у меня все так и не работает(((

Добавлено через 2 минуты
то есть вот так))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int compare(const void *i, const void *j){
    return *(int *)i - *(int *)j;
}
 
int main(){
    int to = 30, T, beginwork, count = 0;
    int t[50], i;
 
    srand(time(0));
    T = (24 * 60) / 2; //длина рабочего дня 12 часов (в суточных минутах), как на плантациях
    beginwork = 0;     //сдвиг начала рабочего дня. начинаем трудиться в 00:00 как реальный линуксойд, который "всю ночь gentoo пилил"
 
    //генерируем время прихода овечков
    //условно считаем его относительно начала рабочего дня
    for (i = 0; i < 50; ++i)
        t[i] = rand() % T + 15;
 
    qsort(t, 50, sizeof(int), compare);
    i = 0;
 
    while(beginwork < T && i < 50){
 
        if (i == 0){
            beginwork += t[i] + to;
            ++count;
        }
        else{
            if (beginwork >= t[i]){
                beginwork += to;
                ++count;
            }
            else{
                beginwork += (t[i] - beginwork + to);
                ++count;
            }
        }
        ++i;
    }
    printf("\nвремя приходов посетителей в минутах относительно начала работы\n\n");
    for (i = 0; i < 50; ++i)
        printf("%d ", t[i]);
    printf("\n\n");
    printf("успели подстичь посетителей %d", count);
    printf("\n\n");
    return 0;
}
Добавлено через 49 секунд
но все равно не работает((( хотя вроде бы расчеты ты предложил грамотные...
0
alkagolik
Заблокирован
06.10.2011, 08:58 #26
Цитата Сообщение от Вася1q Посмотреть сообщение
вот у меня все так и не работает(((
что значит не работает? конкретно, что, где, как именно, как это выглядит и чем пахнет
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
06.10.2011, 09:53  [ТС] #27
вот скрин прогораммы. Язык у меня русский неправильно отображает, но это не проблема. Главное в самой ошибке.
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
06.10.2011, 09:58  [ТС] #28
0
alkagolik
Заблокирован
06.10.2011, 09:59 #29
Цитата Сообщение от Вася1q Посмотреть сообщение
Главное в самой ошибке.
можжет вы все таки скажете что за такая таинственная ошибка? насчет локализации кириллицы, это кто-то другой подскажет, я не в курсе как это делается.
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
06.10.2011, 10:01  [ТС] #30
я копирую код программы, который ты сделал. Вставляю его в программу DEV C++ успешно компилирую ее. Затем запускаю и на экран выводятся эти числа. И мне даже не приходится НИЧЕГО вводить.
0
06.10.2011, 10:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 10:01
Привет! Вот еще темы с ответами:

Сгенерировать 10 звуковых сигналов продолжительностью 0,2 секунды с задержкой 0,2 - Assembler
Задание1: Сгенерировать 10 звуковых сигналов продолжительностью 0,2 секунды с задержкой 0,2 секунды между их воспроизведением. ...

Оптимизация запроса - однотипные выборки выполняются с различной продолжительностью - SQL Server
Есть проблема с функцией. В функции делается несколько похожих друг на друга выборок. Все делаются достаточно быстро (&lt;= 1 секунды) кроме...

Генератор прямоугольных импульсов. Таймер с фиксированной паузой и продолжительностью - Visual Basic
Доброго времени суток форумчани. Пишу генератор импульсов. Как зделать так чтобы в таймера было фиксированое время выполнения и паузы? ...

Найти максимальное число участников среди проектов продолжительностью год - C#
Написать свойство int, возвращающее максимальное число участников среди проектов продолжительностью год. Есть класс Researcher ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru