marinamarinam9
11.08.2020 23:31

Робот проехал первую половину пути со скоростью 5 см/с, а вторую скоростью 12 дм/мин. На проезд по первой половине трассы робот потратил 2 минуты. Определите время, за которое робот проедет всю трассу. ответ дайте в секундах.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
KlarissaStet
01.06.2023 05:41
1. Вариант с последовательным приращением аргумента

var
  x:real;
begin
  x:=-1;
  while x<=2 do begin
    Writeln('x=',x:4:1,'   y=',1/x:0:10);
    x:=x+0.2
    end
end.

Решение
x=-1.0   y=-1.0000000000
x=-0.8   y=-1.2500000000
x=-0.6   y=-1.6666666667
x=-0.4   y=-2.5000000000
x=-0.2   y=-5.0000000000
x= 0.0   y=-18014398509482000.0000000000
x= 0.2   y=5.0000000000
x= 0.4   y=2.5000000000
x= 0.6   y=1.6666666667
x= 0.8   y=1.2500000000
x= 1.0   y=1.0000000000
x= 1.2   y=0.8333333333
x= 1.4   y=0.7142857143
x= 1.6   y=0.6250000000
x= 1.8   y=0.5555555556
x= 2.0   y=0.5000000000

2. Вариант с вычислением аргумента путем умножения

var
  x:real;
  i:integer;
begin
  for i:=1 to 16 do begin
    x:=0.2*(i-1)-1;
    Writeln('x=',x:4:1,'   y=',1/x:0:10)
    end
end.

Решение
x=-1.0   y=-1.0000000000
x=-0.8   y=-1.2500000000
x=-0.6   y=-1.6666666667
x=-0.4   y=-2.5000000000
x=-0.2   y=-5.0000000000
x= 0.0   y=Infinity
x= 0.2   y=5.0000000000
x= 0.4   y=2.5000000000
x= 0.6   y=1.6666666667
x= 0.8   y=1.2500000000
x= 1.0   y=1.0000000000
x= 1.2   y=0.8333333333
x= 1.4   y=0.7142857143
x= 1.6   y=0.6250000000
x= 1.8   y=0.5555555556
x= 2.0   y=0.5000000000

Анализ решений
При х=0 функция 1/х терпит разрыв. При подходе к нулю слева она стремится к минус бесконечности, а справа - к плюс бесконечности.
Первый вариант программы из-за суммирования на каждом шаге ошибок машинного округления пришел не к нулевому аргументу х, что привело к неточному вычислению значения функции (как видно по результату, аргумент не дошел до нуля слева). Во втором варианте аргумент вычислялся более точно, накопления суммы не было и при нуле мы получили именно "бесконечность".

Выводы
Табуляция функций по второму варианту предпочтительнее. Но её недостатком является необходимость предварительного вычисления количества повторений цикла по известной формуле Int((b-a)/h)+1 и подготовка формулы для расчета текущего значения переменной в виде функции от параметра цикла.
0,0(0 оценок)
Ответ:
ЮлічкаВдовіна
24.12.2022 23:12

что-то типа этого:

const n = 8, m = 8;
var
    A: array[1..n,1..m] of integer;
    i, j, sum, product: integer;
    isnotnull: boolean;
begin
    randomize;
    writeln('Случайная матрица:');    for i:=1 to n do begin
        for j:=1 to m do begin
            A[i,j] := random(51) - 25;
            write(A[i,j]:5);
        end;
        writeln;
    end;    sum := 0;
    for i:=1 to n do
        if A[i,n-i+1] < 0 then
            sum := sum + A[i,n-i+1];
    writeln('Сумма отрицательных элементов побочной диагонали = ', sum);    product := 1;
    isnotnull := False;
    for i:=1 to n-1 do
        for j:=2 to n do
            if (j > i) and (A[i,j] <> 0) then begin
                isnotnull := True;
                product := product * A[i,j];
            end;
    if isnotnull
        writeln('Произведение ненулевых элементов в области выше главной диагонали = ', product)
    else
        writeln('Ненулевых элементов в области выше главной диагонали нет.', product);    readln;
end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота