В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
thefirststudent
thefirststudent
27.08.2021 21:55 •  Информатика

У Асель есть А тенге. Стоимость одного ластика равна К, стоимость одной ручки равна С. Сколько ластиков или ручек может купить Асель на все свои деньги. Можно на языке програмирования Питон. Мне надо и именно на питоне

Показать ответ
Ответ:
olga2610
olga2610
14.04.2023 20:09

Пусть l=x_0<x_1<\dots<x_n=b - какое-то разбиение отрезка [a, b]. Формулой левых прямоугольников называется приближение

\displaystyle \int_a^b f(x)\,dx\approx\sum_{i=0}^{n-1} f(x_i)(x_{i+1}-x_i)

Часто выбирают равномерное разбиение, в котором все точки расположены на одинаковом расстоянии h = (b - a) / n, при этом x_i=a+ih.

Реализация (PascalABC.NET): функция int_lr принимает подинтегральную функцию, левую и правую границы отрезка интегрирования и количество отрезков в разбиения. В основной программе интеграл вычисляется для n = 1, 2, 4, 8, ..., 1024, выводится n, результат численного интегрирования и разность между полученным значением и точным значением интеграла. Можно заметить, что при увеличении n в 2 раза ошибка уменьшается примерно в 2 раза.

function int_lr(f: real-> real; l, r: real; n: integer): real;

begin

 var h := (r - l) / n;

 var s := 0.To(n - 1).Select(i -> f(l + i * h)).Sum;

 result := s * h;

end;

const exact = 1250 / 3;

begin

 var n := 1;

 for var _ := 1 to 11 do

 begin

   var int := int_lr(x -> (x - 5) ** 2 * (10 - x), 0, 10, n);

   writeln(n:4, int:9:3, abs(int - exact):9:3);

   n := 2 * n;

 end;

end.

Вывод программы:

  1 2500.000 2083.333

  2 1250.000  833.333

  4  781.250  364.583

  8  585.938  169.271

 16  498.047   81.380

 32  456.543   39.876

 64  436.401   19.735

128  426.483    9.816

256  421.562    4.896

512  419.111    2.445

1024  417.888    1.221

0,0(0 оценок)
Ответ:
queenames
queenames
26.09.2022 17:13
#include <stdio.h>

int main()
{
    int N;
    char c;
    printf("Исходное направление робота (n,w,s,e): ");
    scanf("%c",&c);
    printf("Команда (0,1,-1,2,-2): ");
    scanf("%d",&N);
    while (N != 0){
    switch (N) {
    case 1 : break;
    case -1:
    switch (c) {
    case 'n' : c = 's'; break;
    case 'w' : c = 'e'; break;
    case 's' : c = 'n'; break;
    case 'e' : c = 'w'; break;
    };
    break;
    case 2 :
       switch (c) {
    case 'n' : c = 'e'; break;
    case 'w' : c = 'n'; break;
    case 's' : c = 'w'; break;
    case 'e' : c = 's'; break;
    };
    break;
    case -2:
       switch (c) {
    case 'n' : c = 'w'; break;
    case 'w' : c = 's'; break;
    case 's' : c = 'e'; break;
    case 'e' : c = 'n'; break;
    };
    break;
    }
    printf("c = %c\n", c);
    printf("Команда (0,1,-1,2,-2): ");
    scanf("%d",&N);
    }
    return 0;
}

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