VB6/VBA Iterace polynomů s komplexními koeficienty – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

VB6/VBA Iterace polynomů s komplexními koeficienty – Visual Basic – Fórum – Programujte.comVB6/VBA Iterace polynomů s komplexními koeficienty – Visual Basic – Fórum – Programujte.com

 

pee-jay_cz0
Návštěvník
29. 4. 2014   #1
-
0
-

Je to součást mojí plánované kalkulačky komplexních čísel.
Kdyby to chtěl někdo zkusit a měl nějaké nápady, připomínky...

Projekt zde:
http://uloz.to/xhJGHCU9/iterace-polynomu-rar

Obsahuje:

  • cITP.cls
  • modITPLoader.bas
  • ITP_loader.vbp
Attribute VB_Name = "modITPLoader"
Option Explicit

Private Sub Main()

    Dim i As Integer
    Dim ITP As New cITP

    ITP.DecimalNumbers = 5

    '-------------------------------------------------------------------
    '   Příklad zadání č. 1. :
    '-------------------------------------------------------------------
    '   x^6 - 21x^5 + 175x^4 - 735x^3 + 1624x^2 - 1764x + 720 = 0
    '-------------------------------------------------------------------

    ITP.Clear
    'Nejdříve reálná pak případně imaginární část komplexního čísla...
    ITP.AddCoefficient 1            'koeficient a
    ITP.AddCoefficient -21          'koeficient b
    ITP.AddCoefficient 175          'koeficient c
    ITP.AddCoefficient -735         'koeficient d
    ITP.AddCoefficient 1624         'koeficient e
    ITP.AddCoefficient -1764        'koeficient f
    ITP.AddCoefficient 720          'koeficient g

    ITP.Iterate

    Debug.Print ""
    Debug.Print "Kořeny rovnice jsou:"

    'Číslování kořenů začíná jedničkou, ne nulou jako v Listboxu.
    'Funkce strRoots vytváří klasický formát komplexního čísla.
    'Alternativami jsou 'číselné' funkce RealPart a ImaginaryPart.
    For i = 1 To ITP.RootsCount
        Debug.Print "x_" & Round(i) & " = " & ITP.strRoots(i)
    Next

    If ITP.UnknownRoots > 0 Then
        Debug.Print ""
        Debug.Print "Počet nenalezených kořenů:" & ITP.UnknownRoots
    End If

    '-------------------------------------------------------------------
    '   Očekávaný výstup je:
    '-------------------------------------------------------------------
    '   Kořeny rovnice jsou:
    '   x_1 = 6
    '   x_2 = 5
    '   x_3 = 4
    '   x_4 = 3
    '   x_5 = 2
    '   x_6 = 1
    '-------------------------------------------------------------------


    '-------------------------------------------------------------------
    '   Příklad zadání č. 2. :
    '-------------------------------------------------------------------
    '   x^8 + 40ix^6 - 842x^4 - 9640ix^2 + 48841 = 0
    '-------------------------------------------------------------------

    ITP.Clear
    
    ITP.AddCoefficient 1            'koeficient a
    ITP.AddCoefficient 0            'koeficient b
    ITP.AddCoefficient 0, 40        'koeficient c
    ITP.AddCoefficient 0            'koeficient d
    ITP.AddCoefficient -842         'koeficient e
    ITP.AddCoefficient 0            'koeficient f
    ITP.AddCoefficient 0, -9640     'koeficient g
    ITP.AddCoefficient 0            'koeficient h
    ITP.AddCoefficient 48841        'koeficient i

    ITP.Iterate

    Debug.Print ""
    Debug.Print "Kořeny rovnice jsou:"

    For i = 1 To ITP.RootsCount
        Debug.Print "x_" & Round(i) & " = " & ITP.strRoots(i)
    Next

    If ITP.UnknownRoots > 0 Then
        Debug.Print ""
        Debug.Print "Počet nenalezených kořenů:" & ITP.UnknownRoots
    End If

    '-------------------------------------------------------------------
    '   Očekávaný výstup je:
    '-------------------------------------------------------------------
    '   Kořeny rovnice jsou:
    '   x_1 = 4 - i
    '   x_2 = 3 - 2i
    '   x_3 = 2 - 3i
    '   x_4 = 1 - 4i
    '   x_5 = -1 + 4i
    '   x_6 = -2 + 3i
    '   x_7 = -3 + 2i
    '   x_8 = -4 + i
    '-------------------------------------------------------------------

End Sub
Nahlásit jako SPAM
IP: 213.129.136.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

C# elegantni iterace — založil Mrkus

Iterace v seznamu — založil kterosuom

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý