Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Programování funkcí v Excelu (pole). EXCEL : pole Pole – proměnná obsahující několik složek Pole – proměnná obsahující několik složek – několik paměťových.

Podobné prezentace


Prezentace na téma: "Programování funkcí v Excelu (pole). EXCEL : pole Pole – proměnná obsahující několik složek Pole – proměnná obsahující několik složek – několik paměťových."— Transkript prezentace:

1 Programování funkcí v Excelu (pole)

2 EXCEL : pole Pole – proměnná obsahující několik složek Pole – proměnná obsahující několik složek – několik paměťových míst označených stejným – několik paměťových míst označených stejným jménem, ale lišících se hodnotou indexu jménem, ale lišících se hodnotou indexu – vektor, matice, tabulka, … – vektor, matice, tabulka, … – pole má několik variant (obsah této prezentace) – pole má několik variant (obsah této prezentace) Deklarace: Dim Pole(DolMez To HorMez) As Typ Pole Pole(DolMez) Pole(HorMez) Odkaz na složku: Pole(I)

3 EXCEL : pole Příklad: Průměr z čísel 1, 2, 3. Function PRUM() As Double Dim A1 As Integer Dim A1 As Integer Dim A2 As Integer Dim A2 As Integer Dim A3 As Integer Dim A3 As Integer A1=1 A1=1 A2=2 A2=2 A3=3 A3=3 PRUM=(A1+A2+A3)/3 PRUM=(A1+A2+A3)/3 End Function Bez pole Function PRUM() As Double Dim A(1 To 3) As Integer Dim A(1 To 3) As Integer A(1)=1 A(1)=1 A(2)=2 A(2)=2 A(3)=3 A(3)=3 PRUM=(A(1)+A(2)+A(3))/3 PRUM=(A(1)+A(2)+A(3))/3 End Function Pomocí pole I Function PRUM() As Double Dim A(1 To 3) As Integer ´ Deklarace pole Dim A(1 To 3) As Integer ´ Deklarace pole Dim I As Integer ´ Index Dim I As Integer ´ Index Dim S As Integer ´ Sčítač Dim S As Integer ´ Sčítač For I=1 To 3 ´ Načtení pole For I=1 To 3 ´ Načtení pole A(I)=I A(I)=I Next I Next I S=0 ´ Počáteční hodnota S S=0 ´ Počáteční hodnota S For I=1 To 3 ´ Součet prvků pole For I=1 To 3 ´ Součet prvků pole S=S+A(I) S=S+A(I) Next I Next I PRUM=S/3 ´ Průměr PRUM=S/3 ´ Průměr End Function Pomocí pole II Pole lze při průchodu kombinovat s cykly.

4 EXCEL : statické pole Uvedené pole je statické – deklarací se určí počet složek, který Uvedené pole je statické – deklarací se určí počet složek, který se pak nemění se pak nemění Typ složek pole nemusí být uveden (pak je Variant) Typ složek pole nemusí být uveden (pak je Variant) Stačí uvést HorMez (DolMez je pak 0) Stačí uvést HorMez (DolMez je pak 0) Následující příklady popisují stejná (nebo skoro stejná) pole Následující příklady popisují stejná (nebo skoro stejná) pole Dim Pole(0 To 6) As Single Dim Pole(6) As Single Dim Pole(6)

5 EXCEL : dynamické pole Při deklaraci se neurčuje počet složek (úspora paměti) Při deklaraci se neurčuje počet složek (úspora paměti) Počet složek se určí až v průběhu programu příkazem ReDim Počet složek se určí až v průběhu programu příkazem ReDim Při dalším použití ReDim jsou hodnoty pole vymazány Při dalším použití ReDim jsou hodnoty pole vymazány Změnu velikosti bez vymazaní provede ReDim Preserve Změnu velikosti bez vymazaní provede ReDim Preserve Dim Pole() As Type Dim Pole() Dim Pole ReDim Pole(DolMez To HorMez) ReDim Preserve Pole(DolMez To HorMez) ReDim Pole(DolMez To HorMez) As Type (pro Dim Pole)

6 EXCEL : pole Příklad: Průměr z čísel 1, 2, 3 a pak z 1, 2, 3, 4, 5. Function PRUM() As Double Dim A() As Integer ´ Deklarace pole Dim A() As Integer ´ Deklarace pole Dim I As Integer Dim I As Integer Dim S As Integer Dim S As Integer ReDim A(1 To 3) ´ Určení velikosti ReDim A(1 To 3) ´ Určení velikosti For I=1 To 3: A(I)=I: Next I For I=1 To 3: A(I)=I: Next I S=0 S=0 For I=1 To 3: S=S+A(I): Next I For I=1 To 3: S=S+A(I): Next I PRUM=S/3 PRUM=S/3 ReDim Preserve A(1 To 5) ´ Změna velikosti ReDim Preserve A(1 To 5) ´ Změna velikosti For I=4 To 5: A(I)=I: Next I For I=4 To 5: A(I)=I: Next I For I=4 To 5: S=S+A(I): Next I For I=4 To 5: S=S+A(I): Next I PRUM=S/5 PRUM=S/5 End Function

