Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10

Определение количества слагаемых в уравнении

04.06.2019, 00:14. Показов 432. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помочь в написании проги. Суть: с клавиатуры вводим некий X, принадлежащий промежутку [https://www.cyberforum.ru/cgi-bin/latex.cgi?-\pi ; \pi], после нужно проверить равенство https://www.cyberforum.ru/cgi-bin/latex.cgi?-cos(x)+\frac{cos(2*x)}{{2}^{2}}-...+{(-1)}^{n}\frac{cos(n*x)}{{n}^{2}} . . . ={1}^{4}({x}^{2}-\frac{{\pi}^{2}}{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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
label tryAgain;
var x,curRes,trueRes,tempRes:real;
addCounter:integer;
eqCheck:boolean;
begin
tryAgain:
writeln('Введите X');
readln(x);
if x<pi then
  begin
    if x>-pi then
      begin
        eqCheck:=false;
        addCounter:=1;
        curRes:=-cos(x)+(cos(2*x)/4);
        trueRes:=1/4*(x*x-pi*pi/3);
        while eqCheck=false do
          begin
            if curRes=trueRes then
              begin
                writeln('Равенство выполняется, кол-во слагаемых =', addCounter);
                eqCheck:=true;
              end
            else
              begin
                tempRes:=curRes;
                curRes:=curRes-(Power(-1,addCounter)*cos(addCounter*x)/(addCounter*addCounter));
                Inc(addCounter);
              end;
          end;
      end
    else
        begin
          writeln('Введённое значение X не принадлежит области допустимых значений! Повторите попытку...');
          goto tryAgain;
        end;
  end      
else 
  begin
    writeln('Введённое значение X не принадлежит области допустимых значений! Повторите попытку...');
    goto tryAgain;
  end;
end.
Добавлено через 5 часов 43 минуты
Так, ладно, я с этим разобрался, проблемы и правда были... достаточно глупые проблемы...
У кого будут похожие задания - пишу разбор багов для вас)
1) я считал "n" из формулы, начиная с единицы, не обратив внимание, что в уравнении уже есть два слагаемых и они составлены по тому же принципу, что и слагаемые, идущие далее.
2) программа не считала уравнение выполненным тупо из-за того, что там очень много знаков после запятой, тут всё упирается в кол-во совпадающих знаков после запятой, которое можно считать приемлемым.
Кликните здесь для просмотра всего текста
3) я идиот, неправильно дебажил код) P.S. долго объяснять. Суть в том, что следил не за теми переменными))


Вот код рабочей программы:

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
label tryAgain;
var x,curRes,trueRes:real;
addCounter,accuracy:integer;
eqCheck:boolean;
begin
tryAgain:
writeln('Введите X');
readln(x);
// Проверка значения Х на принадлежность к интервалу
if x<=pi then
  begin
    if x>=-pi then
      begin
        writeln('С точностью до какой степени произвести расчёт?');
        writeln('Пример: до тысячных - введите "1000"');
        readln(accuracy);
        eqCheck:=false;
        addCounter:=1;
        curRes:=0;
        trueRes:=trunc(((x*x-pi*pi/3)/4)*accuracy)/accuracy;
        writeln('Значение правой части = ',trueRes);
        // Запуск цикла добавления слагаемых до тех пор, пока уравнение не выполнится
        while eqCheck=false do
          begin
            if trunc(curRes*accuracy)/accuracy = trueRes then
              begin
                writeln('Равенство выполняется, кол-во слагаемых = ', addCounter);
                writeln('Полное значение левой части = ',curRes);
                eqCheck:=true;
              end
            else
              begin
                curRes:=curRes+(Power(-1,addCounter)*cos(addCounter*x)/(addCounter*addCounter));
                Inc(addCounter);
              end;
          end;
      end
    else
        begin
          writeln('Введённое значение X не принадлежит области допустимых значений! Повторите попытку...');
          goto tryAgain;
        end;
  end      
else 
  begin
    writeln('Введённое значение X не принадлежит области допустимых значений! Повторите попытку...');
    goto tryAgain;
  end;
end.

Не по теме:

Похоже пора купить себе эту утку...

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2019, 00:14
Ответы с готовыми решениями:

Посчитать сумму указанного в варианте ряда для заданного значения x и точности (количества слагаемых)
Вот: у(х)=1-х+(Х*Х)/2!-(х*х*х)/3!+(х*х*х*х)/4!-......., abs(x)&lt;бесконечности z(x)=e^(-1)+b :wall::help::swoon::sorry:

Представить число N в виде суммы M натуральных слагаемых так, чтобы сумма синусов слагаемых была максимальной
Даны натуральные числа N и M. Нужно представить число N в виде суммы M натуральных слагаемых так, чтобы сумма синусов этих слагаемых была...

Определение количества цифр в числе
Помогите, пожалуйста, с алгоритмом для определения количества цифр в числе.

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

Определение минимального количества элементов последовательности
Навести фрагмент кода программы для определения минимального количества элементов последовательности 1/N=1.0.5,0.3333,0.25..... какие в...

Определение количества нулей в введенном числе
1. С клавиатуры вводится четырехзначное число N. Используя условный оператор необходимо составить программу для определения количества...

Определение общего количества больных в городе через t часов
Задание на картинке

Определение количества цифр в записи произвольного натурального числа
Попросили создать. Нужно решение следующих заданий 1) Составьте программу для определения количества цифр в записи произвольного...

Ввод массива, определение количества элементов больших K, меньших K, равных K, кратных K
дан одномерный массив A , для данного массива создать следующие функции: ваод массива, определение колличества элементов больших K, меньших...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru