Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2009, 14:39   #1
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию Офис

В месяце 31 день, мы знаем сколько сотрудников офиса приходило каждый день. Так же известно что каждый берет РОВНО 4 выходных. Необходимо определить сколько работников в офисе.
Входные данные: 31 число (количество работников приходивших каждый день), например: 10 11 10 12...
Выходные данные: Количество работников. (одно число)

Цитата:
Пример:
Входные данные:
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0 0 0 0
Вывод: 10
PS: Все числа записанные в одну строку (во входном файле)
Данные считываются и записываются в текстовые файлы.
V@mpir вне форума Ответить с цитированием
Старый 18.10.2009, 19:43   #2
Грымзик
Пользователь
 
Регистрация: 17.09.2009
Сообщений: 40
По умолчанию

А что нужно? Прогу написать? Тогда какой язык?
А если просто как это считается - то сумма всех цифр,
деленная на 27.
Грымзик вне форума Ответить с цитированием
Старый 18.10.2009, 21:02   #3
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию

Да написать код. Извиняюсь забыл про язык - Дельфи. На счет вашей логики вы правы, возможно вы правы, я тоже нашел некою закономерность как произвести данный подсчет, но тем не менее остаются сомнения, ведь это логика действительна только для такого набора данных, а если они будут другими? Привести или придумать пример других данных я не могу, так это довольно трудно, необходимо будет произвести подсчеты и сопоставить множество значений, таких как количество взятых выходных совпадает ли оно с возможным и так далее, следовательно проверить не на чем. Решил обратится за помощью с целью может кто встречал схожие задачи и вывел алгоритм.
Так же здесь применим способ найти наибольшее число умножить на 31, вычесть из данного числа сумму всех чисел и разделить на 4. Но опять токи встаёт вопрос о верности данного алгоритма, ведь получается что я всего лишь подгоняю под ответ...
V@mpir вне форума Ответить с цитированием
Старый 18.10.2009, 21:31   #4
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Математика, 6ой класс, повторение темы уравнения.
Если количество выходных 4, а количество работников x, то суммарное количество выходных 4*x. Если в месяце 31 день, то общее количество возможных рабочих дней 31*x. Отнимем и получим 27*х. Отсюда х равно s/27. Это чтоб ни у кого не возникало сомнений в правильности решения.
LeBron вне форума Ответить с цитированием
Старый 18.10.2009, 21:32   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

свсе сотружники отаботали (31-4)*x

все сотрудники отработвли работали 1 + работали 2 + ... + работали 31 (сумма работавших в кажый день)

составляем уравнение, решаем, получаем ответ.

x=сумма / (31-4)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.10.2009, 21:34   #6
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

V@mpir, Ваш второй вариант ошибочный. Он даст неверный ответ, если в течении месяца не было ни одного дня, когда все сотрудники работали, а не находились на выходном.

Последний раз редактировалось LeBron; 18.10.2009 в 21:36.
LeBron вне форума Ответить с цитированием
Старый 18.10.2009, 21:51   #7
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию

Всем спасибо! Но еще раз для верности... Нужно будет на2йти сумму всех работников (сложить каждый день - элемент массива) и разделить на 31-4?
Цитата:
var
day : array [1..31] of integer;
i,j,sum:integer;
divis:real;
f,f2:textfile;
begin
assignfile (f,'b.in');
reset(f);
assignfile(f2,'b.out');
rewrite(f2);
for i := 1 to 31 do
begin
read(f,day[i]);
end;
sum:=0;
for j:= 1 to 31 do
begin
sum:=sum+day[j];
end;
divis:=sum/(31-4);
writeln(f2,divis:2:0);
close(f);
close(f2);
{ TODO -oUser -cConsole Main : Insert code here }
end.

Последний раз редактировалось V@mpir; 18.10.2009 в 21:54.
V@mpir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить офис Delphi Vali_T Помощь студентам 6 30.07.2009 16:24
Выбор принтера в офис Maxmax78 Компьютерное железо 6 24.07.2009 10:51
Экспорт данных в мс офис Crush_test_dummy Помощь студентам 1 19.06.2007 19:06