С РЕШЕНИЕМ Среди моих друзей четыре мастера спорта: баскетболист, самбист,
шахматист, волейболист. Их фамилии: Коренев, Долгов, Матвеев, Солопенко.
Известно, что Коренев и Долгов – соседи и всегда ездят на работу в
одном автобусе.
Долгов старше Матвеева.
Коренев всегда обыгрывает Солопенко в пинг-понг.
Баскетболист на работу ходит только пешком.
Волейболист живет рядом с самбистом.
Шахматист и волейболист познакомились, когда шахматист,
задумавшись, чуть не попал под машину и волейболист вытащил его
буквальноиз-под колес.
Известно еще, что волейболист старше самбиста и шахматиста.
Кто из моих друзей каким видом спорта занимается?
Пусть - какое-то разбиение отрезка [a, b]. Формулой левых прямоугольников называется приближение
Часто выбирают равномерное разбиение, в котором все точки расположены на одинаковом расстоянии h = (b - a) / n, при этом .
Реализация (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
Поправьте пути на верные самостоятельно. скрины во вложениях, файлы тоже
static void Main(string[] args)
{
//Вытаскиваем фамилии в массив lastnames
string file1 = "C:\\Desktop\\lastname.txt";
StreamReader rd1 = new StreamReader(new FileStream(file1, FileMode.Open), System.Text.Encoding.Default);
string lastname = "";
lastname = rd1.ReadToEnd().Replace("\n", "").Replace("\r", " ");//Считываем строку из файла, удаляя из нее символы переноса строки.
String[] lastnames = lastname.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
//Вытаскиваем номера в массив
string file2 = "C:\\Desktop\\num.txt";
StreamReader rd2 = new StreamReader(new FileStream(file2, FileMode.Open), System.Text.Encoding.Default);
string number = "";
number = rd2.ReadToEnd().Replace("\n", "").Replace("\r", " ");//Считываем строку из файла, удаляя из нее символы переноса строки.
String[] numbers = number.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("Введите искомый номер телефона:");
string numserch = Console.ReadLine();
//поиск элемента в массиве номеров
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] == numserch)
{
Console.WriteLine("Владелец данного номера: " + lastnames[i]);
}
}
Console.ReadLine();
}