Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 732

Вычислить сумму ряда с использованием цикла с предусловием

17.03.2017, 20:54. Показов 6629. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вычислить сумму ряда с использованием цикла с предусловием.
1/12 + 1/32 + 1/52 + 1/72 + 1/92 + …
Программа с циклом FOR:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Program Summer1;
uses Crt;
var i: integer;
      Y: A: S: real;
begin
ClrScr;
   Y:= 1;
for i:= 0 TO 7 do begin
   Y:= 1 + (i * 2);
gotoXY(2 + i * 8), 2);
   write('    ' , Y:6:0);
   A:= 1 / Sqr(Y);
gotoXY(1 + i * 8, 4)
   write('   ' , A:6:4);
   S:= S + A;
end;
gotoXY(1, 6)
    writeln('   Кол. сламгаемых:  ' , 1 + i);
        writeln;
    writeln('    Сумма  слагаемых:  ' , S:6:4);
  readln;
end.
На выходе:
1 3 5 7 9 11 13 15
1.0000 0.1111 0.0400 0.0204 0.0123 0.0083 0.0059 0.0044
Кол. слагаемых: 8
Сумма слагаемых: 1.2025

С циклом FOR всё нормально: Ряд, Преобразованный ряд, Кол. слагаемых, Сумма их.
Всё чётко, ясно, конкретно.
А вод с использованием цикла с предусловием WHILE … DO – головоломка:

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
Program Summer1;
uses Crt;
var Eps, Y,  S: real;
      i: integer;
begin
ClrScr;
  write(' Ввести Epsilon:');
     readln(Eps);
     Y:= 1;
      i:= 0;
while abs(Y)  >=  Eps do begin
   i:= 1 + (i * 2)
    gotoXY(2 + i * 2, 3);
    write('     ' , i);
 
     Y:= 1 / Sqr(i);
      gotoXY(1 + i * 4, 5);
      write('    ' ,Y:6:4);
      S:= S + Y;
 end;
      gotoXY(1, 7);
      write('      Кол. слагаемых:  '  , i + 1);
      gotoXY(1, 9);
      writeln('      Сумма слагаемых:  '  , S:6:4);
  readln
end.
На выходе:
Ввести Epsilon: 0.005
1 3 7 15
1.0000 0.1111 0.0204 0.0044
Кол. слагаемых: 16
Сумма слагаемых: 1.136

И что – то здесь не так: ряд из 4 слагаемых с пропусками, преобразованный ряд тоже с 4 -мя слагаемыми и с пропусками.
Количество их указано 16, а напечатано 4 (и тех и тех). Сумма 1.136 соответс-
вует количеству напечатанных слагаемых. И в чём же здесь дело?
По этому Заданию 7.1 был уже запрос от 30.04.16. Ответ был такой:
Если нужно посчитать сумму N слагаемых, то задаётся N, а если до заданной точности, то
задаётся точность , а количество членов при этом мы заранее не можем знать.
Вот при n = 6 и = 0.01 результат сходится.
/Кстати, ваши ответы по оператору GoToXY(…) пошли в ход (а что, оператора LOCATE
в Паскале нет что ли? Пробовал его применить, получил отказ.)/
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2017, 20:54
Ответы с готовыми решениями:

Вычислить сумму ряда с использованием циклов с предусловием и постусловием
Bычиcлить cумму дaннoгo pядa c тoчнocтью дo члeнa pядa меньшeгo \varepsilon, для кaждoгo X измeняющeгoся в укaзaннoм диaпaзoнe c...

Вычислить сумму ряда с использованием цикла с предусловием
Вычислить сумму ряда с использованием цикла с предусловием. 1/1^2 + 1/3^2 + 1/5^2 + 1/7^2+ 1/9^2 + 1/11^2 +...

Вычислить сумму ряда путем цикла с предусловием (while)
Program Summer2; uses Crt; var Eps: real; S, Y: real; i: integer; begin ClrScr; write(‘ Ввести Epsilon: ‘);...

3
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
17.03.2017, 21:36
Цитата Сообщение от Petro29 Посмотреть сообщение
Pascal
4
Y: A: S: real;
в первом коде. Это случайность?

Добавлено через 7 минут
Вот while do в соответствии с
Цитата Сообщение от Petro29 Посмотреть сообщение
1/12 + 1/32 + 1/52 + 1/72 + 1/92 + …
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  eps,s,x,i:real;
begin
  write('Введите точность: '); readln(eps);
  x:=12; s:=0; i:=0;
  while 1/x>=eps do begin
    i:=i+1; s:=s+1/x; x:=x+20;
  end;
  writeln('Кол. слагаемых: ',i);
  writeln('Сумма: ',s:6:4);
  readln;
end.
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 732
31.03.2017, 20:47  [ТС]
Задание 7.1. Вычислить сумму ряда:

1/1^2+1/3^2+1/5^2+1/7^2+1/9^2+1/11^2+1/13^2+1/15^2
вычисления прекращаются
по тому же условию, что и в Примере 7.1 (т.е вычислена циклом с предусловием WHILE)
Полученная сумма должна быть близка к числу Pi / 8 .
Представляю то, что должно быть на выходе:
Ряд слагаемых: 1 0.1111 0.0400 0.0204 0.0123 0.0083 0.0059 0.0044
Сумма должна быть: S = 1.1980 без последнего слагаемого, равного 0.0044 < Eps = 0.005
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
Program Summer1;
uses Crt;
var Eps, Y, S: real;
      k, i: integer; {Счётчики шагов}
begin
ClrScr;
    write(' Ввести Eps:');
        readln(Eps);
      Y:= 1;  (Первое слагаемое)
       S:= Y;  {Первое слагаемое в сумматоре}
        i: = 0;  {Обнуление счётчика шагов}
    while abs(Y) >= Eps do begin
        k: = k + 1; {Количество слагаемых}
        i: = 1 + (i * 2);
        Y:= 1 / Sqr(i);  {Очередное слагаемое}
             write('    ' , Y:6:4);  {Печать слагаемых}
         S:= S + Y;
     end;
                  writeln;
             write(' Кол. слагаемых: ' , k);
                   writeln;
              writeln(' Сумма чисел: ' , S:6:4)'
           readln
end.
На выходе:
Ввести Eps: 0.005
1.0000 0.1111 0.0204 0.0044
Кол. слагаемых: 5
Сумма чисел: 2.1360
Почему ряд слагаемых печатается не полностью. Не напечатаны 3, 5, 6 и 7-е слагаемые,
причём 7-е слагаемое не должно печататься, так как 0.0044 < Eps = 0.005.
Соответственно и сумма вычислена без пропущенных слагаемых.
В чём дело?!
Ведь зависимость знаменателей ряда принята верно: i = 1 + (i * 2) , соответственно
знаменатели представляют такой вид: при i = 0 i = 1 + (i * 2) = 1
при i = 1 i = 1 + (i * 2) = 3 .
при I = 2 i = 1 + (i * 2) = 5 и т. д.
Миниатюры
Вычислить сумму ряда с использованием цикла  с предусловием  
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
31.03.2017, 22:27
Почему бы вам просто не взять код, который вам дали? Вы же за этим на форум написали?
Результаты моего кода
Введите точность: 0.005
0.0833 0.0313 0.0192 0.0139 0.0109 0.0089 0.0076 0.0066 0.0058 0.0052
Кол. слагаемых: 10
Сумма: 0.1927

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2017, 22:27
Помогаю со студенческими работами здесь

Используя оператор цикла с предусловием, вычислить сумму ряда
Используя оператор цикла с предусловием, вычислить сумму ряда с точностью ε=10-3: S=\sum_{n=1}^{\propto }\frac{\left(n+1 \right)\ln n}{n!}

Вычислить сумму ряда с использованием цикла for
Вычислить сумму ряда с использованием цикла for: 1/12+1/32+1/52+1/72+1/92+… uses Crt; Var i: Integer; R, A, S: Real; begin...

Вычислить сумму n первых членов ряда с использованием цикла repeat
1.Дан ряд {a}_{k}=\frac{\sqrt{k}}{{k}^{3}+0.8}. Вычислить сумму n первых членов ряда с использованием цикла repeat. 2.Дан одномерный...

Вычислить сумму ряда с использованием цикла с параметром
Вычислить сумму ряда: 1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{n}

Вычислить сумму ряда, используя while/do-while. Сравнить результаты, полученные с использованием разных операторов цикла
вычислить сумму ряда, используя while и do-while. Слагаемые, по модулю меньше заданного вещественного числа epsilon , не учитывать....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru