Niniejszy rozdział sygnalizuje istnienie pewnych koncepcji i technik, jednak stanowczo nie wystarcza, by je opanować.
Przykłady dotyczą obliczania promienia hydraulicznego w kanale o przekroju trapezowym.
function nazwa(lista_argumentów) as typ_wyniku
...
nazwa = wartość_wynikowa
end functionumieszczona w module programistycznym skoroszytu (Excel, OpenOffice Calc) lub w odpowiedniej kartotece konfiguracyjnej pakietu, np.function promienhyd(h as double, szerdna as double, nachylenie as double) as double
if (h <= 0.0) then
promienhyd = 0.0
else
pole = h*(szerdna + h*nachylenie)
obw = szerdna + 2*h*(1.0 + nachylenie^2)^0.5
promienhyd = pole/obw
endif
end functionmoże być wywoływana w formułach, np. =promienhyd(b2; $a$1; $a$2)na równi z funkcjami należącymi do standardowej biblioteki arkusza.
sub nazwa(lista_argumentów) ... end functionumieszczona w module programistycznym skoroszytu lub w kartotece konfiguracyjnej pakietu; np. dla Excela
sub tablicuj()
szer = 3.0
nachyl = 2.0
arkusz = Worksheets(1)
a = arkusz.Cells(1,1).Value
b = arkusz.Cells(2,1).Value
n = arkusz.Cells(3,1).Value
krok = (b-a)/n
x = a
arkusz.Cells(1, 3).Value = "h"
arkusz.Cells(1, 4).Value = "R(h)"
for i = 0 to n
y = promienhyd(x, szer, nachyl)
arkusz.Cells(i+2, 3).Value = x
arkusz.Cells(i+2, 4).Value = y
x = x + krok
next i
end sublub dla OpenOffice Calc
(ten sam język, inna biblioteka użytkowa)sub tablicuj()
szer = 3.0
nachyl = 2.0
arkusz = thisComponent.Sheets.getByIndex(0)
a = arkusz.getCellByPosition(0, 0).getValue()
b = arkusz.getCellByPosition(0, 1).getValue()
n = arkusz.getCellByPosition(0, 2).getValue()
krok = (b-a)/n
x = a
arkusz.getCellByPosition(2, 0).setString("h")
arkusz.getCellByPosition(3, 0).setString("R(h)")
for i = 0 to n
y = promienhyd(x, szer, nachyl)
arkusz.getCellByPosition(2, i+1).setValue(x)
arkusz.getCellByPosition(3, i+1).setValue(y)
x = x + krok
next i
end subwywoływana jako makropolecenie z menu programu lub przez kombinację klawiszy.
def nazwa(lista_argumentów):
...
return wartość_wynikowa
umieszczony w module programistycznym skoroszytu
OpenOffice Calc lub w konfiguracji pakietu
i wywoływany jako makropolecenie (Excel
nie rozumie Pythona), np.def promienhyd(h, szerdna, nachylenie):
if h <= 0.0:
return 0.0
else:
pole = h*(szerdna + h*nachylenie)
obw = szerdna + 2*h*(1.0 + nachylenie**2)**0.5
return pole/obw
def tablicuj():
szer = 3.0
nachyl = 2.0
arkusz = XSCRIPTCONTEXT.getDocument().Sheets.getByIndex(0)
a = arkusz.getCellByPosition(0,0).getValue()
b = arkusz.getCellByPosition(0,1).getValue()
n = arkusz.getCellByPosition(0,2).getValue()
krok = (b-a)/n
x = a
arkusz.getCellByPosition(2, 0).setString("h")
arkusz.getCellByPosition(3, 0).setString("R(h)")
for i in range(n+1):
y = promienhyd(x, szer, nachyl)
arkusz.getCellByPosition(2, i+1).setValue(x)
arkusz.getCellByPosition(3, i+1).setValue(y)
x += krok
return