Archiwum
- LATANIE W KATARZE
- Sterowanie systemem Windows za pomocą programu NirCmd (Windows XP, Vista, 7)
- Jak zablokować ostrzeżenie pojawiające się przy uruchamianiu pobranych programów? (Wi
- Alternatywa dla Nero. Test najlepszych programów do nagrywania płyt
- Toshiba uruchamia w Polsce program CRU dla posiadaczy notebooków
- TEST: 20 programów antywirusowych. Który najlepszy?
- Live Essentials 11 - programowy niezbędnik Windows
- NVIDIA 3D Vision w programie Mars 500
- Gr.H-3.runda-BoboPL(Hiszpania) 6-0 King Crimson pl(Honduras)
- WytrzymaĹy laptop dla firm
- laptop z USA
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- szkolmor.opx.pl
Cytat
Długie szaty krępują ciało, a bogactwa duszę. Sokrates
I byłem królem. Lecz sen przepadł rankiem. William Szekspir (właść. William Shakespeare, 1564 - 1616)
Dalsza krewna: Czy śmierć to krewna? - życia pytasz się kochanie, tak krewna, ale dalsza, już na ostatnim planie. Sztaudynger Jan
Dla aktywnego człowieka świat jest tym, czym powinien być, to znaczy pełen przeciwności. Luc de Clapiers de Vauvenargues (1715 - 1747)
A ludzie rzekną, że nieba szaleją, a nieba rzekną: że przyszedł dzień Wiary. Cyprian Kamil Norwid (1821-1883)
aaaaLATANIE W KATARZEaaaa
Witajcie! W dzisiejszej, zabłąkanej części kursu, zapoznam was z podstawowymi instrukcjami i konstrukcjami w AutoIT. Poznacie też podstawową różnicę pomiędzy instrukcją, a funkcją. No coż... Zaczynajmy!Instrukcja warunkowa. O ile dobrze pamiętam, to nie mieliśmy zaszczytu spotkać się z tą jakże miłą panią :) Nosi ona dumne imie - Instrukcja warunkowa, wskazujące na to, że ma ona coś wspólnego z warunkami. Przyjrzyjmy się tej pani uważnie:
If $zmienna=4 then
msgbox(0, "Informacja", "Zmienna jest równa 4")
EndIf
Reasumując: Jeżeli zmienna $zmienna jest równa 4, wykonają się wszystkie instrukcje do słowa kluczowego EndIf. Nasza instrukcja warunkowa jest bardzo szczuplutka, a my lubimy grube panie, oj bardzo lubimy. Dlatego dodajmy naszej instrukcji(w zasadzie jest to konstrukcja)trochę kilo:
If $zmienna=1 then
msgbox(0, "Informacja", "Zmienna jest równa 1")
ElseIf $zmienna=2 then
msgbox(0, "Informacja", "Zmienna jest równa 2")
ElseIf $zmienna=3 then
msgbox(0, "Informacja", "Zmienna jest równa 3")
ElseIf $zmienna=4 then
msgbox(0, "Informacja", "Zmienna jest równa 4")
Else
msgbox(0, "Informacja", "Zmienna nie jest równa 1,2,3,4")
EndIf
Nasze okienka dialogowe ładnie nam pokazują jak działa nasza pani. If oznacza jeżeli. ElseIf oznacza w przeciwnym wypadku, jeżeli. Else oznacza w przeciwnym wypadku. Jest to najprostsza konstrukcja w programowaniu. Koniecznie trzeba tu zaznaczyć, że warunek jest to wartość logiczna przyjmująca 1, lub 0. Każda liczba różna od 0 uznawana będzie za prawdę. Zajmijmy się zatem następną konstrukcją przypominającom nam pewne warzywo:
for $i=1 to 10 step +1
msgbox(0, "Informacja", "$i="&$i)
Next
Nasz por jest przyjacielem koła(while do - bo wheel) i odmieńca (do until), który z niczym mi się nie kojarzy. Co je łączy? Otóż są to tzw. pętle. Konstrukcje, których instrukcje będą wykonywane w kóło, do odpowiedniego momentu. Przyjrzyjmy się porowi. Jeśli ktoś to uruchomił, to pewnie wie jak to działa. Zmiennej $i przypisujemy na początku wartość 1. Pętla będzie się wykonywała dopóki zmienna nie osiągnie wartości wypisanej za słowem to. Informacja za słowem step określa jak będzie się zmieniała nasza zmienna(w tym przypadku +1 przy każdym okrążeniu). Next jest słowem kończącym konstrukcję. Myślę, że to proste. Inaczej ma się sprawa z pętlami:
$warunek=10
while $warunek
msgbox(0, "Informacja", "$warunek="&$warunek)
$warunek-=1
WEnd
Jeżeli spełniony jest warunek, to wykonywane są instrukcje(w tym wypadku mesejdżboks i zmniejszenie warunku o 1). W tej pętli sami musimy się troszczyć o zmianę warunku. Dlatego While 1 .. WEnd oznacza pętlę nieskończoną :) I ostatnia:
$warunek=10
Do
msgbox(0, "Informacja", "$warunek="&$warunek)
$warunek-=1
Until $warunek
Najpierw pętla wykonuje się potem sprawdzany jest warunek. Jeśli jest prawdziwy pętla wykonuje się jeszcze raz, w przeciwnym wypadku program przechodzi do instrukcji po Until.
Kolejne konstrukcję będę omawiał gdy będą potrzebne. Te są najważniejsze.
Jeśli już jesteśmy przy pętlach, to czas omówić tablice:
Dim $tablica[10]
Co to jest tablica? Jest to pogrupowane 10 zmiennych. Zobaczmy jak to wygląda w praktyce. Myślę, że sami zdołacie przeanalizować kod. Jeśli nie, przeczytajcie jeszcze raz wszystkie lekcje tego kursu.
Dim $tablica[3]
$tablica[0]="Witaj"
$tablica[1]=" drogi "
$tablica[2]="przyjacielu!"
for $i=0 to 3 step +1
msgbox(0, "Wiadomość", $tablica[$i])
Next
Jak widać tablice w połączeniu z pętlami, to naprawdę potężny zestaw. W zasadzie to tyle jeśli chodzi o tablice. W miare używania ich w tym kursie szybko nauczycie się jak wielką pomocą są dla programistów tablice.
Exit - Instrukcja
GuiSetState() - Funkcja
Czym to się różni? Zastanówmy się. Przede wszystkim nawiasami, których w instrukcji brak. W zasadzie każda funkcja też jest instrukcją, ale instrukcja nie musi być funkcją. Ciężko wam to wytłumaczyć na samym AutoIT(jak zajrzycie do pomocy to się okaże, że Exit to funkcja i będę miał problem :p), a ten przykład miał wam tylko pokazać znaczącom różnice. W AutoIt nie ma chyba instrukcji nie będących funkcjami. Jest to język prosty, opierający się na funkcjach. Zobaczmy jak to wygląda w C++:
cin<<zmienna; //Instrukcja
swap(zmienna1, zmienna2); //Funkcja
Czym to się różni? Znowu powiecie, że nawiasami :). No i w sumie macie racje. Prosta instrukcja nie pobiera argumentów (chociaż cin pobiera zmienną). Wiem, że to bardzo subtelna różnica i w zasadzie nie jest wam do niczego potrzebna (tak jak reszta teori, której staram się unikać - definicja deklaracja inicjalizacja etc. :)), ale zaczynam od tego, bo chce wam pokazać, czym naprawdę są funkcję, a tym samym nauczyć was pisać własne funkcje. No więc nic prostszego:
Funkcja()
Func Funkcja()
msgbox(0,"Siema", "To jest właśnie funkcja")
EndFunc
Jeśli uruchomicie taki program to pewnie od razu załapiecie jakie to jest proste. Ale u was w nawiasie nic nie ma. Chcecie, żeby było? Nic prostszego:
Funkcja("Siema", "To jest wlasnie funkcja z argumentami!")
Func Funkcja($tytul, $text)
msgbox(0,$tytul, $text)
EndFunc
Prawda, że proste? Ale większość funkcji coś zwracała, a nasza nie. My bardzo chcemy, żeby nasza funkcja zwróciła jakąś wartość. Tutaj posłużymy się bardziej rozbudowanym przykładem, abyście mieli co robić z waszymi głowami:
$zmienna=By_Turek(0.9, 11, 4.6)
Func By_Turek($V, $oproc, $cena)
$wynik=0
if ($cena/$V)>=10.00 then
msgbox(0,"Wynik","To wino jest za drogie! Opłacalność=0")
return $wynik
EndIf
$wynik=(($cena/$V)*($oproc^2))
msgbox(0,"Wynik","Opłacalność tego wina wynosi: "&Int($wynik))
return $wynik
EndFunc
Int zaokrągla liczbę do pełnych jednostek. Podane dane, to w przybliżeniu dane Fajrant'a :). Myślę, że to by było na tyle. Funkcje umiecie już pisać, a chyba bez sensu jest opisywać operatory?
= - równa sie
>= - większe bądź równe
> - większe
<= - mniejsze bądź równe
< - mniejsze
& - łączenie stringów (napisy)
or - albo
and - i
not - nie
+ - dodawanie
- - odejmowanie
* - mnożenie
/ - dzielenie
^ - potęgowanie
== - porównywanie stringów (napisów)
Wszystkie operatory opisane są w pomocy AutoIt pod hasłem 'Operators'. Życzę udanego programowania :)
Byłbym niezmiernie wdzięczny, gdyby ktoś zechciał wrzucić Screeny, bo informatycy, to z natury leniwe bestie :].
Zezwalam na kopiowanie poradnika tylko z dołączonym linkiem i BANNEREM swiata gier! (tego serwisu) i oczywiście tylko i wyłącznie z tym dopiskiem.
Pozdrawiam:
WaY
Tu chyba s ow sobie odpuszczę bo nie dosc ze duzo to i tak nic by chyba nie pomogły :P Dzięki temu poradnikowi oraz tamtemu zrobie program do wykrywalności opłacalności win xD
Edit: masz blad nie $cena/$V tylko $V/$cena bo wychodzi na to ze Antal co ma takie samo oproc. i tyle samo litrow (0.9) a jest tanszy ma mniejsza oplacalnosc...
Piwo dla ciebie a ty dajesz mi :)
wino ci mogę postawić.
(I to nie dzieki mnie, tylko dzieki turkowi ;p)
Ale to jest dobrze. Cena za litr to jest współczynnik tylko.
Nie bo moj tata produkuje takie samo wino jak w przykladzie ale tansze (slynne antaly firmy Ostrovin ^^) i mialy mniejszą opłacalność. a jak jest $V/$cena to jest większa :)