Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
1

Лучший работник

10.10.2019, 15:17. Показов 2038. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. Определить количество собранных деталей каждым
работником за все дни (чтобы можно было определять
и за неделю или за месяц).
2. Определить работника, сделавшего за все дни
наибольшее количество деталей.
19.05.2019 был получен ответ от модератора кота Бегемота
/Вы складываете элементы массива В, которого не существует.
Вы складываете нули. Поэтому у Вас и в ответе ноль./
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CLS
INPUT “ Кол. рабочих дней: Кол. работников:  “, M, N
   FOR k = 1 TO M
PRINT  “          “; k; “¬ ¬¬¬¬–й день”
      S = 0
   FOR j = 1 TO N
PRINT j; “–й работник собрал деталей :” ;
INPUT “  “, A(j)   ‘Кол. собранных деталей
     S = S + A(j)
   NEXT j
PRINT “ Кол. собранных дет. всеми работниками: “; S
    NEXT k:  PRINT
   FOR k = 1 TO M
      FOR j = 1 TO Т
         S1 = S1 + A(j)
          S2 = S2 + A(j)
    NEXT j, k
          S3 = S1 + S2
PRINT “ Кол. собранных дет. всеми работниками за все дни:”; S3
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
Кол. рабочих дней. Кол. работников: 2,  2
            1-й день
1-й работник собрал деталей: 10
2-й работник собрал деталей: 11
Кол. собр-х дет-й всеми работниками: 21
             2-й день
1-й работник собрал деталей: 11
2-й работник собрал деталей: 9
Кол. собр-х дет-й всеми работниками: 20
 
Кол. собр-х деталей всеми работниками за все дни:  80
Заменил строки S1 = S1 + B(j) на S1 = S1 + A(j)
S2 = S2 + B(j) S2 = S2 + A(j)
Но и с заменой B(j) на A(j) не получилось то что надо.
Получил сумму работников 80, а не 41. Почему?
Как же всё-таки сделать эту программу работающей
должным образом?

Вот попытка сделать вариант этой же
программы:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
CLS
INPUT “ Кол. работников: “, N
INPUT “ Кол. рабочих дней: “, M
    FOR I = 1 TO N
       PRINT
PRINT “  Выполнено “ ; i;  “-м работником”
     FOR j = 1 TO M
PRINT “  “ ; j; “-й день “;
   INPUT “   “, k
       S = S + k
      NEXT j
PRINT “ Выполнено дет. “ ; i:   “-м работником за все дни:”; S
    NEXT i
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
Кол. работников:  2
Кол. рабочих дней:  2
 
Выполнено 1-м работником
   1-й день   10
   2-й день   11
Выполнено дет. 1-м работником за все дни:  21
 
Выполнено 2-м работником
    1-й день   13
    2-й день   12
Выполнено дет. 2-м работником за все дни:  46
А как выделить лучшего работника и присудить
ему медаль?
Что сравнивать – ведь суммы 1-го и 2-го работника
обозначены одной переменной S.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2019, 15:17
Ответы с готовыми решениями:

