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

var
a:array[1..99999]of boolean;
i,k,n,kol,kol2:integer;
begin
writeln('ВВедите кол-во чисел ');readln(n);
for i:=1 to n do
a[i]:=true;
kol:=0;
kol2:=0;
k:=2;
while k*k<=n do begin
if a[k] then begin
i:=k*k;
while i <=n do begin
a[i]:= false;
i:=i+k;
kol:=kol+1;
end;
end;
k:=k+1;
end;
for i:=1 to n do
if a[i] then begin
kol2:=kol2+1;
write(i,' ');
end;
writeln();
writeln('Кол-во шагов = ',kol);
writeln('Кол-во чисел = ',kol2);
end.

Показать ответ
Ответ:
Rusynyk
Rusynyk
03.02.2021 17:57

Объяснение:

Перед непосредственно кодом нужно объяснить немного математики, а конкретно формирование суммы ряда.

Начнём с того, что в самом задании логическая ошибка. n-ый член ряда вычисляется по формуле

p_n=(-1)^n\frac{x^{2n}}{(2n)!}

но в случае, если n=1, должно получится

p_1=(-1)^1\frac{x^{2}}{(2)!}=-\frac{x^{2}}{2!}

В то время как мы видим, что в задании этот член ряда имеет положительный знак. Но мы будем следовать заданию и оставим его положительным, вынеся в отдельное условие.

Далее, каждый раз пересчитывать факториал до n-ного члена нерационально, поэтому нам нужно вывести формулу, которая будет считать следующий член ряда из предыдущего. В нашем случае мы должны будем постоянно домножать предыдущий член на некоторую постоянную функцию. Вот и найдём её. Во-первых, нам нужно обеспечить чередование знака, то есть если наша "константа" будет отрицательной, этого будет достаточно. Во-вторых, числитель дроби каждый раз увеличивается в x² раз, значит на это значение мы и будем домножать. Уже получилось -x². И в-третьих, знаменатель и тут нужно было быть чуть внимательнее, поскольку (2n)! ≠ (2(n-1))! * 2n. Выражение имеет другой вид (2n)! = (2(n-1))!*(2n-1)*2n

Итого имеем формулу n-ного члена в зависимости от n-1

p_n=p_{n-1}(-1)\frac{x^{2}}{2n(2n-1)}

Вот эту формулу мы и будем использовать для нахождения членов последовательности начиная со второго.

Получается вот такой код (см. ниже). А так же скриншот. Обратите внимание на отступы, потому как ваш код в задании, очень плохо читается. Учитесь сразу программировать красиво.

#include <iostream>

#include <iomanip>

#include <math.h>

using namespace std;

int main()

{

double a = 0.1, b=1.0, h=(b-a)/10.0, S,Y,x,p;

int i, n = 80;

x = a;

do

{

 p = 1;

 S = p;

 for (i = 1; i <= n; i++)

 {

  if (i == 1) p *= pow(x, 2.0) / 2;

  else p *= (-1) * pow(x, 2.0) / (2*i*(2*i - 1.0));

  S += p;

 }

 Y = cos(x);

 cout << setw(15) << x << setw(15) << Y << setw(15) << S << endl;

 x += h;

}  

while (x <= b + h / 2.0);

system("pause");

}


Не Сходятся значения Y и S4 вариант
0,0(0 оценок)
Ответ:
хорошийпарень2
хорошийпарень2
21.09.2020 13:33

Первая задача:

class_a, class_b, class_c = int(input("Сколько детей в А классе? ")), int(input("Сколько детей в Б классе? ")), int(input("Сколько детей в В классе? "))

print("Для класса А нужно купить " + str(round(class_a / 2)) + " парт.\nДля Б " + str(round(class_b / 2)) + " парт.\nДля В " + str(round(class_c / 2)) + " парт.")

Объяснения:

Нам известно, что за каждой партой могут сидеть два ученика.

Чтобы узнать, сколько парт нам нужно купить для каждого класса, мы за количество учеников.

Дальше мы делим количество учеников каждого класса на два и округляем функцией round(число).

Вторая задача:

km = int(input("Сколько км машина проезжает в день?"))

path = int(input("Какова длина маршрута?"))

print("Машина проедет путь за " + str(path/km) + " дня(ей).")

Объяснения:

По условиям задачи запрашиваем, сколько км проезжает машина за день и длину маршрута.

Далее мы делим длину маршрута на км/день и получаем ответ на нашу задачу.

3ую задачу не решил, извиняюсь

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