Форум программистов, компьютерный форум CyberForum.ru

QBasic

Войти
Регистрация
Восстановить пароль
 
Petro29
5 / 5 / 0
Регистрация: 30.04.2016
Сообщений: 121
#1

Программа – «Лучший работник» - QBasic

27.11.2016, 10:45. Просмотров 219. Ответов 5
Метки нет (Все метки)

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
CLS
INPUT “ Кол. работников: “, n
FOR j = 1 TO n
PRINT j; “-м работником сделано деталей:”
    INPUT “   “,  k   ‘кол. собраных деталей
      S = S + k
NEXT j
PRINT “ Собрано деталей всеми работниками: “; S
PRINT “ Лучший работник – это  ?  -й работник.»
QBasic/QuickBASIC
1
2
3
4
5
6
Кол. работников:  3
1-й работник сделал деталей:  7
2-й работник сделал деталей:   8
3-й работник сделал деталей:  9
  Собрано деталей всеми работниками:  24
Лучший работник – это  ? –й работник.
Лучший работник – это 1-й, 2-й или 3-й работник? Имеет ли такая программа решение?


А вот другое решение этой же программы: Вопро тот же.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CLS
DIM A(5)
FOR j = 1 TO 5
PRINT j; “-м работником собрано деталей:”;
  INPUT “  “, A(j)   ‘кол. собранных деталей
     S = S + A(j)
NEXT j
    P = A(1)
FOR j = 1 TO 5
   PRINT A(j);
IF P < A(j) THEN P = A(j)
NEXT j
   PRINT
PRINT “ Собрано деталей всеми работниками: “; S
PRINT “ Лучший работник – это ?  -й работник.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
1-м работником собрано деталей:  12
2-м работником собрано деталей:   5
3-м работником собрано деталей:  8
4- м работником собрано деталей:  6
5-м работником собрано деталей:  9
12,  5,  8,  6,  9
Собрано деталей всеми работниками:  40
Больше всех собрано работником:   12
Лучший работник – это  ?  -й работник.

А как вывести индекс лучшего работника – не получается. Вы могли бы сделать это.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2016, 10:45     Программа – «Лучший работник»
Посмотрите здесь:

Определите лучший результат и номер спортсмена, показавший его - QBasic
В массив занесены данные о результатах выступления спортсменов в упражнении жим лежа : 305,5;363,5;320,5;190;301,5;290;312,5;315.Определите...

Программа для работы с массивом объектов типа Worker (работник) - C++
Здравствуйте! дали такое интересное задание: Worker: Фамилия и инициалы, Должность, Год поступления на работу, Зарплата. Создать...

Лучший математик среди шахматистов и лучший шахматист среди математиков — один и тот же человек или разные? - Логика и множества
Лучший математик среди шахматистов и лучший шахматист среди математиков — один и тот же человек или (вероятно) разные? Как формально, с...

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

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

Создать структуру Работник - C++
Создать структуру &quot;Работник&quot;, с такими строками: -фамилия -разряд -Семейное положение -пол -дети Создать массив этих структур,...

