Laboratorium z użyciem analizatora leksykalnego FLEX
|
|
- Amalia Sosnowska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Laboratorium z użyciem analizatora leksykalnego FLEX Analizator leksykalny FLEX jest narzędziem służącym do tworzenia programów rozpoznających wzorce. FLEX na podstawie pliku wejściowego, za pomocą reguł i powiązanych z nimi akcji, tworzy program analizatora leksykalnego, który opiera się o maszynę stanów. Wynik działania tego programu jest zapisany w postaci kodu języka C, gdzie główna metoda rozpoczynająca działanie analizatora leksykalnego została nazwana yylex(). Analizator po pobraniu danych z wejścia dopasowuje wyrażenia regularne do podanych wzorców i wykonuje zdefiniowane dla nich akcje. Struktura pliku Plik podawany na wejście analizatora leksykalnego FLEX ma następującą postać: SEKCJA DEFINICJI SEKCJA REGUŁ SEKCJA KODU UŻYTKOWNIKA Przykłady najkrótszego programu, który przepisuje dane z wejścia na wyjście: %option noyywrap int main() Sekcja definicji Sekcja definicji zawiera deklaracje prostych nazwanych definicji, co ma za zadanie uprościć pisanie analizatora leksykalnego. Dodatkowo znajdują się tutaj definicję stanów analizatora. Składnia nazwanej definicji jest następująca: NAZWA DEFINICJA gdzie NAZWA jest dowolnym słowem, natomiast DEFINICJA jest zapisem wyrażenia regularnego. W sekcji reguł odwołujemy się do nazwanych definicji w następujący sposób: 1
2 NAZWA Przykłady nazwanych definicji: MAŁE [a-z]* CYFRY [0-9]? Jakikolwiek tekst nierozpoczynający się od pierwszego wiersza jak i wzięty w % % jest kopiowany bezpośrednio do pliku wyjściowego. Można również za pomocą bloku %top określić część tekstu, która ma zostać przekopiowana bezpośrednio do pliku wyjściowego, ale na samą górę tego pliku. Sekcja reguł Sekcja reguł składa się z serii reguł o następującym formacie: WZORZEC AKCJA, gdzie WZORZEC nie może być wcięty (nie może rozpoczynać go spacja) oraz AKCJA musi zaczynać się w tej samej linii. Przykłady reguł: [A-Z]* CYFRA printf( Rozpoznano duże litery %s, yytext); printf( Rozpoznano cyfrę ); Sekcja kodu użytkownika Sekcja kodu użytkownika jest opcjonalną częścią pliku, która jest bezpośrednio kopiowana do pliku wyjściowego. Zazwyczaj są tutaj umieszczane definicje funkcji napisanych w języku C, które wywoływane są w akcjach. Komentarze FLEX wspiera komentarze zgodnie ze składnią języka C i wszystko co znajduje się między znakami /* i */ kopiuje bezpośrednio do pliku wyjściowego. Jednak żeby komentarz nie został pomylony przez analizator z regułą, sugeruje się, aby nigdy nie rozpoczynał się on w pierwszej kolumnie. Wyrażenia regularne Wzorce zapisuje się za pomocą rozszerzonego zestawu wyrażeń regularnych. Poniżej wyrażenia regularne zgodnie z zapisem we FLEX Wzorzec Opis X Dopasuj znak X.. Dopasuj dowolny znak poza znakiem końca linii. \n Dopasuj koniec linii. [abc] (klasa znaków) Dopasuj znak a lub b lub c. [ab-fz] (klasa znaków z wykorzystaniem operatora zakresu) Dopasuj znak a lub od b do f lub z. [^A-C] (zanegowana klasa znaków) Dopasuj dowolny znak poza A, B i C. [a-z]* (* - zero lub wiele powtórzeń wyrażenia regularnego). Dopasuj ciąg składający się z zera lub wielu małych liter. [a-z]+ (+ - jedno lub wiele powtórzeń wyrażenia regularnego). Dopasuj 2
3 ciąg składający się z jednej lub wielu małych liter. [a-z]? (? zero lub jedno powtórzenie). Dopasuj ciąg składający się z żadnej lub jednej małej litery. [a-z]2,5 (n,m powtarzaj od n do m razy). Dopasuj ciąg skłdający się z od 2 do 5 małych liter. [a-z]2, (n,m). Dopasuj ciąg skłdający się z co najmniej 2 małych liter. [a-z]2 (n powtarzaj n razy). Dopasuj ciąg składający się z dokładnie 2 małych liter. CYFRY Odwołanie się do nazwanej definicji. Karolina Dopasuj ciąg do napisu Karolina. ([a-z]) (operator () do nadawania łączności regułom). [a-z] [A-Z] ( - operator wyboru) Dopasuj małą lub dużą literę. [a-z][a-z] (regularne wyrażenia następujące po sobie). Dopasuj ciąg znaków, gdzie pierwsza litera jest mała, a druga duża. A /[a-z] (dopasowanie warunkowe). Dopasuj A, ale tylko jeżeli występuje po nim mała litera. ^[a-z] (początek linii). Dopasuj małą literę, ale tylko na początku linii. [a-z]$ (koniec linii). Dopasuj małą literę ale tylko, jeżeli jest na końcu linii. <<EOF>> Koniec pliku. Dodatkowo zostały zdefiniowane pewne klasy wyrażeń znakowych, których nazwa jest podawana między znakami [: i :] i dodatkowo przy tworzeniu wyrażenia regularnego musi być wzięta w nawiasy kwadratowe. Klasa wyrażeń Znaczenie [[:lower:]] małe litery [[:upper:]] duże litery [[:digit:]] cyfry [[:space:]] spacja Działanie analizatora Po uruchomieniu analizator stara sie dopasować zadany ciąg znaków do wzorców znajdujących się w sekcji reguł w następujący sposób: W przypadku, gdy można dopasować kilka wzorców zawsze wybierany jest ten, który dopasowuje najwięcej znaków. Jeżeli istnieją dwa wzorce dopasowujące tą samą liczbę znaków, zawsze wybrany zostanie ten, który został zdefiniowany jako pierwszy. Po dopasowaniu do wzorca w akcji można odczytać dopasowany ciąg znaków poprzez odwołanie się do zmiennej yytext, natomiast długość bieżącego dopasowania jest przechowywana w zmiennej yyleng. Domyślnie zmienna yytext jest tablicą znakową o długości 256 znaków, jednak istnieje możliwość zdefiniowania jej jako wskaźnik poprzez zastosowanie przełącznika %pointer. Po dopasowaniu wzorca wywoływana jest akcja z nim związana, a następnie pozostała część ciągu znaków na wejściu jest dopasowywana do wzorców. 3
4 Przykłady zastosowania reguł: %option noyywrap LETTERS [a-z]* INTEGER [1-9][0-9]* 0 REAL INTEGER"."[0-9]+ DZIEN [1-9] 1[0-9] 2[0-9] 30 MIESIAC [1-9] 1[0-2] ROK [1-9][0-9]0,2 1[0-9]0,3 200[1-9] 20[1-4][0-9] 2050 DATA DZIEN"-"MIESIAC"-"ROK [^0-9] printf("to nie jest liczba %s\n", yytext); ^[a-z] printf("znak na poczatku linii %s\n", yytext); [a-z]$ printf("znak na koncu linii %s\n", yytext); REAL printf("rozpoznano liczbe zmiennoprzecinkowa %s\n", yytext); INTEGER printf("rozpoznano liczbe calkowita %s\n", yytext); DATA printf("rozpoznano date %s\n", yytext); LETTERS/INTEGER yytext); printf("rozpoznano litery przed liczbami %s\n", \n printf("koniec linii");. printf("nierozpoznany znak"); int main() Akcje Z każdym wzorcem połączona jest akcja, która może być dowolną instrukcją napisaną w języku C. Domyślnie akcja powinna zostać zapisana w jednej linii zaraz po wzorcu. W przypadku, gdy składa się ona z wielu instrukcji można zapisać instrukcje kolejno w jednej linii lub zapisać je w osobnych liniach; wtedy jednak należy zamknąć blok instrukcji w nawiasy i, dodatkowo takie rozwiązanie sprawia, że kod jest czytelniejszy. W akcjach można modyfikować zawartość zmiennej yytext, jednak nie można zmieniać jej długości, czy dopisywać znaków na końcu, gdyż spowoduje to nadpisanie znaków pobranych na wejściu analizatora; tych które nie zostały jeszcze przetworzone. W akcjach można również zmieniać wartość zmiennej yyleng, jednak jest to zabronione w przypadku gdy w tej samej akcji korzysta się z funkcji yymore(). Predefiniowane dyrektywy, z których można korzystać w akcjach: Dyrektywa Znaczenie ECHO Kopiuje zawartość zmiennej yytext na wyjście analizatora. BEGIN() Pozwala przechodzić między stanami w analizatorze leksykalnym. 4
5 REJECT yymore() yyless(int n) unput(char c) input() Wymusza na analizatorze znalezienie następnej pasującej reguły i wykonanie dla niej akcji. Wymusza na analizatorze pozostawienie w zmiennej yytext dopasowanego tokena, tak aby był on widoczny po dopasowaniu następnej reguły. Przesyła na wejście analizatora wszystkie poza n pierwszymi znakami z właśnie dopasowanego tokena, by umożliwić ich kolejne przetworzenie. Przesyła znak na wejście analizatora. Ten znak będzie jako pierwszy wzięty do dopasowania do wzorca. Pobiera kolejny znak z wejścia analizatora. Program do zliczania linii i znaków w pliku: %option noyywrap % % #include <stdlib.h> int liczbaznakow = 0; int liczbalinii = 0; \n liczbaznakow++;liczbalinii++;. liczbaznakow++; int main(int argc, char** argv) if(argc > 1) yyin = fopen(argv[1], r ); printf("liczba znaków wynosi %d natomiast liczba linii to %d", liczbaznakow, liczbalinii); fclose(yyin); Zadania: 1. Napisz program, który będzie zliczał liczbę liter oraz cyfr w linii tekstu. Po wciśnięciu entera powinien wypisać wynik. 2. Napisz program, który będzie liczył liczbę słów w podanej linii tekstu i po wciśnięciu entera wypisze wynik na ekranie. Wygenerowany analizator Wynikiem działania programu FLEX jest program zapisany w pliku lex.yy.c, który zawiera główną metodę yylex() oraz wygenerowane tablice służące do rozpoznawania tokenów oraz listę wygenerowanych makr oraz funkcji. 5
6 Metoda yylex() pobiera zawsze dane ze strumienia, do którego można mieć dostęp poprzez globalną zmienną plikową yyin (domyślnie jest to stdin), i działa tak długo, aż dotrze do końca pliku lub jedna z jej akcji będzie zawierała wyrażenie return. W przypadku gdy analizator dojdzie do końca pliku, kolejne odwołania do niego są niezdefiniowane, chyba że zmiennej yyin zostanie przypisany nowy plik z danymi do przetworzenia. W przypadku zakończenia pracy analizatora po wykonaniu wyrażenia return, kolejne wywołanie funkcji yylex() spowoduje wznowienie pracy analizatora w miejscu, gdzie ostatnio skończył. Gdy zostanie rozpoznany stan końca pliku, analizator automatycznie przechodzi do funkcji yywrap(). Jeżeli nie jest ona zdefiniowana, należy włączyć opcję %noyywrap, by została ona wygenerowana automatycznie. Funkcja yywrap domyślnie zwraca wartość prawda. Jeżeli jednak chcielibyśmy kontynuować pracę analizatora, powinniśmy zastąpić domyślną definicję tej funkcji w części kodu użytkownika i przypisać zmiennej yyin nowy plik, który będzie przetwarzany. Domyślnie strumień wyjściowy analizatora jest połączony ze standardowym wyjściem na ekran (stdout). Jednak istnieje możliwość przekierowania go na dowolne inne wyjście poprzez odpowiednie przedefiniowanie globalnej zmiennej plikowej yyout. Obsługa końca pliku Istnieje specjalny wzorzec <<EOF>>, który umożliwia wykonanie akcji w momencie, gdy został rozpoznany koniec pliku i jednocześnie funkcja yywrap() zwróciła prawdę. Akcje wykonane w przypadku dopasowania tego wzorca mogą być następujące: Przypisać zmiennej yyin nowy strumień. Wykonać instrukcję return. Wykonać funkcję yyterminate(), która informuje skaner o tym, że wszystko z wejścia zostało przetworzone i można zakończyć pracę. Przełączyć się między buforami za pomocą funkcji yy_switch_to_buffer. Wzorzec <<EOF>> nie może być łączony z innymi wzorcami. Jeżeli istnieje wzorzec <<EOF>> nieprzypisany do żadnego stanu, to będzie on dopasowywany w każdym ze stanów, jeżeli dla danego stanu nie został taki wzorzec zdefiniowany. Stany analizatora FLEX umożliwia warunkowe rozpoznawanie wzorców. Wykorzystywane są w tym celu stany analizatora. Stany analizatora definiuje się w sekcji definicji poprzez rozpoczęcie linii przełącznikiem %s lub %x i następnie podanie listy nazw stanów oddzielonych przecinkami. %s definiuje stany łączne, czyli takie, które rozpatrują również wzorce nie przypisane do żadnego stanu. Natomiast %x definiuje stany wyłączne i w tym przypadku rozpatrywane są wzorce należące tylko do tego stanu. W sekcji reguł analizatora każdy wzorzec może zostać przypisany do wybranego stanu lub grupy stanów w następujący sposób: 6
7 <STAN>WZORZEC %s definiuje stan inclusive (łączny) INITIAL %x definiuje stan exlusive (wyłączny) INITIAL gdzie STAN jest nazwą stanu zdefiniowaną w sekcji definicji. W przypadku większej liczby STANów należy rozdzielić je spacją. Dodatkowo, jeżeli do jednego stanu chcemy przypisać więcej wzorców, można zastosować następującą konstrukcję: <STAN> WZORZEC_1... WZORZEC_2 Po rozpoczęciu pracy analizator znajduje się w stanie domyślnym (INITIAL). Do zmiany stanu pracy analizatora służy makro BEGIN, któremu jako parametr podaje się nazwę stanu, do jakiego ma przejść. Należy pamiętać, że analizator sam nigdy nie zmieni stanu analizatora. Program rozpoznający napisy oraz komentarze: %option noyywrap %x STRING COMMENT \" BEGIN(STRING); "/*" BEGIN(COMMENT); <STRING>[a-z]* <STRING>\" printf("zawartosc stringa %s \n", yytext); BEGIN(INITIAL); <COMMENT> [a-z]* printf("w komentarzu %s \n", yytext); "*/" BEGIN(INITIAL); int main() Globalne zmienne YYSTATE oraz YY_START zwracają wartość bieżącego stanu analizatora. Istnieje również możliwość zagnieżdżania odwołań do stanów. W tym celu został stworzony stos, który umożliwia zapamiętywanie kolejnych stanów, przez które przechodzi analizator. Pamięć stosu przydzielana jest dynamicznie. W celu wykorzystania tego stosu należy posługiwać się następującymi funkcjami: Funkcja Działanie yy_push_state(nowy_stan) Przełącza bieżący stan pracy analizatora na nowy i odkłada jego wartość na stosie. yy_pop_state() Pobiera stan znajdujący się na góre stosu i przy 7
8 yy_top_state() wykorzystaniu funkcji BEGIN przechodzi do pracy w nim. Pobiera stan z góry stosu, bez zmiany zawartości. Zadania: 1. Napisz program, który będzie rozpoznawał zawartość komentarzy jednoliniowych w C (rozpoczynających się od znaków // i kończących wraz z końcem linii. Przetwarzanie wielu plików Niektóre analizatory wymagają współpracy z wieloma plikami. W tym celu został stworzony specjalny mechanizm buforów umożliwiający w prosty sposób przełączanie się między plikami. YY_BUFFER_STATE yy_create_buffer(file* file, int size) YY_BUFFER_STATE yy_new_buffer(file* file, int size) Pobiera zmienną plikową oraz rozmiar pliku i tworzy powiązany z nimi bufor danych. W przypadku gdy nie jest znany potrzebny rozmiar bufora, należy jako drugi parametr wywołania podać YY_BUF_SIZE. YY_BUFFER_STATE jest predefiniowaną strukturą: void yy_switch_to_buffer(yy_buffer_state nowy bufor); Funkcja podmienia plik na wejściu analizatora na ten powiązany z buforem podanym jako parametr. Funkcja ta często jest wykorzystywana w ciele funkcji yywrap(), by kontynuować skanowanie z kolejnego pliku. void yy_delete_buffer(yy_buffer_state bufor); Funkcja zwalnia zasoby związane z buforem. YY_CURRENT_BUFFER Makro zwracające YY_BUFFER_STATE dla bieżącego bufora. Współpraca z YACC Jednym z głównych zastosowań analizatora leksykalnego jest połączenie go wraz z analizatorem składniowym wygenerowanym przez program YACC. Interakcja między tymi programami przebiega w następujący sposób: Analizator składniowy wywołuje metodę yylex(), w wyniku której zostaje do niego przekazany token opisany przez typ oraz wartość (zapisywaną do zmiennej yylval). Nazwy tokenów ustalane są w ciele programu napisanego dla YACC a, jednak wywołanie kompilacji tego programu z opcją -d generuje dodatkowy plik nagłówkowy y.tab.h, w którym znajdują się definicje tokenów. Plik ten należy dołączyć do pliku napisanego w analizatorze leksykalnym. Umożliwia to odwołanie się do tych samych zmiennych. 8
9 Program do dołączania plików po słowie #include: % #define MAX 100 YY_BUFFER_STATE stos[max]; int nbufor = 0; % %x INCLUDE "include" BEGIN(INCLUDE); [a-za-z]+ ECHO; /*Wypisujemy zawartość pliku*/ [0-9]+ ECHO; <INCLUDE> [\t]* ; /*Omijaj tabulacje*/ [a-z]+"."[a-z]3 stos[nbufor++] = YY_CURRENT_BUFFER; yyin = fopen(yytext, "r"); yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE)); BEGIN(INITIAL); <<EOF>> if(nbufor == 0) yyterminate(); else yy_delete_buffer(yy_current_buffer); yy_switch_to_buffer(stos[--nbufor]); int yywrap() printf("wykryto koniec pliku\n"); return 1; int main(int argc, char** argv) 9
Generatory analizatorów
Generatory analizatorów Generator analizatora leksykalnego flex ( http://www.gnu.org/software/flex/ ) Generator analizatora składniowego bison ( http://www.gnu.org/software/bison/ ) Idea ogólna Opis atomów
Bardziej szczegółowoL E X. Generator analizatorów leksykalnych
L E X Generator analizatorów leksykalnych GENERATOR L E X Zadaniem generatora LEX jest wygenerowanie kodu źródłowego analizatora leksykalnego (domyślnie) w języku C; Kod źródłowy generowany jest przez
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ółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 3 Uwaga: Do wykonania poniższych zadań związanych z implementacją niezbędny jest program LEX oraz kompilator. Dla środowiska Linux mogą to być: Darmowa wersja generatora
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ółowoAnaliza leksykalna i generator LEX
Analiza leksykalna i generator LEX Wojciech Complak Wojciech.Complak@cs.put.poznan.pl wprowadzenie generator LEX wyrażenia regularne i niejednoznaczności retrakcja definicje regularne atrybuty lewy kontekst
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury
Bardziej szczegółowoGenerator skanerów Flex
Grzegorz Jacek Nalepa 17.7.2000, Kraków, Revision : 1.5 Streszczenie Artykuł prezentuje generator skanerów leksykalnych Flex, będący implementacją standardowego pakietu Lex. Zawarte jest krótkie wprowadzenie
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ół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ółowoĆwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
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ółowoObsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 10 Translacja sterowana składnią w generatorze YACC. Zadanie 1: Proszę napisać program, który dla danej liczby całkowitej j oraz niepustego ciągu liczb naturalnych c
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
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ół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ół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ół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ółowoFlex - generator analizatorów leksykalnych
Flex - generator analizatorów leksykalnych Spis treści: 1. Wprowadzenie Wyrażenia regularne Schemat specyfikacji Prosty przykład Uruchomienie Makefile 2. Rozstrzyganie niejednoznaczności 3. Rozpoznawanie
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ółowoLaboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Ciągi znaków mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 17 listopada 2016 1. Wprowadzenie Instrukcja poświęcona jest zmiennym, które służą do przechowywania
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
Bardziej szczegółowoautomatem skończonym niedeterministycznym (ang. nondeterministic finite automaton) M N nazywamy system:
4.3. Automaty skończone (skończenie stanowe) automatem skończonym niedeterministycznym (ang. nondeterministic finite automaton) M N nazywamy system: M N = < Q, Σ, δ, q 0, F > Q Σ skończony zbiór stanów
Bardziej szczegółowoINFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
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ółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoĆwiczenia nr 11. Translatory. Wprowadzenie teoretyczne
J.Nawrocki, M. Antczak, A. Hoffa, S. Wąsik Plik źródłowy: 08cw11-tr.doc; Data: 2009-01-15 09:47:00 Ćwiczenia nr 11 Translatory Wprowadzenie teoretyczne Wiele dokumentów wprowadzających do języków Lex oraz
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ółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne
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ół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ółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoPodstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Bardziej szczegółowoGenerator analizatorów leksykalnych - Lex. Bartosz Bogacki.
Generator analizatorów leksykalnych - Lex Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy generatora analizatorów leksykalnych LEX. Zapraszam
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ółowoPrzedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)
Sed edytor strumieniowy,sed wczytuje bieżący wiersz pliku do wewnętrznego bufora celem manipulowania tekstem. Wynik jest wysyłany na standardowe wyjście. Oryginalny plik nie jest nigdy zmieniany. Jeżeli
Bardziej szczegółowoJęzyki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard
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ółowoAnaliza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
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ółowo#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Bardziej szczegółowoutworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Stany równoważne Stany p i q są równoważne,
Bardziej szczegółowo#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
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ół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ółowoOPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Bardziej szczegółowoSzablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Bardziej szczegółowoAnaliza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych
Bardziej szczegółowoLaboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoSystem operacyjny Linux
Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 7 Język awk Wprowadzenie Schemat programu Konstrukcja wzorców Konstrukcja wyrażeń regularnych Struktury kontrolne Predefiniowane
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
Bardziej szczegółowoProgramowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw
Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej
Bardziej szczegółowo2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).
2. Zmienne i stałe Przykłady 2.1. Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 5 int a = 281; int b = 117; 7 8 cout
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ółowoBiblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoWskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
Bardziej szczegółowoPROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec
PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty
Bardziej szczegółowoProgramowanie w językach wysokiego poziomu
Programowanie w językach wysokiego poziomu zajęcia nr 2 Elektronika i Telekomunikacja, semestr III rok akademicki 2014/2015 Plan dzisiejszych zajęć Pliki tekstowe 1. Operacje na plikach - wprowadzenie
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ół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ółowoZakład Systemów Rozproszonych
Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 5: Wybrane programy użytkowe Edytor Vi Edytor Vi uruchamiany jest w oknie terminala. Przy jego pomocy możemy dokonywać następujących operacji:
Bardziej szczegółowoMateriał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji
Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 5 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w
Bardziej szczegółowoJęzyki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Bardziej szczegółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoJęzyki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków
Bardziej szczegółowoTemat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
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ółowoWstęp do informatyki- wykład 11 Funkcje
1 Wstęp do informatyki- wykład 11 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum
Bardziej szczegółowoI - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium)
Język C, tablice i funkcje (laboratorium) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoWstęp do informatyki- wykład 9 Funkcje
1 Wstęp do informatyki- wykład 9 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 6 Generator LLgen. Zadanie 1: Proszę napisać akceptor dla języka a n b m (n, m > 0). Przykłady: aaabb powinniśmy otrzymać wynik: OK aaabba powinniśmy otrzymać komunikat
Bardziej szczegółowoPytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
Bardziej szczegółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Bardziej szczegółowoSkanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika
Skanowanie OCR w aplikacji Kancelaria Komornika Instrukcja dla użytkownika Spis treści 1. Zakładka Wyrażenia... 3 2. Zakładka Grupy wyrażeń... 5 3. Opcje Skanowania / OCR... 7 4. Rozpoznawanie Danych...
Bardziej szczegółowoProgramowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28
Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera
Bardziej szczegółowoZadanie analizy leksykalnej
Analiza leksykalna 1 Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Przykład: We: COST := ( PRICE + TAX ) * 0.98 Wy: id 1 := ( id 2 + id 3 ) * num 4 Tablica symboli:
Bardziej szczegółowoPliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego
Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt
Bardziej szczegółowoPodstawy programowania w C++
Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout
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ółowoJęzyk C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop
Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na
Bardziej szczegółowo1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
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ółowoWstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe
Wstęp do programowania obiektowego Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe 1 PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI W C++ 2 W C++
Bardziej szczegółowoPodstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok
Bardziej szczegółowo5 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 5 1/6 Język C Instrukcja laboratoryjna Temat: Funkcje, parametry linii poleceń, typ wyliczeniowy. 5 Przygotował: mgr inż. Maciej Lasota 1) Parametry linii poleceń. Język C oprócz wprowadzania
Bardziej szczegółowoZajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
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ółowoPodział programu na moduły
Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala
Bardziej szczegółowo1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Bardziej szczegółowo#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }
#include using namespace std; Prototypy funkcji Funkcja 1 void ela(int); double info (double); int main( ); return 0; Funkcja 2 void ela(int); Funkcja 3 double info(double); return 4*t; jeszcze
Bardziej szczegółowoWykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Bardziej szczegółowoProgram 14. #include <iostream> #include <ctime> using namespace std;
Program 14 Napisać: * funkcję słuŝącą do losowego wypełniania tablicy liczbami całkowitymi z podanego zakresu (*). Parametrami funkcji mają być tablica, jej długość oraz dwie liczby stanowiące krańce przedziału
Bardziej szczegółowo