7 EXCEL : příklad na pole Příklad: Sestavte funkci, která odevzdá součet prvků posloupnosti počínaje prvním prvkem a konče prvkem s největší počínaje prvním prvkem a konče prvkem s největší hodnotou, maximálně však pro 100 prvků. hodnotou, maximálně však pro 100 prvků. Posloupnost je určena předpisem: Posloupnost je určena předpisem: a i = k exp(-(i-m) 2 /q), i=1,2,… a i = k exp(-(i-m) 2 /q), i=1,2,… Konstanty zvolte například: k=10, m=6, q=32 Konstanty zvolte například: k=10, m=6, q=32 posloupnost vytvoříme v poli A(1 To 100) As Double posloupnost vytvoříme v poli A(1 To 100) As Double v posloupnosti najdeme největší prvek a jeho index v posloupnosti najdeme největší prvek a jeho index provedeme požadovaný součet provedeme požadovaný součet

8 EXCEL : příklad na pole Function SouPosl(K As Double,M As Double,Q As Double) As Double Dim A(1 To 100) As Double 'Deklarace Dim A(1 To 100) As Double 'Deklarace Dim I As Integer Dim I As Integer Dim S As Double Dim S As Double Dim AMAX As Double Dim AMAX As Double Dim IMAX As Double Dim IMAX As Double For I=1 To 100: A(I)=K*EXP(-(I-M)^2/Q): Next I 'Vytvoření pole For I=1 To 100: A(I)=K*EXP(-(I-M)^2/Q): Next I 'Vytvoření pole AMAX=A(1): IMAX=1 'Hledání nejv. hodnoty AMAX=A(1): IMAX=1 'Hledání nejv. hodnoty For I=2 To 100 For I=2 To 100 If A(I)>AMAX Then AMAX=A(I): IMAX=I If A(I)>AMAX Then AMAX=A(I): IMAX=I Next I Next I S=0 'Sčítání S=0 'Sčítání For I=1 To IMAX: S=S+A(I): Next I For I=1 To IMAX: S=S+A(I): Next I SouPosl = S SouPosl = S End Function

9 EXCEL : pole jako vstup funkce Pole vstupuje do funkce jako proměnná typu Variant Pole vstupuje do funkce jako proměnná typu Variant V Excelovském sešitu ji reprezentuje výběr souvislé oblasti V Excelovském sešitu ji reprezentuje výběr souvislé oblasti Function PRUM(A) As Double PRUM = (A(1) + A(2) + A(3)) / 3 PRUM = (A(1) + A(2) + A(3)) / 3 End Function

10 EXCEL : pole jako výstup funkce Pole vystupuje jako dynamické pole nebo jako Variant Pole vystupuje jako dynamické pole nebo jako Variant Vznikne maticová funkce (potvrzuje se Ctrl+Shift+Enter) Vznikne maticová funkce (potvrzuje se Ctrl+Shift+Enter) Jednodimenzionální pole vystupuje jako ”řádek” Jednodimenzionální pole vystupuje jako ”řádek” Function ABC( vstupni_prom) As Type() Dim Pole(Meze) As Type Dim Pole(Meze) As Type ’Naplnění pole ’Naplnění pole … ABC = Pole ABC = Pole End Function

11 EXCEL : pole jako výstup funkce Function ABC() As Integer() Dim Pole(1 To 3) As Integer Dim Pole(1 To 3) As Integer 'Naplneni pole 'Naplneni pole Pole(1)=1: Pole(2)=2: Pole(3)=3 Pole(1)=1: Pole(2)=2: Pole(3)=3 ABC = Pole ABC = Pole End Function Function ABC() Dim Pole(1 To 3) As Integer Dim Pole(1 To 3) As Integer 'Naplneni pole 'Naplneni pole Pole(1)=1: Pole(2)=2: Pole(3)=3 Pole(1)=1: Pole(2)=2: Pole(3)=3 ABC = Pole ABC = Pole End Function

12 EXCEL : vícedimenzionální pole Matice, Tabulka, … Matice, Tabulka, … Popisuje se více indexovými rozsahy a více indexy Popisuje se více indexovými rozsahy a více indexy Počet dimenzí maximálně 60 Počet dimenzí maximálně 60 Deklarace: Dim Pole2(DolMez1 To HorMez1,DolMez2 To HorMez2) As Type Odkaz na složku: Pole2(I,J) Pole2

13 EXCEL : příklad na pole Příklad: Sestavte funkci, která přečte tabulku čísel z Excelu. Poté najde minimální prvek a předá tabulku obsahující Poté najde minimální prvek a předá tabulku obsahující odchylky prvků od minimálního prvku. odchylky prvků od minimálního prvku. První dva vstupní parametry určí počet řádků M a sloupců N První dva vstupní parametry určí počet řádků M a sloupců N Vstupní tabulka bude pole zadané jako Variant Vstupní tabulka bude pole zadané jako Variant Výstupní hodnota bude opět Variant Výstupní hodnota bude opět Variant Budeme předpokládat, že M10, N10 Budeme předpokládat, že M10, N10

14 EXCEL : příklad na pole Function Odchylky(M As Integer,N As Integer,A As Variant) Dim B(1 To 10,1 To 10) As Double 'Deklarace Dim B(1 To 10,1 To 10) As Double 'Deklarace Dim I As Integer Dim I As Integer Dim J As Integer Dim J As Integer Dim AMIN As Double Dim AMIN As Double AMIN=A(1,1) 'Určení minima AMIN=A(1,1) 'Určení minima For I=1 To M For I=1 To M For J=1 To N For J=1 To N If A(I,J)


Stáhnout ppt "Programování funkcí v Excelu (pole). EXCEL : pole Pole – proměnná obsahující několik složek Pole – proměnná obsahující několik složek – několik paměťových."

Podobné prezentace


Reklamy Google