М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
13573967
13573967
16.07.2022 17:31 •  Информатика

Два велосипедиста в очередной раз одновременно выехали навстречу друг другу. но теперь они коварно изменили тактику. первый велосипедист едет со скоростью 12 км /ч, но через каждые 50 мин. движения останавливается и отдыхает 10 мин. второй велосипедист едет со скоростью 18км/ч, но через каждые 20 мин. движения останавливается на 10 мин. велосипедисты надеются, что на этот раз вы наверняка не сможете определить, через сколько минут они встретятся. ваша - разубедить их в этом заблуждении.

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

👇
Ответ:
sasharaiskaja
sasharaiskaja
16.07.2022

program cyclist2;

const

 Am1: array [0..1] of Integer = (50, 10); // график движения 1-го

 Av1: array [0..1] of Real    = (0.2, 0); // скорость 1-го (0 - стоит на месте, отдыхает, 12 км/ч = 12/60 = 0.2 км/мин)

 Am2: array [0..1] of Integer = (20, 10); // график движения 2-го

 Av2: array [0..1] of Real    = (0.3, 0); // скорость 2-го (0 - стоит на месте, отдыхает, 18 км/ч = 18/60 = 0.3 км/мин)

var

 m, m1, m2, p1, p2: Integer;

 n, n1, n2: Real;

begin

 Write ('Введите N: ');

 ReadLn (n);

 WriteLn;

 m := 0;   // счетчик минут

 p1 := 0;  // текущий график 1-го

 p2 := 0;  // текущий график 2-го

 m1 := Am1 [p1];    // начальное значение счетчика минут в графике 1-го

 m2 := Am2 [p2];    // начальное значение счетчика минут в графике 2-го

 n1 := 0;           // пройденное рассстояние 1-го

 n2 := 0;           // пройденное рассстояние 2-го

 while (n1 + n2) < n - 0.001 do begin    // проверка на истинность встреци. 0.001 для корректировки погрешность вычислений с Real

   Inc (m);             // следующая минута

   Dec (m1);            // уменьшаем длительность графика 1-го

   n1 := n1 + Av1 [p1]; // расчет пройденного расстояния

   if m1 <= 0 then begin  // если период в графике закончился, то

     if p1 = 0 then p1 := 1 else p1 := 0;  // изменяем период

     m1 := Am1 [p1];                       // устанавливаем длительность графика

   end;

   Dec (m2);                               // то же делаем для 2-го

   n2 := n2 + Av2 [p2];

   if m2 <= 0 then begin

     if p2 = 0 then p2 := 1 else p2 := 0;

     m2 := Am2 [p2];

   end;

//    WriteLn (m :5, n1 :5 :1, n2 :5 :1, n1 + n2 :5 :1);     // это для отладки, чтобы посмотреть движение по минутам - раскомментировать

 end;

 WriteLn ('Через ', m, ' минут велосипедисты встретятся.');

 ReadLn;

end.

Объяснение: комментарии в программе

4,8(88 оценок)
Открыть все ответы
Ответ:
Artuom1111
Artuom1111
16.07.2022
// PascalABC.NET 3.3, сборка 1600 от 23.12.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var (k1,k2):=ReadInteger2('Границы номеров элементов k1 и k2:');
  if (k1>0) and (k2<=a.Length) and (k2>k1) then
    Writeln('П=',a[k1-1:k2].Aggregate(BigInteger(1),(p,q)->p*q))
  else Writeln('Неверно заданы k1,k2')
end.

Пример
n= 17
-49 33 -50 34 -21 -3 -16 -39 8 -27 -28 11 -12 -33 47 9 -20
Границы номеров элементов k1 и k2: 3 15
П=-82750680146534400
4,7(33 оценок)
Ответ:
lenichk
lenichk
16.07.2022
Const m=200;
var a: array[1..m] of integer;
    i,k1,k2,p,n: integer;
begin
   write('количество элементов массива:  ');
   readln(n);
   randomize;
   write('массив:  ');
   for i:=1 to n do
   begin
     a[i]:=random(-40,40);
     write(a[i],' ');
   end;
   writeln;
   write('k1 k2 через пробел: ');  readln(k1,k2);
   p:=1;
   if (k1 in [1..n]) and (k2 in [1..n]) and (k2>k1) then 
   begin
     for i:=k1 to k2 do p:=p*a[i];
     writeln('произведение: ',p);
   end
   else writeln('недопустимые значения k1 и k2  ',k1,' ',k2);  
end.   

количество элементов массива:  10
массив:  18 -40 5 -5 -22 -1 -3 22 -11 37 
k1 k2 через пробел: 3 5
произведение: 550
4,5(13 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