fork download
  1. Public Class Application
  2. Public Shared Sub Main()
  3. 'Trzeba sie przyjrzec, jak wyglada ten wzor.
  4. 'Pierwszy składnik sumy (1+ 1/3*x trzbea obliczyc bo w zaden sposob nie ma zaleznosci z pozostalymi
  5.  
  6. 'Poczawszy od drugiego skladnika sumy zmienia sie:
  7. '- znak skladnika co drugi jest ujemny, co drugi dodatni.
  8. '- potega x-a rosnie o 1.
  9. '- licznik kazdego skladnika jest iloczynem liczb o roznicy 3, iloczyn ten zaczyna sie od 2.
  10. ' w kazdym skladniku tego licznika jest o jeden wiecej iloczyn niz w poprzednim.
  11. '- mianownik sklada sie z iloczynu potegi trojki, potega rosnie o 1
  12. ' oraz silni, silnia tez rosnie o jeden.
  13.  
  14. ' Czyli wystarczy osobno zapamietac kazdy z tych elementow, poczawszy od drugiego.
  15. ' wszystko zapakowac w petle i za kazdym przejsciem odpowiednio zwiekszac kazdy element.
  16. ' a obliczony skladnik dodawac do wyniku.
  17.  
  18. Dim wynik As double 'zmienna bedzie przechowywac wynik po obliczeniach funkcja go wypluje
  19.  
  20. 'Zaczne od obliczenia pierwszego skladnika sumy.
  21. wynik = 1+1/3*x
  22. 'teraz trzeba przydzielic pamiec na poszczegolne elementy, oktorych napisalem wczesniej
  23. Dim znak As integer 'znak skladnika, bedzie sie zmieniac 0 na 1, z 1 na 0
  24. znak = 1 'przyjalem sobie, ze jeden to minus, 0 to plus. teraz trzeba bedzie liczyc 2 skladnik, a jest on ujemny.
  25. Dim licznik As Double 'bedzie trzymac aktualnie wyliczona wartosc licznika(w sensie ulamka)
  26. Dim LicznikNext As double 'musze wiedziec, przez co mam pomnożyc licznik, zeby wyliczyc kolejne.
  27. licznik = 2 'dalej bedzie widac dlaczego takie wartosci
  28. licznikNext = 2
  29. 'teraz stworze zmienne dla mianownika.
  30. 'zmienna na te potegi trojki z mianownika.
  31. Dim potegitrojki As double
  32. potegitrojki = 9 'bedzie mnozone razy trzy dla kazdego skladnika. pierwszy skladnik ma 3^2 = 9
  33. Dim silnia As double 'ta silnia w mianowniku kazdego skladnika
  34. silnia = 2 '2 bo 2! = 2
  35. Dim silniaNext As double 'do obliczania silni w kolejnych skladnikach
  36. silniaNext = 3 ' kolejny skladniki to 3! czyli 2!*3
  37. Dim potega_x As double 'bedzie trzymac kolejne potegi x-a
  38. potega_x = x^2
  39.  
  40. 'Mam wszystkie potrzebne zmienne do liczenia
  41. 'zmienna dokladnosc odpowiada za to ile tych skladnikow mamy zsumowac. im wiecej dodamy tym dokladniejszy bedzie wynik.
  42. 'stworze petle. kazde przejscie tej petli bedzie odpowiadac za sume jednego skladnika
  43. Dim i As Long
  44. For i=1 To dokladnosc
  45. 'do wynik dodaje/odejmuje kolejne skladniki
  46. If (znak == 1) then
  47. znak = 0
  48. wynik = wynik - (licznik / (potegitrojki * silnia) ) * potega_x
  49. else
  50. znak = 1
  51. wynik = wynik + (licznik / (potegitrojki * silnia) ) * potega_x
  52. End If
  53. 'teraz trzeba tylko ustawic wszystkie zmienne tak, aby wskazywaly na nastepny skladnik
  54. licznikNext = licznikNext+3
  55. licznik = licznik * licznikNext
  56. potegitrojki = potegitrojki * 3
  57. silnia = silnia * silniaNext
  58. silniaNext = silniaNext + 1
  59. Next i
  60. 'jak posumuje te skladniki to w zasadzie koniec. ta funkcja ma je zwrocic.
  61. System.Console.WriteLine(wynik)
  62. End Sub
  63. End Class
  64.  
  65.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Visual Basic.Net Compiler version 0.0.0.5914 (Mono 2.4.2 - r)
Copyright (C) 2004-2008 Rolf Bjarne Kvinge. All rights reserved.


/home/dYV7zH/<MyGenerator> (1,1) : Error VBNC99999: Unexpected error: Object reference not set to an instance of an object
  at vbnc.BinaryExpression.ResolveTypeReferences () [0x00020] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Expressions/BinaryExpressions/BinaryExpression.vb:55 
  at vbnc.BinaryExpression.ResolveTypeReferences () [0x00002] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Expressions/BinaryExpressions/BinaryExpression.vb:54 
  at vbnc.ParenthesizedExpression.ResolveTypeReferences () [0x00000] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Expressions/ParenthesizedExpression.vb:33 
  at vbnc.IfStatement.ResolveTypeReferences () [0x0002c] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Statements/IfStatement.vb:153 
  at vbnc.CodeBlock.ResolveTypeReferences () [0x0007e] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Code/CodeBlock.vb:582 
  at vbnc.BlockStatement.ResolveTypeReferences () [0x00002] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Statements/BlockStatement.vb:59 
  at vbnc.ForStatement.ResolveTypeReferences () [0x00106] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Statements/ForStatement.vb:122 
  at vbnc.CodeBlock.ResolveTypeReferences () [0x0007e] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Code/CodeBlock.vb:582 
  at vbnc.MethodBaseDeclaration.ResolveTypeReferences () [0x00081] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/General/MethodBaseDeclaration.vb:189 
  at vbnc.MethodDeclaration.ResolveTypeReferences () [0x00002] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Members/MethodDeclaration.vb:69 
  at vbnc.SubDeclaration.ResolveTypeReferences () [0x00036] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Members/SubDeclaration.vb:112 
  at vbnc.AssemblyDeclaration.ResolveTypeReferences (vbnc.TypeDeclaration Type) [0x00088] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/TypeDeclarations/AssemblyDeclaration.vb:311 
  at vbnc.AssemblyDeclaration.ResolveTypeReferences () [0x0002a] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/TypeDeclarations/AssemblyDeclaration.vb:288 
  at vbnc.Compiler.Compile_Resolve () [0x00100] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/General/Compiler.vb:413 
  at vbnc.Compiler.Compile () [0x0028a] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/General/Compiler.vb:561 
Compilation took 00:00:00.6928670
stdout
Standard output is empty