Описать класс Работник - Delphi
описать класс работник имя фамилия инициалы должность оклад и дата поступления . Помогите пожалуйста (

Фоновый работник, демон - Python
Вопрос знатокам django: какой способ будет наименее костыльным, чтобы вытянуть мнооооого иныфы (много запросов) с одного сервиса, складывая...

Описание структуры Работник - C (СИ)
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; typedef struct { char FIO; char Dolzhnost; char Obrazovanie; char Data; ...

Создать обьект работник( классы) - C#
Объект &quot;Работник&quot; (использовать члены-классы) поля:  фамилия и инициалы;  дата рождения (член-класс);  дата приема на работу...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
echs
891 / 1086 / 348
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
27.11.2016, 11:28     Программа – «Лучший работник» #2
Petro29
Лучший работник это тот, кто сделал больше деталей.
1. Значит вы ищете в массиве Максимум и одновременно
в другой переменной запоминаете индекс.
...
пример, взято из последней вашей программы и добавлено
две строки необходимого вам кода (переменная ind - это и
есть индекс лучшего работника). После выхода из цикла
ind надо распечатать.

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
P = A(1)
ind = 1
 
FOR j = 1 TO 5 
   PRINT A(j); 
   IF P < A(j) THEN 
      P = A(j) 
      ind = j
   END IF
NEXT j
Petro29
5 / 5 / 0
Регистрация: 30.04.2016
Сообщений: 121
25.12.2016, 12:03  [ТС]     Программа – «Лучший работник» #3
Программа – «Лучший работник».(изменённая с учётом вашего ответа)
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CLS
INPUT “ Кол. работников: “, n 
FOR j = 1 TO n
PRINT j; “-м работником собрано деталей:”;
  INPUT “  “, A(j)   ‘кол. собранных деталей
     S = S + A(j)
NEXT j
    P = A(1)
    ind = j
FOR j = 1 TO n
IF P < A(j) THEN 
    P = A(j)
    ind = j
  END IF
NEXT j
   PRINT
PRINT “ Собрано деталей всеми работниками: “; S
PRINT “ Работник, собравший больше всех деталей: “; P
PRINT “ Номер этого лучшего работника: “; ind
Если лучший работник 2-й или 3-й то всё нормально.
А вот при лучшем 1-м работнике вместо номера 1 выходит номер 4
QBasic/QuickBASIC
1
2
3
4
5
6
7
1-м работником собрано деталей:  12
2-м работником собрано деталей:  8
3-м работником собрано деталей:  9
 
Собрано деталей всеми работниками: 29
Больше всех собрано работником:   12
Номер этого лучшего работника:  № 4
Это, видимо, из-за того, что при определении Р мах вводили первый номер цикла.
И как же быть?
И ещё вопрос неразрешимый: Как бы сделать сумму собранных деталей
каждым работником за все дни. Очень надо!
echs
891 / 1086 / 348
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
25.12.2016, 15:08     Программа – «Лучший работник» #4
Petro29
Вы в строке 9 сделали опечатку
Смотрите тот код, что я вам предложил. Должно быть ind = 1 (ОДИН)
Petro29
5 / 5 / 0
Регистрация: 30.04.2016
Сообщений: 121
11.01.2017, 17:52  [ТС]     Программа – «Лучший работник» #5
С номером лучшего работника всё получилось. А ещё был вопрос про сумму каждого работ-
ника за все дни. Вопрос то был, а темы для него и не было. Вот теперь появилась: задаётся
количество дней, и, соответственно – вопрос внизу.

Добавлено через 19 секунд
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Кол. рабочих дней:  2
 
1 – й день
Кол. работников:  2
1-м работником собрано деталей:  15
2-м работником собрано деталей:  12
 
Собрано деталей всеми работниками за 1 – й день:  27
Работник, собравший больше всех деталей:   15
Номер этого лучшего работника:  № 1
 
2 – й день
Кол. работников:  3
1 – м  работником собрано деталей:  12
2 – м  работником собрано деталей:  21
3 – м  работником собрано деталей:  8
 
Собрано дет. всеми работниками за 2 – й день:  41
Работник, собравший больше всех деталей:  21
Номер этого лучшего работника:  №2
Вопрос: Определить сумму каждого работника за все дни. Вот тогда будет полноценный
лучший работник за все дни – за неделю, за месяц, а не за один день.
У меня не получилось.
echs
891 / 1086 / 348
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
11.01.2017, 18:20     Программа – «Лучший работник» #6
Petro29
Вам вероятно следует определиться с числом работников.
И для каждого работника следует задать массив. Размер
массива должен быть равен максимум 30 (дней). А то
он на экране не поместится...
Или лучше сразу задать матрицу. Каждая строка будет
обозначать одного работника. Сколько строк - столько
работников.
Кроме того придется ввести линейный массив, длина
которого равна количеству строк предыдущей матрицы
В этот массив будут внесены суммы (количество изделий)
каждого работника за все дни
...
примечание
в ручную матрицу устанешь заполнять.
либо операторы DATA - READ, а еще лучше
заполнение случайными числами.
Yandex
Объявления
11.01.2017, 18:20     Программа – «Лучший работник»
Ответ Создать тему
Опции темы

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