14.02.2014, 14:59 | #1 (permalink) |
Member
Регистрация: 16.11.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача на массив
Тема двумерных массивы. Нужно написать эту программу с подпрограммами. Помогите в написании данной программы. Сам не справлюсь |
14.02.2014, 14:59 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблемы часто повторяются и ваша не исключение, вот схожие темы Задача на Паскаль, одномерный массив Задача на Паскале про массив Задача на массив в С++ |
16.02.2014, 10:25 | #3 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
Отпускная цена минут себестоимость. Результат умножить на кол-во единиц.
Далее, вычисляем производительность для каждого наименования: Делим получившееся выше на кол-во человек. И создаем массив: наименование и производительность. Затем высчитываем общую производительность - суммируем производительность всех наименований и делим на 20. Ну а дальше, думаю, уже понятно |
16.02.2014, 10:45 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Абсолютно невозможно! Наши штатные телепаты в отпуске, а без них определить язык программирования, тайну которого Вы, очевидно, поклялись не выдавать даже под пыткой, мы не можем.
Цитата:
|
|
16.02.2014, 12:46 | #5 (permalink) |
Member
Регистрация: 16.11.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Извините Pascal abc
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
16.02.2014, 16:46 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Могу поковыряться, но при условии, что Вы придумаете все входные данные (наименования, себестоимости и т.д.) и выложите в любом виде.
|
17.02.2014, 19:22 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
17.02.2014, 21:02 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну вот, получИте:
Код:
Type Prod=Record N:Byte; Num,Prime,Price,Work:Integer; Productivity_Local:Real; End; Var Prd:Array[1..20] of Prod; Bad:Set of Byte; Productivity_Initial,Min,Max,Productivity_Current:Real; f:Text; i,Im,k:Integer; Function Productivity:Real; var j:Integer; Sum,Sum_Work:Real; begin Sum:=0; Sum_Work:=0; for j:=1 to 20 do with Prd[j] do If Not(N in Bad) then begin Sum:=Sum+(Price-Prime)*Num; Sum_Work:=Sum_Work+Work; end; Productivity:=Sum/Sum_Work; end; Begin Bad:=[]; Assign(f,'D:\Data.txt'); Reset(f); For i:=1 to 20 do with Prd[i] do begin Readln(f, N,Num,Prime,Price,Work); Productivity_Local:=(Price-Prime)*Num/Work; end; Close(f); Productivity_Initial:=Productivity; Max:=Prd[1].Productivity_Local; For i:=2 to 20 do If Prd[i].Productivity_Local>Max then Max:=Prd[i].Productivity_Local; k:=0; Repeat Inc(k); Min:=Max; For i:=1 to 20 do If Not(i in Bad) and (Prd[i].Productivity_Local<Min) then begin Min:=Prd[i].Productivity_Local; Im:=i; end; Bad:=Bad+[Im]; Productivity_Current:=Productivity; Until (Productivity_Current>=Productivity_Initial*2) or (k=20); Write('The plant must refuse from the positions:'); For i:=1 to 20 do if i in Bad then Write(i:3); Writeln; Writeln('Inial productivity: ',Productivity_Initial:0:3); Writeln('Final productivity: ',Productivity_Current:0:3); Readln; End. 1. Исходные данные помещены в файл по имени Data.txt (прилагается). У меня он расположен на диске D, так что поправьте путь в программе, если надо. Колонки: порядковый номер, количество изделий (напр. в год), себестоимость, цена, количество рабочих. 2. Программа писалась и отлаживалась в НОРМАЛЬНОМ Паскале (Free). За глюки этого богомерзкого АВС не отвечаю! 3. Вкратце - алгоритм. В каждой записи вычисляется "локальная" производительность, как доход/кол-во рабочих. При каждом прохождении цикла отсева находится номер записи с минимальным значением "локальной" производительности, этот номер вносится в "черный список" и из нового расчета общей производительности исключается. |
19.02.2014, 09:50 | #10 (permalink) |
Member
Регистрация: 16.11.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо, вы использовали процедуру файл? просто мы еще не изучили, и такую задачу не примут
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|