Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 43
1

Вычислить значение выражения

21.10.2013, 17:37. Показов 1063. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите найти ошибку в программе S должно равняться Y
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const eps=0.0001;
var s,si,x,y:real;
n:integer;
begin
writeln('x = ');
readln(x);
s:=1;
y:=cos(x);
si:=1;
n:=1;
repeat
si:=si*(-1)*sqr(x)/2*n;
s:=s+si;
n:=n+1;
until abs(si)<eps;
writeln('s= ',s:0:4,', y= ',y:0:4);
end.
Добавлено через 23 минуты
выручайте
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2013, 17:37
Ответы с готовыми решениями:

Вычислить значение выражения
p=sin^2x+x^2/∛x^2-1

Вычислить значение выражения
только начал осваивать паскаль кто подскажет ошибки и как их устранить вот задание которое надо...

Вычислить значение выражения
Вычислите (-1)^1*A1/1!+(-1)^2*A2/2!-...+(-1)^N*AN/N! Помогите долго ломаю голову

Вычислить значение выражения
Вычислить значение выражения (x1-x2)*(y1-y2), где x1 , x2 - корни уравнения ax^2+bx+c=0; y1 , y2 -...

11
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 43
21.10.2013, 18:18  [ТС] 2
вот условие
Миниатюры
Вычислить значение выражения  
0
24 / 24 / 30
Регистрация: 31.03.2011
Сообщений: 46
21.10.2013, 18:33 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Держи
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var 
  denominator:real;
  numerator:real;
  i,j, fact:integer;
  series:real;
  epsilon:real;
  x:real;
  
begin
  writeln('Введите значение x и точность вычислений epsilon');
  readln(x, epsilon);
 
  fact := 2;
  numerator := x * x;
  denominator := fact;
  series := 1 - (numerator / denominator);
  i := 1;
 
  repeat
    numerator := numerator * numerator;
    denominator := denominator * (fact + 1) * (fact + 2);
    fact := fact + 2;
    series:= series + (i*((numerator / denominator)));
    i:=i*-1;
  until(abs((numerator / denominator)) <= abs(epsilon));
  
  writeln(series:0:5,'  ', cos(x):0:5);
 
end.
1
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 43
21.10.2013, 18:48  [ТС] 4
можешь изменить мою программу

Добавлено через 2 минуты
Ultim[a]te, можешь изменить мою программу
0
24 / 24 / 30
Регистрация: 31.03.2011
Сообщений: 46
21.10.2013, 18:49 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var 
  denominator:real;
  numerator:real;
  i,j, fact:integer;
  series:real;
  epsilon:real;
  x:real;
  
begin
  writeln('Введите значение x и точность вычислений epsilon');
  readln(x, epsilon);
 
  fact := 2;
  numerator := x * x;
  denominator := fact;
  series := 1 - (numerator / denominator);
  i := 1;
 
  while(abs((numerator / denominator)) >= abs(epsilon)) do
  begin
    numerator := numerator * numerator;
    denominator := denominator * (fact + 1) * (fact + 2);
    fact := fact + 2;
    series:= series + (i*((numerator / denominator)));
    i:=i*-1;
  end;
  
  writeln(series:0:5,'  ', cos(x):0:5);
 
end.
1
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 43
21.10.2013, 18:50  [ТС] 6
Ultim[a]te, я не могу понять как она работает и где в ней формула
0
24 / 24 / 30
Регистрация: 31.03.2011
Сообщений: 46
21.10.2013, 18:54 7
Вводишь x = [0..1] и вводишь точность вычисления, обычно от 0.1 и до 0.0000000000000000001 в общем пока не надоест, если нужна только точность, как в условие, то, просто убери epsilon с readln и задай нужное значение. Минут через 10 добавлю еще код с комментариями.
1
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 43
21.10.2013, 18:59  [ТС] 8
Ultim[a]te,а можешь свою программу привести к внешнему виду к моей
0
24 / 24 / 30
Регистрация: 31.03.2011
Сообщений: 46
21.10.2013, 19:09 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от CentSergey Посмотреть сообщение
Ultim[a]te,а можешь свою программу привести к внешнему виду к моей
Это как?) задал epsilon постоянным. И исправил ошибку с вычислением х. Комментарии эквивалентны для обоих программ.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const epsilon = 0.0001;
 
var 
  denominator:real;
  numerator:real;
  i,j, fact:integer;
  series:real;
  x:real;
  
begin
  writeln('Введите значение x');
  readln(x);
  fact := 2;//базовое значение фаториала
  numerator := x * x;//базовое значение x(в формуле),это числитель в формуле
  denominator := fact;//знаменатель
  series := 1 - (numerator / denominator);//в итогу тут имеем 1-x^2/2!, ак и в формуле разложения cos.
  i := 1; //чередование сложения - вычитания последующего члена ряда
  
  //до тех пор, пока значение члена ряда >= точности
  while(abs((numerator / denominator)) >= abs(epsilon)) do
  begin
    numerator := numerator * (x * x);//читаем следующий x - это x^4, предыдущий был равен x^2, соответственной умножив его на себя еще раз получим x^4
    //x^4 * x^2 = x^6
    denominator := denominator * (fact + 1) * (fact + 2);//вычисляем значения факторияла ля следующего члена ряда это 2! *3 *4 = 4!, и т.д
    fact := fact + 2;//елаем приращение на два, для следующего цикла
    series:= series + (i*((numerator / denominator)));//сумируем ряд
    i:=i*-1;//меняем знак для следубщего члена ряда
  end;
  
  writeln(series:0:5,'  ', cos(x):0:5);
 
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const epsilon = 0.00001;
var 
  denominator:real;
  numerator:real;
  i,j, fact:integer;
  series:real;
  x:real;
  
begin
  writeln('Введите значение x');
  readln(x);
 
  fact := 2;
  numerator := x * x;
  denominator := fact;
  series := 1 - (numerator / denominator);
  i := 1;
 
  repeat
    numerator := numerator * (x * x);
    denominator := denominator * (fact + 1) * (fact + 2);
    fact := fact + 2;
    series:= series + (i*((numerator / denominator)));
    i:=i*-1;
  until(abs((numerator / denominator)) <= abs(epsilon));
  
  writeln(series:0:5,'  ', cos(x):0:5);
 
end.
1
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 43
21.10.2013, 19:31  [ТС] 10
спасибо

Добавлено через 1 минуту
Ultim[a]te,
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program seven;
uses crt;
const eps=0.0001;
var s,si,x,y:real;
n:integer;
begin
clrscr;
writeln('Введите х');
readln(x);
s:=1;
y:=cos(x);
si:=1;
n:=1;
while abs(si)>eps do begin
si:=si*-1*exp(2*n*ln(x))/(2*n);
s:=s+si;
n:=n+1;
end;
writeln('s = ',s:0:4,', y=',y:0:4);
readkey; 
end.
где в этой программе ошибка почему s и y не совпадают?
0
24 / 24 / 30
Регистрация: 31.03.2011
Сообщений: 46
21.10.2013, 19:59 11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
uses crt;
const eps=0.0001;
var s,si,x,y:real;
n,znak:integer;
 
function fact(n:integer):integer;
begin
  if n=1 then fact:=1
  else fact:=fact(n-1)*n;
end;
 
function pow(x,n:real):real;
begin
  pow:=exp(n*ln(x));
end;
 
begin
clrscr;
writeln('Введите х');
readln(x);
s:=1;
y:=cos(x);
si:=1;
n:=1;
znak:=-1;
while abs(si)>eps do begin
si:=znak*pow(x,2*n)/fact(2*n);
s:=s+si;
n:=n+1;
znak:=znak*-1;
end;
writeln('s = ',s:0:4,', y=',y:0:4);
readkey; 
end.
1
0 / 0 / 2
Регистрация: 09.03.2013
Сообщений: 43
21.10.2013, 20:04  [ТС] 12
а можно как-нибудь попроще
0
21.10.2013, 20:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2013, 20:04
Помогаю со студенческими работами здесь

Вычислить значение выражения
Помогите пожалуйста записать по правилам языка Паскаль данное выражение:

Вычислить значение выражения
Очень плохо разбираюсь с циклами. Пожалуйста прошу помочь с этим.

Вычислить значение выражения
Program nomer3; Var S, a, x, y: real; k: integer; Begin S:=0; a:=0.001; k:=1; ...

Вычислить значение выражения
Непосильная для меня задача. Сможете помочь? z:z=\begin{cases}t+2w &amp; \text{, } \left|t...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru