Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

MathEx


Sopelek997

Rekomendowane odpowiedzi

Opublikowano

Piszcie propozycje/gotowe kody funkcji z matematyki, fizyki i chemii.

 

 

 

Kod

 

http://wklej.to/BYbci

 

Funkcje

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_ConvertSystemXtoY($iSysIn, $iNumber, $iSysOut)

_LogX($fX, $fNumber)

_SumaEx($fSkladnik1, $fSkladnik2, $a = False)

_OdejmEx($fOdjemna, $fOdjemnik)

_MnozEx($fCzynnik1, $fCzynnik2)

_DistanceFromXtoY($fX1, $fY1, $fX2, $fY2)

_CrossPoint($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22)

_WyznaczDelte($a, $b, $c)

_TrojmianP($a, $B)

_TrojmianQ($a, $delta)

_NWD($iLiczba1, $iLiczba2)

_NWW($iLiczba1, $iLiczba2)

_Silnia($N)

_Wariacje($N, $K, $bPow)

_Permutacje($N)

_Kombinacje($N, $K, $bPow)

_ArabskaToRzymska($Arabska)

_RzymskaToArabska($rzymska)

_EnergiaKinetyczna($masa, $predkosc)

_EnergiaPotencjalnaGrawitacji($masa, $wysokosc, $_g = $pg)

_SilaWyporu($gestosc, $ObjCieczyWyp, $_g = $pg)

_SilaSprezystosci($Wsp, $ZmianaDlCiala)

_PredkoscFali($dl, $Czestotliwosc)

_SilaCiezkosci($dl, $_g = $pg)

_Ped($masa, $predkosc)

_Przyspieszenie($predkosc, $czas)

_Gestosc($masa, $objetosc)

_Praca($sila, $deltaX)

_Moc($praca, $czas)

_Predkosc($deltaX, $deltaT)

_Rezystancja($napiecie, $natezenie)

_MocPradu($napiecie, $natezenie)

_PracaPradu($napiecie, $natezenie, $czas)

_RozdzielNaCzastki($sZwiazek)

_StezenieProcentowe($masa_s, $masa_r)

_MasaCzasteczkowa($sZw)

_XLiczbaCiaguFibonacciego($iN)

_SumaKolejnychLiczb($iX, $iY)

_SymbolNewtona($N, $K)

_CzyPodzielne($a, $B)

_ZamienJednostkiDlugosci($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiPolaPowierzchni($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiDanych($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiObjetosci($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiEnergii($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiMasy($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

Autorzy:

  • Sopel (ja)
  • Protecto
  • No Ja
  • wojtek333314
  • Assa
  • zwierzak z autoit.xaa.pl

Piszcie swoje propozycje ^^

 

 

@edit. 23.11.2011 09:34

poprawiona funkcja _ConvertSystemXtoY(), która błędnie zamieniała liczby na system dzięsiątkowy.

 

 

@edit 06.12.2011 15:14

5 nowych funkcji (tak z okazji mikołajek ;p)

_ZamienJednostkiDlugosci($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiPolaPowierzchni($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiDanych($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiObjetosci($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_SumaKolejnychLiczb($iX, $iY)

 

@edit 17.12.2011 16:51

dodano

_ZamienJednostkiEnergii($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

_ZamienJednostkiMasy($fLiczba, $Jedn1, $Jedn2, $bAlgebraEx = 0)

 

 

 

@edit..

jakiś kurwa jebany spambot ma więcej wyświetleń, niż to...

 

@edit. wrzuciłem na wklet.to i ogarnołem spoilery

  • Odpowiedzi 50
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

całka oznaczona(to na potem), wyznacznik macierzy moze byc najprostrzej

|1/3 1|
|2/3 5|

jak ci sie uda to dam nastepne:d

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

@up, Poczytałem troche o całkach, ale jeszcze są ponad moje możliwości. Później jeszcze spróbuje pogłówkować. (Nie wiem jak ująć funkcje, która przedstawia wykres funkcji w pamięci)

 

@AutoitMaster, Dałbyś link to Delt, bo nigdzie nie mogę ich znalzeźć

 

@józef, już się zabieram do tego.

Opublikowano

@up, Poczytałem troche o całkach, ale jeszcze są ponad moje możliwości. Później jeszcze spróbuje pogłówkować. (Nie wiem jak ująć funkcje, która przedstawia wykres funkcji w pamięci)

 

@AutoitMaster, Dałbyś link to Delt, bo nigdzie nie mogę ich znalzeźć

 

@józef, już się zabieram do tego.

http://pl.wikibooks.org/wiki/Matematyka_dla_liceum/Funkcja_kwadratowa/R%C3%B3wnania_kwadratowe

Opublikowano

Przerób na swój standard owoc moich wymysłów i załącz do tej biblioteki ;)

 

Odległość dwóch punktów:

 

Func odl2pkt($x1, $y1, $x2, $y2)
Return Sqrt(($x2 - $x1) * ($x2 - $x1) + ($y2 - $y1) * ($y2 - $y1))
EndFunc   ;==>odl2pkt

x1, y1 - pozycja pierwszego punktu
x2, y2 -x pozycja drugiego punktu

 

 

punkt przecięcia dwóch prostych (proste wyznaczane na podstawie dwóch punktów)

Func przeci($x11, $y11, $x12, $y12, $x21, $y21, $x22, $y22)
Local $przec[2]
$przec[0] = Int(((-C($x11, $x12, $y11, $y12)) * B($x21, $x22) - (-C($x21, $x22, $y21, $y22)) * B($x11, $x12)) / w($x11, $y11, $x12, $y12, $x21, $y21, $x22, $y22))
$przec[1] = Int((A($y11, $y12) * (-C($x21, $x22, $y21, $y22)) - A($y21, $y22) * (-C($x11, $x12, $y11, $y12))) / w($x11, $y11, $x12, $y12, $x21, $y21, $x22, $y22))
Return $przec
EndFunc   ;==>przeci

x11, y11 - pozycja pierwszego punkt prostej 1
x12, y12 - pozycja drugiego punkt prostej 1
x21, y21 - pozycja pierwszego punkt prostej 2
x22, y22 - pozycja drugiego punktu prostej 2

 

Do powyższej funkcji trzeba tych poniżej (albo jakoś przerobić)

 

wyznaczanie współczynników A, B, C w funkcji liniowej (0 = Ax + By + C) (prosta na podstawie dwóch punktów)


Func A($y1, $y2)
Return -($y2 - $y1)
EndFunc   ;==>A

Func B($x1, $x2)
Return $x2 - $x1
EndFunc   ;==>B

Func C($x1, $x2, $y1, $y2)
Return ($x2 - $x1) * (-$y1) - ($y2 - $y1) * (-$x1)
EndFunc   ;==>C

x1, y1 - pozycja pierwszego punktu prostej
x2, y2 - pozycja drugiego punktu prostej

wiz_taxer.png
Opublikowano

@2up, poczytam wieczorkiem, jak będe w domu (zaraz wychodze)

Func _SumaEx($fSkladnik1, $fSkladnik2)
If Not StringInStr($fSkladnik1, ".") Then $fSkladnik1 &= '.0'
If Not StringInStr($fSkladnik2, ".") Then $fSkladnik2 &= '.0'
Local $ilpoprzec1 = StringSplit($fSkladnik1, '.')
Local $ilpoprzec2 = StringSplit($fSkladnik2, '.')
If StringLen($ilpoprzec1[1]) >= StringLen($ilpoprzec2[1]) Then
	Do
	$ilpoprzec2[1] = '0' & $ilpoprzec2[1]
Until StringLen($ilpoprzec2[1]) > StringLen($ilpoprzec1[1])
$ilpoprzec2[1] = StringTrimLeft($ilpoprzec2[1], 1)
Else
	Do
	$ilpoprzec1[1] = '0' & $ilpoprzec1[1]
Until StringLen($ilpoprzec1[1]) > StringLen($ilpoprzec2[1])
$ilpoprzec1[1] = StringTrimLeft($ilpoprzec1[1], 1)
EndIf
If StringLen($ilpoprzec1[2]) >= StringLen($ilpoprzec2[2]) Then
	Do
	$ilpoprzec2[2] &= '0'
Until StringLen($ilpoprzec2[2]) > StringLen($ilpoprzec1[2])
$ilpoprzec2[2] = StringTrimRight($ilpoprzec2[2], 1)
Else
	Do
	$ilpoprzec1[2] &= '0'
Until StringLen($ilpoprzec2[2]) < StringLen($ilpoprzec1[2])
$ilpoprzec1[2] = StringTrimRight($ilpoprzec1[2], 1)
EndIf

	$fSkladnik1 = $ilpoprzec1[1] & '.' & $ilpoprzec1[2]
$fSkladnik2 = $ilpoprzec2[1] & '.' & $ilpoprzec2[2]

$dl = StringLen($fSkladnik1)
$cyfry1 = StringSplit($fSkladnik1, '')
$cyfry2 = StringSplit($fSkladnik2, '')

Local $cyfrywyn[$dl + 1]
For $i = 0 To $dl

	$cyfrywyn[$i] = 0
Next

For $i = $dl To 1 step -1
	If $cyfry1[$i] = '.' Then
		$cyfrywyn[$i] = '.'
	Else
		If $cyfrywyn[$i] + $cyfry1[$i] + $cyfry2[$i] > 9 Then
			if $cyfry1[$i - 1] = '.' then
			$cyfrywyn[$i - 2] += 1
		Else
			$cyfrywyn[$i - 1] += 1
			endif
			$cyfrywyn[$i] += $cyfry1[$i] + $cyfry2[$i] - 10

		Else
			$cyfrywyn[$i] += $cyfry1[$i] + $cyfry2[$i]

		EndIf
	EndIf
Next
Local $wynik = ''

For $i = 1 To $dl
	$wynik &= $cyfrywyn[$i]
Next

return string($wynik)
EndFunc

Sprawdźcie czy działa (tylko na dodatnie) Możecie go ulepszyć/poprawić, dopisze jako autora.

Wieczorkiem zorbie to samo na inne działania algebraiczne (-, /, *)

 

@narazie zagmatwane i nie profesjonalnie, ale poprawie poprawie to później

@up, wieczorem to ogarne, dzięki za przedstawienie jak to ma wyglądać,będzie mi dużo prościej ;)

 

 

PS. Dzięki wszystkim za zainteresowanie

 

 

@No Ja, brakuje funkcji w(). Nie wiem co się ma tam wykonać :x

Dobra, ogarnąłem

 

Jest problem w _sumaex() w pewnym momencie wyśietla już maksymalną wartość czyli 8................................ i coś tam dalej. Nie wiem czym może to być spowodowane, być może typem VARIANT, który jest w autoit. Wie ktoś jak zrobić, aby uznawał zmienna $wynik za tylko i wyłącznie string?

Było to spowodowane nie możnością przekazania do funkcji tak dużych liczb, a także zwrócenia takowej, więc trzeba je podawać jako string. więc gdy obie liczby były większe od możliwych do przekazania, przykazywał 2* size of unsigned int, i je sumował.

 

Odejmowanie :

Func _OdejmEx($fOdjemna, $fOdjemnik)
If Not StringInStr($fOdjemna, ".") Then $fOdjemna &= '.0'
If Not StringInStr($fOdjemnik, ".") Then $fOdjemnik &= '.0'
Local $ilpoprzec1 = StringSplit($fOdjemna, '.')
Local $ilpoprzec2 = StringSplit($fOdjemnik, '.')
If StringLen($ilpoprzec1[1]) >= StringLen($ilpoprzec2[1]) Then
	Do
		$ilpoprzec2[1] = '0' & $ilpoprzec2[1]
	Until StringLen($ilpoprzec2[1]) > StringLen($ilpoprzec1[1])
	$ilpoprzec2[1] = StringTrimLeft($ilpoprzec2[1], 1)
Else
	Do
		$ilpoprzec1[1] = '0' & $ilpoprzec1[1]
	Until StringLen($ilpoprzec1[1]) > StringLen($ilpoprzec2[1])
	$ilpoprzec1[1] = StringTrimLeft($ilpoprzec1[1], 1)
EndIf
If StringLen($ilpoprzec1[2]) >= StringLen($ilpoprzec2[2]) Then
	Do
		$ilpoprzec2[2] &= '0'
	Until StringLen($ilpoprzec2[2]) > StringLen($ilpoprzec1[2])
	$ilpoprzec2[2] = StringTrimRight($ilpoprzec2[2], 1)
Else
	Do
		$ilpoprzec1[2] &= '0'
	Until StringLen($ilpoprzec2[2]) < StringLen($ilpoprzec1[2])
	$ilpoprzec1[2] = StringTrimRight($ilpoprzec1[2], 1)
EndIf

$fOdjemna = $ilpoprzec1[1] & '.' & $ilpoprzec1[2]
$fOdjemnik = $ilpoprzec2[1] & '.' & $ilpoprzec2[2]

$dl = StringLen($fOdjemna)
if $fOdjemna >= $fOdjemnik then
$cyfry1 = StringSplit($fOdjemna, '')
$cyfry2 = StringSplit($fOdjemnik, '')
$minus = false
else
$cyfry2 = StringSplit($fOdjemna, '')
$cyfry1 = StringSplit($fOdjemnik, '')
$minus = true
endif
Local $cyfrywyn[$dl + 1]
For $i = 0 To $dl

	$cyfrywyn[$i] = 0
Next

For $i = $dl To 1 Step -1
	If $cyfry1[$i] = '.' Then
		$cyfrywyn[$i] = '.'
	Else
		If $cyfry1[$i] - $cyfry2[$i] < 0 Then
			If $cyfry1[$i - 1] = '.' Then
				$cyfry1[$i - 2] -= 1
			Else
				$cyfry1[$i - 1] -= 1
			EndIf
			$cyfrywyn[$i] = $cyfry1[$i] + 10 - $cyfry2[$i]

		Else
			$cyfrywyn[$i] = $cyfry1[$i] - $cyfry2[$i]

		EndIf

	EndIf
Next

Local $wynik = ''
if $minus = true then $wynik &= '-'
For $i = 1 To $dl
	$wynik &= string($cyfrywyn[$i])
Next

Return string($wynik)
EndFunc   ;==>_OdjemEx[s]

[/s]

 

sprawdzcie i zaproponujcie mi jakąś inna nazwę dla tej funkcji bo _OdejmEX() jest troche lipna.

 

@edit, gdy skończe jeszcze mnożenie i dzielenie, zrobię możliwość działań na ujemnych, na zasadzie x + (-x) = x - x, -x - x = -(x+x) itp itd.

Opublikowano

; #FUNKCJA# ======================================================================================
; Nazwa..........: _wyznaczdelte
; Opis...........: Wyznacza wyróżnik trójmianu kwadratowego (deltę trójmianu kwadratowego)
; Składnia.......: _wyznaczdelte($a,$b,$c)
; Parametry......: $a,$b,$c - Swego rodzaju stałe, liczby rzeczywiste, $a musi być różna od zera
;               
; Zwracane wart..: Sukces - Zwraca delte
;                               Niepowodzenie - Zwraca -1 - Współczynnik a jest równy zero
;                               
; Autor .........: wojtek333314
; =================================================================================================
func _wyznaczdelte($a,$b,$c)
if $a<>0 Then
$delta=($b^2)-4*$a*$c
Return $delta
Else 
Return -1
EndIf
EndFunc

; #FUNKCJA# ======================================================================================
; Nazwa..........: _trojmianp($a,$
; Opis...........: Wyznacza p, czyli współrzędna X wierzchołka wykresu paraboli(wykresu funkcji kwadratowej)
; Składnia.......: _trojmianp($a,$
; Parametry......: $a,$b - Liczby rzeczywiste
; Zwracane wart..: Sukces - Zwraca współrzędna X wierzchołka wykresu paraboli                    
; Autor .........: wojtek333314
; =================================================================================================
func _trojmianp($a,$
$p=($B)/(2*$a)
Return $p
EndFunc

; #FUNKCJA# ======================================================================================
; Nazwa..........: _trojmianq($a,$delta)
; Opis...........: Wyznacza q, czyli współrzędna Y wierzchołka wykresu paraboli(wykresu funkcji kwadratowej)
; Składnia.......: _trojmianq($a,$delta)
; Parametry......: $delta - wyróżnik  trójmianu kwadratowego
;                  $a - Liczba rzeczywista
; Zwracane wart..: Zwraca współrzędna Y wierzchołka wykresu paraboli       
; Autor .........: wojtek333314
; =================================================================================================
func _trojmianq($a,$delta)
$q=(-$delta)/(4*$a)
Return $q
EndFunc


 

Jak już będziesz miał i nie będziesz rozumiał AutoIT master to wal do mnie , ja to przerabiałem już...

Co do trójmianów funkcji kwadratowych (dzial w ktorym sa wprowadzane wlasnie te delty) pobawie sie z nimi dzis i edytuje jak napisze wiecej funkcji to dorzucisz do programu :)

Opublikowano

@up, wielkie dzięki, zaraz dodam te fukcje, oczywiście wpisze Cię jako ich autora. Jeszcze jakbyś mógł mi pomóc w ogarnięciu/wytłumaczyć mi rozrysowywania funkcji w pamięci (do całek)

 

Biorę się za metryczki funkcji

 

 

@jak skończe to edytuje pierwszy post ze wszystkimi funkcjami jakie są do tych czas

 

@dodałem nowe funkcje i edytowałem pierwszy post

Opublikowano

@refresz

 

Tak wgl. to prawie skończyłem funckję MnozEx(), jestem lekko chory więc pisanie tego zajęło mi dość długo (ok 3-4 godziny). Daje Wam kod, możecie go skrócić, popróbować, ogólnie poprawić. Co do zbędnych zer po przecinku i na początku liczby, zrobię potem prostą funkcję, która je usuwa. Potem zostaną tylko działania na liczba ujemnych, dzielenie, i przejdę do następnych rzeczy.

 

 

Func _MnozEx($fCzynnik1, $fCzynnik2)
If $fCzynnik1 < $fCzynnik2 Then
	Local $tmp
	$tmp = $fCzynnik1
	$fCzynnik1 = $fCzynnik2
	$fCzynnik2 = $tmp
EndIf
Local $ilpoprzec1
Local $ilpoprzec2
Local $dl
Local $cyfry1
Local $cyfry2
Local $minus
Local $wynik = ''
Local $i
Local $ii
Local $dl2
Local $pamiec_dod = 0
Local $poprzecwyn
Local $a
If Not StringInStr($fCzynnik1, ".") Then $fCzynnik1 &= '.0'
If Not StringInStr($fCzynnik2, ".") Then $fCzynnik2 &= '.0'
Local $ilpoprzec1 = StringSplit($fCzynnik1, '.')
Local $ilpoprzec2 = StringSplit($fCzynnik2, '.')
$poprzecwyn = StringLen($ilpoprzec1[2]) + StringLen($ilpoprzec2[2])

If StringLen($ilpoprzec1[1]) >= StringLen($ilpoprzec2[1]) Then
	Do
		$ilpoprzec2[1] = '0' & $ilpoprzec2[1]
	Until StringLen($ilpoprzec2[1]) > StringLen($ilpoprzec1[1])
	$ilpoprzec2[1] = StringTrimLeft($ilpoprzec2[1], 1)
Else
	Do
		$ilpoprzec1[1] = '0' & $ilpoprzec1[1]
	Until StringLen($ilpoprzec1[1]) > StringLen($ilpoprzec2[1])
	$ilpoprzec1[1] = StringTrimLeft($ilpoprzec1[1], 1)
EndIf
If StringLen($ilpoprzec1[2]) >= StringLen($ilpoprzec2[2]) Then
	Do
		$ilpoprzec2[2] &= '0'
	Until StringLen($ilpoprzec2[2]) > StringLen($ilpoprzec1[2])
	$ilpoprzec2[2] = StringTrimRight($ilpoprzec2[2], 1)
Else
	Do
		$ilpoprzec1[2] &= '0'
	Until StringLen($ilpoprzec2[2]) < StringLen($ilpoprzec1[2])
	$ilpoprzec1[2] = StringTrimRight($ilpoprzec1[2], 1)
EndIf

$fCzynnik1 = $ilpoprzec1[1] & $ilpoprzec1[2]
$fCzynnik2 = $ilpoprzec2[1] & $ilpoprzec2[2]

$dl2 = StringLen($fCzynnik2) ;max szer pc + 1
$dl = StringLen($fCzynnik1) ;max szer dc + 1
$cyfry1 = StringSplit($fCzynnik1, '')
$cyfry2 = StringSplit($fCzynnik2, '')
Local $r2 = StringLen($fCzynnik1) + StringLen($fCzynnik2);max szer wyniku
Local $cyfrywyn[$r2 + 1]
Local $cyfrywyn2 = ''

Local $wynikmnozenia[$dl2][$r2 + 1]
Local $wynikmnozenia2[1][$r2 + 1]
For $i = 0 To $dl

	$cyfrywyn[$i] = ''

Next
For $i = 0 To $dl2 - 1
	For $ii = 0 To $r2
		$wynikmnozenia[$i][$ii] = '-'
	Next
Next
;~ 	_ArrayDisplay($cyfry1)
;~ 	_ArrayDisplay($cyfry2)
For $i = $dl2 - 1 To 0 Step -1
	For $ii = $dl - 1 To 0 Step -1
		If $cyfry2[$i + 1] * $cyfry1[$ii + 1] + $pamiec_dod > 9 Then

			$wynikmnozenia[$dl2 - $i - 1][$r2 - ($dl - $ii) - ($dl2 - $i) + 2] = StringRight(($cyfry2[$i + 1] * $cyfry1[$ii + 1]) + $pamiec_dod, 1)
			$pamiec_dod = StringLeft(($cyfry2[$i + 1] * $cyfry1[$ii + 1]) + $pamiec_dod, 1)
;~ 				MsgBox(64, '', $dl2 - $i - 1 & '	' & $r2 -  ($dl - $ii) - ($dl2 - $i) + 2 & '   		' & $cyfry2[$i + 1] * $cyfry1[$ii + 1] & '	' & $pamiec_dod & '	' & 'reszta')
		Else

;~ 				MsgBox(64, '', $dl2 - $i - 1 & '	' & $r2 -  ($dl - $ii) - ($dl2 - $i) + 2 & '   		' & $cyfry2[$i + 1] * $cyfry1[$ii + 1] & '	' & $pamiec_dod)
			$wynikmnozenia[$dl2 - $i - 1][$r2 - ($dl - $ii) - ($dl2 - $i) + 2] = ($cyfry2[$i + 1] * $cyfry1[$ii + 1]) + $pamiec_dod
			$pamiec_dod = 0
		EndIf
		If $pamiec_dod > 0 And $ii = 0 Then
		$wynikmnozenia[$dl2 - $i - 1][$r2 - ($dl - $ii) - ($dl2 - $i) - 1 + 2] = $pamiec_dod
		$pamiec_dod = 0
		endif
	Next
Next
;~ 	_ArrayDisplay($wynikmnozenia)
$a = 0
$tmp = 0
For $i = 0 To $dl2 - 1
	For $ii = 0 To $r2
		$tmp += $wynikmnozenia[$i][$ii]
	Next

	If $tmp <> 0 Then

		$a += 1
		ReDim $wynikmnozenia2[$a][$r2 + 1]

		For $ii = 0 To $r2
			$wynikmnozenia2[$a - 1][$ii] = $wynikmnozenia[$i][$ii]

		Next

	EndIf
Next
For $i = 0 To $a - 1
	For $ii = 0 To $r2
		$cyfrywyn[$i] &= $wynikmnozenia2[$i][$ii]
	Next
Next
For $i = 0 To $a - 1
	$cyfrywyn2 = _sumaex($cyfrywyn2, $cyfrywyn[$i])
Next
$cyfrywyn2 = StringTrimRight($cyfrywyn2, 2)
local $tmp1, $tmp2
$tmp1 = StringRight($cyfrywyn2, $poprzecwyn)
$cyfrywyn2 = StringTrimRight($cyfrywyn2, $poprzecwyn)
$cyfrywyn2 &= '.' & $tmp1
Return $cyfrywyn2
EndFunc   ;==>_MnozEx


 

 

Kod jest zagmatwany, jak już mówiłem, ze względu mojego stanu zdrowia, który nie pozwala mi normalnie myśleć.

 

@edit, jest bug,

Np. _MnozEx('4000000000000', '50000000000000000000000000000')

pojawia się liczba 2 w wyniku, lecz tej liczby 2 i całej reszty w prawo nie powinno być, pogłówkujcie, ja nie mam siły...

Naprawione. Błąd był spowodowany, nie zmienianiem wartości zmiennej $pamiec_dod i po przejściu do kolejnej linijki była dopisywana na początku.

 

 

Dodane, ucinanie niepotrzebnych zer. Edytowałem pierwszy post

Opublikowano

dodaj sobie jeszcze to:d

Func objetosc_walca($r, $h)
$obw = (2 * (3.14) * $r) * $h
Return $obw
EndFunc   ;==>objetosc_walca

Func przekatnakwadratu($a)
$d = $a * Sqrt(2)
Return $d
EndFunc   ;==>przekatnakwadratu

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

@up, czyli piszemy funkcje do kalkulatora ? ;p zastanowię się czy dodać, i pisać funkcje tego typu i czy to w ogóle ma sens.

 

PS. w kodzie w sygnie dodaj jakiegoś sleepa(), nie chce tak szybko umierać ;(

 

 

I piszcie mi jakieś propozycje zwięzłych treściwych nazw już istniejących funkcji, bo te są tymczasowe.

Opublikowano

No to może ja dodam coś skromnie ode mnie :P

; #FUNKCJA# ======================================================================================
; Nazwa..........: _Factorial
; Opis...........: Zwraca silnie(obliczaną rekurencyjnie) dla podanej luczby
; Składnia.......: _Factorial($N)
; Parametry......: $X - Podstawa.
; Zwracane wart..: Sukces - Zwraca wartosc liczby
;					Dla N=0 zwraca 1
; Autor .........: Assa
Func _FactorialRec($N)
Local $i, $silnia=1
for i=1 to $N
	$silnia *= $i
Next
return $silnia
EndFunc
; #FUNKCJA# ======================================================================================
; Nazwa..........: _FactorialRec
; Opis...........: Zwraca silnie(obliczaną rekurencyjnie) dla podanej luczby
; Składnia.......: _FactorialRec($N)
; Parametry......: $X - Podstawa.
; Zwracane wart..: Sukces - Zwraca wartosc liczby
;					Dla N=0 zwraca 1
; Autor .........: Assa
Func _FactorialRec($N)
if $N==0 Then
	Return 1
Else
	return $N * _Factorial(N-1)
EndIf
EndFunc
; #KOMBINATORYKA# ================================================================================
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Variation
; Opis...........: Zwraca możliwą ilość wariacji bez powtórzeń
; Składnia.......: _Variation($K,$N)
; Parametry......: $N - N elementów 
;					$K - po K 
; Zwracane wart..: Sukces - Ilość wszystkich rozmieszczeń z n różnych elementów po k
; Autor .........: Assa
Func _Variation($K,$N)
Return _Factorial($N) / _Factorial($N-$K)
EndFunc
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Permutation
; Opis...........: Zwraca możliwą ilość permutacji bez powtórzeń
; Składnia.......: _Variation($N)
; Parametry......: $N - ciąg n-wyrazowy.
; Zwracane wart..: Sukces - Zwraca ilość możliwych permutacji
; Autor .........: Assa
Func _Permutation($N)
Return _Variation($N,$N) ;lub prościej _Factorial($N)
EndFunc
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Combination
; Opis...........: Zwraca możliwą ilość kombinacji bez powtórzeń
; Składnia.......: _Combination($K,$N)
; Parametry......: $N - 
;				   $K -
; Zwracane wart..: Sukces - Zwraca ilość możliwych kombinacji
; Autor .........: Assa
Func _Combination($K,$N)
Return _Factorial($N) /( _Factorial($K) * _Factorial($N-$K))
EndFunc

Cytat

 

Orientacja seksualna polega na tym, że jeden mężczyzna lubi blondynki, drugi szatynki, że jedna pani woli umięśnionych mężczyzn a inna chudych intelektualistów. Homoseksualizm nie jest orientacją jest chorobą za którą homoseksualiści nie ponoszą odpowiedzialności. Pewna grupa ludzi rodzi się upośledzona fizycznie, na przykład bez ręki ale czy to znaczy, że wszystkim zdrowym powinniśmy też obcinać ręce? Nie, powinniśmy zapewnić im protezy. Obowiązkiem państwa jest zapewnienie homoseksualistom, jak wszystkim upośledzonym fizycznie czy psychicznie profesjonalnej opieki medycznej.

Opublikowano

@up, dzięki zaraz dodam,

 

@Dodane

 

Piszcie co sądzicie o polach i objętościach figur.

 

@edit, szlag mnie trafia jak widzę "Lubie to" zamiast plusów... Nienawidzę fb i nawiązań do niego,

btw, poprzednia skórka była lepsza ;x

Opublikowano

pytanie czy zwierzak wyraził zgode...

Nie chcę kopiować z innych UDFów bez zgody autora.

 

@Edit, dadane pare prostych zabezpieczeń przez podaniem złych danych wejściowych.

Może jakieś wzory z fizyki? W końcu to też opiera się na matematyce.

 

 

Dodane dwie funkcje

_ArabskaToRzymska($arabska)

_RzymskaToArabska($rzymska)

Opublikowano

Może jakieś wzory z fizyki? W końcu to też opiera się na matematyce.

Chcesz fizykę - masz fizykę. ^^

 

Energia kinetyczna (J)

masa(kg)

predkosc(m/s)

Func _EnergiaKinetyczna( $masa, $predkosc )
Select
	Case $predkosc < 0
		Return -1
	Case IsNumber($predkosc) = 0 OR IsNumber($masa) = 0
		Return -2
	Case Else
		Local $energia_k = ( ($masa * $predkosc ^ 2) / 2 )
		Return $energia_k
EndSelect
EndFunc

Za chwilę zaczną się dyskusje na temat nie zastrzeżenia przeze mnie wprowadzenia masy ujemnej. Powodem jest Materia Egzotyczna. Jeżeli ktoś jeszcze ma wątpliwośći na ten temat: zapraszam na PW.

 

Energia Potencjalna Grawitacji (J) [Na ziemi]

masa(kg)

wysokość(m)

Func _EnergiaPotencjalna( $masa, $wysokosc )
Select
	Case IsNumber($masa) = 0 OR IsNumber($wysokosc) = 0
		Return -2
	Case Else
		Local $energia_p = $masa * $wysokosc * 9.80665
		Return $energia_p
EndSelect
EndFunc

 

Pęd (kg*m/s)

masa(kg)

predkosc(m/s)

Func _Ped( $masa, $predkosc )
Select
 Case IsNumber($masa) = 0 OR IsNumber($predkosc) = 0
  Return -2
 Case Else
  Local $ped = $masa * $predkosc
  Return $ped
EndSelect
EndFunc

 

Przyspieszenie (m/s^2)

predkosc(m/s)

czas(s)

Func _Przyspieszenie( $predkosc, $czas)
Select
 Case $predkosc < 0 OR $czas < 0
  Return -1
 Case IsNumber($predkosc) = 0 OR IsNumber($czas) = 0
  Return -2
 Case Else
  Local $przyspieszenie = $predkosc / $czas
  Return $przyspieszenie
EndSelect
EndFunc

 

Prędkość(m/s)

deltaX(m) - przemieszczenie

deltaT(s) - przyrost czasu

Func _Predkosc( $deltaX, $deltaT )
Select
 Case IsNumber($deltaX) = 0 OR IsNumber($deltaT) = 0
  Return -2
 Case Else
  Local $predkosc = Abs($deltaX / $deltaT)
  Return $predkosc
EndSelect
EndFunc

 

Praca (J)

sila(N)

deltaX(m)

Func _Praca( $sila, $deltaX )
Select
 Case $deltaX < 0
  Return -1
 Case IsNumber($sila) = 0 OR IsNumber($deltaX) = 0
  Return -2
 Case Else
  Local $praca = $sila * $deltaX
  Return $praca
EndSelect
EndFunc

 

Moc(W)

praca(J)

czas(s)

Func _Moc( $praca, $czas )
Select
 Case $czas < 0
  Return -1
 Case IsNumber($praca) = 0 OR IsNumber($czas) = 0
  Return -2
 Case Else
  Local $moc = $praca / $czas
  Return $moc
EndSelect
EndFunc

 

Tym razem moje autorstwo. :)

@EDIT

Dodana prosta funkcja na prędkość. Dodana funkcja na Pracę i Moc.

Opublikowano

@up, spoko jutro dodam, bo teraz jestem na drugim kompie.

 

Poprawię też mały błąd, który teraz zauważyłem. W zamianie z rzymskiego na arabski, gdy w liczbie będzie IV lub XL lub CD wyrzuci błąd.

 

Za chwilę zaczną się dyskusje na temat nie zastrzeżenia przeze mnie wprowadzenia masy ujemnej. Powodem jest Antymateria. Jeżeli ktoś jeszcze ma wątpliwośći na ten temat: zapraszam na PW.

Ale nie wydaje mi się, aby antymateria miała ujemną masę. Ważą tyle samo, mają tylko odwrotne ładunki elektryczne.

Cytat z wiki

Obecnie Model Standardowy zakłada, że każda cząstka ma antycząstkę, która ma masę równą masie cząstki

 

@dzieki

Opublikowano

To jak juro będziesz nad tym pracował, to jeszcze dziś coś dodam i dam edita w tamtym poście.

 

Ale nie wydaje mi się, aby antymateria miała ujemną masę. Ważą tyle samo, mają tylko odwrotne ładunki elektryczne.

Racja, pomyliłem się. To nie Antymateria, tylko Materia Egzotyczna miała by masę ujemną. Wybacz zamieszanie. :) "Lubię to" za poprawienie mnie.

 

PS Pierwsza sygna od lewej fajniejsza. :P

PS2 x wyedytował. :/

 

@EDIT

[...] Może także być to z zakresu chemii [...]

Chcesz chemię - masz chemię. :)

 

Gęstość (kg/m^3)

masa(kg)

objetość(m^3)

Func _Gestosc( $masa, $objetosc )
Select
 Case $masa < 0 OR $objetosc < 0
  Return -1
 Case IsNumber($masa) = 0 OR IsNumber($objetosc) = 0
  Return -2
 Case Else
  Local $gestosc = $masa / $objetosc
  Return $gestosc
EndSelect
EndFunc

 

Stężenie procentowe roztworu (%)

masa_s(kg) - masa rozpuszczanej substancji

masa_r(kg) - masa roztworu

Func _Stezenie_p( $masa_s, $masa_r )
Select
 Case $masa_s < 0 OR $masa_r < 0
  Return -1
 Case IsNumber($masa_s) = 0 OR IsNumber($masa_r) = 0
  Return -2
 Case Else
  Local $stezenie_p = $masa_s * 100 / $masa_r
  Return $stezenie_p
EndSelect
EndFunc

Opublikowano

Dzięki. Zaraz ide robić lekcje, a jak zrobie, to wpisze dane większości pierwiastków, i wzory na obliczanie zawartości procentowej pierwiaska w związku. Będzie się wpisywać w postaci H2O. Może nawet napisze, algorymt do uzgadniania równań. Rezerwuje sobie te funckje ;p.

 

Jak ktoś ma chęci to może poprawić polszczyznę, bo w SCIte nie mogę używać ś i ż (bo coś jest do nich przypisane, a nie będe każdej literki z notatnika kopiował...) i prosiłbym o poprawienie tego.

 

Zaraz edytuje pierwszego posta i dodam 4 nowe funkcje od protecto

 

 

@@@dodane

 

@down, wielkie dzięki za poprawki :) dodane

Opublikowano

1. Poprawiłem błędy PL.

2. Poprawiłem kolejność w spisie funkcji (; #UDF# ==========[...])

3. Dodałem swoją funkcję _Prędkość, bo dodałeś ją do spisu, ale nie dodałeś samej funkcji.

Mam nadzieję, że pomogłem. :)

 

 

#include-once
; #UDF# ======================================================================================
; Nazwa..........: MathEx
; Opis...........: Bardziej lub mniej skomplikowane obliczenia matematyczne.
; Funkcje........: _ConvertSystemXtoY($iSysIn, $iNumber, $iSysOut)
;								 _LogX($fX, $fNumber)
;								 _SumaEx($fSkladnik1, $fSkladnik2)
;								 _OdejmEx($fOdjemna, $fOdjemnik)
;								 _MnozEx($fCzynnik1, $fCzynnik2)
;								 _DistanceFromXtoY($fX1, $fY1, $fX2, $fY2)
;								 _CrossPoint($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22)
;								 _WyznaczDelte($a, $b, $c )
;								 _TrojmianP($a, $b )
;								 _TrojmianQ($a, $delta )
;								 _Silnia($N)
;								 _Wariacje($K,$N)
;								 _Permutacje($N)
;								 _Kombinacje($K,$N)
;								 _NWD($iLiczba1, $iLiczba2)
;								 _NWW($iLiczba1, $iLiczba2)
;								 _RzymskaToArabska($rzymska)
;								 _ArabskaToRzymska($arabska)
;								 _EnergiaKinetyczna( $masa, $predkosc )
;								 _EnergiaPotencjalnaGrawitacji( $masa, $wysokosc, $pg )
;								 _Ped( $masa, $predkosc )
;								 _Przyspieszenie( $predkosc, $czas)
;								 _Gestosc( $masa, $objetosc )
;								 _Stezenie_p( $masa_s, $masa_r )
;								 _Praca( $sila, $deltaX )
;								 _Moc( $praca, $czas )
;								 _Predkosc( $deltaX, $deltaT )
; Autorzy........: Sopel (ja)
;				   No Ja
;				   wojtek333314
;				   Assa
;				   Protecto
; =================================================================================================
; #FUNKCJA# ======================================================================================
; Nazwa..........: _ConvertSystemXtoY
; Opis...........: Konwertuje system liczbowy X do systemu liczbowego Y
; Składnia.......: _ConvertSystemXtoY($iSysIn, $iNumber, $iSysOut)
; Parametry......: $iSysIn - System liczbowy liczby wyjściowej (1-36)
;						  $iNumber - Liczba, która ma zostać przeliczona na inny system liczbowy
;						  $iSysOut - System liczbowy, w którym zapisana będzie liczba wynikowa (1-36)
; Zwracane wart..: Sukces - Zwraca wartość liczby
;										  Niepowodzenie - Zwraca -1 - Liczba podana w pierwszym parametrze nie jest w zakresie 1-36
;										  Niepowodzenie - Zwraca -2 - Liczba podana w trzecim parametrze nie jest w zakresie 1-36
;										  Niepowodzenie - Zwraca -3 - Liczba zawiera nieprawidłowe znaki
; Autor .........: Sopel
; =================================================================================================
Func _ConvertSystemXtoY($iSysIn, $iNumber, $iSysOut)
Local $znaki[36] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
Local $liczba
Local $bPoprawnosc
Local $sys10 = 0
Local $sysy = ''
Local $i
If $iSysIn < 0 Or $iSysIn > 36 Then Return -1
If $iSysOut < 0 Or $iSysOut > 36 Then Return -2
$iNumber = StringUpper($iNumber)
$liczba = StringSplit($iNumber, '')
Local $bPoprawnosc
For $i = 1 To StringLen($iNumber)
	$bPoprawnosc = False
	If Asc($liczba[$i]) >= 48 And Asc($liczba[$i]) <= 57 Then
		$liczba[$i] = Asc($liczba[$i]) - 48
		$bPoprawnosc = True
	EndIf
	If Asc($liczba[$i]) >= 65 And Asc($liczba[$i]) <= 90 Then
		$liczba[$i] = Asc($liczba[$i]) - 55
		$bPoprawnosc = True
	EndIf
	If $bPoprawnosc = False Then Return -3
Next
For $i = StringLen($iNumber) To 1 Step -1
	$sys10 += $iSysIn ^ (StringLen($iNumber) - $i) * $liczba[$i]
Next
Do
	$sysy &= $znaki[Mod($sys10, $iSysOut)]
	$sys10 = Floor($sys10 / $iSysOut)
Until $sys10 = 0
Return $sysy
EndFunc   ;==>_ConvertSystemXtoY
; #FUNKCJA# ======================================================================================
; Nazwa..........: _LogX
; Opis...........: Zwraca logarytm o -n podstawie z liczby
; Składnia.......: _LogX($fX, $fNumber)
; Parametry......: $fX - Podstawa logarytmu
;						  $fNumber - Liczba, z której zostanie obliczony logarytm
; Zwracane wart..: Sukces - Zwraca wartość liczby
;								 Niepowodzenie - -1 - nieprawidłowe dane wejściowe
; Autor .........: Sopel
; =================================================================================================
Func _LogX($fX, $fNumber)
If Not IsNumber($fX) Or Not IsNumber($fNumber) Then Return -1
Return Log($fNumber) / Log($fX)
EndFunc   ;==>_LogX
; #FUNKCJA# ======================================================================================
; Nazwa..........: _SumaEx
; Opis...........: Sumuje dwa składniki
; Składnia.......: _SumaEx($fSkladnik1, $fSkladnik2)
; Parametry......: $fSkladnik1 - Pierwszy składnik (podany jako string)
;						  $fSkladnik2 - Drugi składnik (podany jako string)
; Zwracane wart..: Sukces - Zwraca sumę w postaci string
; Autor .........: Sopel
; =================================================================================================
Func _SumaEx($fSkladnik1, $fSkladnik2)
Local $ilpoprzec1
Local $ilpoprzec2
Local $dl
Local $cyfry1
Local $cyfry2
Local $wynik = ''
Local $i
If Not StringInStr($fSkladnik1, ".") Then $fSkladnik1 &= '.0'
If Not StringInStr($fSkladnik2, ".") Then $fSkladnik2 &= '.0'
Local $ilpoprzec1 = StringSplit($fSkladnik1, '.')
Local $ilpoprzec2 = StringSplit($fSkladnik2, '.')
If StringLen($ilpoprzec1[1]) >= StringLen($ilpoprzec2[1]) Then
	Do
		$ilpoprzec2[1] = '0' & $ilpoprzec2[1]
	Until StringLen($ilpoprzec2[1]) > StringLen($ilpoprzec1[1])
	$ilpoprzec2[1] = StringTrimLeft($ilpoprzec2[1], 1)
Else
	Do
		$ilpoprzec1[1] = '0' & $ilpoprzec1[1]
	Until StringLen($ilpoprzec1[1]) > StringLen($ilpoprzec2[1])
	$ilpoprzec1[1] = StringTrimLeft($ilpoprzec1[1], 1)
EndIf
If StringLen($ilpoprzec1[2]) >= StringLen($ilpoprzec2[2]) Then
	Do
		$ilpoprzec2[2] &= '0'
	Until StringLen($ilpoprzec2[2]) > StringLen($ilpoprzec1[2])
	$ilpoprzec2[2] = StringTrimRight($ilpoprzec2[2], 1)
Else
	Do
		$ilpoprzec1[2] &= '0'
	Until StringLen($ilpoprzec2[2]) < StringLen($ilpoprzec1[2])
	$ilpoprzec1[2] = StringTrimRight($ilpoprzec1[2], 1)
EndIf
$fSkladnik1 = $ilpoprzec1[1] & '.' & $ilpoprzec1[2]
$fSkladnik2 = $ilpoprzec2[1] & '.' & $ilpoprzec2[2]
$dl = StringLen($fSkladnik1)
$cyfry1 = StringSplit($fSkladnik1, '')
$cyfry2 = StringSplit($fSkladnik2, '')
Local $cyfrywyn[$dl + 1]
For $i = 0 To $dl
	$cyfrywyn[$i] = 0
Next
For $i = $dl To 1 Step -1
	If $cyfry1[$i] = '.' Then
		$cyfrywyn[$i] = '.'
	Else
		If $cyfrywyn[$i] + $cyfry1[$i] + $cyfry2[$i] > 9 Then
			If $cyfry1[$i - 1] = '.' Then
				$cyfrywyn[$i - 2] += 1
			Else
				$cyfrywyn[$i - 1] += 1
			EndIf
			$cyfrywyn[$i] += $cyfry1[$i] + $cyfry2[$i] - 10
		Else
			$cyfrywyn[$i] += $cyfry1[$i] + $cyfry2[$i]
		EndIf
	EndIf
Next

For $i = 1 To $dl
	$wynik &= String($cyfrywyn[$i])
Next
$wynik = __UsunZera($wynik)
Return String($wynik)
EndFunc   ;==>_SumaEx
; #FUNKCJA# ======================================================================================
; Nazwa..........: _OdejmEx
; Opis...........: Zwraca róznicę dwóch liczb
; Składnia.......: _OdejmEx($fOdjemna, $fOdjemnik)
; Parametry......: $fOdjemna - Odjemna (podany jako string)
;						  $fOdjemnik - Odjemnik (podany jako string)
; Zwracane wart..: Sukces - Zwraca róznicę w postaci string
; Autor .........: Sopel
; =================================================================================================
Func _OdejmEx($fOdjemna, $fOdjemnik)
Local $ilpoprzec1
Local $ilpoprzec2
Local $dl
Local $cyfry1
Local $cyfry2
Local $minus
Local $wynik = ''
Local $i
If Not StringInStr($fOdjemna, ".") Then $fOdjemna &= '.0'
If Not StringInStr($fOdjemnik, ".") Then $fOdjemnik &= '.0'
Local $ilpoprzec1 = StringSplit($fOdjemna, '.')
Local $ilpoprzec2 = StringSplit($fOdjemnik, '.')
If StringLen($ilpoprzec1[1]) >= StringLen($ilpoprzec2[1]) Then
	Do
		$ilpoprzec2[1] = '0' & $ilpoprzec2[1]
	Until StringLen($ilpoprzec2[1]) > StringLen($ilpoprzec1[1])
	$ilpoprzec2[1] = StringTrimLeft($ilpoprzec2[1], 1)
Else
	Do
		$ilpoprzec1[1] = '0' & $ilpoprzec1[1]
	Until StringLen($ilpoprzec1[1]) > StringLen($ilpoprzec2[1])
	$ilpoprzec1[1] = StringTrimLeft($ilpoprzec1[1], 1)
EndIf
If StringLen($ilpoprzec1[2]) >= StringLen($ilpoprzec2[2]) Then
	Do
		$ilpoprzec2[2] &= '0'
	Until StringLen($ilpoprzec2[2]) > StringLen($ilpoprzec1[2])
	$ilpoprzec2[2] = StringTrimRight($ilpoprzec2[2], 1)
Else
	Do
		$ilpoprzec1[2] &= '0'
	Until StringLen($ilpoprzec2[2]) < StringLen($ilpoprzec1[2])
	$ilpoprzec1[2] = StringTrimRight($ilpoprzec1[2], 1)
EndIf
$fOdjemna = $ilpoprzec1[1] & '.' & $ilpoprzec1[2]
$fOdjemnik = $ilpoprzec2[1] & '.' & $ilpoprzec2[2]
$dl = StringLen($fOdjemna)
If $fOdjemna >= $fOdjemnik Then
	$cyfry1 = StringSplit($fOdjemna, '')
	$cyfry2 = StringSplit($fOdjemnik, '')
	$minus = False
Else
	$cyfry2 = StringSplit($fOdjemna, '')
	$cyfry1 = StringSplit($fOdjemnik, '')
	$minus = True
EndIf
Local $cyfrywyn[$dl + 1]
For $i = 0 To $dl
	$cyfrywyn[$i] = 0
Next
For $i = $dl To 1 Step -1
	If $cyfry1[$i] = '.' Then
		$cyfrywyn[$i] = '.'
	Else
		If $cyfry1[$i] - $cyfry2[$i] < 0 Then
			If $cyfry1[$i - 1] = '.' Then
				$cyfry1[$i - 2] -= 1
			Else
				$cyfry1[$i - 1] -= 1
			EndIf
			$cyfrywyn[$i] = $cyfry1[$i] + 10 - $cyfry2[$i]
		Else
			$cyfrywyn[$i] = $cyfry1[$i] - $cyfry2[$i]
		EndIf
	EndIf
Next

If $minus = True Then $wynik &= '-'
For $i = 1 To $dl
	$wynik &= String($cyfrywyn[$i])
Next
$wynik = __UsunZera($wynik)
Return String($wynik)
EndFunc   ;==>_OdejmEx
; #FUNKCJA# ======================================================================================
; Nazwa..........: _MnozEx
; Opis...........: Zwraca iloczyn dwóch liczb
; Składnia.......: _MnozEx($fCzynnik1, $fCzynnik2)
; Parametry......: $fCzynnik1 - Pierwszy czynnik (podany jako string)
;						  $fCzynnik2 - Drugi czynnik (podany jako string)
; Zwracane wart..: Sukces - Zwraca iloczyn w postaci string
; Autor .........: Sopel
; =================================================================================================
Func _MnozEx($fCzynnik1, $fCzynnik2)
If $fCzynnik1 < $fCzynnik2 Then
	Local $tmp
	$tmp = $fCzynnik1
	$fCzynnik1 = $fCzynnik2
	$fCzynnik2 = $tmp
EndIf
Local $ilpoprzec1
Local $ilpoprzec2
Local $dl
Local $cyfry1
Local $cyfry2
Local $minus
Local $wynik = ''
Local $i
Local $ii
Local $dl2
Local $pamiec_dod = 0
Local $poprzecwyn
Local $a
If Not StringInStr($fCzynnik1, ".") Then $fCzynnik1 &= '.0'
If Not StringInStr($fCzynnik2, ".") Then $fCzynnik2 &= '.0'
Local $ilpoprzec1 = StringSplit($fCzynnik1, '.')
Local $ilpoprzec2 = StringSplit($fCzynnik2, '.')
$poprzecwyn = StringLen($ilpoprzec1[2]) + StringLen($ilpoprzec2[2])
If StringLen($ilpoprzec1[1]) >= StringLen($ilpoprzec2[1]) Then
	Do
		$ilpoprzec2[1] = '0' & $ilpoprzec2[1]
	Until StringLen($ilpoprzec2[1]) > StringLen($ilpoprzec1[1])
	$ilpoprzec2[1] = StringTrimLeft($ilpoprzec2[1], 1)
Else
	Do
		$ilpoprzec1[1] = '0' & $ilpoprzec1[1]
	Until StringLen($ilpoprzec1[1]) > StringLen($ilpoprzec2[1])
	$ilpoprzec1[1] = StringTrimLeft($ilpoprzec1[1], 1)
EndIf
If StringLen($ilpoprzec1[2]) >= StringLen($ilpoprzec2[2]) Then
	Do
		$ilpoprzec2[2] &= '0'
	Until StringLen($ilpoprzec2[2]) > StringLen($ilpoprzec1[2])
	$ilpoprzec2[2] = StringTrimRight($ilpoprzec2[2], 1)
Else
	Do
		$ilpoprzec1[2] &= '0'
	Until StringLen($ilpoprzec2[2]) < StringLen($ilpoprzec1[2])
	$ilpoprzec1[2] = StringTrimRight($ilpoprzec1[2], 1)
EndIf
$fCzynnik1 = $ilpoprzec1[1] & $ilpoprzec1[2]
$fCzynnik2 = $ilpoprzec2[1] & $ilpoprzec2[2]
$dl2 = StringLen($fCzynnik2)
$dl = StringLen($fCzynnik1)
$cyfry1 = StringSplit($fCzynnik1, '')
$cyfry2 = StringSplit($fCzynnik2, '')
Local $r2 = StringLen($fCzynnik1) + StringLen($fCzynnik2)
Local $cyfrywyn[$r2 + 1]
Local $cyfrywyn2 = ''
Local $wynikmnozenia[$dl2][$r2 + 1]
Local $wynikmnozenia2[1][$r2 + 1]
For $i = 0 To $dl
	$cyfrywyn[$i] = ''
Next
For $i = 0 To $dl2 - 1
	For $ii = 0 To $r2
		$wynikmnozenia[$i][$ii] = '-'
	Next
Next
For $i = $dl2 - 1 To 0 Step -1
	For $ii = $dl - 1 To 0 Step -1
		If $cyfry2[$i + 1] * $cyfry1[$ii + 1] + $pamiec_dod > 9 Then
			$wynikmnozenia[$dl2 - $i - 1][$r2 - ($dl - $ii) - ($dl2 - $i) + 2] = StringRight(($cyfry2[$i + 1] * $cyfry1[$ii + 1]) + $pamiec_dod, 1)
			$pamiec_dod = StringLeft(($cyfry2[$i + 1] * $cyfry1[$ii + 1]) + $pamiec_dod, 1)
		Else
			$wynikmnozenia[$dl2 - $i - 1][$r2 - ($dl - $ii) - ($dl2 - $i) + 2] = ($cyfry2[$i + 1] * $cyfry1[$ii + 1]) + $pamiec_dod
			$pamiec_dod = 0
		EndIf
		If $pamiec_dod > 0 And $ii = 0 Then
			$wynikmnozenia[$dl2 - $i - 1][$r2 - ($dl - $ii) - ($dl2 - $i) - 1 + 2] = $pamiec_dod
			$pamiec_dod = 0
		EndIf
	Next
Next
$a = 0
$tmp = 0
For $i = 0 To $dl2 - 1
	For $ii = 0 To $r2
		$tmp += $wynikmnozenia[$i][$ii]
	Next
	If $tmp <> 0 Then
		$a += 1
		ReDim $wynikmnozenia2[$a][$r2 + 1]
		For $ii = 0 To $r2
			$wynikmnozenia2[$a - 1][$ii] = $wynikmnozenia[$i][$ii]
		Next
	EndIf
Next
For $i = 0 To $a - 1
	For $ii = 0 To $r2
		$cyfrywyn[$i] &= $wynikmnozenia2[$i][$ii]
	Next
Next
For $i = 0 To $a - 1
	$cyfrywyn2 = _sumaex($cyfrywyn2, $cyfrywyn[$i])
Next
$cyfrywyn2 = StringTrimRight($cyfrywyn2, 2)
Local $tmp1, $tmp2
$tmp1 = StringRight($cyfrywyn2, $poprzecwyn)
$cyfrywyn2 = StringTrimRight($cyfrywyn2, $poprzecwyn)
$cyfrywyn2 &= '.' & $tmp1
$cyfrywyn2 = __UsunZera($cyfrywyn2)
Return String($cyfrywyn2)
EndFunc   ;==>_MnozEx
; #FUNKCJA# ======================================================================================
; Nazwa..........: _DistanceFromXtoY
; Opis...........: Zwraca odległość między dwoma punktami na osi dwuwymiarowej
; Składnia.......: _DistanceFromXtoY($fX1, $fY1, $fX2, $fY2)
; Parametry......: $fX1 - Położenie na osi X pierwszego punktu
;						  $fY1 - położenie na osi Y pierwszego punktu
;						  $fX2 - położenie na osi X drugiego punktu
;						  $fY2 - położenie na osi Y drugiego punktu
; Zwracane wart..: Sukces - Zwraca odległość między dwoma punktami
;								 Niepowodzenie - -1 -  Nieporawne dane wejściowe
; Autor .........: No Ja
; =================================================================================================
Func _DistanceFromXtoY($fX1, $fY1, $fX2, $fY2)
If Not IsNumber($fX1) Or Not IsNumber($fY1) Or Not IsNumber($fX2) Or Not IsNumber($fY2) Then Return -1
Return (Abs(($fX1 - $fX2)) ^ 2 + Abs(($fY1 - $fY2)) ^ 2) ^ 0.5
EndFunc   ;==>_DistanceFromXtoY
; #FUNKCJA# ======================================================================================
; Nazwa..........: _CrossPoint
; Opis...........: Zwraca położenie punktu przecięcia się prostych
; Składnia.......: _CrossPoint($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22)
; Parametry......: $fX11 - położenie na osi X pierwszego punktu pierwszej prostej
;						  $fY11 - położenie na osi Y pierwszego punktu pierwszej prostej
;						  $fX22 - położenie na osi X drugiego punktu pierwszej prostej
;						  $fY22 - położenie na osi Y drugiego punktu pierwszej prostej
;						  $fY11 - położenie na osi Y pierwszego punktu drugiej prostej
;						  $fX21 - położenie na osi X drugiego punktu drugiej prostej
;						  $fY22- położenie na osi Y drugiego punktu drugiej prostej
;						  $fX22 - położenie na osi X drugiego punktu drugiej prostej
; Zwracane wart..: Sukces - Zwraca położenie punktu przecięcia dwóch prostych
;								 Niepowodzenie - -1 -  Nieporawne dane wejściowe
; Autor .........: No Ja
; =================================================================================================
Func _CrossPoint($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22)
If Not IsNumber($fX11) Or Not IsNumber($fY11) Or Not IsNumber($fX12) Or Not IsNumber($fY12) Or Not IsNumber($fX21) Or Not IsNumber($fY21) Or Not IsNumber($fX22) Or Not IsNumber($fY22) Then Return -1
Local $przec[2]
$przec[0] = Int(((-__C($fX11, $fX12, $fY11, $fY12)) * __B($fX21, $fX22) - (-__C($fX21, $fX22, $fY21, $fY22)) * __B($fX11, $fX12)) / __W($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22))
$przec[1] = Int((__A($fY11, $fY12) * (-__C($fX21, $fX22, $fY21, $fY22)) - __A($fY21, $fY22) * (-__C($fX11, $fX12, $fY11, $fY12))) / __W($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22))
Return $przec
EndFunc   ;==>_CrossPoint
; #FUNKCJA# ======================================================================================
; Nazwa..........: _WyznaczDelte
; Opis...........: Wyznacza wyróżnik trójmianu kwadratowego (deltę trójmianu kwadratowego)
; Składnia.......: _WyznaczDelte($a,$b,$c)
; Parametry......: $a,$b,$c - Swego rodzaju stałe, liczby rzeczywiste, $a musi być różna od zera
;
; Zwracane wart..: Sukces - Zwraca delte
;								 Niepowodzenie - -2 - Współczynnik a jest równy zero
;								 Niepowodzenie - -1 -  Nieporawne dane wejściowe
; Autor .........: wojtek333314
; =================================================================================================
Func _WyznaczDelte($a, $b, $c)
If Not IsNumber($a) Or Not IsNumber($ Or Not IsNumber($c) Then Return -1
Local $delta
If $a <> 0 Then
	$delta = ($b ^ 2) - 4 * $a * $c
	Return $delta
Else
	Return -2
EndIf
EndFunc   ;==>_WyznaczDelte
; #FUNKCJA# ======================================================================================
; Nazwa..........: _TrojmianP
; Opis...........: Wyznacza p, czyli współrzędną X wierzchołka wykresu paraboli(wykresu funkcji kwadratowej)
; Składnia.......: _TrojmianP($a,$
; Parametry......: $a,$b - Liczby rzeczywiste
; Zwracane wart..: Sukces - Zwraca współrzędną X wierzchołka wykresu paraboli
;								 Niepowodzenie - -1 -  Nieporawne dane wejściowe
; Autor .........: wojtek333314
; =================================================================================================
Func _TrojmianP($a, $
If Not IsNumber($a) Or Not IsNumber($ Then Return -1
Local $p = ($ / (2 * $a)
Return $p
EndFunc   ;==>_TrojmianP
; #FUNKCJA# ======================================================================================
; Nazwa..........: _TrojmianQ()
; Opis...........: Wyznacza q, czyli współrzędną Y wierzchołka wykresu paraboli(wykresu funkcji kwadratowej)
; Składnia.......: _TrojmianQ($a,$delta)
; Parametry......: $delta - wyróżnik  trójmianu kwadratowego
;								 $a - Liczba rzeczywista
; Zwracane wart..: Sukces - Zwraca współrzędną Y wierzchołka wykresu paraboli
;								 Niepowodzenie - -1 -  Nieporawne dane wejściowe
; Autor .........: wojtek333314
; =================================================================================================
Func _TrojmianQ($a, $delta)
If Not IsNumber($a) Or Not IsNumber($delta) Then Return -1
Local $q = (-$delta) / (4 * $a)
Return $q
EndFunc   ;==>_TrojmianQ
; #FUNKCJA# ======================================================================================
; Nazwa..........: _NWD()
; Opis...........: Wyznacza największy wspólny dzielnik dwóch liczb
; Składnia.......: _NWD($iLiczba1, $iLiczba2)
; Parametry......: $iLiczba1, $iLiczba2 - liczby rzeczywiste
; Zwracane wart..: Sukces - Największy wspólny dzielnik
;								 Niepowodzenie - -1 - Nieporawne dane wejściowe
; Autor .........: Sopel
; =================================================================================================
Func _NWD($iLiczba1, $iLiczba2)
If Not IsInt($iLiczba1) Or Not IsInt($iLiczba2) Or $iLiczba1 < 0 Or $iLiczba2 < 0 Then Return -1
Do
	If $iLiczba1 > $iLiczba2 Then
		$iLiczba1 -= $iLiczba2
	Else
		$iLiczba2 -= $iLiczba1
	EndIf
Until $iLiczba1 = $iLiczba2
Return $iLiczba1
EndFunc   ;==>_NWD
; #FUNKCJA# ======================================================================================
; Nazwa..........: _NWW()
; Opis...........: Wyznacza najmniejszą wspólną wielokrotnosć dwóch liczb
; Składnia.......: _NWW($iLiczba1, $iLiczba2)
; Parametry......: $iLiczba1, $iLiczba2 - liczby naturalne
; Zwracane wart..: Sukces - Najmniejsza wspólna wielokrotnosć
;								 Niepowodzenie - -1 - Nieporawne dane wejściowe
; Autor .........: Sopel
; =================================================================================================
Func _NWW($iLiczba1, $iLiczba2)
If Not IsInt($iLiczba1) Or Not IsInt($iLiczba2) Or $iLiczba1 < 0 Or $iLiczba2 < 0 Then Return -1
Return $iLiczba1 * $iLiczba2 / _NWD($iLiczba1, $iLiczba2)
EndFunc   ;==>_NWW

; #FUNKCJA# ======================================================================================
; Nazwa..........: _Silnia
; Opis...........: Zwraca silnię dla podanej liczby
; Składnia.......: _Silnia($N)
; Parametry......: $N - Podstawa.
; Zwracane wart..: Sukces - Zwraca wartość liczby
;								 Niepowodzenie - -1 - Nieporawne dane wejściowe
;								 Dla N=0 zwraca 1
; Autor .........: Assa
; =================================================================================================
Func _Silnia($N)
If $N < 0 Or Not IsInt($N) Then Return -1
Local $i, $silnia = 1
For $i = 1 To $N
	$silnia *= $i
Next
Return $silnia
EndFunc   ;==>_Silnia
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Wariacje
; Opis...........: Zwraca możliwą ilość wariacji bez powtórzeń
; Składnia.......: _Wariacje($N,$K)
; Parametry......: $N - ilosć elementów
;								 $K - ilosć elemetów w wariacji
;								 $bPow - Czy uwzględnić powtórzenia (1 - tak, 0 - nie)
; Zwracane wart..: Sukces - Ilość wszystkich rozmieszczeń z n różnych elementów po k
;								 Niepowodzenie - -1 - Nieporawne dane wejściowe
; Autor .........: Assa
; =================================================================================================
Func _Wariacje($N, $K, $bPow)
If $K < 1 Or Not IsInt($K) Or $N < 1 Or Not IsInt($N) Or $K > $N Then Return -1
If $bPow = 0 Then
	Return _Silnia($N) / _Silnia($N - $K)
Else
	Return $N ^ $K
EndIf
EndFunc   ;==>_Wariacje
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Permutacje
; Opis...........: Zwraca możliwą ilość permutacji bez powtórzeń
; Składnia.......: _Wariacje($N)
; Parametry......: $N - ciąg n-wyrazowy.
; Zwracane wart..: Sukces - Zwraca ilość możliwych permutacji
;								 Niepowodzenie - -1 - Nieporawne dane wejściowe
; Autor .........: Assa
; =================================================================================================
Func _Permutacje($N)
If $N < 1 Or Not IsInt($N) Then Return -1
Return _Silnia($N) ;lub prościej _Silnia($N)
EndFunc   ;==>_Permutacje
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Kombinacje
; Opis...........: Zwraca możliwą ilość kombinacji bez powtórzeń
; Składnia.......: _Kombinacje($N,$K)
; Parametry......: $N - ilosć elementów
;								 $K - ilosć elemetów w kombinacji
;								 $bPow - Czy uwzględnić powtórzenia (1 - tak, 0 - nie)
; Zwracane wart..: Sukces - Zwraca ilość możliwych kombinacji
;								 Niepowodzenie - -1 - Nieporawne dane wejściowe
; Autor .........: Assa
; =================================================================================================
Func _Kombinacje($N, $K, $bPow)
If $K < 1 Or Not IsInt($K) Or $N < 1 Or Not IsInt($N) Or $K > $N Then Return -1
If $bPow = 0 Then
	Return _Silnia($N) / ( _Silnia($K) * _Silnia($N - $K))
Else
	Return _Silnia($N + $K - 1) / ( _Silnia($K) * _Silnia($N - 1))
EndIf
EndFunc   ;==>_Kombinacje
; #FUNKCJA# ======================================================================================
; Nazwa..........: _ArabskaToRzymska
; Opis...........: Zamienia liczbę arabską na rzymską
; Składnia.......: _ArabskaToRzymska($arabska)
; Parametry......: $arabska - liczba naturalna w zakresie 1-3999
; Zwracane wart..: Sukces - Zwraca liczbę w zapisie rzymskim
;								 Niepowodzenie - -1 - Za duza liczba
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Sopel
; =================================================================================================
Func _ArabskaToRzymska($arabska)
If Not IsInt($arabska) Then Return -2
If $arabska < 1 Or $arabska > 3999 Then Return -1
Local $rzym_char_10[4] = ['I', 'X', 'C', 'M']
Local $rzym_char_5[3] = ['V', 'L', 'D']
Local $rzymska = ''
Local $char
$char = StringSplit($arabska, '')
For $i = 1 To $char[0] Step +1
	If $char[$i] = '1' Then $rzymska &= $rzym_char_10[$char[0] - $i]
	If $char[$i] = '2' Then $rzymska &= $rzym_char_10[$char[0] - $i] & $rzym_char_10[$char[0] - $i]
	If $char[$i] = '3' Then $rzymska &= $rzym_char_10[$char[0] - $i] & $rzym_char_10[$char[0] - $i] & $rzym_char_10[$char[0] - $i]
	If $char[$i] = '4' Then $rzymska &= $rzym_char_10[$char[0] - $i] & $rzym_char_5[$char[0] - $i]
	If $char[$i] = '5' Then $rzymska &= $rzym_char_5[$char[0] - $i]
	If $char[$i] = '6' Then $rzymska &= $rzym_char_5[$char[0] - $i] & $rzym_char_10[$char[0] - $i]
	If $char[$i] = '7' Then $rzymska &= $rzym_char_5[$char[0] - $i] & $rzym_char_10[$char[0] - $i] & $rzym_char_10[$char[0] - $i]
	If $char[$i] = '8' Then $rzymska &= $rzym_char_5[$char[0] - $i] & $rzym_char_10[$char[0] - $i] & $rzym_char_10[$char[0] - $i] & $rzym_char_10[$char[0] - $i]
	If $char[$i] = '9' Then $rzymska &= $rzym_char_10[$char[0] - $i] & $rzym_char_10[$char[0] - $i + 1]
Next
Return $rzymska
EndFunc   ;==>_ArabskaToRzymska
; #FUNKCJA# ======================================================================================
; Nazwa..........: _RzymskaToArabska
; Opis...........: Zamienia liczbę rzymską na arabską
; Składnia.......: _RzymskaToArabska($rzymska)
; Parametry......: $arabska - liczba naturalna w zakresie 1-3999
; Zwracane wart..: Sukces - Zwraca liczbę w zapisie arabskim
;								 Niepowodzenie - -1 - Niepoprawne dane wejściowe
; Autor .........: Sopel
; =================================================================================================
Func _RzymskaToArabska($rzymska)
Dim $rzym_char[7] = ['I', 'V', 'X', 'L', 'C', 'D', 'M']
Dim $rzym_char_all[7] = ['0', '1', '2', '3', '4', '5', '6']
Dim $rzym_char_all_var[7] = [1, 5, 10, 50, 100, 500, 1000]
$arabska = ''
For $b = 0 To 6
	$rzymska = StringReplace($rzymska, $rzym_char[$b], $rzym_char_all[$b])
Next
$char = StringSplit($rzymska, '')
Local $ostatnie = 0
Local $ostatnia = ''
For $i = 1 To $char[0]
	If $ostatnia <> $char[$i] Then
		$ostatnie = 0
		$ostatnia = $char[$i]
	Else
		$ostatnia = $char[$i]
		$ostatnie += 1
		If $ostatnie = 4 Then Return -1
	EndIf
	For $a = 0 To 6
		If $char[$i] = $rzym_char_all[$a] Then
			If $i < $char[0] And $char[$i + 1] - 2 > $char[$i] Then Return -1
			If $i < $char[0] - 1 And $char[$i + 2] - 2 = $char[$i + 1] - 2 Then Return -1
			If $i < $char[0] And $char[$i + 1] - 2 = $char[$i] Then
				$arabska += $rzym_char_all_var[$char[$i + 1]]
				$arabska -= $rzym_char_all_var[$char[$i]]
				$i += 1
				ExitLoop
			Else
				$arabska += $rzym_char_all_var[$char[$i]]
				ExitLoop
			EndIf
		EndIf
	Next
Next
Return $arabska
EndFunc   ;==>_RzymskaToArabska
; #FUNKCJA# ======================================================================================
; Nazwa..........: _EnergiaKinetyczna
; Opis...........: Oblicza energię kinetyczną
; Składnia.......: _EnergiaKinetyczna( $masa, $predkosc )
; Parametry......: $masa - masa obektu [kg]
;								 $predkosć = prędkosć obiektu [m/s]
; Zwracane wart..: Sukces - Zwraca energię kinetyczną [J]
;								 Niepowodzenie - -1 - Zbyt mała prędkosć lub masa
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _EnergiaKinetyczna( $masa, $predkosc )
Select
 Case $predkosc < 0 or $masa < 0
		Return -1
	Case IsNumber($predkosc) = 0 OR IsNumber($masa) = 0
  Return -2
	 Case Else
  Local $energia_k = ( ($masa * $predkosc ^ 2) / 2 )
  Return $energia_k
 EndSelect
EndFunc   ;==>_EnergiaKinetyczna
; #FUNKCJA# ======================================================================================
; Nazwa..........: _EnergiaPotencjalnaGrawitacji
; Opis...........: Oblicza energię potencjanlą grawitacji
; Składnia.......: _EnergiaPotencjalnaGrawitacji( $masa, $wysokosc, $pg )
; Parametry......: $masa - masa obektu [kg]
;								 $wysokosc = wysokosć nad poziomem odniesienia [m]
;								 $pg - przyspieszenie grawitacyjne [m/s^2](dla Ziemi = 9.80665)
; Zwracane wart..: Sukces - Zwraca energię potencjanlą grawitacji [J]
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _EnergiaPotencjalnaGrawitacji( $masa, $wysokosc, $pg )
Select
 Case IsNumber($masa) = 0 OR IsNumber($wysokosc) = 0
  Return -2
 Case Else
  Local $energia_p = $masa * $wysokosc * $pg
  Return $energia_p
EndSelect
EndFunc	;==>_EnergiaPotencjalnaGrawitacji
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Ped
; Opis...........: Oblicza pęd obiektu
; Składnia.......: _Ped( $masa, $predkosc )
; Parametry......: $masa - masa obektu [kg]
;								 $predkosć = prędkosć obiektu [m/s]
; Zwracane wart..: Sukces - Zwraca pęd obiektu [kg*m/s]
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _Ped( $masa, $predkosc )
Select
 Case IsNumber($masa) = 0 OR IsNumber($predkosc) = 0
  Return -2
 Case Else
  Local $ped = $masa * $predkosc
  Return $ped
EndSelect
EndFunc   ;==>_Ped
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Przyspieszenie
; Opis...........: Oblicza przyspieszenie obiektu
; Składnia.......: _Przyspieszenie( $predkosc, $czas)
; Parametry......: $predkosc - predkosć obiektu [m/s]
;								 $czas - czas [s]
; Zwracane wart..: Sukces - Zwraca przyspieszenie obiektu [m/s^2]
;								 Niepowodzenie - -1 - Zbyt mała prędkosć lub czas
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _Przyspieszenie( $predkosc, $czas)
Select
 Case $predkosc < 0 OR $czas < 0
  Return -1
 Case IsNumber($predkosc) = 0 OR IsNumber($czas) = 0
  Return -2
 Case Else
  Local $przyspieszenie = $predkosc / $czas
  Return $przyspieszenie
EndSelect
EndFunc   ;==>_Przyspieszenie
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Gestosc
; Opis...........: Oblicza gęstosć związku
; Składnia.......: _Gestosc( $masa, $objetosc )
; Parametry......: $masa - masa związku [kg]
;								 $objetosc - objętosć  związku [m^3]
; Zwracane wart..: Sukces - Zwraca gęstosć związku [m/s^2]
;								 Niepowodzenie - -1 - Zbyt mała masa lub objętosć
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _Gestosc( $masa, $objetosc )
Select
 Case $masa < 0 OR $objetosc < 0
  Return -1
 Case IsNumber($masa) = 0 OR IsNumber($objetosc) = 0
  Return -2
 Case Else
  Local $gestosc = $masa / $objetosc
  Return $gestosc
EndSelect
EndFunc   ;==>_Gestosc
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Stezenie_p
; Opis...........: Oblicza stęzenie procentowe roztworu
; Składnia.......: _Stezenie_p( $masa_s, $masa_r )
; Parametry......: $masa_s - masa rozpuszczanej substancji [kg]
;								 $masa_r - masa roztworu [kg]
; Zwracane wart..: Sukces - Zwraca stęzenie procentowe roztworu [%]
;								 Niepowodzenie - -1 - Zbyt mała masa
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _Stezenie_p( $masa_s, $masa_r )
Select
 Case $masa_s < 0 OR $masa_r < 0
  Return -1
 Case IsNumber($masa_s) = 0 OR IsNumber($masa_r) = 0
  Return -2
 Case Else
  Local $stezenie_p = $masa_s * 100 / $masa_r
  Return $stezenie_p
EndSelect
EndFunc   ;==>_Stezenie_p
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Praca
; Opis...........: Oblicza pracę
; Składnia.......: _Praca( $sila, $deltaX )
; Parametry......: $sila - siła [N]
;								 $deltaX - deltaX [m]
; Zwracane wart..: Sukces - Zwraca pracę [J]
;								 Niepowodzenie - -1 - Zbyt mała deltaX
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _Praca( $sila, $deltaX )
Select
 Case $deltaX < 0
  Return -1
 Case IsNumber($sila) = 0 OR IsNumber($deltaX) = 0
  Return -2
 Case Else
  Local $praca = $sila * $deltaX
  Return $praca
EndSelect
EndFunc   ;==>_Praca
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Moc
; Opis...........: Oblicza pracę
; Składnia.......: _Moc( $praca, $czas )
; Parametry......: $praca - praca [J]
;								 $czas - czas[s]
; Zwracane wart..: Sukces - Zwraca Moc [W]
;								 Niepowodzenie - -1 - Zbyt mały czas
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _Moc( $praca, $czas )
Select
 Case $czas < 0
  Return -1
 Case IsNumber($praca) = 0 OR IsNumber($czas) = 0
  Return -2
 Case Else
  Local $moc = $praca / $czas
  Return $moc
EndSelect
EndFunc   ;==>_Moc
; #FUNKCJA# ======================================================================================
; Nazwa..........: _Predkosc
; Opis...........: Oblicza prędkość.
; Składnia.......: _Prędkość( $deltaX, $deltaT )
; Parametry......: $deltaX - przemieszczenie [m]
;								 $deltaT - przyrost czasu [s]
; Zwracane wart..: Sukces - Zwraca prędkość. [m/s]
;								 Niepowodzenie - -2 - Niepoprawne dane wejściowe
; Autor .........: Protecto
; =================================================================================================
Func _Predkosc( $deltaX, $deltaT )
Select
 Case IsNumber($deltaX) = 0 OR IsNumber($deltaT) = 0
  Return -2
 Case Else
  Local $predkosc = Abs($deltaX / $deltaT)
  Return $predkosc
EndSelect
EndFunc   ;==>_Predkosc
;====================================================================================== Funkcje wewnętrzne
Func __A($y1, $y2)
Return -($y2 - $y1)
EndFunc   ;==>__A
Func __B($x1, $x2)
Return $x2 - $x1
EndFunc   ;==>__B
Func __C($x1, $x2, $y1, $y2)
Return ($x2 - $x1) * (-$y1) - ($y2 - $y1) * (-$x1)
EndFunc   ;==>__C
Func __W($x11, $y11, $x12, $y12, $x21, $y21, $x22, $y22)
Return __A($y11, $y12) * __B($x21, $x22) - __A($y21, $y22) * __B($x11, $x12)
EndFunc   ;==>__W
Func __UsunZera($fLiczba)
If StringLeft($fLiczba, 1) = '0' Then
	Do
		$fLiczba = StringTrimLeft($fLiczba, 1)
	Until StringLeft($fLiczba, 1) <> '0'
EndIf
If StringRight($fLiczba, 1) = '0' Then
	Do
		$fLiczba = StringTrimRight($fLiczba, 1)
	Until StringRight($fLiczba, 1) <> '0'
EndIf
If StringRight($fLiczba, 1) = '.' Then $fLiczba = StringTrimRight($fLiczba, 1)
Return String($fLiczba)
EndFunc   ;==>__UsunZera

 

 

 

@EDIT

Z nudów poprawiłem jeszcze spoiler Funkcje

3maj cały poprawiony :)

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_ConvertSystemXtoY($iSysIn, $iNumber, $iSysOut)

_LogX($fX, $fNumber)

_SumaEx($fSkladnik1, $fSkladnik2)

_OdejmEx($fOdjemna, $fOdjemnik)

_MnozEx($fCzynnik1, $fCzynnik2)

_DistanceFromXtoY($fX1, $fY1, $fX2, $fY2)

_CrossPoint($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22)

_WyznaczDelte($a, $b, $c )

_TrojmianP($a, $b )

_TrojmianQ($a, $delta )

_NWD($iLiczba1, $iLiczba2)

_NWW($iLiczba1, $iLiczba2)

_Silnia($N)

_Wariacje($K,$N)

_Permutacje($N)

_Kombinacje($K,$N)

_ArabskaToRzymska($arabska)

_RzymskaToArabska($rzymska)

_EnergiaKinetyczna( $masa, $predkosc )

_EnergiaPotencjalnaGrawitacji( $masa, $wysokosc, $pg )

_Ped( $masa, $predkosc )

_Przyspieszenie( $predkosc, $czas)

_Gestosc( $masa, $objetosc )

_Stezenie_p( $masa_s, $masa_r )

_Praca( $sila, $deltaX )

_Moc( $praca, $czas )

_Predkosc( $deltaX, $deltaT )

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _ConvertSystemXtoY

; Opis...........: Konwertuje system liczbowy X do systemu liczbowego Y

; Składnia.......: _ConvertSystemXtoY($iSysIn, $iNumber, $iSysOut)

; Parametry......: $iSysIn - System liczbowy liczby wyjściowej (1-36)

; $iNumber - Liczba, która ma zostać przeliczona na inny system liczbowy

; $iSysOut - System liczbowy, w którym zapisana będzie liczba wynikowa (1-36)

; Zwracane wart..: Sukces - Zwraca wartość liczby

; Niepowodzenie - Zwraca -1 - Liczba podana w pierwszym parametrze nie jest w zakresie 1-36

; Niepowodzenie - Zwraca -2 - Liczba podana w trzecim parametrze nie jest w zakresie 1-36

; Niepowodzenie - Zwraca -3 - Liczba zawiera nieprawidłowe znaki

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _LogX

; Opis...........: Zwraca logarytm o -n podstawie z liczby

; Składnia.......: _LogX($fX, $fNumber)

; Parametry......: $fX - Podstawa logarytmu

; $fNumber - Liczba, z której zostanie obliczony logarytm

; Zwracane wart..: Sukces - Zwraca wartość liczby

; Niepowodzenie - -1 - nieprawidłowe dane wejściowe

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _SumaEx

; Opis...........: Sumuje dwa składniki

; Składnia.......: _SumaEx($fSkladnik1, $fSkladnik2)

; Parametry......: $fSkladnik1 - Pierwszy składnik (podany jako string)

; $fSkladnik2 - Drugi składnik (podany jako string)

; Zwracane wart..: Sukces - Zwraca sumę w postaci string

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _OdejmEx

; Opis...........: Zwraca róznicę dwóch liczb

; Składnia.......: _OdejmEx($fOdjemna, $fOdjemnik)

; Parametry......: $fOdjemna - Odjemna (podany jako string)

; $fOdjemnik - Odjemnik (podany jako string)

; Zwracane wart..: Sukces - Zwraca róznicę w postaci string

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _MnozEx

; Opis...........: Zwraca iloczyn dwóch liczb

; Składnia.......: _MnozEx($fCzynnik1, $fCzynnik2)

; Parametry......: $fCzynnik1 - Pierwszy czynnik (podany jako string)

; $fCzynnik2 - Drugi czynnik (podany jako string)

; Zwracane wart..: Sukces - Zwraca iloczyn w postaci string

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _DistanceFromXtoY

; Opis...........: Zwraca odległość między dwoma punktami na osi dwuwymiarowej

; Składnia.......: _DistanceFromXtoY($fX1, $fY1, $fX2, $fY2)

; Parametry......: $fX1 - Położenie na osi X pierwszego punktu

; $fY1 - położenie na osi Y pierwszego punktu

; $fX2 - położenie na osi X drugiego punktu

; $fY2 - położenie na osi Y drugiego punktu

; Zwracane wart..: Sukces - Zwraca odległość między dwoma punktami

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: No Ja

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _CrossPoint

; Opis...........: Zwraca położenie punktu przecięcia się prostych

; Składnia.......: _CrossPoint($fX11, $fY11, $fX12, $fY12, $fX21, $fY21, $fX22, $fY22)

; Parametry......: $fX11 - położenie na osi X pierwszego punktu pierwszej prostej

; $fY11 - położenie na osi Y pierwszego punktu pierwszej prostej

; $fX22 - położenie na osi X drugiego punktu pierwszej prostej

; $fY22 - położenie na osi Y drugiego punktu pierwszej prostej

; $fY11 - położenie na osi Y pierwszego punktu drugiej prostej

; $fX21 - położenie na osi X drugiego punktu drugiej prostej

; $fY22- położenie na osi Y drugiego punktu drugiej prostej

; $fX22 - położenie na osi X drugiego punktu drugiej prostej

; Zwracane wart..: Sukces - Zwraca położenie punktu przecięcia dwóch prostych

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: No Ja

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _WyznaczDelte

; Opis...........: Wyznacza wyróżnik trójmianu kwadratowego (deltę trójmianu kwadratowego)

; Składnia.......: _WyznaczDelte($a,$b,$c)

; Parametry......: $a,$b,$c - Swego rodzaju stałe, liczby rzeczywiste, $a musi być różna od zera

;

; Zwracane wart..: Sukces - Zwraca delte

; Niepowodzenie - -2 - Współczynnik a jest równy zero

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: wojtek333314

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _TrojmianP

; Opis...........: Wyznacza p, czyli współrzędną X wierzchołka wykresu paraboli(wykresu funkcji kwadratowej)

; Składnia.......: _TrojmianP($a,$ B)

; Parametry......: $a,$b - Liczby rzeczywiste

; Zwracane wart..: Sukces - Zwraca współrzędną X wierzchołka wykresu paraboli

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: wojtek333314

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _TrojmianQ()

; Opis...........: Wyznacza q, czyli współrzędną Y wierzchołka wykresu paraboli(wykresu funkcji kwadratowej)

; Składnia.......: _TrojmianQ($a,$delta)

; Parametry......: $delta - wyróżnik trójmianu kwadratowego

; $a - Liczba rzeczywista

; Zwracane wart..: Sukces - Zwraca współrzędną Y wierzchołka wykresu paraboli

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: wojtek333314

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _NWD()

; Opis...........: Wyznacza największy wspólny dzielnik dwóch liczb

; Składnia.......: _NWD($iLiczba1, $iLiczba2)

; Parametry......: $iLiczba1, $iLiczba2 - liczby rzeczywiste

; Zwracane wart..: Sukces - Największy wspólny dzielnik

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _NWW()

; Opis...........: Wyznacza najmniejszą wspólną wielokrotnosć dwóch liczb

; Składnia.......: _NWW($iLiczba1, $iLiczba2)

; Parametry......: $iLiczba1, $iLiczba2 - liczby naturalne

; Zwracane wart..: Sukces - Najmniejsza wspólna wielokrotnosć

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Silnia

; Opis...........: Zwraca silnię dla podanej liczby

; Składnia.......: _Silnia($N)

; Parametry......: $N - Podstawa.

; Zwracane wart..: Sukces - Zwraca wartość liczby

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Dla N=0 zwraca 1

; Autor .........: Assa

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Wariacje

; Opis...........: Zwraca możliwą ilość wariacji bez powtórzeń

; Składnia.......: _Wariacje($N,$K)

; Parametry......: $N - ilosć elementów

; $K - ilosć elemetów w wariacji

; $bPow - Czy uwzględnić powtórzenia (1 - tak, 0 - nie)

; Zwracane wart..: Sukces - Ilość wszystkich rozmieszczeń z n różnych elementów po k

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: Assa

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Permutacje

; Opis...........: Zwraca możliwą ilość permutacji bez powtórzeń

; Składnia.......: _Wariacje($N)

; Parametry......: $N - ciąg n-wyrazowy.

; Zwracane wart..: Sukces - Zwraca ilość możliwych permutacji

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: Assa

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Kombinacje

; Opis...........: Zwraca możliwą ilość kombinacji bez powtórzeń

; Składnia.......: _Kombinacje($N,$K)

; Parametry......: $N - ilosć elementów

; $K - ilosć elemetów w kombinacji

; $bPow - Czy uwzględnić powtórzenia (1 - tak, 0 - nie)

; Zwracane wart..: Sukces - Zwraca ilość możliwych kombinacji

; Niepowodzenie - -1 - Nieporawne dane wejściowe

; Autor .........: Assa

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _ArabskaToRzymska

; Opis...........: Zamienia liczbę arabską na rzymską

; Składnia.......: _ArabskaToRzymska($arabska)

; Parametry......: $arabska - liczba naturalna w zakresie 1-3999

; Zwracane wart..: Sukces - Zwraca liczbę w zapisie rzymskim

; Niepowodzenie - -1 - Za duza liczba

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _RzymskaToArabska

; Opis...........: Zamienia liczbę rzymską na arabską

; Składnia.......: _RzymskaToArabska($rzymska)

; Parametry......: $arabska - liczba naturalna w zakresie 1-3999

; Zwracane wart..: Sukces - Zwraca liczbę w zapisie arabskim

; Niepowodzenie - -1 - Niepoprawne dane wejściowe

; Autor .........: Sopel

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _EnergiaKinetyczna

; Opis...........: Oblicza energię kinetyczną

; Składnia.......: _EnergiaKinetyczna( $masa, $predkosc )

; Parametry......: $masa - masa obektu [kg]

; $predkosć = prędkosć obiektu [m/s]

; Zwracane wart..: Sukces - Zwraca energię kinetyczną [J]

; Niepowodzenie - -1 - Zbyt mała prędkosć lub masa

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _EnergiaPotencjalnaGrawitacji

; Opis...........: Oblicza energię potencjanlą grawitacji

; Składnia.......: _EnergiaPotencjalnaGrawitacji( $masa, $wysokosc, $pg )

; Parametry......: $masa - masa obektu [kg]

; $wysokosc = wysokosć nad poziomem odniesienia [m]

; $pg - przyspieszenie grawitacyjne [m/s^2](dla Ziemi = 9.80665)

; Zwracane wart..: Sukces - Zwraca energię potencjanlą grawitacji [J]

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Ped

; Opis...........: Oblicza pęd obiektu

; Składnia.......: _Ped( $masa, $predkosc )

; Parametry......: $masa - masa obektu [kg]

; $predkosć = prędkosć obiektu [m/s]

; Zwracane wart..: Sukces - Zwraca pęd obiektu [kg*m/s]

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Przyspieszenie

; Opis...........: Oblicza przyspieszenie obiektu

; Składnia.......: _Przyspieszenie( $predkosc, $czas)

; Parametry......: $predkosc - predkosć obiektu [m/s]

; $czas - czas

; Zwracane wart..: Sukces - Zwraca przyspieszenie obiektu [m/s^2]

; Niepowodzenie - -1 - Zbyt mała prędkosć lub czas

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Gestosc

; Opis...........: Oblicza gęstosć związku

; Składnia.......: _Gestosc( $masa, $objetosc )

; Parametry......: $masa - masa związku [kg]

; $objetosc - objętosć związku [m^3]

; Zwracane wart..: Sukces - Zwraca gęstosć związku [m/s^2]

; Niepowodzenie - -1 - Zbyt mała masa lub objętosć

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Stezenie_p

; Opis...........: Oblicza stęzenie procentowe roztworu

; Składnia.......: _Stezenie_p( $masa_s, $masa_r )

; Parametry......: $masa_s - masa rozpuszczanej substancji [kg]

; $masa_r - masa roztworu [kg]

; Zwracane wart..: Sukces - Zwraca stęzenie procentowe roztworu [%]

; Niepowodzenie - -1 - Zbyt mała masa

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Praca

; Opis...........: Oblicza pracę

; Składnia.......: _Praca( $sila, $deltaX )

; Parametry......: $sila - siła [N]

; $deltaX - deltaX [m]

; Zwracane wart..: Sukces - Zwraca pracę [J]

; Niepowodzenie - -1 - Zbyt mała deltaX

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Moc

; Opis...........: Oblicza pracę

; Składnia.......: _Moc( $praca, $czas )

; Parametry......: $praca - praca [J]

; $czas - czas

; Zwracane wart..: Sukces - Zwraca Moc [W]

; Niepowodzenie - -1 - Zbyt mały czas

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

; #FUNKCJA# ======================================================================================

; Nazwa..........: _Predkosc

; Opis...........: Oblicza prędkość.

; Składnia.......: _Predkosc( $deltaX, $deltaT )

; Parametry......: $deltaX - przemieszczenie [m]

; $deltaT - przyrost czasu

; Zwracane wart..: Sukces - Zwraca prędkość. [m/s]

; Niepowodzenie - -2 - Niepoprawne dane wejściowe

; Autor .........: Protecto

; =================================================================================================

 

 

Opublikowano

@refresz

 

Tak przy okazji

 

Mam wpisane 54 pierwiastki (prawie połowa :)) tzn.

;$array[x][0] = masa atomowa
;$array[x][1] = nazwa
;$array[x][2] = symbol [K]
;$array[x][3] = wartosciowosć
;$array[x][4] = gęstosć [g/dm^3]
;$array[x][5] = temperatura tobnienia [K]
;$array[x][6] = temperatura wrzenia [K]
;$array[x][7] = okres
;$array[x][8] = grupa

Na razie wystarczy tyle, po skończeniu będę dopisywał może jeszcze jakieś potrzebne do obliczeń czy po prostu potrzebne do czegokolwiek informacje.

 

 

Napisałem też funkcję potrzebną do większości obliczeń chemicznych i przyda mi się ona przy pisaniu funkcji, które napisałem posta wcześniej, może wam to też pomoże, może napiszecie coś z użyciem tego. Narazie nie będę edytował 1 posta, bo to jest tylko narzędzie do tworzenia obliczeń chemicznych.

Func _RozdzielNaCzastki($sZwiazek)
   Local $mnoznik = 1
   Local $czastki[2][2]
   Local $a1 = 0, $a2 = 0
   If Not IsString($sZwiazek) Then Return -1
   For $b = 1 To StringLen($sZwiazek) - 1 Step +1
       If Int(StringMid($sZwiazek, $b, $b + 1)) <> 0 Then
           $mnoznik = StringLeft($sZwiazek, $
       Else
           $sZwiazek = StringTrimLeft($sZwiazek, $b - 1)
           ExitLoop
       EndIf
   Next
   Local $sZwiazekSplit = StringSplit($sZwiazek, '')
   Local $sCzastka = ''
   Local $sLiczba = ''
   Local $iString = 0
   Local $bString
   Local $bliczba = False
   For $i = 1 To $sZwiazekSplit[0]
       If $iString = 3 Then Return -2
       ReDim $czastki[$a1 + 2][2]
       If Int($sZwiazekSplit[$i]) = 0 Then
           If Int($sLiczba) > 0 Then
               $bliczba = True
               $czastki[$a1][$a2] = $sLiczba * $mnoznik
               $sLiczba = 0
               $a1 += 1
               $a2 = 0
               $sCzastka = ''
           EndIf
           $bString = True
           $iString += 1
           $sLiczba = ''
           $sCzastka &= $sZwiazekSplit[$i]
           If $iString = 2 And StringIsUpper($sZwiazekSplit[$i]) Then
               $czastki[$a1][$a2] = StringLeft($sCzastka, 1)
$czastki[$a1][1] = $mnoznik
               $a1 += 1
               $a2 = 0
               $iString = 0
               $czastki[$a1][$a2] = StringRight($sCzastka, 1)
               $sCzastka = ''
               $a2 = 1
           ElseIf $iString = 2 And StringIsLower($sZwiazekSplit[$i]) Then
               If $bliczba = False Then
                   $a1 += 1
                   $a2 = 0
               EndIf
               $iString = 0
               $czastki[$a1][$a2] = $sCzastka
               $czastki[$a1][1] = $mnoznik
               $sCzastka = ''
               $a2 = 1
           EndIf
       Else
           If $iString = 2 Or $iString = 1 Then
               If $bliczba = False Then
                   $a1 += 1
                   $a2 = 0
               EndIf
               $czastki[$a1][$a2] = $sCzastka
               $czastki[$a1][1] = $mnoznik
               $sCzastka = ''
               $a2 = 1
           EndIf
           $iString = 0
           $bString = False
           $sLiczba &= $sZwiazekSplit[$i]
           $sCzastka = ''
       EndIf
       If $i = $sZwiazekSplit[0] Then $czastki[$a1][$a2] &= $sCzastka & $sLiczba * $mnoznik
   Next
   Return $czastki
EndFunc   ;==>_SumujCzastki

 

@edit. Mała poprawka

Opublikowano

Dodane pierwiastki

2 funckje:

_RozdzielNaCzastki($sZwiazek)

_MasaCzasteczkowa($sZw)

 

 

Zaraz się ktoś przyczepi, że w funkcjach nie deklaruje się zmiennych globalnych, tylko na początku... Tak zrobiłem, aby oszczędzić te 1,5 MB pamięci, gdy nie jest potrzebna tablica z pierwiastkami :)

 

 

Oczywiście sprawdzajcie czy działa poprawnie itp itd.

 

@down, dzięki, jak na razie najwięcej się udzielasz, za co bardzo Ci dziękuje ;)

dodane do pierwsze postu.

Opublikowano

Kolejna porcja funkcji fizycznych. Prąd elektryczny. ;)

 

Rezystancja(Ω)

napięcie(V)

natężenie(A)

Func _Rezystancja( $napiecie, $natezenie )
Select
 Case IsNumber($napiecie) = 0 OR IsNumber($natezenie) = 0
  Return -2
 Case Else
  Local $rezystancja = $napiecie / $natezenie
  Return $rezystancja
EndSelect
EndFunc

 

Moc prądu elekrycznego(W)

napięcie(V)

natężenie(A)

Func _Moc_p( $napiecie, $natezenie )
   Select
       Case IsNumber($napiecie) = 0 OR IsNumber($natezenie) = 0
           Return -2
       Case Else
           Local $moc_p = $napiecie * $natezenie
           Return $moc_p
   EndSelect
EndFunc

 

Praca prądu elekrycznego(J)

napięcie(V)

natężenie(A)

czas(s)

Func _Praca_p( $napiecie, $natezenie, $czas )
   Select
       Case IsNumber($napiecie) = 0 OR IsNumber($natezenie) = 0
           Return -2
       Case Else
           Local $praca_p = $napiecie * $natezenie * $czas
           Return $praca_p
   EndSelect
EndFunc

 

Pozdro :)

 

@UP

Spoko, póki mam czas to piszę. :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...