Программа Лучший работник
1. Определить количество собранных деталей каждым работником за все дни (чтобы можно было...

Программа – «Лучший работник»
CLS INPUT “ Кол. работников: “, n FOR j = 1 TO n PRINT j; “-м работником сделано деталей:” ...

Определите лучший результат и номер спортсмена, показавший его
В массив занесены данные о результатах выступления спортсменов в упражнении жим лежа :...

Базовый класс работник. Производные работник на почасовой оплате и на окладе
базовый класс-работник. производные-работник на почасовой оплате и на окладке. Создать 1 базовый...

12
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
29.02.2020, 11:01  [ТС] 2
Программа «Лучший работник».
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CLS
DIM A(5)
   FOR I = 1 TO 2
    PRINT “   “; i ;  “ – й день “
INPUT “  Ввести кол. работников: “, N
   FOR j = 1 TO N
PRINT j; “- м работником собрано деталей: “;
INPUT “   “, A(j)   ‘Кол. собранных деталей
    S = S + A(j)
   NEXT j
PRINT “ Собрано дет. всеми работ-ми за”; i; “- й день: “; S
    P = A(1): ind = 1
   FOR j = 1 TO 5
     IF P < A(j) THEN  P = A(j):  ind = j
   NEXT: PRINT
PRINT “ Работник, собравший больше всех деталей: “; P
PRINT “ Номер этого лучшего работника: “; ind
   NEXT i
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 1 -й  день
Ввести кол. работников:  3
1   -м работником собрано деталей:  15
2   –м работником собрано деталей:  12
3   – м работником собрано деталей:  17
Собрано дет. всеми работ-ми за 1 –й день:  44
 
Работник, собравший больше всех деталей:  17
Номер этого лучшего работника:  3
            2 – день
Ввести кол. работников:  2
1   - м  работником собрано деталей:  19
2    - м  работником собрано деталей:  22
Собрано дет. всеми  работ-ми  за  2-й день:  85
 
Работник, собравший больше всех деталей:  22
Номер этого лучшего работника:  2
Для 2-го дня количество собранных деталей должно быть 41. А показано 85 – количество деталей всех
работников за все дни.
Как сделать, чтобы за 2-й день количество деталей было бы 41, а общее количество деталей за все дни
было бы 85 в последней строке выхода, которую ещё надо ввести в программу.
0
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,624
Записей в блоге: 2
29.02.2020, 12:23 3
Читай своё мумиё:

"1. Определить количество собранных деталей каждым
работником за все дни (чтобы можно было определять
и за неделю или за месяц).
2. Определить работника, сделавшего за все дни
наибольшее количество деталей."

Где тут условие? Мозги пудрить пришёл?
Что такое "за все дни", за какие за все? Заданный интервал или от рождества христова?
Интервал запроса данных разделён с интервалом работы(сборки деталей) или нет?
Как происходит сборка, у детали есть временной штамп и идентификатор работника или чё?

Ну и вот это:
чтобы можно было определять и за неделю или за месяц
Сам то понял что написал?

Как не зная ТОЧНОГО условия задачи можно вообще что-то делать? Совсем крыша едет?
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
15.03.2020, 11:57  [ТС] 4
Вы не поняли вопросов к этой задаче. А требовалось и всего то:
1. Для 2-го дня количество собранных деталей должно быть 41, а гн 85 (количество деталей за все дни).
2. Определить количество собранных деталей каждым работником за все дни (т. е. за два введённых дня). А я думаю, разберусь, используя Ваш ответ.
На первый вопрос отвечать не надо. Сделал сам.
Хотелось бы получить ответ на второй вопрос.
А временных штампов к деталям и идентификаторов работников – этого мне не надо (этого я не понимаю).
0
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,624
Записей в блоге: 2
15.03.2020, 20:27 5
Цитата Сообщение от Petro29 Посмотреть сообщение
А временных штампов к деталям и идентификаторов работников – этого мне не надо (этого я не понимаю).
Ну тогда подбирай руками на листике, если ты ввод за вычисление держишь. Фигли тут ещё скажешь.


Цитата Сообщение от Petro29 Посмотреть сообщение
Вы не поняли вопросов к этой задаче.
У тебя условия НЕТ до сих пор. Прозрей "старче".
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
03.05.2020, 10:59  [ТС] 6
Это старая пластинка. Ей уже несколько лет. Так мы и не ответили на вопрос: Определить количество собранных деталей
каждым работником за все дни, а за неделю, месяц, я думаю, разберусь, используя Ваш ответ.
Вот последний вариант этой программы:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CLS
INPUT “  Кол. рабочих дней: “, M
   FOR k = 1 TO M
    PRINT “         “; k ;  “ – й день “
INPUT “  Кол. работников: “, N
       S = 0
   FOR j = 1 TO N
PRINT j; “- й работник собран деталей: “;
INPUT “   “, A(j)   ‘Кол. собранных деталей
    S = S + A(j)
   NEXT j
PRINT “ Собрано дет. всеми работ-ми за”; k; “- й день: “; S
    P = A(1): ind = 1
   FOR j = 1 TO N
     IF P < A(j) THEN  P = A(j):  ind = j
   NEXT: PRINT
PRINT “ Работник, собравший больше всех деталей: “; P
PRINT “ Номер этого лучшего работника: “; ind
   NEXT
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1 -й  день
Кол. работников:  2
1   -й работник собрал деталей:  15
2   –й работник собрал деталей:  12
          Собрано дет. всеми работ-ми за 1 –й день:  27
 
Работник, собравший больше всех деталей:  15
Номер этого лучшего работника:  1
            2 – день
Кол. работников:  2
1   - й  работник собрал деталей:  19
2    - й  работник собрал деталей:  22
Собрано дет. всеми  работ-ми  за  2-й день:  41
 
Работник, собравший больше всех деталей:  22
Номер этого лучшего работника:  2
Вариантов этой программы наделано множество. А вот заключительный вопрос до сих пор остался без ответа.
Вы «не сумели» или не захотели ответить на этот вопрос?
А ведь эта программа деловая. Она годится для подсчёта рейтинга футболистов, подсчёта баллов учеников и т. д.
Так что такая программа очень нужная!
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
25.06.2020, 10:32  [ТС] 7
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
CLS
INPUT “     Кол. рабочих дней: “,n
   FOR I = 1 TO n
    PRINT “    Кол. работников: “, m
        S = 0
   FOR j = 1 TO m
    PRINT j; “-й работник сделал “;
INPUT “  “, A(k)
     S = S + A(k)
   NEXT j
PRINT “ Сделано всеми за “; n; “-день”; S
   NEXT i: PRINT
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
  Кол. рабочих дней:  2
           1 –й день
      Кол. работников:  2
1-й работник сделал   12
2-й работник сделал   13
Сделано всеми за 2 дня:  25
            2-й день
       Кол. работников:  2
1-й работник сделал   8
2-й работник сделал   9
Сделано всеми за 2 дня:  17
А как же всё-таки найти количество собранных деталей за все дни каждым работником? Это проблема трудно разрешимая?
0
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
25.06.2020, 16:15 8
На самом деле, это очень простая программа, но Вы сами регулярно запутываете условия, то вам одно надо, то другое.
Сформулируйте задачу чётко:
Что вводится, что должно быть на выходе, а писать Вашу программу - дело 10 минут.
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
06.07.2020, 13:31  [ТС] 9
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CLS
INPUT “ Ввести кол. рабочих дней: “, n
    R1 = 0:  R2 = 0  ‘До начала работы
   FOR I = 1 TO n
     PRINT “           “; i; “-й день”
INPUT “ Сколько сделано дет. 1-м работником: “, X
INPUT “ Сколько сделано дет. 2-м работником: “, Y
      R1 = R1 + X
      R2 = R2 + Y
PRINT “ Кол. сделанных дет. за день всеми работниками: ; R1+R2
   NEXT i: PRINT
PRINT1-м работником за”; n; “-дня сделано: “ R1; “inт”
PRINT2-м работником за”; n; “-дня сделано: “ R2; “inт”
        PRINT
     IF R1 > R2 THEN
PRINT1-м работ-м за; “; n; “-дня сделано больше на “; R1 – R2
         ELSE
     IF R2 > R1 THEN
PRINT2-м работ-м за; “; n; “-дня сделано больше на “; R2 – R1
          ELSE
PRINT1-м  и  2-м работ-м за”; n; “-дня сделано поровну”
        END IF
           END IF
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Ввести кол. рабочих дней:  2
             1 – й день
Сколько сделано дет. 1-м работ.  12
Сколько сделано дет. 2-м работ.  13
Кол. сделанных дет. за день всеми работниками:  25
              2 – й день
Сколько сделано дет. 1-м работ.  5
Сколько сделано дет. 2-м работ.  9
Кол. сделанных дет. за день всеми работниками: 39
 
1-м работником за 2 дня сделано:  17 шт
2-м работником за 2 дня сделано:  22 шт
 
2-м работником за 2-дня сделано больше на  5 шт
Количество сделанных деталей за все дни каждым работником я сделал сам.
А вот со строкой 10: Кол. сделанных деталей за 2-й день всеми работниками: 39. А должно быть 14.
Непорядок. Как бы эту задачку решить?
А можно добавить и строку: Кол. сделанных деталей всеми работниками за все дни.
0
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
06.07.2020, 17:33 10
Цитата Сообщение от Petro29 Посмотреть сообщение
Как бы эту задачку решить?
Вы по-русски понимаете?
Вас попросили чётко сформулировать задачу: что вводится, что должно быть на выходе.
Вместо этого вы снова подсовываете свою мутную программу.
Мало найдётся идиотов, которые станут решать задачу "пойди туда, не знаю куда, принеси то, не знаю что"
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
18.10.2020, 09:04  [ТС] 11
С этой программой мы уже имели дело, но так и не довели её до полного завершения.

Как завершить эту программу с такими строками - вот что должно быть на выходе:

1. Количество собранных деталей за все дни всеми работниками.
2. Каким работником собрано больше всех деталей за все дни.
3. Работнику, собравшего больше всех деталей, присудить медаль.

После ответа на решение этой программы я пока прекращаю беспокоить вас своими вопросами. А за то, что вы возились со мной несколько лет, вам - ВЕЛИКОЕ СПАСИБО!
С учётом ваших ответов я создаю базу материалов на эти темы для своего подрастающего поколения внуков (5 лет и 1.5 года). Возможно , для них это пригодится.
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
10.11.2020, 12:40  [ТС] 12
Напишу все-таки в последний раз. Неужели её нельзя выполнить? Или вы уже не ходите заниматься этой программой? Или с такими условиями ее не решить? Хотелось бы получить всё таки решение этой программы.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
CLS
INPUT “ Ввести кол. рабочих дней: “, M
    FOR i = 1 TO M
PRINT “         “; i; “-день”
INPUT “     Кол. работников: “, n
     S = 0
   FOR j = 1 TO n
PRINT  j; “-й работник собрал деталей: “;
INPUT “  “, A(i)  ‘Кол. собранных деталей
     S = S + A(i)
   NEXT j
PRINT “ Кол. собр. Деталей за день всеми работ-ми: “; S
   NEXT i
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
Ввести кол. рабочих дней:  2
        1 –день
     Кол. работников:  2
1-й  работник собрал деталей:  10
2-й  работник собрал деталей:  11
Кол. собр. Деталей за день всеми работ.:  21
         2-й день
      Кол. работников:  3
1-й работник собрал деталей:  9
2-й работник собрал деталей:  12
3-й работник собрал деталей:  8
Кол. собр. Деталей за день всеми работ.:  29
кот Бегемот, можно ли завершить эту программу с такими строками:
1. Количество собранных деталей за все дни всеми работниками.
2. Каким работником собрано больше всех деталей за все дни.
0
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,624
Записей в блоге: 2
13.11.2020, 19:01 13
Цитата Сообщение от Petro29 Посмотреть сообщение
кот Бегемот, можно ли завершить эту программу с такими строками:
1. Количество собранных деталей за все дни всеми работниками.
2. Каким работником собрано больше всех деталей за все дни.
Тебе кот уже сказал, что это не условие. ПК не знает что такое "все дни", ему нужна формализация.
Входной формат данных(с данными вместе) и оговоренный выходной. Остальное - к провидцам и оракулам.

Добавлено через 3 минуты
Сколько нужно повторить, чтобы до человека допёрло.
0
13.11.2020, 19:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2020, 19:01
Помогаю со студенческими работами здесь

Ввести в типизированный файл ФИО и лучший результат спортсмена, а потом изменить его так, чтобы осталось N лучший спортсменов
Задание состоит в том, чтобы ввести в типизированный файл ФИО и лучший результат спортсмена, а...

Лучший математик среди шахматистов и лучший шахматист среди математиков — один и тот же человек или разные?
Лучший математик среди шахматистов и лучший шахматист среди математиков — один и тот же человек или...

Справочник Работник
Всем привет! не судите мои знания строго есть справочник Работник в нем ФИО,должность,кол-во...

Создать класс Работник
Создать класс РАБОТНИК со следующими полями: фамилия, год приема на работу, должностной оклад....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru