For 30. Дано целое число N (> 1) и две вещественные точки на числовой оси: A, B (A < B). Отрезок [A, B] разбит на N равных отрезков. Вывести H — длину каждого отрезка, а также значения функции \(F(X) = 1 - \sin(X)\) в точках, разбивающих отрезок [A, B]:
\(F(A), F(A + H), F(A + 2 \cdot H), ... , F(B).\)

Решение на Python 3

import random
import math

B = random.randrange(-9,11)
A = random.randrange(-10,B)
N = random.randrange(2,11)

H = (B - A) / N
print("A = ",A)
print("B = ",B)
print("N = ",N)
print("H = {0:.2f}".format(H))

x = A
for i in range(0,N+1):
y = 1 - math.sin(x)
print("{0:.2f} : {1:.4f}".format(x,y))
x += H

Решение на C++

#include <bits/stdc++.h>
using namespace std;

int main() {
srand((int)time(0));
int N = rand() % 20 + 1;
//N = 30;
double A = (rand() % 100) / 10.0;
double B = A + (rand() % 100) / 10.0;
double H = (B - A) / N;

cout << "A = " << A << endl;
cout << "B = " << B << endl;
cout << "N = " << N << endl;
cout << fixed;
cout << setprecision(4);
cout << "H = " << H << endl;

double x = A;
double y;
for(int i = 0; i <= N; i++) {
y = 1 - sin(x);
cout << x << " : " << y << endl;
x += H;
}

return 0;
}