Komunikacja z arkuszem. Iteracje. Funkcje.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Podstawy informatyki Informatyka Stosowana Zajęcia nr 2
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Programowanie obiektowe
Programowanie w języku Visual Basic
Podstawy programowania w VBA
Języki programowania C++
Funkcje c.d. Strukturalność. Algorytmy. Ćwiczenia przed kolokwium.
27/09/ Języki programowania 1 Piotr Górczyński Pętle.
typy całkowite (całkowitoliczbowe)
Nośniki sygnałów - przykład Nośniki sygnałów – przykład.
27/09/ Języki programowania 1 Piotr Górczyński Zmienne.
Procesor DSP Sharc ADSP21161 firmy Analog Devices
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Podstawy informatyki Wirtotechnologia Grupa: 1A Wydział Inżynierii Metali i Informatyki Przemysłowej Wydział Odlewnictwa Akademia Górniczo – Hutnicza im.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Tablice Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Arkusz kalkulacyjny powtórzenie A.Ś..
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski
Programowanie obiektowe. Obiekty. Metody. Właściwości.
Systemy Wbudowane Bascom
PASCAL (2) dr Anna Kwiatkowska.
Arkusz kalkulacyjny Excel
Metody Matematyczne w Inżynierii Chemicznej Wprowadzenie do laboratorium.
Schemat Hornera Mgr inż. Michał Szucki.
Słowa kluczowe oraz nazwy obiektów i klas rozpoczynaj od dużej litery np. Loop, Dim, FileStream Rozpoczynaj nazwę zmiennej od małej litery stosując styl.
Podstawy programowania
Dane do obliczeń.
Programowanie w języku Matlab
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
ETO w Inżynierii Chemicznej
Microsoft Office Excel
Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
PHP: warunki, pętle, switch, break, continue
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Programowanie strukturalne i obiektowe
Technologie informacyjne EXCEL I
Instrukcje iteracyjne
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Zajęcia I Organizacja zajęć Rejestracja i uruchamianie makr
PL/SQL – dalsza wędrówka
Adresowanie komórek w Excelu
Podstawy języka Instrukcje - wprowadzenie
Algorytmika Iteracje autor: Tadeusz Lachawiec.
VBA w MS Word Źródła: Steven Roman, Word.Makrodefinicje, Helion 2000
Wprowadzenie do VBA Excel 2013
Excel Filtrowanie Funkcje bazodanowe
Temat 8: Pętle.
Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
Pętle Zajęcia 6.
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Visual Basic Patryk Rosiak. Visual Basic for Applications Jest uproszczoną wersją języka Visual Basic służącym do obsługi dokumentów w pakiecie Microsoft.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Zmienne typy danych w VBA. MS Excel – typy danych w języku programowania VBA.
Rozpatrzmy następujące zadanie programowania liniowego:
ETO w Inżynierii Chemicznej
Visual Basic for Applications
Visual Basic w programie Microsoft Excel
Dane, zmienne, instrukcje
Excel Informacje różne.
Zapis prezentacji:

Komunikacja z arkuszem. Iteracje. Funkcje. Programowanie w VBA Komunikacja z arkuszem. Iteracje. Funkcje.

Komunikacja z arkuszem ActiveCell – oznacza aktualnie wybraną komórkę, jeśli wybrany jest zakres, to jest to komórka od której zaczęto zaznaczać; Selection – wybrany zakres komórek; Cells – bezpośrednie odwołanie do komórek adresując bezwzględnie (czyli niezależnie od zaznaczenia); Adresowanie jak w macierzach: A(1,2) – 1.wiersz, 2. kolumna

Komunikacja z arkuszem - Aktualnie zaznaczona komórka ActiveCell.Value – zwraca wartość tej komórki lub umożliwia przypisanie jej wartości: Dim dana As Variant dana = ActiveCell.Value ActiveCell.Value = dana * 2 Można też używać znanych z rejestracji makr metod związanych z formatowaniem: ActiveCell.Font, ActiveCell.FontSize, itd. ActiveCell.Row – zwraca numer wiersza zaznaczonej komórki; ActiveCell.Column – zwraca numer (liczbowy) kolumny zaznaczonej komórki;

Komunikacja z arkuszem - Aktualnie zaznaczony zakres Selection.Rows.Count – zwraca ilość wierszy zaznaczenia; Selection.Columns.Count – zwraca ilość kolumn zaznaczenia;

