Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 04.05.2011, 19:21   #1 (permalink)
Zibuga
Новичок
 
Регистрация: 04.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Задача в Pascal'е (ЕГЭ)

Интернет-фирма получает заказы каждый день в любое время. Пришло N заказов. В какой день недели пришло наибольшее число заказов?

(вводим: -кол-во заказов -дату закза(2 переменные: число и месяц)
выводим: в какой день недели приходит больше всего заказов)

Помогите пожалуйста, я не понимаю вообще как сделать эту программу!
Заранее благодарен
Zibuga вне форума   Ответить с цитированием

Старый 04.05.2011, 19:21
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На форуме содержаться и другие топики, с похожим содержанием

Задача из колледжа
Задача по С + +
Задача по С++

Старый 05.05.2011, 16:20   #2 (permalink)
Mr.П 2.0
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.
Mr.П 2.0 вне форума   Ответить с цитированием
Старый 05.05.2011, 17:54   #3 (permalink)
Zibuga
Новичок
 
Регистрация: 04.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Не совсем верно.
Программа высчитывает только 7 дней!А должна высчитывать 365 дней.
То есть в любое время года.
Например:
1 января вторник 5 заказов
7 марта среда 3 заказа и тд
Zibuga вне форума   Ответить с цитированием
Старый 05.05.2011, 18:48   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Вообще-то надо бы поподробнее сформулировать. В частности:
1. Как предполагается делать заполнение данных? Тупо вводить 365 записей? Проще сразу удавиться. Или можно сгенерить число заказов случайным образом?
2. Как осуществляется привязка дата-день недели? Берется конкретный год? Или нужно программировать календарь?
Vladimir_S вне форума   Ответить с цитированием
Старый 05.05.2011, 19:33   #5 (permalink)
Zibuga
Новичок
 
Регистрация: 04.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

2)нужно программировать календарь
Надо еще учесть, с какого дня начинается год( с понедельника или со среды...)
1) сам не знаю. Иначе бы сам сделал
Zibuga вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 06.05.2011, 03:01   #6 (permalink)
Mr.П 2.0
Member
 
Регистрация: 16.03.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 11
По умолчанию

....
Замечание:
Удалено. Прямое нарушение Правил форума, п.3.1, в части перехода на личности. Не Вам решать, кто тут достойный, а кто нет, и, мягко говоря, невелики Ваши "благодеяния".
Бан на неделю.

Модератор.
Mr.П 2.0 вне форума   Ответить с цитированием
Старый 06.05.2011, 12:36   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 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.
Vladimir_S вне форума   Ответить с цитированием
Старый 06.05.2011, 21:19   #8 (permalink)
Zibuga
Новичок
 
Регистрация: 04.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Гениально! Спасибо
Zibuga вне форума   Ответить с цитированием
Старый 06.05.2011, 21:25   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Zibuga Посмотреть сообщение
Гениально!
Э-э... стараемся!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:01.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.