Начав тренировку лыжник в 1 день пробежал 10 км. Каждый след. день он увеличивал длину пробега на 10%...

Тематика Информатика
Уровень 10 - 11 классы
информатика задачи программирование Pascal цикл while арифметическая прогрессия тренировка лыжник пробег увеличение дистанции
0

Начав тренировку лыжник в 1 день пробежал 10 км. Каждый след. день он увеличивал длину пробега на 10% от пробега предыдущего дня. Определить: а)в какойдень он пробежал больше 20 км. б) в какой день суммарный пробег за все дни превысит 100 км? Задача по информатике, надо составить программу в pascal abc. Помогите решить в программе Pascal, с помощью whileребят отзовитесь от этого зависит моя оценка, очень прошу

avatar
задан 22 дня назад

2 Ответа

0

Конечно! Давайте решим эту задачу с использованием языка программирования Pascal. Мы будем использовать цикл while для решения каждой из частей задачи.

Решение:

a) Определение дня, когда лыжник пробежал более 20 км.

Для этой задачи мы будем увеличивать пробег на 10% каждый день и проверять, когда он превысит 20 км.

b) Определение дня, когда суммарный пробег превысит 100 км.

Для этой задачи мы будем также увеличивать пробег на 10% каждый день, но дополнительно будем суммировать пробеги каждого дня, чтобы определить момент, когда суммарный пробег превысит 100 км.

Вот программа на Pascal:

program SkiTraining;

var
  day: integer;
  distance, totalDistance: real;
  dayOver20km, dayTotalOver100km: integer;

begin
  day := 1;
  distance := 10.0;
  totalDistance := 0.0;
  dayOver20km := 0;
  dayTotalOver100km := 0;

  while (dayOver20km = 0) or (dayTotalOver100km = 0) do
  begin
    // добавляем пробег текущего дня к суммарному пробегу
    totalDistance := totalDistance + distance;

    // Проверяем, когда пробег за день превысит 20 км
    if (distance > 20) and (dayOver20km = 0) then
    begin
      dayOver20km := day;
    end;

    // Проверяем, когда суммарный пробег превысит 100 км
    if (totalDistance > 100) and (dayTotalOver100km = 0) then
    begin
      dayTotalOver100km := day;
    end;

    // Увеличиваем пробег на 10% для следующего дня
    distance := distance * 1.10;
    day := day + 1;
  end;

  writeln('Лыжник пробежал более 20 км на ', dayOver20km, '-й день.');
  writeln('Суммарный пробег превысил 100 км на ', dayTotalOver100km, '-й день.');
end.

Пояснение программы:

  1. Инициализация переменных:

    • day: считает количество дней.
    • distance: километры, которые пробежал лыжник в текущий день.
    • totalDistance: суммарное количество километров за все дни.
    • dayOver20km и dayTotalOver100km: используются для хранения дня, когда пробег за день превысит 20 км и когда суммарный пробег превысит 100 км соответственно.
  2. Цикл while: работает до тех пор, пока оба условия (dayOver20km = 0 и dayTotalOver100km = 0) не будут выполнены.

  3. Обновление и проверка условий:

    • В каждом цикле добавляем distance к totalDistance.
    • Проверяем, если distance > 20 и dayOver20km еще не установлен, то устанавливаем dayOver20km.
    • Проверяем, если totalDistance > 100 и dayTotalOver100km еще не установлен, то устанавливаем dayTotalOver100km.
  4. Увеличение distance: пробег увеличивается на 10% каждый день.

  5. Вывод результатов: после завершения цикла, выводятся дни, когда были выполнены условия задачи.

Запустив эту программу, вы получите ответ на обе части задачи.

avatar
ответил 22 дня назад
0

Конечно, я могу помочь с написанием программы на Pascal. Вот код, который решает данную задачу:

program SkiRunner;
var
  day, totalDistance: integer;
  distance: real;

begin
  totalDistance := 0;
  day := 1;
  
  while totalDistance  20 then
      writeln('Лыжник пробежал более 20 км в ', day, '-й день');
    
    day := day + 1;
  end;
  
  writeln('Суммарный пробег превысил 100 км на ', day - 1, '-й день');
end.

Программа вычисляет дистанцию, которую пробежал лыжник в каждый день, и проверяет, когда он пробежал более 20 км и когда суммарный пробег превысил 100 км. Надеюсь, это поможет вам получить хорошую оценку! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

avatar
ответил 22 дня назад

Ваш ответ

Вопросы по теме