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ść_wynikowaumieszczony 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