Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неозднозначность в задаче из книги Дейтелов(5изд) 
:(
    Опции темы
EvilsInterrupt
Дата 3.10.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



На  форуме есть ветка, где новичкам рекомендуется к прочтению книга Дейтелов для освоения С++. В виду того что мои знания этого языка весьма скромны начал ее читать и уже который раз сталкиваюсь с неоднозначностями в задачках, которые допускают авторы в своих задачах прилогаемые ими в конце каждой главы.

Сейчас, в текущий момент прорешиваю Главу №5, а в частности задачу №21. Вот как она звучит:

Цитата

Компания платит своим сотрудникам или как менеджерам(которые получают
фиксированный недельный оклад), или как почасовым работникам(которые по-
лучают фиксированную почасовую оплату за первые 40 рабочих часов и полутор-
ную почасовую ставку за переработку сверх 40 часво), или как работникам на ко-
миссионных началах(которые получают $250 плюс 5.7% от сумму недельных
продаж), или как сдельщикам(которые получают фиксированную сумму с каж-
дой выработанной ими единицы продукции - каждый сдельщик в этой компании
выпускает только один вид продукции). Напишите программу расчета еженедель-
ной оплаты каждого сотрудника. Вы не знаете заранее числа сотрудников. Каж-
дый тип сотрудника имеет свой код оплаты: менеджеры имеют код 1, почасовые
работники - кода 2, работающие на комиссионых началах имеют код 3, сдельщи-
ки - код 4. Используйте оператор switch, основанный на этих кодах оплаты, для расчета
выплат каждому сотруднику. В операторе switch предлагайте пользователю(клер-
ку, составляющему расчетную ведомость) ввести соответствующие данные, необ-
ходимые для расчета выплаты сотруднику в соответствии с его кодом оплаты.


Для меня  реализации этой задачи видится таковой:
1) Попросить клерка, юзера программы, ввести ставку сотрудника(оклад или почасовую оплату и т.д.)
2) Попросить ввести очередного сотрудника
3) Если очередной сотрудник равен контрольному значению, то завершить работу (из условия задачи: "Вы не знаете заранее числа сотрудников")
4) Если не равен, то действуем соглассно словам: "ввести соответствующие данные, необходимые для расчета выплаты сотруднику в соответствии с его кодом оплаты."
5) вывести результат
6) перейти в п.2

При обсуждении задачки с другом, понял что он ее понимает по другому. Возникают вопросы:
1) Прав ли я? Если нет, то почему?
2) Что требуется делать читающему новичку, если он увидел нечетко поставленную задачу ? Скипать или "буксовать" пытаясь ее решить? )))
PM MAIL WWW ICQ Jabber   Вверх
world
Дата 3.10.2010, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 2.10.2009
Где: Харьков

Репутация: нет
Всего: 12



Я вижу решение задачи в следующем

Код

Вводим код оплаты сотрудника.
Если код == 0. Выходим из программы.
Если код == 1. Просим ввести недельній оклад сотрудника.
Если код == 2. Просим ввести плату за час и количество проработанных часов.
Если код == 3. Просим ввести сумму недельных продаж.
Если код == 4. Просим ввести сумму с единицы продукции и количество произведённых единиц.
В зависимости от выбраанного кода считаем зароботную плату сотрудника.
Переходим к пункту 1.


Исправил в соответствие с замечанием, mes, действительно мы можем расчитать 0 сотрудников.

Это сообщение отредактировал(а) world - 3.10.2010, 16:02
--------------------
Say what you mean, and mean what you say. Robert Wilson Cody
PM MAIL WWW ICQ Skype   Вверх
mes
Дата 3.10.2010, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



1. 
Цитата(EvilsInterrupt @  3.10.2010,  14:29 Найти цитируемый пост)
Вы не знаете заранее числа сотрудников

спрашиваете есть ли еще сотрудник

2.
Цитата(EvilsInterrupt @  3.10.2010,  14:29 Найти цитируемый пост)
 Каж-
дый тип сотрудника имеет свой код оплаты: менеджеры имеют код 1, почасовые
работники - кода 2, работающие на комиссионых началах имеют код 3, сдельщи-
ки - код 4.

Просить ввести код сотрудника (1-4).. Можно объединить с пунктом 1. задав например 0 для отсутствия клиента

Цитата(EvilsInterrupt @  3.10.2010,  14:29 Найти цитируемый пост)
Используйте оператор switch, основанный на этих кодах оплаты, для расчета
выплат каждому сотруднику. В операторе switch предлагайте пользователю(клер-
ку, составляющему расчетную ведомость) ввести соответствующие данные, необ-
ходимые для расчета выплаты сотруднику в соответствии с его кодом оплаты.

т.е. в зависимости от кода спрашиваете или почасавые, либо комиссионые, либо фиксированные расчетные данные.. 




--------------------
PM MAIL WWW   Вверх
EvilsInterrupt
Дата 3.10.2010, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



world, 
Если взять слова из задачи:
"Напишите программу расчета еженедельной оплаты каждого сотрудника."
и:
"которые получают фиксированный недельный оклад)"

то соглассно  твоему :
Цитата

Если код == 1. Просим ввести недельній оклад сотрудника.
...
В зависимости от выбраанного кода считаем зароботную плату сотрудника.


Означает, что для менеджера тупо ввести недельную зарплату и ее же вывести! Как-то примитивно )))
Мой п.1 основан на то что менеджеров может быть много, что Вася, что Петя, что еще ктото, но  у всех фиксированный недельный оклад. 

Однако твой вариант был самым первым что в голову пришел, но недумаю что нужно постоянно вводить одно  и тоже! )
PM MAIL WWW ICQ Jabber   Вверх
mes
Дата 3.10.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(world @  3.10.2010,  14:51 Найти цитируемый пост)
Я вижу решение задачи в следующем

 тут надо выбрать, минимальное число сотрудников 0 или 1.. от этого зависит политика выхода из цикла..
я склоняюсь к нулевому..

Добавлено через 3 минуты и 27 секунд
Цитата(EvilsInterrupt @  3.10.2010,  14:56 Найти цитируемый пост)

Означает, что для менеджера тупо ввести недельную зарплату и ее же вывести! Как-то примитивно )))

ну если б они получали фиксированную дневную зарплату, Вас бы не смущало бы.. а тут просто совпадение расчетных сроков smile

Добавлено через 5 минут и 5 секунд
Цитата(EvilsInterrupt @  3.10.2010,  14:56 Найти цитируемый пост)
но недумаю что нужно постоянно вводить одно  и тоже! ) 

у каждого менеджера своя фиксированная ставка.. и даже если у некоторых (или всех) она может совпадать, условие задачи нам не дает никаких предупреждающих выводов об этом. smile


--------------------
PM MAIL WWW   Вверх
EvilsInterrupt
Дата 3.10.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



Цитата

ну если б они получали фиксированную дневную зарплату, Вас бы не смущало бы.. а тут просто совпадение расчетных сроков 

Вот это совпадение и вводит меня в тупик, т.к. привык что задачки развивают, а тут как-то примитивно )

PM MAIL WWW ICQ Jabber   Вверх
mes
Дата 3.10.2010, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(EvilsInterrupt @  3.10.2010,  15:05 Найти цитируемый пост)
Вот это совпадение и вводит меня в тупик, т.к. привык что задачки развивают, а тут как-то примитивно )

ну так примитивно на 1 из 4 пунктов.. я думаю сделано специально, чтоб показать какие могут быть различия в зависимости от способа обработки данных smile


--------------------
PM MAIL WWW   Вверх
EvilsInterrupt
Дата 3.10.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



Цитата

ну так примитивно на 1 из 4 пунктов.. я думаю сделано специально, чтоб показать какие могут быть различия в зависимости от способа обработки данных 

Вполне возможно. Думаю вопрос исчерпан )
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.