Veril8626
?>

Написать программу на паскале известно расписание поездов проходящих через станцию: -номер поезда -назначание(например, москва-омск) -часы и минуты прибытия на станцию -часы и минуты отправления со станции. поезда приходят каждый день. по данному времени определить какие поезда(номера и назначения) стоят в этот момент на станции.

Информатика

Ответы

qwe54344
Var h,m,t:integer;

begin
write('Введите время(ч,м): '); read(h,m);
t:=h*60+m;

writeln('В данный момент на станции стоят следующие поезда: ');
if (t>=540) and (t<590) then writeln('Номер 1, Красноярск- Москва ');
if (t>=570) and (t<620) then writeln('Номер 2, Новгород - Москва ');
if (t>=610) and (t<670) then writeln('Номер 3, С.-Петербург - Калининград ');
if (t>=660) and (t<720) then writeln('Номер 4, Владивосток - Москва ');
if (t>=720) and (t<750) then writeln('Номер 5, Москва - Омск ');
if (t>=755) and (t<795) then writeln('Номер 6, Томск — Москва ');
if (t>=780) and (t<830) then writeln('Номер 7, Москва — Екатеринбург ');
if (t>=820) and (t<860) then writeln('Номер 8, Москва — Самара ');
if (t>=845) and (t<910) then writeln('Номер 9, С.-Петербург — Москва ');
if (t>=890) and (t<950) then writeln('Номер 10, Москва — Красноярск ');
if (t>=940) and (t<990) then writeln('Номер 11, Москва — Владивосток ');
if (t>=980) and (t<1025) then writeln('Номер 12, Омск-Москва ');
if (t>=1020) and (t<1085) then writeln('Номер 13, Москва — С.-Петербург ');
if (t>=1080) and (t<1140) then writeln('Номер 14, Екатеринбург — Москва ');
 end.
Написать программу на паскале известно расписание поездов проходящих через станцию: -номер поезда -н
elenakarpova709
{
Если что, часть программы не нужна для построения цепочки. Она просто иллюстрирует, что полученный результат верен.
}

var
 sq : array[0..999] of array[0..9] of boolean;
 co : array[0..999] of integer;
 ar : array[1..10003] of 0..9;
  i,j: integer;
 x: integer;
 t : boolean;
 begin
 for i := 0 to 999 do
   begin
   for j := 0 to 9 do
   sq[i][j] := false;
   co[i] := 0;
   end;
 for i := 1 to 3 do
   ar[i] := 0;
 i := 3;
 t := true;
 {write('000');}
 while t do
   begin
   i := i + 1;
   x := ar[i-3]*100 + ar[i-2]*10 + ar[i-1];
   if co[x] >= 10 then t := false
     else
     begin
     j := 1;
     while sq[x][j] do 
       j := (j + 1) mod 10;
     ar[i] := j;
     sq[x][j] := true;
     co[x] := co[x] + 1;
     {write(j)}
     end;
   end;
 {writeln;}
 writeln('Length: ',i - 1);

 {просто чтобы убедиться}
 for i := 0 to 999 do
   for j := 0 to 9 do
   sq[i][j] := false;

  t := true;
 j := 0;
 i := 1;
 while (i <= 10000) and t do
   begin
   x := ar[i] * 100 + ar[i+1] * 10 + ar[i+2];
   if sq[x][ar[i+3]] then t := false
     else
     begin
     sq[x][ar[i+3]] := true;
     j := j + 1;
     end;
   i := i + 1
   end;
 if t and (j = 10000) then
   write('Confirmed')
end.
Бондарен1076
2^n в двоичной системе - это 1 и n нулей после неё. Например, 2^5(10) = 100000(2)
Приведём все степени к основанию 2

2^3702-2^468+2^1620-108

-108 можно представить как -128 + 16 + 4

2^3702-2^468+2^1620-2^7 + 2^4 + 2^2

Теперь выстраиваем степени в порядке убывания:

2^3702+2^1620-2^468-2^7 + 2^4 + 2^2

В выражении два вычитания подряд, избавимся от этого, заменив -2^468 на -2^469 + 2^468

2^3702+2^1620 -2^469+2^468-2^7 + 2^4 + 2^2

2^3702 - 1 единица
2^4 - 1 единица
2^2 - 1 единица

Количество единиц в вычитаниях будет равно разнице степеней. Например 1000000-100=1111

2^1620 -2^469 - количеств единиц 1620-469 = 1151
2^468-2^7 - количество единиц 468-7 = 461
Общее количество единиц равно 3+1151+461 = 1615

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Написать программу на паскале известно расписание поездов проходящих через станцию: -номер поезда -назначание(например, москва-омск) -часы и минуты прибытия на станцию -часы и минуты отправления со станции. поезда приходят каждый день. по данному времени определить какие поезда(номера и назначения) стоят в этот момент на станции.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

eduard495
Ingakazakova
museumuzl
Chitaia
Viktorovna_Yurevna
panasenko68
fakyou170
rikki07834591
murza2007
janetp
Corneewan
АлександрАлина
seleznev1980
КутузоваМартенюк
d43irina