Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2017, 11:22   #1
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию Вычислить сумму и найти число слагаемых, которые вошли в сумму. Процесс вычислений требуется закончить, когда очередное слагаемое по модулю окажется меньше ε (это слагаемое при выч

Прошу проверить саму программу.
Код:
var n:integer;
    x,s,e,s1,st,k:real;
    znak:-1..1;
begin
   Write('x = '); Readln(x);
   writeln('vvedite tochnost e');
readln(e);
k:=abs(e);
   n:=1;
   s:=0;
   znak:=-1;
   st:=x;
   While Abs(s1)<k do
   begin
      s1:=znak*((sin(n*x))/(n*n));
      s:=s+s1;
      n:=n+1;
      znak:=-znak;
      st:=st*x*x;
    end;   
   Writeln('Summa',s:8:5);
   Writeln('Chslo slagaemyh',n);
   Readln;
end.
Изображения
Тип файла: jpg Снимок.JPG (8.6 Кб, 53 просмотров)

Последний раз редактировалось Аватар; 04.04.2017 в 11:43.
igormel вне форума Ответить с цитированием
Старый 04.04.2017, 11:49   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
While Abs(s1)<k do
А чего такое условие цикла? Или зациклится или только одна итерация пройдет
Цитата:
st:=st*x*x;
а это для чего?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.04.2017, 11:55   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

нет. не верно.

ошибка номер раз (и главная) - это то, что s1 не иницилизируется до использования.
там может быть ноль, может быть мусор.
и ошибка номер два - цикл нужно выполнять, пока abs(s1) БОЛЬШЕ или РАВНО e (когда станет меньше - прервать цикл).

ну и дополнительные ошибки:
- неверно определяется знак (очевидно, что при n=1 знак будет + )
- бессмысленная и не нужная переменная st (которая может переполнится и обрушить программу).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.04.2017, 08:17   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Видимо мой пост где-то увидел.
Код:
var n:integer;
    x,s,e,s1:real;
    znak:-1..1;
begin
   Write('x = '); Readln(x);
   Write('vvedite tochnost e = '); Readln(e);
   n:=0;
   s:=0;
   znak:=-1;
   Repeat
      n:=n+1;
      znak:=-znak;
      s1:=znak*sin(n*x)/(n*n);
      s:=s+s1;
   Until Abs(s1)<e;
   Writeln('Summa = ',s:8:5);
   Writeln('Chslo slagaemyh = ',n);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму и найти число слагаемых avatar54 Помощь студентам 2 12.03.2017 04:37
Даны числовой ряд и некоторое число e>0. Найти сумму тех членов ряда, которые по модулю больше или равны e DevilSkyS Помощь студентам 4 04.12.2012 20:19
Вычислить сумму слагаемых при некоторых х и у Julila Помощь студентам 8 06.01.2011 22:37
задание. Вычислить сумму чисел кратных 7 которые меньше 400 sunny5442 Помощь студентам 12 27.05.2010 07:34