09.09.2010, 00:26 | #1 (permalink) |
Новичок
Регистрация: 09.09.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Pascal. Задача. Обработка двумерных массивов.
Информационная таблица по расходу электроэнергии на предприятии по 5 цехам заполняется каждый месяц по мере поступления данных. Вывести таблицу. Найти среднее потребление электроэнергии каждым цехом в каждом квартале. Вывести таблицу. |
09.09.2010, 00:26 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Почитав информацию по этим ссылкам, вы наверное все решите Задача. Output. Pascal Циклические программы с использованием двумерных числовых массивов Обработка одномерных массивов Задача на массивы, Pascal. Помогите найти ошибку Pascal, создание и обработка двоичных файлов Обработка строк,массивов,записей |
09.09.2010, 16:35 | #3 (permalink) |
Новичок
Регистрация: 09.09.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
1 таблица должна быть в таком виде
------------------------------------------------------------------------- цех | Расход энергии по месяцам, МВт-час ------------------------------------------------------------------------- | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ------------------------------------------------------------- Литейный | | Кузнечный | ... ------------------------------------------------------------------------- |
09.09.2010, 18:37 | #5 (permalink) |
Member
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
|
так вы не знаете как сделать и вам нужен совет или хотите чтоб программу сделал?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
09.09.2010, 19:10 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ладно. Вот:
Код:
const Workshops: array[1..5] of STRING = ('Foundry','Forge','Metal-working','Assembly','Shipping'); var Pay:ARRAY[1..5,1..12] of WORD; Month, Months_bef,Num_of_Quart:BYTE; Pay_Q:WORD; i,j,k,l,m:Integer; F:Text; Dat_Type,Dt:Char; BEGIN REPEAT Write('Exit (Y/N)? '); ReadLn(Dt); If (Dt='N') or (Dt='n') then begin Assign(F, 'C:\Data.txt'); Write('New table (Y/N)? '); ReadLn(Dat_Type); If (Dat_Type='Y') or (Dat_Type='y') then begin Writeln('CAUTION!!! All the previous data will be removed!'); Write('New table (Y/N)? '); ReadLn(Dat_Type); end; If (Dat_Type='Y') or (Dat_Type='y') then begin Months_bef:=0; Month:=1; ReWrite(F); Close(F); end else begin ReSet(F); ReadLn(F,Months_bef); Month:=Months_bef+1; For i:=1 to 5 do For j:=1 to Months_bef do ReadLn(F, Pay[i,j]); Close(F); end; WriteLn('Month number ',Month); Writeln('Energy consumtion of workshops:'); For i:=1 to 5 do begin Write(Workshops[i]+': '); ReadLn(Pay[i,Month]); end; WriteLn; Write('Workshops: '); For j:=1 to 12 do Write(j:5); WriteLn; Num_Of_Quart:=Month div 3; For i:=1 to 5 do begin Write(Workshops[i]); For k:=length(Workshops[i]) to 14 do Write(' '); For j:=1 to Month do Write(Pay[i,j]:5); WriteLn; Write('Quaters_medium:'); For l:=1 to Num_of_Quart do begin Pay_Q:=0; For m:=1 to 3 do Pay_Q:=Pay_Q+Pay[i,(l-1)*3+m]; Pay_Q:=Pay_Q div 3; Write(' ',Pay_Q:5,' '); end; WriteLn; end; WriteLn; ReWrite(F); WriteLn(F,Month); For i:=1 to 5 do For j:=1 to Month do WriteLn(F, Pay[i,j]); Close(F); end; UNTIL (Dt='Y') or (Dt='y'); END. 1. С псевдографикой возиться не стал - уж не взыщите - лень. 2. Английский язык - во избежание проблем с кодировками кириллицы. У меня - DOS версия Паскаля, у Вас - не знаю. Названия цехов: Foundry - Литейный, Forge - Кузнечный, Metal-working - Металлообрабатывающий, Assembly - Сборочный, Shipping - Транспортный. 3. Данные за "предыдущий" месяц сохраняются на диске в файле C:\Data.txt. При первом запуске программы этот файл создается. 4. ВНИМАНИЕ! Если на вопрос New table (Y/N)? ответить утвердительно, то файл будет перезаписан и все предыдущие данные пропадут! Впрочем, в таком случае программа предупредит и переспросит. |
09.09.2010, 19:16 | #7 (permalink) |
Новичок
Регистрация: 09.09.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ну хотя бы какую-нибудь работоспособную идею на счет второй таблицы или пару строчек проги. А то сделала только одномерный массив - сумма за год по каждому цеху, но никак не получается двумерный массив сумм за каждый квартал по каждому цеху....может подскажете хоть???
|
09.09.2010, 19:32 | #8 (permalink) |
Новичок
Регистрация: 09.09.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо огромное! Сейчас к себе прогу перепишу и попробую! Файлы мы еще правда не изучали, но это мне хороший урок! Поняла я в чем ошиблась! У меня семерка и никак не могу сделать чтоб в паскале переключать на кирилицу (хотя в ХР было нормально), вот и приходится тож английскими словами изъясняться
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|