PERL HISTORIA. Możliwości związane z CGI, uniwersalność oraz fakt, że Perl jest językiem darmowym stało się przyczyną jego dynamicznego rozwoju.
|
|
- Ewa Kosińska
- 8 lat temu
- Przeglądów:
Transkrypt
1 PERL Internetowe Bazy Danych wykład 12 HISTORIA Perl (Pracitcal Extraction and Report Language) jest jednym z języków programowania. Z założenia zaprojektowany został jako uzupełnienie systemu operacyjnego Unix oraz jego różnych odmian. Działa on jednak na innych platformach wliczając w to MS-DOS oraz wszystkie odmiany Windows. Perl posiada wiele cech języka C, sed, awk oraz Bourne shell. Dostępne są narzędzia pozwalające na przenoszenie skryptów z owych języków do poziomu Perla. Jest on zarazem jednym z najbardziej uniwersalnych języków programowania dostępnych w obecnym czasie. W przeciwieństwie do innych nie wymaga wykonywania różnych sztuczek gdy chce się go uruchomić w innych systemach operacyjnych. Tutaj wystarczy tylko znać poszczególne warianty poleceń podawanych interpreterowi. Trzeba bowiem wspomnieć, że Perl nie jest językiem kompilowanym lecz jednym z najszybszych interpretowanych. Przed wykonaniem zadanego skryptu, jest on sczytywany do pamięci i tam "formatowany" do wewnętrznego wykonywalnego formatu. Perl nie narzuca ograniczeń na dane - napisy i tablice mogą być dowolnej długości (pod warunkiem, że starczy miejsca w pamięci) zostały bowiem tak zaprojektowane aby dopasowywały się do rozmiarów danych. Jedną z głównych zalet tego języka jest jego bezpieczeństwo. Pracując na przykład w trybie administratora można, przed uzyskaniem dostępu do ważnych struktur systemowych, zmienić swoją pozycję w systemie tak aby nie spowodować swoją działalnością żadnych poważniejszych szkód. Programując w Perlu jesteśmy chronieni przed skutkami przypadkowego naruszenia bezpieczeństwa, ponieważ "obserwuje" on dane pochodzące z niepewnych źródeł i uniemożliwia wykonywanie niebezpiecznych operacji. Nazywa się to mechanizmem śledzenia danych. Powiązana z tym jest możliwość dołączenia chronionych przestrzeni, gdzie można bez problemów testować potencjalnie niebezpieczne kody bez żadnych szkód dla systemu operacyjnego. Perl od czasu swego powstania bardzo się rozwinął. Przestał służyć tylko do różnorodnych operacji na plikach, lecz w tej chwili jest on obecny we wszelkich możliwych dziedzinach - związanych z komputerami oczywiście. Jedną z dziedzin, która najbardziej się rozwinęła jest niewątpliwie CGI (Common Gateway Interface) zwane również wspólnym interfejsem bramy. Znajduje to bardzo szerokie zastosowanie przy projektowaniu i uatrakcyjnianiu stron WWW. Nieumiejętne użycie modułu powoduje jednak luki w systemie operacyjnym przez które można w łatwy sposób do niego się dostać. Możliwości związane z CGI, uniwersalność oraz fakt, że Perl jest językiem darmowym stało się przyczyną jego dynamicznego rozwoju
2 INSTALACJA I KONFIGURACJA Na początek trzeba zaopatrzyć się w Perla - najlepiej poszukać go na jednej z płyt dołączanych do przeróżnych czasopism komputerowych lub po prostu ściągnąć go z internetu (ftp.cpan.org). Następnie pliki należy rozpakować (opis instalacji dla systemu Linux - pod Windowsem wystarczy po prostu użyć Zip'a): gunzip < pliki.tar.gz tar xvf - cd nazwa_rozpakowanego_katalogu Po rozpakowaniu należy program skonfigurować poleceniami: sh configure - dla konfiguracji automatycznej sh Configure - dla konfiguracji ręcznej I na koniec pozostaje zaalokowanie programu w systemie: make - stworzenie Perla make test - testowanie programu make install - zainstalowanie w systemie To powoduje, że w systemie pojawia się prawidłowy opisywany tu język gotowy do użycia. Trochę inaczej instaluje się wybrane moduły, ale o tym później. Perl, podobnie jak C, jest językiem bez ścisłego, koniecznego do zachowania poprawności skryptu, formatu. Definiowanie typów, zmiennych i procedur przed przystąpieniem do pisania właściwego programu jest niewątpliwie przydatne w przypadku tworzenia bardziej skomplikowanej struktury, lecz zupełnie niepotrzebne podczas pisania na przykład prostego programiku. Perl pozwala pominąć owe niepotrzebne linijki, zaoszczędzając przez to czasu programiście. print "Witaj, szkoło.\n"; Spowoduje to po prostu wypisanie na ekranie tekstu "Witaj, szkoło", bez żadnych dodatkowych, zbędnych w tym przypadku deklaracji zmiennych czy przypisywaniu dodatkowo wykonywanych procedur. To między innymi różni ten język od C, który wymaga na starcie programu przynajmniej podania linii #include. Podobnie jednak jak w C, każda komenda musi się kończyć ";". Natomiast tekst rozpoczynający się od znaku hash "#" jest traktowany przez interpreter jako komentarz. Najczęściej używanym do skryptów Perla rozszerzeniem jest.pl. Pierwsza linijka kodu powinna wyglądać następująco: bądź #!/usr/bin/perl #!/usr/local/bin/perl Jest ona różna dla innych systemów operacyjnych a wskazuje umiejscowienie interpretera na dysku. Nie jest ona jednak niezbędna do działania programu. Teoretycznie linijka ta powinna być traktowana jako komentarz ponieważ rozpoczyna się od znaku "#". Jest jednak inaczej. Jeżeli jej nie ma wcale to nie można uruchomić skryptu z polecenia./nazwa_skryptu ani wpisując samą nazwę programu. Trzeba wtedy podać bezpośrednio interpreter, który ma się zająć danym programem. W niektórych systemach bywa też tak, że nawet jeśli owa linijka znajduje się na pierwszym miejscu w - 2 -
3 skrypcie to próba wywołania go z komendy./nazwa_skryptu lub sama nazwa_skryptu kończy się niepowodzeniem. Wtedy najlepiej dopisać na samym końcu linii -s. Wygląda to tak: #!/usr/bin/perl -s Powoduje to zwykłe wywołanie jednej z funkcji dostępnych dla interpretera a mających za zadanie ułatwiać pisanie programów. Generalnie jednak w zdecydowanej większości systemów wystarczy wpisać tę linijkę na pierwszym miejscu. Oprócz tego może zaistnieć błąd jeszcze innej natury. Niektóre starsze systemu unixowe nie akceptują po prostu zapisu!# - tzw. "notacja shebang". Rozwiązania tego problemu są różne dla różnych systemów operacyjnych. Najprostszy program będzie więc wyglądał następująco: #!/usr/bin/perl print "Witaj, szkoło!"; Program napisać można w zwykłym pliku tekstowym za pomocą dowolnego edytora. Można mu nadać rozszerzenie bądź nie. Następnie trzeba mu nadać atrybuty pozwalające na jego wykonywanie poleceniem "chmod u+x nazwa_skryptu" lub spod trybu graficznego wywołując okno właściwości danego pliku. Uruchamiamy skrypt poleceniem: nazwa_skryptu - gdy znajduje się w katalogu na ścieżce./nazwa_skryptu - gdy nie ma w katalogu na ścieżce, jest w katalogu bieżącym perl nazwa_skryptu - podajemy go po prostu jako parametr dla interpretera W ostatnim wypadku możemy pominąć atrybuty wykonywalności dla pliku. interpreter i tak wykona zadaną czynność. Aby ułatwić, szczególnie początkującym, programistom pisanie skryptów i ich testowanie od niedawna interpreter można wywołać z bardzo przydatną funkcją -w. Jest to funkcja ostrzegająca przed różnymi błędami, które mogły zaistnieć w skrypcie, na przykład: zmienne skalarne użyte przed przypisaniem im wartości, odwołania do niezidentyfikowanych uchwytów plików lub plików, które są otwarte tylko w trybie czytania a my próbujemy coś do nich zapisać. Oprócz tej możliwości interpreter posiada również inne wywoływane w sposób perl -x, gdzie x to odpowiednia litera. Oto niektóre z przydatniejszych: -c działanie podobne jak funkcji opisywanej powyżej z tą różnicą, że Perl sprawdzi składnię skryptu bez jego uruchamiania -e linia_poleceń pozwala na wprowadzenie jednego lub więcej wierszy skryptu. Interpreter nie szuka w tym przypadku samego skryptu lecz pozwala niejako na napisanie nowego -n p skrypt zostaje umieszczony w specjalnej pętli, która spowoduje powtarzanie skryptu dla kolejnych plików wymienionych w argumentach -P przed prawidłową kompilacją program zostaje przetworzony przez procesor C -T jest to włączenie sprawdzania zagrożeń -u powoduje wykonanie tzw. "core dump" czyli zrzucenie ekranu po wykonaniu zadanego skryptu. Można następnie przekształcić to na plik wykonywalny za pomocą programu undump". Jest to jednak ograniczone bowiem "undump" nie jest dostępny na wszystkie platformy, na których można używać samego Perla. -U pozwala na wykonanie niebezpiecznych operacji -x katalog nakazuje Perlowi wydobycie skryptu z dowolnego pliku. Bezużyteczna jego część zostaje pominięta aż do odnalezienia ciągu rozpoczynającego się od #! i zawierającego słowo perl
4 ZMIENNE I TABLICE ZMIENNYCH Zmienna to nic innego jak wygodny schowek mający swoją nazwę, który pozwala nam przechować jakąś ważną dla nas wiadomość i w razie potrzeby udostępnia ją. Można je dzielić według różnych kryteriów ale najbardziej przydatnym jest podział ze względu na rodzaj przechowywanych danych. Najogólniej zmienne dzielą się na napisy i liczby oraz listy, które są z nich złożone. Pierwsza grupa nazywa się skalarem a druga mnogością - tablicą. W Perlu zmienna zawsze rozpoczyna się od znaczka dolara "$". Nie musimy zawczasu definiować rodzaju zmiennej jakiej chcemy użyć. Istnieje jednak różnica w definiowaniu pojedynczej zmiennej a tablicy: pierwszą zmienną używamy podając przy jej deklaracji na samym początku znak "$" - oznacza to zmienną typu skalarnego, tablicę natomiast definiujemy podając zamiast znaczka dolara Łatwo skojarzyć oba sposoby zapamiętując $kalar (tablica z angielskiego). Wykorzystując zmienne można nieco wydłużyć napisany wcześniej program. #!/usr/bin/perl $tekst = "Witaj szkoło!"; #deklaracja zmiennej skalarnej tekst print $tekst; #wypisanie zmiennej W Perlu wyzróżniamy pięć typów zmiennych: Typ zmiennej Znak Deklaracja Opis Skalar $ $zdanie Pojedyncza wartość - liczba lub Hasz % %rok Lista wartości opisana kolejnymi liczbami Grupa pewnych wartości - kluczem jest napis Typeglob * *zmienna "Coś" o nazwie zmienna Procedura & &kod Część kodu, który można wywołać W Perlu podobnie jak w wielu innych językach przypisanie zmiennych odbywa się za pomocą operatora "=". Oprócz przypisania standartowych wartości zmiennej skalarnej takich jak liczba czy ciąg wyrazów można również przypisać jej odwołanie do innej zmiennej bądź obiektu. O rodzaju do jakiego zostaje zakwalifikowana zmienna decydują cudzysłowy: podwójny " " - dokonuje interpolacji zmiennych a także odwrotnego ukośnika (np. \n w znak nowego wiersza), pojedynczy ' ' - wyłącza zupełnie interpolację, pojedyncze odwrotne apostrofy ' ' - powodują wykonanie oddzielnego zewnętrznego programu i zwrócenie jego danych wyjściowych w ten sposób by można było je odczytać jako jeden napis, zawierający wszystkie wiersze wyjścia. $liczba = 50; #liczba zwykła $wartosc = 2.2e23; #liczba zapisana "naukowo" $samochod = "Volvo"; #zwykły napis $zdanie = "Najlepszy $samochod"; #napis z interpolacja $koszt = 'Cena wynosi $500'; #napis bez interpolacji $zmienna1 = $zmienna2; #odwołanie do innej zmiennej $koniec = 'pwd'; #wywołanie zewnętrznego programu - koniec programu - 4 -
5 Inny przykład zastosowania odpowiednich cudzysłowów: $a = 'jeden'; $b = 'dwa'; $c = 'trzy'; print $a.'-'.$b.'-'.$c; #wypisuje jeden - dwa - trzy print '$a - $b - $c'; #wypisuje $a - $b - $c print "$a - $b - $c"; #wypisuje jeden - dwa - trzy Kompilator rozróżnia wielkie i małe litery. Tak więc mogą istnieć dwie różne zmienne, jedna $w a druga $W i nie będą ze sobą mylone. Nazwy zmiennych można dobierać dowolnie, mogą nimi być kombinacje liter i cyfr o nieograniczonych długościach. Od tej zasady jest jednak kilka wyjątków. Najważniejszym z nich jest zmienna opisywana jako "$_". Jest to typ zmiennej domyślnej, która jest używana raczej przez doświadczonych programistów. Pozwala ona wyeliminować część kodu przez to skracając program i eliminując zbyt dużą liczbę użytych zmiennych. Operacje są na niej wykonywane jeśli nie została wyspecyfikowana inna zmienna. Na przykład: $zdanie = 'Pies i kot za sobą nie przepadają.'; if ($zdanie =~/kot/) print 'Znalazłem wyraz kot.'; Jak widać przykład ten powoduje wyszukanie w podanej zmiennej wyrazu "kot" i wyświetlenie informacji o jego ewentualnej obecności. Można to jednak zapisać nieco prościej stosując zmienną domyślną "$_": $_ = 'Pies i kot za sobą nie przepadają.'; if (/kot/) print 'Znalazłem wyraz kot.'; W przypadku tego małego fragmentu kodu nie widać szczególnie dużej oszczędności czasu czy miejsca wprowadzając do użycia zmienną domyślną, ale przy bardzo rozbudowanych programach jest ona przydatna i stosowana. Wspomniana już druga grupa zmiennych to ogólnie nazywając mnogości. Pewne rodzaje stosowanych zmiennych mają za zadanie przechowywać wiele logicznie ze sobą powiązanych wartości. Do realizacji tego w Perlu można się posłużyć dwoma typami zmiennych: tablicą oraz haszem. Tablice stosujemy wtedy gdy chcemy znaleźć konkretną wartość za pomocą przyporządkowanej jej liczbie, hasz natomiast wyszukuje po nazwach. Tablice to nic innego jak uporządkowane listy skalarów, które można odczytać podając kolejny jego numer na liście. Znajdować się tam mogą zarówno liczby, napisy jak i mieszanka obu. Żeby przypisać listę danej tablicy wystarczy tylko zgrupować odpowiednie zmienne (najczęściej jakoś logicznie ze sobą powiązane) = ("azot", "tlen", "hel", "wodór"); - 5 -
6 Należy pamiętać przy tym, że odwołując się do zmiennej umieszczonej w tablicy należy podać jej numer licząc jako początek tablicy wartość 0 tzn. że np. tlen z jest skalarem numer 1 a nie 2. Indeksy tablic zawiera się w nawiasach kwadratowych. Jeśli zajmujemy się pojedynczym elementem tablicy używamy więc składni $gazy[n] gdzie n jest wybranym numerem zmiennej. Pojawia się znak dolara $ - ponieważ mamy cały czas do czynienia ze zmiennymi skalarnymi. Zamiast przypisu tablicy "ciągiem" (@gazy powyżej) można zrobić to samo wpisując każdą wartość pojedynczo: $gazy[0] = "azot"; $gazy[1] = "tlen"; $gazy[2] = "hel"; $gazy[3] = "wodór"; Tablice są uporządkowane co pozwala nam na wykonywanie na nich wielu użytecznych operacji. Jedną z nich jest posługiwanie się tablicami jak swego rodzaju stosem używając nawet poleceń odnoszących się z reguły do stosu: push oraz pop. Wykorzystując komendę push można do tablicy przypisać dowolną zmienną: push(@gazy, "argon"); Spowoduje dodanie kolejnego - piątego elementu do push(@gazy, "argon", "neon"); Spowoduje dodanie do dwóch elementów za jednym razem. Ważną właściwością tablic jest możliwość dodawania ich do siebie poleceniem: Do zdejmowania wartości z danej tablicy służy polecenie pop: $z = pop(@gazy); W tym przypadku następuje usunięcie ostatniego elementu ale zostaje on przypisany zmiennej $z. W Perlu możliwe jest przypisanie zmiennej skalarnej tablicy. Można to wykonać następująco: $a #zmienna $a zawiera liczbę elementów $b = "@gazy" #w przeciwieństwie do poprzedniego polecenia to powoduje przypisanie zmiennej $b łańcucha składającego się z kolejnych elementów oddzielonych spacjami Do wypisania zawartości tablicy możemy posłużyć się jednym z poleceń: #wypisuje elementy tablicy jednym ciągiem print "@gazy"; #to samo co wyżej tyle że oddziela elementy spacjami #wypisuje tylko ilość elementów danej tablicy - 6 -
7 Hasz jest nieuporządkowanym zbiorem skalarów. Udostępnia swoje wartości nie przez podanie kolejnego ich numeru a poprzez wywołanie napisu z nimi skojarzonego. Hasze nazywane są bardzo często tablicami asocjacyjnymi. W przeciwieństwie do typowych tablic mają one strukturę nieuporządkowaną więc nie można na nich działać poleceniami typu push i pop. Klucze do hasza nie zależą od położenia dlatego podczas wprowadzania określonych elementów trzeba dostarczyć klucz i wartość. Nic nie stoi na przeszkodzie aby przypisać haszowi listę tak jak było to robione przy zwykłych tablicach, lecz tutaj każda para elementów będzie traktowana automatycznie jako para typu klucz/wartość. Przed haszem zamiast stoi jednak znak procenta %. Przykładowy hasz może wyglądać następująco: %rok = ("St", "styczeń", "Lt", "luty", "Ma", "marzec", "Kw", "kwiecień", "Maj", "maj", "Cz", "czerwiec", "Lip", "lipiec", "Si", "sierpień", "Wrz", "wrzesień", "Pa", "październik", "Lis", "listopad", "Gr", "grudzień"); Jak widać hasz zawiera 12 kluczy i 12 odpowiadających im wartości. Jest on napisany poprawnie jednak dosyć nieczytelnie i gdyby było więcej par klucz/wartość to znalezienie jakiejś konkretnej byłoby dosyć czasochłonne. Dlatego w Perlu zamiast przecinka odgradzającego klucze od wartości można użyć separatora =>. Po zamianie wygląda to tak: %rok = ( "St" => "styczeń", "Lt" => "luty", "Ma" => "marzec", "Kw" => "kwiecień", "Maj" => "maj", "Cz" => "czerwiec", "Lip" => "lipiec", "Si" => "sierpień", "Wrz" => "wrzesień", "Pa" => "październik", "Lis" => "listopad", "Gr" => "grudzień" ); Niewątpliwie jest to o wiele bardziej przejrzysta forma zapisu dłuższego hasza. Pojedynczy element z hasza jest wybierany za pomocą nawiasów klamrowych. Gdyby trzeba było znaleźć wartość skojarzoną z kluczem "Si" w tym haszu trzeba by było użyć konstrukcji $rok"si". Wyrażenie to zwróci wartość "sierpień". Nadal jednak jako typ zmiennej używamy skalara - czyli znak $ a nie %, mimo iż właśnie tak oznaczamy tablice hasza. Perl pozwala konwertować zwykłe tablice na tablice asocjacyjne (hasze) i na = %rok ma ułożenie takie jak pierwszy nieuporządkowany zapis hasza %rok powyżej z tym, że odwołujemy się do niego według zasad normalnej tablicy tzn. liczbowo %rok1 #od teraz hasz %rok1 ma taką samą zawartość jak %rok - 7 -
8 Oprócz tablic, które może utworzyć sam programista i użytkownik w Perlu istnieją także tablice i hasze tzw. globalne. Odnoszą się one do głównego pakietu obojętnie gdzie się do nich odwołujemy. Tak więc instrukcje poniżej znaczą dokładnie to samo: print "@INC\n"; print "@main::inc\n"; Powodują wypisanie zawartości Pierwsza z nich to wywołanie tablicy z dowolnego miejsca, druga to wywołanie konkretnie z pakietu main. Tablic i haszy globalnych jest w sumie W tablicy tej zapisane są wszystkie parametry podane w linii komend przy starcie programu. Aby wypisać pierwszy parametr trzeba napisać: print ("$ARGV[0]"); Korzystając z tej tablicy można napisać prosty programik, który zakończy się gdy okaże się, że został wywołany z dowolnymi parametrami: if (@ARGV) print "Program wywołano z Zawiera listę katalogów gdzie mają być poszukiwane skrypty Perla przy przetwarzaniu poleceń "do wyrażenie", "require" oraz "use". Najpierw przeszukuje te podane z przełącznikiem -I a poźniej domyślne biblioteki m.in.: /usr/local/lib/perl5 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/site_perl/$arch Na samym końcu przeszukuje katalog Są tam umieszczane dane wejściowe o ile użyty został w linii polecenia przełącznik -a. Jeśli opcja ta nie została użyta to tablica ta jest praktycznie bezużyteczna. %INC Zawiera wpisy do wszystkich plików dołączonych przez "do" i "require". Klucz to podana nazwa pliku a wartość, która zostaje zwrócona to położenie znalezionego pliku. %ENV Hasz ten zawiera zmienne opisujące aktualne środowisko. Wszystkie aktualnie ustalone i używane zmienne środowiskowe uzyskuje się wydając komendę "set" w shellu. Hasz ten jest bardzo przydatny i dosyć łatwo można go wykorzystać już na najprostszym poziomie programowania pisząc np. prosty program: print "Przychodzisz z loginu $ENV'USER'"; #zmienna USER zawiera aktualną nazwę użytkownika (dla administratora - root) - 8 -
9 %SIG Jest to hasz używany do ustawiania procedur obsługi sygnałów dla różnych sygnałów. Oto program bazujący na zmiennych z hasza %ENV. Po jego wywołaniu skrypt będzie czekał na jakikolwiek wpis a następnie po naciśnięciu klawisza Enter tekst zostaje zapisany do pliku.log o nazwie odpowiadającej nazwie użytkownika wywołującego skrypt wraz z hostem, z którego przyszedł użytkownik. Plik.log zostaje zapisany w dowolnym katalogu ustalanym przez administratora. Skrypt może być używany np. do pośredniego kontaktu z administratorem. Tak jak nie może być w systemie dwóch użytkowników o tych samych nazwach tak też nie będzie dwóch takich samych plików.log. Program "Kontakt": 01 #!/usr/bin/perl 02 $login = $ENV'USER'; 03 $host = $ENV'HOSTNAME'; 04 print STDOUT "Kontakt z administratorem - po każdym wywołaniu skryptu poprzedni wpis zostaje skasowany:"; 05 $text = <STDIN> 06 open (KONTAKT, ">/root/opinie/$login.log"); 07 print KONTAKT $text; 08 print KONTAKT "$login\n"; 09 print KONTAKT $host; 10 close (KONTAKT); 11 print "Dziękuję - plik został zapisany.\n"; Widać tu zastosowanie tablicy asocjacyjnej ENV a także operacje na uchwytach plików o których napiszę trochę później. Opis działania programu: 01 - na samym początku deklaruję gdzie znajduje się Perl na dysku 02 - skorzystanie z tablicy asocjacyjnej ENV, a w szczególności ze zmiennej środowiskowej USER i przyporządkowanie jej do zmiennej $login (skraca to zapis programu) 03 - podobna operacja jak powyżej z tym że zajmuję się zmienną HOSTNAME 04 - korzystam ze specjalnego uchwytu dla standardowego wyjścia w każdym pakiecie STDOUT, polecenie wyświetla zdanie na ekranie 05 - korzystam z uchwytu dla standardowego wejścia - STDIN program odczytuje to co zostało wprowadzone z klawiatury i zapisuje to pod zmienną o nazwie $text 06 - posłużenie się uchwytem o nazwie KONTAKT - utworzenie pliku o nazwie $login (czyli np. plik użytkownika z loginu dom będzie się nazywał dom.log i znajdował się będzie w katalogu /root/opinie) 07 - wpisanie do pliku.log odczytanej z klawiatury informacji zapamiętanej pod zmienną $text 08 - zapisanie do pliku.log loginu spod którego plik ten został utworzony 09 - zapisanie do pliku.log hosta z którego plik ten został utworzony 10 - zamknięcie uchwytu KONTAKT 11 - wypisanie ostatniego zdania - 9 -
10 OPERATORY Operatory, które mogą być używane podczas programowania w Perlu w większości zapożyczone są z języków C, Fortranu, sed oraz awk. Operatory można podzielić ze względu na: liczbę argumentów (jednoargumentowe, dwuargumentowe i trzyargumentowe), typ (wrostkowe i przedrostkowe) oraz rodzaj obiektów, na które działają (liczby, napisy i pliki). Wyrażenia często muszą być łączone i modyfikowane na różne sposoby i do tego służą właśnie operatory. O kolejności wykonywania operacji decyduje priorytet danego operatora. Można spotkać określenie, że jeden operator jest bardziej wiążący niż inny. Oznacza to tyle, że ma wyższy priorytet niż inny. Operatory Perla od najwyższego do najniższego priorytetu. Łączność Typ operatora Lewostronna zwrotów i list Lewostronna -> (operator dereferencji) Brak ++-- (autoinkrementacja i autodekrementacja) Prawostronna ** (podnoszenie do potęgi) Prawostronna!~\+ - Lewostronna =~!~ (operatory wiążące) Lewostronna */%x (operatory mnożnikowe) Lewostronna + -. Lewostronna <<>> (operatory przesuwania) Prawostronna alarm, my, ord, rmdir, sin, uc, stat, lc i inne Prawostronna <> <= >= lt, gt, le, ge (operatory relacyjne) Prawostronna ==!= <=> eq, ne, cmp (operatory równości) Lewostronna & Lewostronna (operatory zakresu) Lewostronna && (operatory logiczne) Lewostronna (operatory logiczne) Brak. Prawostronna?: (operator warunkowy) Prawostronna = += -= *= (operatory przypisania) Lewostronna, => (operatory przecinka) Brak Listowe Prawostronna Not (operatory logiczne) Lewostronna And (operatory logiczne) Lewostronna Or, xor (operatory logiczne)
11 Operatory arytmetyczne Internetowe Bazy Danych wykład 12 Są to nic innego jak zwykłe matematyczne funkcje określone na liczbach. Operacje arytmetyczne są wykonywane zgodnie ze znaną kolejnością (potęgowanie - mnożenie, dzielenie - dodawanie, odejmowanie). Kolejność tą można jednak zmienić poprzez zastosowanie nawiasów. Niektóre operacje arytmetyczne: Przykładowy zapis Nazwa operatora Działanie $a + $b Dodawanie dodaje $a do $b $a - $b Odejmowanie odejmuje od $a $b $a * $b Mnożenie iloczyn $a i $b $a / $b Dzielenie ilora $a przez $b $a % $b reszta z dzielenia reszta z dzielenia $a i $b $a ** $b Potęgowanie $a podniesione do potęgi $b Operatory posługujące się napisami Istnieją tylko dwa operatory działające na napisach. Pierwszym z nich jest. (kropka). Użycie jej powoduje połączenie zadanych napisów w jeden łańcuch, np.: $napis1 = 555; $napis2 = 000; print $napis1 + $napis2; #czyste dodawanie arytmetyczne - wypisze 555 print $napis1. $napis2; #wypisze zgodnie z tym co napisałem powyżej Drugim operatorem z tej grupy jest "x". Służy on do swoistego mnożenia zadanych napisów. Operator ten nazywany jest też operatorem powtarzania lub powielania. $napis1 = 551; $napis2 = 5; print $napis1 * $napis2; #czyste mnożenie arytmetyczne - wypisze 2755 print $napis1 x $napis2; #powieli 5 razy $napis Operatory przypisania Zasada, którą należy pamiętać przy programowaniu nie tylko w Perlu to, że znak "=" nie oznacza wcale matematycznego stwierdzenia - równa się. Oznacza to że coś uzyskuje określoną wartość. Matematyczną równość uzyskuje się poprzez użycie operatora "==". Operatory przypisania są typu dwuargumentowego oraz wrostkowego. Oznacza to tyle, że argumenty występują po obu stronach operatora. Argument z prawej strony może być dowolnym wyrażeniem ale lewy musi być oznaczeniem dowolnego miejsca przechowywania takiego jak zmienna czy element tablicy. Najbardziej popularnym przypisaniem jest przypisanie proste określające wartość wyrażenia po prawej stronie i nadające zmiennej z lewej strony tę właśnie wartość: $a = $b; $d = $x + $z; $c = $a * 2;
12 Jest możliwe również aby przypisanie odnosiło się do tej samej zmiennej dwa razy - pierwszy raz w celu obliczenia jej wartości a drugi by dokonać przypisania: $a = $a * 5; Stosowane jest to na tyle często, że "dorobiło" się skrótu (zapożyczonego zresztą z języka C). Poprzednią deklarację można więc zapisać w następujący sposób korzystając ze skrótu: $a *= 5; $a = 2; $b = 3; $a += $b; #dodanie $b do $a - wynik: $a = 5 $a -= $b; #odjęcie $b od $a - wynik: $a = -1 $a.= $b; #dopisanie $b do $a - wynik: $a = 23 Jedną z funkcji operatorów przypisania jest również taka bardzo przydatna operacja: $zm = "555"; #powoduje przypisanie zmiennej #zm wartości 555 o ile zmienna ta nie ma nic przypisanego wcześniej Operatory autoinkrementacji i autodekrementacji. Operatory te dodają lub odejmują jeden do/od wartości zmiennej. Można je umieścić zarówno z lewej jak i z prawej strony. Uzależnione to jest od tego kiedy ma być obliczona wartość zmiennej. Przykładowy zapis Nazwa operatora Działanie ++$a lub $a++ autoinkrementacja dodanie 1 do zmiennej $a --$a lub $a-- autodekrementacja odjęcie 1 od zmiennej $a Umieszczenie jednego z tych operatorów przed zmienną nazywane jest preinkrementacją (++$a) lub predekrementacją (--$a) a po zmiennej postinkrementacją ($a++) lub postdekrementacją ($a--). W pierwszym przypadku wartość zmiennej ulegnie zmianie przed odwołaniem się do niej a w drugim dopiero po jej użyciu np.: $a = 10; $b = ++$a; #zmienna $b nabywa wartość zmiennej $a +1 czyli 11 $c = $a--; #zmienna $c nabywa wartość 11 a zmienna $a zostaje zmniejszona o 1 Operatory logiczne Operatory te zwane są "skrótowymi" ponieważ umożliwiają programowi podjęcie decyzji opartej na wielu kryteriach. Aby to osiągnąć nie trzeba używać skomplikowanych instrukcji warunkowych. Zwane są również wyrażeniami testującymi ponieważ porównują ze sobą zmienne lub wartości i mogą zwracać prawdę (true) lub fałsz (false). Nazwa "skrótowe" bierze się stąd, że operatory te nie przetwarzają w ogóle prawego argumentu gdy do obliczenia wartości wyrażenia wystarczy sam argument lewy. W Perlu istnieją dwa zbiory operatorów: stary (przejęty z języka C) i zupełnie nowy. W Perlu zasadniczo każda liczba różna od zera i każdy łańcuch, który nie jest pusty jest uznawany za prawdę, a liczba 0 lub pusty łańcuch za fałsz
13 Przykładowy zapis $a && $b And $a $b Or Nazwa operatora Internetowe Bazy Danych wykład 12 Działanie wpisz $a jeśli ma wartość fałsz, inaczej wpisz $b wpisz $a jeśli ma wartość prawda, inaczej wpisz $b! $a Not prawda gdy $a nie jest prawdą $a and $b And $a or $b Or wpisz $a jeśli ma wartość fałsz, inaczej wpisz $b wpisz $a jeśli ma wartość prawda, inaczej wpisz $b not $a Not prawda gdy $a nie jest prawdą Jak widać ten sam efekt można uzyskać stosując zarówno znaki (&&,!) jak i normalne angielskie słowa (and, not). Formę tą łatwo można zrozumieć analizując prosty przykład: open (KONTAKT, "plik.log") or die "Nie mogę otworzyć pliku: $!\n"; Polecenie to zleca otworzenie pliku o nazwie plik.log. Jeśli operacja ta się powiedzie program bez problemów przejdzie do kolejnej fazy wykonywania poleceń. Jeśli natomiast z jakiegoś powodu nie będzie mógł otworzyć pliku zostanie wypisany komunikat zawarty w cudzysłowach. Na samym końcu komunikatu po dwukropku zostanie wypisany błąd jaki pojawił się przy próbie otwarcia pliku. Zmienna!$ jest jedną ze zmiennych specjalnych i zawiera komunikat o błędzie zwracany przez system operacyjny. Jak widać ważne dla programu operacje umiejscowione są po lewej stronie ekranu a te drugoplanowe po prawej. Operatory porównania Operatory te znane są pod nazwą relacyjne. Informują one o wzajemnej relacji dwóch wartości skalarnych, zarówno liczb jak i napisów. Dlatego istnieją dwa odrębne zbiory operatorów relacyjnych: jeden służący do porównywania liczb, a drugi napisów. Przykładowe operatory porównania: Sposób porównania Liczby Napisy Działanie równe $a == $b $a eq $b zwraca prawdę jeśli $a jest równe $b nierówne $a!= $b $a ne $b zwraca prawdę jeśli $a nie jest równe $b mniejsze lub równe $a <= $b $a le $b zwraca prawdę jeśli $a jest mniejsze lub równe $b większe lub równe $a => $b $a ge $b zwraca prawdę jeśli $a jest większe lub równe $b mniejsze niż $a < $b $a lt $b zwraca prawdę jeśli $a jest mniejsze od $b większe niż $a > $b $a gt $b zwraca prawdę jeśli $a jest większe od $b
14 Operatory badające pliki Internetowe Bazy Danych wykład 12 Ostatnią grupą operatorów z tych najpopularniejszych są te, które pozwalają zbadać plik przed uruchomieniem. Można na przykład otworzyć plik jako nowy i coś do niego zapisać podczas gdy taki plik istniał już i mógł zawierać bardzo ważne dla właściwego funkcjonowania systemu informacje. Warto więc byłoby użyć wcześniej operatora sprawdzającego czy dany plik istnieje już w systemie i czy np. można do niego w ogóle pisać. Operatory badające pliki są jednoargumentowymi operatorami biorącymi nazwę pliku lub uchwyt do niego i testującymi go po to by sprawdzić czy "coś" dotyczące danego pliku jest prawdziwe. Niektóre operatory badające pliki: Zapis Nazwa Działanie -r $a do odczytu Plik jest odczytywalny -w $a do zapisu Plik może zostać zapisany -x $a wykonywalny Plik ma atrybut wykonywalności -e $a istnieje Plik istnieje -z $a zerowa wielkość Plik ma zerową wartość -s $a niezerowa wielkość plik ma niezerową wartość -f $a plik zwykły plik -d $a katalog katalog -l $a dowiązanie symboliczne dowiązanie -p $a nazwany potok nazwany potok -b $a plik blokowy specjalny plik blokowy -c $a plik znakowy specjalny plik znakowy -T $a plik tekstowy oznacza plik tekstowy -B $a plik binarny oznacza plik binarny Zwykły plik nie jest tym samym co plik tekstowy. Plikiem binarnym jest na przykład jądro startowe systemu /vmlinux. Jest to przeciwieństwo pliku tekstowego. Operatory - T oraz - B działają następująco. Pierwszy blok pliku jest sprawdzany, czy nie ma w nim jakichś dziwnych znaków np. kodów kontrolnych czy znaków z ustawionym najstarszym bitem. Jeśli znaleziono zbyt dużo takich dziwnych znaków, powyżej 30%, system ustala dany plik jako binarny. W przeciwnym przypadku plik zostaje rozpoznany jako tekstowy. Plik zostaje uznany za binarny także gdy w pierwszym bloku znajduje się zero
15 PROCEDURY W większości obecnie stosowanych języków programowania możliwe jest zapisanie części wykonywanego kodu programu w postaci odrębnego bloku i wywoływanie go w dowolnym momencie, wtedy kiedy będzie to potrzebne. Części kodu w ten sposób zapisane nazywane są procedurami. Perl w tym przypadku nie jest gorszy, również pozwala definiować procedury. W przypadku tego języka funkcje i procedury to jedno i to samo. Aby poprawnie zadeklarować procedurę należy użyć polecenia: sub ETYKIETA; Gdy funkcje zostały już napisane można ich używać korzystając z poleceń: &ETYKIETA; Procedury, które są już zdefiniowane w innych pakietach a są potrzebne w czasie pisania programu można wywołać używając następującego polecenia: use NAZWA_PAKIETU qw(etykieta1 itd. itd.); Aby funkcja mogła spełniać powierzone jej zadanie konieczne jest dostarczenie jej danych, na których będzie przeprowadzała operacje. Przekazywanie danych z programu do procedury odbywa się bardzo prosto: wszystkie wykorzystywane parametry są przekazywane jako lista wartości skalarnych. W taki sam sposób funkcja zwraca dane po wykonaniu operacji. Wszystkie te parametry przekazywane i zachowywane są w tablicy oznaczonej Korzystając z tego można na podanej liście argumentów wykonywać dowolne operacje dotyczące normalnej tablicy. Aby wywołać poszczególne elementy tablicy stosuje się więc polecenie $_[0], $_[2] lub np. $_[7]. Jeśli potrzebne jest opuszczenie procedury w konkretnym momencie a zarazem wyświetlenie aktualnej wartości parametru na którym wykonywane są operacje można wykorzystać polecenie return, które działa właśnie w ten sposób. Z reguły nie jest ono jednak potrzebne, gdyż aktualną wartością jaką zwraca procedura jest wartość ostatnio wykonanej linii procedury. Doskonałym przykładem zastosowania procedury jest np. przygotowany wcześniej algorytm porównania dwóch liczb. Zmienna w stosunku do której będzie wykorzystywana procedura będzie zawierała wartość większej z liczb: sub porownanie if ($_[0] > $_[1]) $_[0]; else $_[1]; $liczba = &porownanie(10,11); Zmienna $liczba ustali się po porównaniu dwóch liczb (10,11) podanych jako parametry przy wywoływaniu procedury. W tym przypadku $liczba będzie miała więc wartość
16 chmod LISTA Funkcja ta powoduje zmianę atrybutów plików znajdujących się w polu LISTA. Konieczne jest by na samym początku listy jako pierwszy jej argument podano żądane atrybuty w postaci cyfr a nie liter. Czyli np. aby plik stał się wykonywalny dla jego właściciela (user) to zamiast podawania u+x (chmod u+x nazwa_pliku) w przypadku wykorzystywania tej funkcji zmuszeni jesteśmy napisać 100 (chmod 100 nazwa_pliku). W przypadku programów z reguły konieczne jest by wszyscy użytkownicy mogli z niego korzytać ale nie mogli ingerować w jego kod. Do zrealizowania tego celu konieczne jest użycie polecenia chmod 733 nazwa_pliku (powoduje przekazanie właścicielowi pliku wszystkich praw do niego, grupie w której znajduje się użytkownik oraz pozostałym użytkownikom prawa czytania i wykonywania pliku). Używanie zapisu cyfrowego zamiast literowego ma poważną zaletę ponieważ to co wykonuje się w dwóch zapisach literowych można zrobić w jednym cyfrowym. Funkcja ta zwraca liczbę plików, dla których zmiana żądanych atrybutów została zakończona sukcesem. chown LISTA Funkcja pozwala zmienić właściciela oraz grupę podanej listy plików. Podobnie jak w przypadku powyższej funkci tak i tym razem wymagane jest by pierwszymi dwoma elementami listy były cyfrowe identyfikatory uid oraz gid. Po zakończeniu operacji zwraca ona liczbę plików, dla których dokonała udanych zmian. chroot PLIK Wywołanie tej funkcji spowoduje, że PLIK stanie się nowym katalogiem domowym dla wykonywanego procesu. Do podanego miejsca będą odwoływały się ścieżki z "/" na początku. Funkcja ta jest dostępna jednak tylko i wyłącznie dla administratora systemu. getlogin W efekcie użycia tej funkcji zostają zwrócone informacje o zalogowanych właśnie użytkownikach. Są one uzyskiwane z /etc/utmp pod warunkiem, że informacje tego typu są w ogóle dostępne. Jeżeli informacje te są niedostępne konieczne staje się użycie funkcji getpwuid, która powoduje zamianę identyfikatora użytkownika i odnalezienie odpowiadającego mu wpisu w pliku passwd. Funkcja ta zwraca nazwę użytkownika. kill LISTA Funkca działa tak jak polecenie systemowe kill. Sygnał przesyłamy do określonego procesu lub procesów musi być umieszczony jako pierwszy element listy. Przesłanie takiego sygnału do procesu powoduje jego zakończenie. Funkcja zwraca ilość procesów, dla których wysłanie sygnału zakończyło się powodzeniem. mkdir KATALOG, PRAWA Wywołanie tej funkcji powoduje utworzenie katalogu o nazwie KATALOG. W polu PRAWA umieszcza się cyfrowe wartości atrybutów jakie posiadać ma nowo utworzony katalog. W przypadku poprawnego stworzenia katalogu funkcja zwraca wartość "1" w przeciwnym wypadku "0" (błąd zapisywany jest w zmiennej specjalnej $!). rename NAZWA1, NAZWA2 Powoduje zmianę NAZWA1 na NAZWA2. Zwraca "1" gdy wykonała swoje zadanie a "0" gdy z jakichś powodów nie mogła dokonać zmiany. (Ten "jakiś powód" pod postacią kodu błędu umieszczony jest w zmiennej $!). rmdir KATALOG Wywołanie tej funkcji spowoduje usunięcie określonego katalogu pod warunkiem, że jest on pusty. Podobnie jak w poprzednich przypadkach poprawne działanie funkcji zakończy się zwróceniem wartości "1" a błędne "0" (błąd w $!). Podanie nazwy katalogu jest tu opcjonalne, gdy ona się nie pojawi funkcja działa na zmiennej $_
17 STRUKTURY STERUJĄCE Większość prostych programów pisanych w Perlu jest liniowa. Oznacza to, że polecenia w nich zawarte wykonywane są po kolei. Aby wstrzymać lub spowodować wykonanie jakiegoś polecenia można użyć opisanych operatorów logicznych. Jednak programy zawierające pętle i instrukcje mają o wiele większe możliwości. Pętle i instrukcje nazywane są strukturami sterującymi. Perl jest więc językiem sterującym. Instrukcja if Blok jest zawsze ograniczony przez nawiasy klamrowe dlatego nigdy nie ma wątpliwości do którego przypisana jest instrukcja if. Sprawdza ona prawdziwość warunku i jeśli jest spełniony powoduje wykonanie bloku kodu. Blok to przynajmniej jedna instrukcja zamknięta w nawiasy klamrowe. Instrukcja if powoduje wykonanie bloku więc nawiasy te są bezwzględnie konieczne. if ($liczba > 0) print "Liczba $liczba jest większa od zera.\n"; Czasami gdy warunek nie jest spełniony zachodzi konieczność wykonania innego bloku lub bloków kodu. Można do tego celu wykorzystać nieobowiązkowe acz dostępne w Perlu słowo else. Wpisuje się je po pierwszym bloku i powoduje ono wykonanie drugiego bloku jeśli nie jest spełniony pierwszy warunek. Czasem konieczne jest postawienie większej ilości warunków. Do tego celu służy elsif dodawane do każdej możliwości. if sprawdzenie1 blok1; elseif sprawdzenie2 blok2; else sprawdzenie3 blok3; Jeśli okaże się, że "sprawdzenie1" jest prawdą to zostaje wykonany "blok1". Jeśli "sprawdzenie1" nie powiedzie się to zostaje przeprowadzony test "sprawdzenie2". Jeśli ono okaże się prawdą to zostaje wykonany blok programu oznaczony jako "blok2". Ostatni polecenie else powoduje sprawdzenie instrukcji "sprawdzenie3" ale tylko w przypadku gdy poprzednie sprawdzenia zwróciły wartość fałsz. Testów zaczynających się od elseif może być w instrukcji warunkowej kilka. Warunki towarzyszące if i elseif są sprawdzane po kolei, dopóki jeden z nich nie okaże się prawdziwy lub nie zostanie osiągnięte słowo else. Gdy jeden z warunków zostanie spełniony, jego blok zostanie wykonany a reszta rozgałęzień opuszczona. Oto prosty program opierający się na wykorzystaniu instrukcji if/elseif/else. Sprawdza on czy łańcuch $a składa się z jednego, dwóch lub trzech znaków bądź czy jest zbiorem pustym
18 Instrukcje, które powodują sprawdzenie ilości znaków w łańcuchu można powielać tak by np. sprawdzeniu dokładnemu podlegał łańcuch złożony nawet z 10 znaków. if (!$łańcuch) print "Łańcuch nie składa się z żadnych znaków, jest pusty.\n"; elseif (lenght($łańcuch) == 1) print "Łańcuch składa się z jednego znaku.\n"; elseif (lenght($łańcuch) == 2) print "Łańcuch składa się z dwóch znaków.\n"; elseif (lenght($łańcuch) == 3) print "Łańcuch składa się z trzech znaków.\n"; else print "Łańcuch zawiera więcej niż trzy znaki.\n"; Jednak czasem zachodzi potrzeba by wykonać blok tylko wtedy gdy warunek zwraca wartość fałsz. Można wtedy użyć instrukcji unless. unless ($liczba > 0) print "Liczba $liczba jest mniejsza lub równa zero.\n" Instrukcja kończąca działanie programu w przypadku gdy okaże się, że zmienna $zm jest pusta. die unless ($zm); Pętle Pętle zwane także konstrukcjami iteracyjnymi dzielą się na cztery główne grupy: while, until, for oraz foreach. Pozwalają one na to by program przetwarzał ten sam fragment kodu wiele razy podstawiając różne wartości. Instrukcje while i until Instrukcje te działają bardzo podobnie jak omawiane wcześniej if i unless, tyle że w pętli. Na początku sprawdzana jest część warunkowa instrukcji. Instrukcja while powoduje wykonanie bloku tak długo jak wyrażenie będzie miało wartość prawda. Gdy zamiast while użyte zostanie until to sens warunku zostanie odwrócony. Na końcu pętli while można użyć słowa continue. Blok po continue jest wykonywany po tym jak zakończy się wykonywane pierwszego bloku po while lub po przerwaniu jego wykonywania i przejściu do bloku continue
19 Pełna składnia pętli while wygląda następująco: while sprawdzenie1 blok1; continue blok2; Internetowe Bazy Danych wykład 12 Instrukcja for Pętla for należy do najczęściej stosowanych. Została zapożyczona z języka C. Zawiera ona trzy wyrażenia sterujące: pierwsze ustala wartość początkową zmiennej, drugie warunek, który sprawdza zmienną kontrolną i trzecie to wyrażenie, które pozwala zmodyfikować zmienną. Na początku ustalana jest wartość zmiennej i sprawdzany warunek. Jeśli zwróci on wartość prawda to następuje wykonanie bloku operacji. Dopiero na samym końcu zostaje uwzględnione wyrażenie modyfikujące początkową wartość zmiennej. Pętla jest wykonywana aż do momentu kiedy sprawdzenie warunku nie zwróci wartości fałsz. Wykorzystując pętlę for można np. w bardzo prosty i szybki sposób spowodować wypisanie ciągu kolejnych liczb od 0-5: for ($a = 0; $a < 5; $a++) print "$a\n"; Ustalamy wartość zmiennej $a na zero a następnie porównujemy ją z wartością 5. Jeśli jest ona mniejsza to następuje wykonanie polecenia wypisującego wartość zmiennej $a na ekran. Następnie pętla wykonuje operację poznanej już autoinkrementacji (dokładnie postinkrementacji) zmiennej $a i ponownie sprawdza ją z wartością 5. Sprawdzenie wartości zmiennej $a będzie zwracało wartość prawda dopóki $a nie osiągnie wartości 5. Wtedy pętla zostaje przerwana ale do tego czasu na ekranie pojawią się kolejno liczby 0, 1, 2, 3 i 4. Pętlę for można zastąpić w równoważnym stopniu odpowiednio skonstruowaną pętlą while: $a = 0; while ($a <5) print "$a\n"; continue $a++; Jako, że wszystkie trzy wyrażenia pętli for są opcjonalne możliwe więc jest wykonywanie pętli nieskończonej: for (;;) blok
20 Instrukcja foreach Internetowe Bazy Danych wykład 12 Jest to ostatnia z głównych instrukcji iteracyjnych stosowanych w Perlu. Pozwala ona na wykonywanie tego samego bloku kodu dla każdego skalara z danego zbioru np. tablicy. foreach zmienna (lista) Wartość zmiennej jest lokalna dla pętli ale odzyskuje swoją faktyczną wartość po zakończeniu wykonywania pętli. Pole zmienna może zostać pominięte, wtedy w użyciu znajdzie się znana już zmienna domyślna $_. Jeśli pole lista jest tablicą to jest możliwe modyfikowanie każdego jej elementu przez modyfikację zmiennej wewnątrz pętli. Pętla foreach podobnie jak while może lecz nie musi kończyć się blokiem continue. Operatory next i last Czasem konieczne jest zakończenie lub wyjście z pętli podczas jej wykonywania. Polecenie last działa tak samo jak instrukcja break w języku C. Powoduje ono natychmiastowe przerwanie i zakończenie przetwarzania w danej pętli. Blok oznaczony jako continue, jeśli w ogóle występuje, nie jest wykonywany. Działa to niejako w taki sam sposób jakby sprawdzenie warunku w pętli dało wartość fałsz. Komenda next działa jak polecenie continue w języku C. Użycie jej spowoduje opuszczenie wykonywania operacji w pętli aż do końca bieżącej iteracji i przejście do następnej. Jeśli istnieje blok oznaczony jako continue to jego wykonanie następuje tuż przed kolejnym sprawdzeniem warunku, tak samo zresztą jak w normalnej pętli. Dzięki temu blok ten może być użyty np. do inkrementacji bądź dekrementacji zmiennej mimo, iż wykonywanie wcześniejszego bloku poleceń zostało pominięte przez zastosowanie next. Jedną z używanych komend w stosunku do pętli jest polecenie redo. Użycie go spowoduje ponowne przetworzenie bloku instrukcji pętli bez ponownego sprawdzenia warunku. Blok continue nie jest w ogóle wykonywany. Instrukcja goto W Perlu podobnie jak w większości innych języków programowania występuje instrukcja goto, pomimo tego że można ją w każdym przypadku z powodzeniem zastąpić stosując pętlę. Jej podstawowa składnia wygląda następująca: blok operacji; etykieta: blok operacji; goto etykieta; Trzeba zauważyć że po zadeklarowaniu pewnego bloku operacji, pod nazwą etykieta, na końcu używamy dwukropka a nie średnika. W Perlu występują aż trzy formy komendy goto: goto etykieta, goto wyrażenie i goto &nazwa
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoSkrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:
Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoSystemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017
Systemy operacyjne Laboratorium 9 Perl wyrażenia regularne Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje wykorzystanie wyrażeń regularnych w perlu. Wyrażenia same w sobie są w zasadzie
Bardziej szczegółowoOpis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Bardziej szczegółowoWskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoInstrukcje. Operatory. Operatory. Instrukcje sterujące. wyrażenie1 && wyrażenie2 ;
Instrukcje wyrażenie1 if wyrażenie2 ; wyrażenie1 until wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1? wyrażenie2 : wyrażenie3 ; if (wyrażenie) blok [ [ elsif (wyrażenie) blok...
Bardziej szczegółowoTrochę o plikach wsadowych (Windows)
Trochę o plikach wsadowych (Windows) Zmienne środowiskowe Zmienną środowiskową można ustawić na stałe w systemie (Panel sterowania->system- >Zaawansowane ustawienia systemu->zmienne środowiskowe) lub też
Bardziej szczegółowoInstrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.
Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania
Bardziej szczegółowoPętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoAdministracja sieciowymi systemami operacyjnymi III Klasa - Linux
Administracja sieciowymi systemami operacyjnymi III Klasa - Linux SKRYPTY POWŁOKI mgr inż. Tomasz Borowiec SKRYPTY POWŁOKI - PODSTAWY W Linuksie skrypt jest plikiem tekstowym zawierającym polecenia systemowe
Bardziej szczegółowoSystemy operacyjne. Laboratorium 8. Perl find
Systemy operacyjne Laboratorium 8 Perl find Temat obejmuje przeszukiwanie drzew katalogowych z użyciem perla oraz podstawowe zdolności w używaniu referencji, tablic asocjacyjnych i mechanizmów typu stat.
Bardziej szczegółowoPracownia Komputerowa wykład III
Pracownia Komputerowa wykład III dr Magdalena Posiadała-Zezula dr Jan Suffczyński 1 Powłoki - rodzaje! W Linux ie mamy kilka powłok do wyboru:! sh : Bourne Shell, oryginalna powłoka systemu unix! csh :
Bardziej szczegółowoJĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA
JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA, który zawiera: zmienne, konstrukcje warunkowe i iteracyjne (IF-THEN-ELSE, CASE, DO WHILE, DO UNTIL), konfigurowane środowisko użytkownika. METAZNAKI zestaw
Bardziej szczegółowoBash - wprowadzenie. Bash - wprowadzenie 1/39
Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:
Bardziej szczegółowoNiezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Bardziej szczegółowoStruktura pliku projektu Console Application
Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku
Bardziej szczegółowoProgramowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Bardziej szczegółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoZmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.
Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez
Bardziej szczegółowoLaboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych
1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje
Bardziej szczegółowo3. Instrukcje warunkowe
. Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include
Bardziej szczegółowoPython wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA
Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający
Bardziej szczegółowoNależy ściągnąć oprogramowanie Apache na platformę
Programowanie Internetowe Język PHP - wprowadzenie 1. Instalacja Oracle+Apache+PHP Instalacja Apache, PHP, Oracle Programy i ich lokalizacja Oracle Database 10g Express Edition10.2 http://www.oracle.com/technology/products/database/
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Bardziej szczegółowo4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoJak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest
Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik
Bardziej szczegółowoTechnologie Informacyjne - Linux 3
Technologie Informacyjne - 3 Instytut Matematyki Uniwersytet Gdański Tryby plików i uprawnienia Każdy z plików uniksowych posiada zbiór uprawnień określajacych, czy możemy dany plik odczytać (r), zapisać
Bardziej szczegółowoNarzędzia informatyczne w językoznawstwie
Narzędzia informatyczne w językoznawstwie Perl - Struktury kontrolne i zmienne Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 28. listopada 2007 Marcin Junczys-Dowmunt
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoNazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.
Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać
Bardziej szczegółowoPodstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Bardziej szczegółowoInstrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe
Bardziej szczegółowoNaukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem
Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoLABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Bardziej szczegółowoPliki. Operacje na plikach w Pascalu
Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie
Bardziej szczegółowoPo uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Bardziej szczegółowoSystemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak
Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to
Bardziej szczegółowo1 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki
Bardziej szczegółowoTemat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.
Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego. Czas realizacji zajęć: 135 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Zmienne śrowiskowe oraz ich eksportowanie, argumenty
Bardziej szczegółowoDefinicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Bardziej szczegółowoWidoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?
Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz
Bardziej szczegółowoSchematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.
Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:
Bardziej szczegółowoPodstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
Bardziej szczegółowoAlgorytmika i Programowanie VBA 1 - podstawy
Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy
Bardziej szczegółowoZapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
Bardziej szczegółowoArgumenty wywołania programu, operacje na plikach
Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują
Bardziej szczegółowoSystem operacyjny Linux
Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje
Bardziej szczegółowoJAVA?? to proste!! Autor: wojtekb111111
1 JAVA?? to proste!! 2 Niniejszy tutorial przedstawia krótkie wprowadzenie do programowania w języku JAVA. Jakie narzędzia na początku potrzebujemy do rozpoczęcia programowania w tym języku? JDK (java
Bardziej szczegółowoPodstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Bardziej szczegółowoCwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać
Bardziej szczegółowoCw.12 JAVAScript w dokumentach HTML
Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane
Bardziej szczegółowoPodstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Bardziej szczegółowoLekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()
Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 1
Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program
Bardziej szczegółowoDynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia
Dynamiczne przetwarzanie stron dr Beata Kuźmińska-Sołśnia KLIENT Witaj INTERNET SERWER Plik HTML Witaj wyświetlanie przez przeglądarkę Witaj! Serwer WWW komputer
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoĆwiczenie 1. Wprowadzenie do programu Octave
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoKARTA KURSU. Języki skryptowe
KARTA KURSU Nazwa Nazwa w j. ang. Języki skryptowe Script languages Kod Punktacja ECTS* 3 Koordynator mgr Alfred Budziak Zespół dydaktyczny: dr Olaf Bar mgr Alfred Budziak Opis kursu (cele kształcenia)
Bardziej szczegółowoWarto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.
Nazwa implementacji: Nauka języka C wyrażenia warunkowe if- Autor: Piotr Fiorek Opis implementacji: Poznanie struktury oraz zastosowania wyrażeń warunkowych if- w języku C. W programie realizującym jakiś
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Bardziej szczegółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoZapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
Bardziej szczegółowoJeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Bardziej szczegółowoWHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Bardziej szczegółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Bardziej szczegółowoWstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Bardziej szczegółowoŚrodowisko programisty Zestaw 7
Bash, zmienne i instrukcje warunkowe Zmienne możemy traktować jak etykiety, które przechowują ciągi znaków. Definiujemy je przy pomocy znaku = bez spacji po obu jego stronach: dog="azor" Do zmiennych w
Bardziej szczegółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoStałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Bardziej szczegółowo7. Pętle for. Przykłady
. Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i
Bardziej szczegółowoInstrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:
Instrukcje sterujące wer. 11 z drobnymi modyfikacjami! Wojciech Myszka 2017-07-05 10:53:09 +0200 Ala ma kota Część I Prosty przykład Problem 1. Zadanie polega na tym, żeby opracować algorytm który dla
Bardziej szczegółowoWstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Bardziej szczegółowoPodstawy programowania w języku Visual Basic dla Aplikacji (VBA)
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest
Bardziej szczegółowoZadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowoSkrypty powłoki w systemie Linux
Skrypty powłoki w systemie Linux Wykonywanie codziennych czynności w systemie operacyjnym jest męczące, gdy za każdym razem trzeba wpisywać te same zestawy komend. Znacznie wygodniej byłoby zapisać je
Bardziej szczegółowoWyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal
Bardziej szczegółowoZasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
Bardziej szczegółowoSystemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej
Systemy operacyjne Programowanie w shellu: BASH dr inż. Andrzej Opaliński pawilon B5/p.406 tel. (+48)12 617 46 37 e-mail: andrzej.opalinski@agh.edu.pl Wydział Inżynierii Metali i Informatyki Przemysłowej
Bardziej szczegółowoSkrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012
Skrypty BASH a Systemy Operacyjne 2 Mateusz Hołenko 4 października 2012 Plan zajęć O skryptach słów kilka... Powłoka, wiersz poleceń Obsługa powłoki bash Składnia języka skryptowego bash a Zadania Mateusz
Bardziej szczegółowoSkrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Bardziej szczegółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowoJAVAScript w dokumentach HTML (1)
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript
Bardziej szczegółowoPracownia Komputerowa wykład III
Pracownia Komputerowa wykład III dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Powłoki - rodzaje! W Linux ie mamy kilka powłok do wyboru:! sh : Bourne Shell, oryginalna powłoka systemu
Bardziej szczegółowoWstęp do informatyki. stęp do informatyki Polecenia (cz.2)
Wstęp do informatyki stęp do informatyki Polecenia (cz.2) Lista procesów top Pokaż listę procesów polecenie interaktywne Procesy Uruchamianie w tle. shell nie czeka na zakończenie procesu, można wydawać
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Bardziej szczegółowo