Komunikacja z arkuszem – Zmienna - zakres Dim zmienna as Range Set zmienna = Selection zmienna.Rows.Count – zwraca ilość wierszy zakresu przechowywanego w zmiennej; zmienna.Columns.Count – zwraca ilość kolumn zakresu przechowywanego w zmiennej; zmienna.Row – zwraca numer pierwszego wiersza zakresu ze zmiennej; zmienna.Column – zwraca numer pierwszej kolumny zmiennej; Ostatni wiersz zakresu: zmienna.Row + zmienna.Rows.Count - 1

Komunikacja z arkuszem –Zakres komórek Range("A1:B2") Range("A1:B2").Rows.Count Range("A1:B2").Select Range("A1:B2").Copy Range("A1:B2").Interior.Color = 2

Komunikacja z arkuszem - bezwzględne odwołanie Cells(<wiersz>,<kolumna>) – odwołanie do komórki w arkuszu (domyślnie jest to wartość); Cells(w,k).Value – zarówno można przypisać wartość, jak i użyć do przypisania (w procedurach); Inne metody działają tak jak w poprzednich przypadkach (np. formatowanie jakiejś komórki); dana = Cells(1,1).Value Cells(1,2).Value = dana (wynik: przepisanie zawartości komórki A1 do B1, bez znaczenia, jaka komórka jest zaznaczona)

Zadania Napisz program: Obliczający liczbę komórek w zakresie zaznaczonym aktualnie w arkuszu (mnożenie liczby wierszy przez liczbę kolumn); Wpisujący podaną przez użytkownika (inputbox) liczbę x w komórkę o koordynatach (x,x);

Iteracje dla n = 3

