Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 59

Реализация метода хорд по блок-схеме

22.02.2016, 15:02. Показов 2044. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу по блок схеме(метод хорд), только не могу разобраться с этим. Пробовал цикл do while, не получается.
C++
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 #include<math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
float  a=2,b=3,e,y1,y2,x,y3,y;
 e=StrToFloat(Edit1->Text);
 y1=3*sin(sqrt(a))+0.35*a-3.8;
 y2=3*sin(sqrt(b))+0.35*b-3.8;
 
 
 x=a-y1*((b-a)/(y2-y1));
 y3=3*sin(sqrt(x))+0.35*x-3.8;
 
 if ((abs(x-a))<=e)  Memo1->Lines->Add(FloatToStr(x));
 else
  {
    if (y3<=e)  Memo1->Lines->Add(FloatToStr(x));
    else
     {
       if (y1*y3<0) { b=x; y2=y3;
 
       }  else {a=x; y1=y3;}
     }
 
  }
 
 
 
}
Миниатюры
Реализация метода хорд по блок-схеме  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2016, 15:02
Ответы с готовыми решениями:

Реализация метода хорд
Есть файл.При перемещении границы интервала, в котором находится корень, значение изменяется. Что я делаю не так?

Реализация метода хорд и касательных (С++ -> Си)
Здравствуйте. Очень хочу разобрать алгоритм метода хорд и касательных на си. Но при попытке написать вылазиет куча ошибок. У меня есть...

Составить программный код для метода сортировки Хоара (по блок-схеме)
никак не могу составить программный код для метода сортировки Хоара.

1
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.02.2016, 14:35
C++
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
class Tricky_form : public TForm
{
__published: // IDE-managed Components
 
    TTimer * tmr_1;
 
    void __fastcall FormPaint( TObject * Sender );
    void __fastcall tmr_1Timer( TObject * Sender );
 
public: // User declarations
 
    double a0, b0, a, b, eps;
    double x_scale, y_scale;
 
    int x_scr( double x ) // функции для вывода на экран - масштабируют координаты точек для формы и инвертируют ось y
    {
        return ClientWidth / 2 + x * x_scale;
    }
 
    int y_scr( double y )
    {
        return ClientHeight / 2 - y * y_scale;
    }
 
    double f( double x )
    {
        return
            // pow( x, 4 ) - 13 * pow( x, 2 ) + 36;
            3 * sin( sqrt( fabs( x ) ) ) + 0.35 * x - 3.8;
    }
 
    __fastcall Tricky_form( TComponent * Owner );
} ;
C++
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
50
51
52
53
54
55
56
57
58
59
60
61
__fastcall Tricky_form::Tricky_form( TComponent * Owner )
    :
    TForm( Owner )
{
    a0 = a = -7;
    b0 = b = 10;
    eps = 0.001;
 
    x_scale = ( ClientWidth / 2 ) / std::max( fabs( a0 ), fabs( b0 ) );
 
    double y_max( 0 );
    for ( double i( a0 ), i_limit( b0 ), y; i < i_limit; i += 0.1 )
    {
        y = fabs( f( i ) );
        y_max < y ? y_max = y : 0;
    }
    y_scale = ( ClientHeight / 2 ) / y_max;
}
 
void __fastcall Tricky_form::FormPaint( TObject * Sender )
{
    Canvas->Pen->Width = 1;
 
    // оси координат
    Canvas->Pen->Color = clGreen;
 
    Canvas->MoveTo( 0, ClientHeight / 2 );
    Canvas->LineTo( ClientWidth, ClientHeight / 2 );
    Canvas->MoveTo( ClientWidth / 2, 0 );
    Canvas->LineTo( ClientWidth / 2, ClientHeight );
 
    // график функции
    Canvas->Pen->Color = clBlue;
 
    Canvas->MoveTo( x_scr( a0 ), y_scr( f( a0 ) ) );
    for ( double i( a0 ), i_limit( b0 ); i < i_limit; i += 0.1 )
    {
        Canvas->LineTo( x_scr( i ), y_scr( f( i ) ) );
    }
 
    // хорда по текущим концам отрезка
    Canvas->Pen->Color = clRed;
    Canvas->Pen->Width = 3;
    Canvas->MoveTo( x_scr( a ), y_scr( f( a ) ) );
    Canvas->LineTo( x_scr( b ), y_scr( f( b ) ) );
}
 
// ---------------------------------------------------------------------------
void __fastcall Tricky_form::tmr_1Timer( TObject * Sender )
{
    a = b - ( b - a ) * f( b ) / ( f( b ) - f( a ) );
    b = a + ( a - b ) * f( a ) / ( f( a ) - f( b ) );
    Refresh( );
 
    if ( fabs( b - a ) < eps )
    {
        tmr_1->Enabled = false;
        ShowMessage( "a = " + FloatToStr( a ) + ", b = " + FloatToStr( b ) +
            "\nf(a) = " + FloatToStr( f( a ) ) + ", f(b) = " + FloatToStr( f( b ) ) );
    }
}
Видео



Реализация метода секущих просто взята из Википедии.

Андрей_Андрeй, интересующий тебя цикл можно записать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    int count( 1 );
 
    do
    {
        a = b - ( b - a ) * f( b ) / ( f( b ) - f( a ) );
        b = a + ( a - b ) * f( a ) / ( f( a ) - f( b ) );
 
        if ( fabs( b - a ) < eps )
        {
            ShowMessage( "a = " + FloatToStr( a ) + ", b = " + FloatToStr( b ) +
                "\nf(a) = " + FloatToStr( f( a ) ) + ", f(b) = " + FloatToStr( f( b ) ) );
            break;
        }
    }
    while ( ++count <= 1000 );
 
    if ( count > 1000 )
    {
        ShowMessage( "За 1000 итераций корней не найдено." );
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2016, 14:35
Помогаю со студенческими работами здесь

доделать эту программу по блок схеме. На блок схеме продолжение.
Помогите пожалуйста доделать эту программу по блок схеме. На блок схеме продолжение. const m=5; sigma=1; lam=5; var y:array of...

Написать алгоритм по блок схеме (Алгоритм метода Ньютона)
Прошу помогите, очень срочно! Сижу на экзамене!

Алгоритм метода хорд!!!
Не получаеться решить! почему пишет - путь не задан! Задание; Необходимо получить решение уравнения; ...

Нужно перевести программу из паскаль в делфи . Сама программа этот реализация метода гауса и метода зейделя
Это все в паскале сделано. В программе идет в начале описание меня а аотом сама подпрограмма реализации этих методов. В делфи надо сделать...

Ошибка при использовании метода хорд
// chord method.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &quot;conio.h&quot; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты 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 - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru