0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 12
1

Кол-вл Автобусов. Срочно помогите:(

19.03.2012, 15:29. Показов 851. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Для поездки на отдых детей в Горный Алтай организаторы решили заказать автобусы. Известно, что в лагерь собираются поехать N детей и M взрослых. Каждый автобус вмещает K человек. В каждом автобусе, в котором поедут дети, должно быть не менее двух взрослых.
Определите, удастся ли отправить всех желающих детей и взрослых, и если да, то какое минимальное количество автобусов требуется для этого заказать.
Формат входных данных
Во входном файле записаны 3 натуральных числа через пробел – N, M и K, каждое не превосходит 10 000.
Формат выходных данных
В выходной файл выведите количество автобусов, которые нужно заказать. Если же отправить всех в лагерь невозможно, выведите 0 (ноль).
Примеры
Входные данные
10 4 7
10 4 5
Выходные данные
2
0

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1; 
  M,B,K,N, an, am, ob, avt: integer;
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 N:= StrToInt (Edit1.Text);
 M:= StrToInt (Edit2.Text);
 K:= StrToInt (Edit3.Text);
 Label1.Caption;
 if (N mod (K-2) = 0) then
     begin
      an:=N div (k-2); // количество автобусов для детей
       if (M mod 2 =0) then am:=M div 2; // количество автобусов для взрослых
       if (M mod 2 >4) then am:=round(M div 2);
       if (M mod 2 <5) then am:=round(M div 2) +1;
      if (an=am) then Label1.Caption:= IntToStr (an);
      if (an>am) then Label1.Caption:= IntToStr (0);
      if (am>an) then ob:=am-an; // количество общих автобусов
      ob:=ob*2; // взрослые, оставшиеся после рассадки по автобусам части взрослых и детей
      if (ob mod k=0)or(ob mod k>4) then avt:= round(ob/k) + an;
      if (ob mod k<=4) then
       begin
        avt:=round(ob/k) + an+1; // общее количество автобусов
        Label1.Caption:= IntToStr (avt);
       end
      else Label1.Caption:= IntToStr(0);
     end;
 if (N mod (K-2)<>0) then // если дети не рассаживаются по автобусов полностью, то
     begin
      while (N mod (k-2)<>0) do
       begin
        M:=M-1;
        N:=N+1;
       end;
      if (N mod (K-2)=0) then Label1.Caption ; // возвращаемся в метку 1
     end;
 
 
end;
Что не так, и как исправить? Работает не корректно, показывает не 2 автобуса, а 3. И остальные значения он не так вычисляет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2012, 15:29
Ответы с готовыми решениями:

Помогите срочно срочно. Вирус блокирует все программы.
Всем привет. пожалуйста помоги срочно надо. поймал вирус, блокирует почти все программы, антивирус...

СРОЧНО! Найти кол-во разных вариантов размещения таких пяти символов. {a,b,c,d,e}
Помогите, пожалуйста, решить задание на зачет! Задание: Найти кол-во разных вариантов размещения...

Сделать таблицу n строк: адрес, кол-во проживающих, кол-во комнат и кол-во метров в каждой комнате
В задании нужно сделать таблицу n строк. Адрес, кол-во проживающих, кол-во комнат и кол-во метров в...

Составьте программу, которая определяет кол-во отрицательных, кол-во положительных и кол-во нулей среди введеных чисел
Составьте программу, которая определяет кол-во отрицательных, кол-во положительных и кол-во нулей...

6
3 / 3 / 2
Регистрация: 08.04.2011
Сообщений: 23
19.03.2012, 16:49 2
Вроде так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var n, m, k, a, an, am: integer;
begin
N:=10; //Дети
M:=4; //Взрослые
K:=7; //Мест в автобусе
 
A:=(N+M) div K;
if ((N+M) mod K)<>0 then A:=A+1;
AN:=N div (K-2);
if (N div (K-2))<>0 then AN:=AN+1;
AM:=M div 2;
if (M div 2)<>0 then AM:=AM+1;
if AM<AN then A:=0;
if (AM=AN) and ((N div (K-2))<>0) then A:=0;
 
showmessage('Кол-во автобусов: '+inttostr(a)+#13+
            'Кол-во автобусов для детей: '+inttostr(an)+#13+
            'Кол-во автобусов для взрослых: '+inttostr(am));
0
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 12
19.03.2012, 16:55  [ТС] 3
Там нужно просто сколько автобусов нужно для их всех с 2мя взрослыми в каждом. И в твоём коде там их вообще 0, а нужно 2. У меня 3 вообще
0
3 / 3 / 2
Регистрация: 08.04.2011
Сообщений: 23
19.03.2012, 16:57 4
Дома еще посмотрю, а то конец рабочего дня
0
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 12
19.03.2012, 17:01  [ТС] 5
Буду очень благодарен
0
3 / 3 / 2
Регистрация: 08.04.2011
Сообщений: 23
19.03.2012, 18:14 6
Проверяй
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var N, M, K, A, AN, AM: integer;
begin
N:=10; //Дети
M:=4; //Взрослые
K:=7; //Мест в автобусе
 
A:=(N+M) div K;
if ((N+M) mod K)<>0 then A:=A+1;
AN:=N div (K-2);
if (N div (K-2))<>0 then AN:=AN+1;
AM:=M div 2;
if (M div 2)<>0 then AM:=AM+1;
if AM<AN then A:=0;
if (AM=AN) and ((N mod (K-2))<>0) then A:=0;
 
ShowMessage('Кол-во автобусов: '+inttostr(a)+#13+
            'Кол-во автобусов для детей: '+inttostr(an)+#13+
            'Кол-во автобусов для взрослых: '+inttostr(am));
Label1.Caption:=IntToStr(A);
end;
0
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 12
19.03.2012, 18:35  [ТС] 7
Работает Спасибо большое!
0
19.03.2012, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2012, 18:35
Помогаю со студенческими работами здесь

Помогите срочно
Вот такая проблема. Как то я её решал, не помню. Короче я сделал сайт на денвере и перенёс его на...

Срочно помогите !!!
задачи : Известно, что крокодилы - не самые ласковые существа. Но что делать, если крокодилы живут...

Помогите срочно
Я в Параметрах запуска убрал метки с вывода окна базы данных, строки состаяния, Меню Аксес,...

Срочно помогите
Я постоянно посещаю сайт который требует авторизации. То есть, нажимаю Log in и ввожу ник и пароль....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru