04.05.2011, 19:21 | #1 (permalink) |
Новичок
Регистрация: 04.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача в Pascal'е (ЕГЭ)
(вводим: -кол-во заказов -дату закза(2 переменные: число и месяц) выводим: в какой день недели приходит больше всего заказов) Помогите пожалуйста, я не понимаю вообще как сделать эту программу! Заранее благодарен |
04.05.2011, 19:21 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме содержаться и другие топики, с похожим содержанием Задача из колледжа Задача по С + + Задача по С++ |
05.05.2011, 16:20 | #2 (permalink) |
Member
Регистрация: 16.03.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 11
|
Код:
Var a:array[1..7] of integer; i,k:byte; max:integer; begin max:=a[1]; for i:=1 to 7 do begin Writeln('Vvedite scolco zakazov postupilo v ',i,' day'); readln(a[i]); if a[i]>max then begin max:=a[i]; k:=i; end; end; Writeln('bolshe zakazov v ',k); readln; end. |
05.05.2011, 17:54 | #3 (permalink) |
Новичок
Регистрация: 04.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Не совсем верно.
Программа высчитывает только 7 дней!А должна высчитывать 365 дней. То есть в любое время года. Например: 1 января вторник 5 заказов 7 марта среда 3 заказа и тд |
05.05.2011, 18:48 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вообще-то надо бы поподробнее сформулировать. В частности:
1. Как предполагается делать заполнение данных? Тупо вводить 365 записей? Проще сразу удавиться. Или можно сгенерить число заказов случайным образом? 2. Как осуществляется привязка дата-день недели? Берется конкретный год? Или нужно программировать календарь? |
05.05.2011, 19:33 | #5 (permalink) |
Новичок
Регистрация: 04.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
2)нужно программировать календарь
Надо еще учесть, с какого дня начинается год( с понедельника или со среды...) 1) сам не знаю. Иначе бы сам сделал |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
06.05.2011, 03:01 | #6 (permalink) | ||
Member
Регистрация: 16.03.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 11
|
....
|
||
06.05.2011, 12:36 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну вот, кое что сотворил.
Программа случайным образом задает количество заказов в день в интервале 0-9 штук. Все данные о заказах за весь год хранятся в файле Data.txt. Там колонки: дата dd.mm, номер дня недели, начиная с понедельника, которому соответствует 1 и число заказов. Год считается невисокосным. Программа запрашивает номер дня недели, приходящегося на 1 января. Вычисляются и выводятся на экран сумма заявок в течение года по дням недели и усредненное число заявок в день, тоже по дням недели. Потом находятся наиболее "удачные" дни. Код:
Uses crt; Const Days:Array[1..7] of String = ('monday','tuesday','wednesday','thursday', 'friday','saturday','sunday'); Var f:text; Num_of_Days,Orders_per_Day_Sum,Orders_Average:Array[1..7] of Word; day_1,i,Max:Word; j,N_ord,k:Byte; S:String[5]; BEGIN clrscr; Writeln('Enter the day of January, 1st (1-7): 1 - monday'); WriteLn(' 2 - tuesday'); WriteLn(' 3 - wednesday'); WriteLn(' 4 - thursday'); WriteLn(' 5 - friday'); WriteLn(' 6 - saturday'); Write(' 7 - sunday '); ReadLn(day_1); Randomize; assign(f,'C:\data.txt'); ReWrite(f); For i:=1 to 365 do begin If i<32 then begin if i<10 then write(f,'0',i,'.01 ') else write(f,i,'.01 '); end else If i<60 then begin if i-31<10 then write(f,'0',i-31,'.02 ') else write(f,i-31,'.02 '); end else If i<91 then begin if i-59<10 then write(f,'0',i-59,'.03 ') else write(f,i-59,'.03 '); end else If i<121 then begin if i-90<10 then write(f,'0',i-90,'.04 ') else write(f,i-90,'.04 '); end else If i<152 then begin if i-120<10 then write(f,'0',i-120,'.05 ') else write(f,i-120,'.05 '); end else If i<182 then begin if i-151<10 then write(f,'0',i-151,'.06 ') else write(f,i-151,'.06 '); end else If i<213 then begin if i-181<10 then write(f,'0',i-181,'.07 ') else write(f,i-181,'.07 '); end else If i<244 then begin if i-212<10 then write(f,'0',i-212,'.08 ') else write(f,i-212,'.08 '); end else If i<274 then begin if i-243<10 then write(f,'0',i-243,'.09 ') else write(f,i-243,'.09 '); end else If i<305 then begin if i-273<10 then write(f,'0',i-273,'.10 ') else write(f,i-273,'.10 '); end else If i<335 then begin if i-304<10 then write(f,'0',i-304,'.11 ') else write(f,i-304,'.11 '); end else begin if i-334<10 then write(f,'0',i-334,'.12 ') else write(f,i-334,'.12 '); end; If ((day_1+i-1) mod 7)=0 then Write(f,'7') else Write(f,(day_1+i-1) mod 7); WriteLn(f,' ',Random(10)); end; Close(f); For j:=1 to 7 do begin Num_of_Days[j]:=0; Orders_per_Day_Sum[j]:=0; end; Reset(f); For i:=1 to 365 do begin ReadLn(f,S,j,N_ord); Inc(Num_of_Days[j]); Orders_per_Day_Sum[j]:=Orders_per_Day_Sum[j]+N_ord; end; close(f); For j:=1 to 7 do Orders_Average[j]:=Round(Orders_per_Day_Sum[j]/Num_of_Days[j]); WriteLn('Orders per Days:'); WriteLn(' Day Whole Averaged'); For j:=1 to 7 do begin Write(Days[j]); for k:=length(Days[j]) to 9 do Write(' '); WriteLn(Orders_per_Day_Sum[j]:8,Orders_Average[j]:8); end; WriteLn; Max:=0; For j:=1 to 7 do if Orders_Average[j]>Max then Max:=Orders_Average[j]; WriteLn('Most popular days (',Max,' orders per day) are:'); For j:=1 to 7 do if Orders_Average[j]=Max then WriteLn(Days[j]); ReadLn; end. |
06.05.2011, 21:25 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|