Iteracje Jest to powtarzanie tej samej instrukcji (bloku instrukcji) w pętli; Pętla musi mieć podaną ilość powtórzeń, niebezpośrednio – tworzy się ją przez zakres od liczby do liczby (przy rozpoczęciu sprawdzany jest warunek wykonania); For <licznik> = <pocz> To <koniec> Step <krok> <instrukcje> Next <licznik> Człon Step jest opcjonalny; Komenda „For i = 1 To 5” powtórzy następującą po niej (aż do komendy Next) sekwencję instrukcji 5 razy; Komenda „For i = 0 To 10 Step 5” powtórzy czynności 3 razy (0,5,10), a po zakończeniu pętli i=15 (wartość ta nie spełniła warunku, więc pętla zakończyła działanie;

Iteracje Wykonywanie pętli można przerwać z wewnątrz instrukcją Exit For – wywoływaną na przykład przez instrukcję warunkową; <początek>, <koniec> i <krok> mogą być zmiennymi, nawet zmienianymi w trakcie wykonywania pętli; Stan zmiennych określających rozpoczęcie powtarzania sprawdzane jest na początku każdej pętli; Komenda Next dodaje liczbę <krok> do zmiennej <licznik> (inkrementacja zmiennej); <początek> może być większy od <koniec>, ale albo musi być to rozwiązane w trakcie pętli, albo <krok> musi mieć wartość ujemną;

Iteracje Po co takie kombinacje? Żeby nie trzeba było robić skomplikowanych przekształceń i używać bezpośrednio danych z zadania (na przykład) – ogólnie – w celu ułatwienia sobie życia; Pętla w pętli z dobrze dobranymi zakresami to idealny sposób na poradzenie sobie z operacjami na dowolnych macierzach, tablicach, itd.

Iteracje Inna składni iteracji specjalnie dla tablic: For Each <element> In <tablica> <blok instrukcji> Next <element> i <tablica> muszą być typu Variant; zmienna <element> może być używana w bloku instrukcji wewnątrz pętli i w każdej iteracji zawiera w sobie zawartość kolejnego elementu wektora/tablicy <tablica>;

Inne iteracje While <wyrażenie logiczne> <instrukcje jeśli wyrażenie = prawda> Wend Do Until <wyrażenie logiczne> <instrukcje wykonywane póki wyrażenie = fałsz> Loop (Until <wyrażenie logiczne>) Do While <wyrażenie logiczne> <instrukcje wykonywane póki wyrażenie = prawda> Loop (While <wyrażenie logiczne>) Umiejscowienie warunku decyduje czy warunek jest sprawdzany po każdej pętli czy przed nią.

Inne iteracje i=5 Do While i<5 MsgBox("bum") Loop Do MsgBox("brzdek") Loop While i<5

Zadania Napisz programy: Obliczającą sumę liczb naturalnych od 1 do n (n podane przez użytkownika); Wypisującą dzielniki liczby podanej przez użytkownika;

Zadania i = i +1 – kumulowanie 1 do i (dopisanie 1, bez usunięcia dotychczasowej wartości i); suma = …? - też nie chcemy, żeby znikła dotychczasowa wartość, ale żeby dodawał kolejne wartości do już istniejącej sumy wcześniejszych.

Instrukcja skoku GoTo <etykieta> Gdzies w kodzie: <etykieta>: <Instrukcje> Sub a() Dim x As Byte petla: x = InputBox("Podaj liczbę:") If x <> 0 Then GoTo petla Else MsgBox ("Koniec programu!") End If End Sub

Abc = <zwracana do komórki wartość funkcji> Funkcje Funkcja to podstawowy sposób wykonywania operacji na komórkach w MS Excel; Funkcja przenosi wartość przez swoją nazwę, a więc funkcja Abc wewnątrz swojego kodu musi zawierać instrukcję: Abc = <zwracana do komórki wartość funkcji>

Funkcja jednej i więcej zmiennych Pobiera argument(y), które są potrzebne do obliczenia i zwrócenia jej wartości; Funkcja powinna mieć przypisany typ, wtedy trudniej o błąd; Function T_absolutna(T_Celsjusz) As Single T_absolutna = T_Celsjusz + 273.15 End Function

Funkcja stała Zwraca wartość stałą, np. funkcja: Function Avogadro() Avogadro = 6.022E+23 End Function Po wpisaniu do komórki „=Avogadro()” otrzymamy wynik: „6.022E+23”

Idiotoodporność Idiotoodporność (foolproof)! – warto stosować, abyśmy sami mogli stwierdzić, gdzie leży błąd w programie; Na czym polega? Należy przewidzieć wszystkie potencjalne błędy i możliwości, jakie mogą wystąpić przy przyjmowaniu danych wejściowych do programu. Każdą potencjalną opcję sprawdzać instrukcją warunkową i w przypadku wystąpienia błędu nie dopuszczać do jego wystąpienia, tylko odsyłać, na przykład, do wypisania własnego tekstu informującego o błędzie i z czego on wynika; Aby móc używać tej „techniki”, trzeba możliwie szeroko definiować zmienne wejściowe – np. poprzez typ Variant, a w miarę upewniania się co do prawidłowości danej zawartej w takiej zmiennej (przez komendy typu Is...) – przenosić ją do kolejnych bardziej zawężonych typów i operacji wykonywanych na niej.

Funkcje Przydatne komendy: IsNumeric(<zmienna>) – zwraca prawdę, jeśli zmienna jest liczbą (jeśli jest, można zmienną wsadzić do typu liczbowego); IsArray(<zmienna>) – prawda, jeśli zmienna jest tablicą (wektorem); IsEmpty(<komórka>) – prawda, jeśli komórka jest pusta (zmienna typu Range); IsDate (<zmienna>) – prawda, jeśli zmienna może być zapisana jako data; Len(<string>) – zwraca długość ciągu znaków; Rnd() – zwraca liczbę losową z zakresu <0;1)

Przykład Function przyklad(zakres As Variant) As String Dim tablica As Range If IsArray(zakres) Then Set tablica = zakres przyklad ="Liczba wierszy: " & tablica.rows.count End If End Function

Przykład Function przyklad(liczba As Variant) As String If IsNumeric(liczba) Then If liczba = liczba \ 1 Then przyklad = "calkowita" Else przyklad = "niecalkowita" End If End Function

Zadania do domu Napisz funkcję: Obliczającą sumę liczb od 1 do n (gdzie n jest argumentem funkcji); Obliczającą ciśnienie jednego mola gazu doskonałego na podstawie temperatury i objętości (dwa argumenty); Obliczającą n-ty element ciągu Fibonaciego; Napisz program: Wypełniający zakres komórek (kolejne komórki w zakresie rzędami) kolejnymi liczbami zaczynając od 1 używając pętli typu „for each element in zakres”; Wypełniający zakres komórek (kolejne komórki w zakresie rzędami) kolejnymi liczbami zaczynając od 1 używając pętli typu „For i = 1 to zakres.rows.count”;