Języki programowania Prolog
|
|
- Magda Tomaszewska
- 6 lat temu
- Przeglądów:
Transkrypt
1 1. Środowisko ECL i PS e Języki programowania Prolog zadanie projektowe nr. 3 (2016/17) T. Goluch W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem: Po zainstalowaniu środowiska będziemy mieli dostępne dwie jego wersje: konsolową (dla systemu Windows jest to <katalog-instalacji>\lib\i386_nt\eclipse.exe). Możemy dodać ścieżkę dostępu za pomocą komendy: PATH = %PATH%;<kataloginstalacji>\lib\i386_nt. Kompilacji dokonujemy komendą: eclipse -f <nazwa-pliku>. Plik powinien mieć rozszerzenie.ecl albo.pl i znajdować się w bieżącym katalogu, natomiast nazwa pliku może być podana z pominięciem rozszerzenia. Niemniej jednak po poprawnej instalacji środowiska ECL i PS e do uruchomienia plików.ecl powinno wystarczyć dwukrotne ich kliknięcie. Po uruchomieniu powinna się wyświetlić informacja o licencji i wersji kompilatora, oraz napis: [eclipse 1]: _ po którym można wpisywać kolejne zapytania. Aby opuścić program i powrócić do linii komend należy zastosować instrukcję halt.. graficzną (TkEclipse). Po utworzeniu pliku z programem (w ulubionym edytorze lub przy pomocy File Edit new...) możemy go skompilować poleceniem File Compile... lub wpisując [<nazwa-pliku-bez-rozszerzenia>]. w polu Query Entry. W tym wypadku plik powinien mieć rozszerzenie.ecl albo.pl i znajdować się w bieżącym katalogu. Nową ścieżkę bieżącego katalogu możemy podać wybierając opcję menu File Change Directory.... Zapytania wpisujemy w polu Query Entry. Jeśli chcemy wyczyścić wszystkie dotychczas skompilowane moduły możemy posłużyć się opcją menu File Clear toplevel module. 2. Programowanie w logice Program w języku PROLOG składa się z zestawu definicji klauzul. Najprostsza definicja klauzuli p/1 (1 oznacza liczbę parametrów klauzuli) ma postać: p(1). Oznacza ona, że klauzula ta jest spełniona dla parametru równego 1 (i tylko dla takiego). Jeżeli teraz wykonamy zapytanie: p(x). otrzymamy odpowiedź: programowania{c91e19c4-8b08-4d63-9b7c-0913aab2a7ce} 1
2 X = 1 Yes Po zadaniu zapytania PROLOG przegląda wszystkie zdefiniowane klauzule i próbuje dopasować do nich zapytanie. Na przykład, gdy p jest spełnione dla 1 i 2: p(1). p(2). > p(x) X = 1 \\ Yes, maybe more X = 2 \\ Yes, maybe more Aby uzyskać kolejne dopasowania należy, w zależności od wersji, nacisnąć średnik (wersja konsolowa eclipse.exe) albo nacisnąć przycisk more (wersja graficzna TkEclipse). Warto również zauważyć, że kolejność klauzul ma znaczenie, zamieniając ją otrzymamy następującą odpowiedź: p(2). p(1). > p(x) X = 2 \\ Yes, maybe more X = 1 \\ Yes, maybe more Ogólna definicja klauzuli ma postać: predykat(zmienne) :- cel. i oznacza, że klauzula dla zmiennych Zmienne jest spełniona, jeżeli spełniony jest cel, przy czym cel jest listą pod-celi połączonych koniunkcją (w postaci cel-1, cel-2,..., cel-n) lub alternatywą (w postaci (cel-1; cel-2;...; cel-n)). Np. klauzula: q( 0,0 ). q( X,Y ) :- X > 0, T is X 1, q( T,Y ). jest spełniona dla parametrów 0,0 oraz dla wszystkich X,Y takich, że q( X-1,Y ) jest spełnione. Do obliczenia wartości wyrażenia potrzebna jest klauzula is/2. W przeciwnym wypadku zmiennej logicznej T zostałoby przypisane wyrażenie symboliczne X 1. Klauzule postaci p(x). (tzn. z pustą listą celów) nazywamy faktami, pozostałe klauzule regułami. Zadajmy teraz zapytanie q( 7,0 ). Nie udało się go dopasować do pierwszej klauzuli, jednak dopasowanie do drugiej powiedzie się: zmienna X zostanie związana z wartością 7, Y zaś z zerem, po czym nastąpi sprawdzenie prawdziwości pod-celi. Pierwsze dwa są spełnione. Aby sprawdzić prawdziwość trzeciego podcelu, należy sprawdzić, czy q( 6,0 ) jest prawdziwe. Nastąpi ponowna próba dopasowania zapytania (tym razem q( 6,0 )). Będzie ono prawdziwe, jeżeli prawdziwe będzie q( 5,0 ) itd., aż do zapytania q( 0,0 ), które jest prawdziwe z definicji (pierwszy fakt). Nazwy zmiennych zawsze zaczynają się od wielkiej, a predykatów od małej litery. 3. Debugger W celu lepszego zrozumienia działania programu bądź analizy błędów możemy posłużyć się debuggerem. Wybieramy z menu opcję: Tools Tracer i ponownie uruchamiamy zapytanie np.: programowania{c91e19c4-8b08-4d63-9b7c-0913aab2a7ce} 2
3 q(7,0). W oknie stosu wywołań Call Stack wyświetlony zostanie aktualny (kolor niebieski) oraz potomne cele. Cele spełnione oznaczane są na zielono a niespełnione na czerwono. Aby kontynuować śledzenie należy wykorzystać przycisk Creep. Wszystkie wywołane cele w porządku chronologicznym można obejrzeć przeglądając zakładkę Trace Log. 4. Typy danych W prologu możemy wyróżnić następujące typy danych: a) liczby możemy wyróżnić cztery rodzaje: całkowite, w przypadku wykorzystania biblioteki GMP ograniczeniem na ich wielkość jest jedynie pamięć urządzenia: zmiennoprzecinkowe, do reprezentacji wykorzystywany jest typ double z języka C: e23-35e Inf wymierne (wartość reprezentowana jest jako iloraz dwóch nieograniczonych liczb całkowitych): 2_6, rational(2.5), 4_3 + rational(1.5) bounded reals (liczba rzeczywista która zawiera się pomiędzy dwoma wartościami zmiennoprzecinkowymi): , , b) napisy są reprezentacją dowolnej sekwencji bajtów i zapisywane są w cudzysłowach: "hello" "I am a string!" "string with a newline \n and a null \000 character" c) atomy to proste stałe symboliczne (podobne do typów wyliczeniowych z innych języków). Składniowo, wszystkie słowa zaczynające się od małej litery oznaczają atomy, atomami są również sekwencje symboli są oraz cokolwiek w apostrofach: atom quark i486 -*-??? 'Atom' 'an atom' d) listy to uporządkowany ciąg elementów zawartych między nawiasami kwadratowymi i rozdzielonych przecinkami, np.: [1,2,3,5]. Szczególnym przypadkiem jest pusta lista, oznaczana przy pomocy []. Każda niepusta lista skonstruowana jest z głowy (pierwszego elementu) i ogona (listy pozostałych elementów, potencjalnie pustej). Konstrukcja listy z programowania{c91e19c4-8b08-4d63-9b7c-0913aab2a7ce} 3
4 głowy H i ogona T ma postać [H T]. Zatem lista [1,2,3] może być zapisana na jeden z równoważnych sposobów: [1,2,3] [1 [ 2,3 ]] [1 [2 [3]]] [1 [2 [3 []]]] Przykładowy predykat, wyznaczający długość listy ma postać: dlugosc( [],0 ). dlugosc( [_ T],L ) :- dlugosc( T,P ), L is P + 1. czyli długością pustej listy jest zero, zaś lista niepusta ma długość o jeden większą niż długość jej ogona. _ oznacza, że głowy listy nie wiążemy z żadną zmienną logiczną. Kolejny przykład dołączenie jednej listy na koniec drugiej: dolacz( [],L,L ). dolacz( [H T],L,[H X] ) :- dolacz( T,L,X ). Lista L dołączona do pustej listy daje listę L. Lista L dołączona na koniec listy składającej się z głowy H i ogona T tworzy listę zbudowaną z głowy H i ogona X będącego wynikiem dołączenia na koniec T listy L. Kolejny przykład sprawdzenie, czy X jest równy jednemu z elementów listy: nalezy( X,[X _] ). nalezy( X,[H T] ) :- nalezy( X,T ). e) struktury to nazwany zbiór o stałej liczbie argumentów o następującej składni: <name>(<arg>1,...<arg>n) przykłady struktur: 5. Operatory data(grudzien, 25, "swieto") pierwiastek(wodor, sklad(1,0)) lot(londyn, nowy_york, 12.05, 17.55) W prologu możemy łatwo uzyskać listę wszystkich 87 operatorów wraz z informacją o ich priorytecie i łączności. Wystarczy wykonać następujące zapytanie: gdzie: current_op(pierwszenstwo, Typ, Nazwa). Pierwszenstwo liczba całkowita z zakresu , wyższa liczba oznacza wyższy priorytet, programowania{c91e19c4-8b08-4d63-9b7c-0913aab2a7ce} 4
5 Typ określa ilu argumentowy jest operator i czy jest łączny. Ponadto w przypadku operatorów dwuargumentowych jeśli jest łączny to czy prawo czy lewo stronnie. Np. yfx to operator dwuargumentowy (infiksowy) lewostronnie łączny gdzie: o f miejsce operatora, o y strona od której zostanie rozpoczęte wykonywanie wyrażenia, o x brak łączności z tej strony. Operator to symbol operatora. Jeśli chcemy np. zapytać o wszystkie operatory prefixowe łączne (jednoargumentowe) należy wykonać zapytanie: current_op(pierwszenstwo, fy, Nazwa). W szczególności, znając symbol operatora możemy uzyskać dodatkowe informacje, np: 6. Komentarze current_op(pierwszenstwo, Typ, :-). Komentarze w PROLOG u zawarte są pomiędzy /* i */ (jak w C) lub pomiędzy % a końcem linii, np.: p(1). /* to jest komentarz */ p(2). % to tez jest komentarz 7. Predykat nawrotu fail/0 oraz operator odcięcia! Wykonanie predykatu fail zawsze kończy się niepowodzeniem i wymusza nawrót sterowania. Operator odcięcia! dzieli klauzulę na dwie części i nie pozwala ma ponowne uzgadnianie (nawracanie) do lewej części. rozne(x, Y) :- X=Y,!, fail. rozne(_, _). Rozważmy powyższy przykład, operator odcięcia nie pozwala na Jeśli zmienne X i Y będą różne to pierwszy pod-cel nie będzie spełniony a zatem nastąpi sprawdzenie dopasowania kolejnego predykatu, który dla dowolnych dwóch zmiennych zawsze jest spełniony. Odpowiedź będzie poprawna Yes. W przypadku kiedy zmienne będą różne pierwszy pod-cel będzie spełniony ale drugi zawsze będzie niespełniony, Jednak operator odcięcia nie pozwoli na powrót do lewej części klauzuli i na ponowne uzgodnienie predykatu. 8. Programowanie z ograniczeniami Aby wykorzystać programowanie z ograniczeniami, należy zaimportować bibliotekę ic, przy pomocy polecenia (podanego na początku programu): :- lib(ic). programowania{c91e19c4-8b08-4d63-9b7c-0913aab2a7ce} 5
6 Typowe rozwiązanie problemu przy użyciu CLP ma postać: rozwiaz(zmienne):- wczytaj_dane(dane), ustaw_ograniczenia(dane,zmienne), labeling(zmienne). gdzie ustaw_ograniczenia/2 definiuje model problemu. Predykat labeling/1 próbuje znaleźć rozwiązania sprawdzając wszystkie podstawienia dla zmiennych. Rozważmy następujący problem, w którym mamy 8 zmiennych: S, E, N, D, M, O, R, Y, każda z nich oznacza inną cyfrę, oraz spełniona jest równość: S E N D + M O R E = M O N E Y Rozwiązanie tego problemu będzie miało postać: :- lib(ic). model(zmienne) :- Zmienne = [S,E,N,D,M,O,R,Y], Zmienne :: 0..9, alldifferent(zmienne), S #\= 0, M #\= 0, 1000 * S * E + 10 * N + D * M * O + 10 * R + E #= * M * O * N + 10 * E + Y. rozwiaz(zmienne) :- model(zmienne), labeling(zmienne). Predykat model najpierw tworzy listę zmiennych w naszym problemie. W drugim kroku przypisujemy wszystkim zmiennym (przy pomocy predykatu ::/2) jako domenę zbiór liczb naturalnych z przedziału <0, 9>. Aby stworzyć domenę będącą podzbiorem liczb rzeczywistych, przedział 0..9 należałoby zmienić na lub użyć predykatu $::/2. W następnej linii określamy, że wszystkie zmienne muszą być różne. Na koniec stwierdzamy że ani S ani M nie mogą być równe zero (ograniczenia wyrażone operatorami porównania tworzy się dodając znak # przed operatorem) oraz opisujemy nasze równanie. 9. Literatura ECL i PS e A Tutorial Introduction ( ECL i PS e User Manual ( programowania{c91e19c4-8b08-4d63-9b7c-0913aab2a7ce} 6
Projekt 4: Programowanie w logice
Języki Programowania Projekt 4: Programowanie w logice Środowisko ECL i PS e W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem http://eclipseclp.org/. Po zainstalowaniu
Bardziej szczegółowoProgramowanie w Logice
Programowanie w Logice Działanie Prologu Przemysław Kobylański na podstawie [CM2003] Składnia Programy Prologu składają się z termów. Term to stała, zmienna lub struktura (term złożony). Term zapisuje
Bardziej szczegółowoProgramowanie w logice
Programowanie w logice PROLOG cz.1 PROLOG język wysokiego poziomu Powstał w 1972 na Uniwersytecie w Marsylii (Francja) w zespole A.Colmerauer a i F.Roussel a PROgrammation en LOGique, PROgramming in LOGic,
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ółowoProgramowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Bardziej szczegółowoĆwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych
1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych i dynamicznych, symulacji procesów, przekształceń i obliczeń symbolicznych
Bardziej szczegółowoProgramowanie w logice Prolog 2
Programowanie w logice Prolog 2 Listy Lista to uporządkowany ciąg elementów. Elementami listy mogą być dowolne terminy: stałe, zmienne i struktury W Prologu listę zapisujemy następująco: Przykłady [element1,element2,,elementn]
Bardziej szczegółowoPROLOG. Prolog. Programowanie, W.F. Clocksin, C.S. Mellish, HELION Prolog, język sztucznej inteligencji, Eugeniusz Gatnar, Katarzyna Stąpor, Wyd.
PROLOG 1. Informacje wstępne Podczas zajęć korzystamy z darmowej wersji interpretera Prologu SWI-Prolog dostępnego ze strony: www.swi-prolog.org 2. Literatura i materiały Prolog. Programowanie, W.F. Clocksin,
Bardziej szczegółowoWykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. 1 Logika Klasyczna obejmuje dwie teorie:
Bardziej szczegółowoProgramowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Bardziej szczegółowoProgramowanie w logice
Wydział Matematyki UŁ 14 marca 2007 Plan prezentacji 1 Składnia Termy Stałe Zmienne Struktury 2 Własny operator Przeciążanie operatorów 3 Arytmetyczne i logiczne predykaty systemowe 4 Do zapamiętania Termy
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ółowoWyrażenia arytmetyczne
Wyrażenia arytmetyczne Do budowania wyrażeń w języku C używa się operatorów jednoargumentowych oraz dwuargumentowych. Podstawowy operator jednoargumentowy to operator zmiany znaku (-), który jest prawostronnie
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ół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, 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ół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ółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoMathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Bardziej szczegółowo/*W tym miejscu funkcja system wywołuje systemową komendę PAUSE tj.czeka tak długo, aż zostanie wciśnięty dowolny znak z
Języki i metodyka Programowania Zajęcia 1. 1. Spróbujmy uruchomić pierwszy program. Otwórzmy okno dosowe (polecenie cmd) i po przejściu do katalogu projektu uruchamiamy z linii poleceń nasz program wielokrotnie.
Bardziej szczegółowoProgramowanie w Logice Środowisko programowania i dialog z systemem (Lista 0)
Programowanie w Logice Środowisko programowania i dialog z systemem (Lista 0) Przemysław Kobylański Wstęp Podczas laboratorium będziemy korzystać z systemu SWI-Prolog. Należy go ściągnąć i zainstalować
Bardziej szczegółowoParadygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
Bardziej szczegółowoPodstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16
M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16
Bardziej szczegółowoI. Podstawowe pojęcia i oznaczenia logiczne i mnogościowe. Elementy teorii liczb rzeczywistych.
I. Podstawowe pojęcia i oznaczenia logiczne i mnogościowe. Elementy teorii liczb rzeczywistych. 1. Elementy logiki matematycznej. 1.1. Rachunek zdań. Definicja 1.1. Zdaniem logicznym nazywamy zdanie gramatyczne
Bardziej szczegółowoPODSTAWY SZTUCZNEJ INTELIGENCJI
Katedra Informatyki Stosowanej Politechnika Łódzka PODSTAWY SZTUCZNEJ INTELIGENCJI Laboratorium PROGRAMOWANIE SYSTEMÓW EKSPERTOWYCH Opracowanie: Dr hab. inŝ. Jacek Kucharski Dr inŝ. Piotr Urbanek Cel ćwiczenia
Bardziej szczegółowoSemantyka rachunku predykatów
Relacje Interpretacja Wartość Spełnialność Logika obliczeniowa Instytut Informatyki Relacje Interpretacja Wartość Plan Plan Relacje O co chodzi? Znaczenie w logice Relacje 3 Interpretacja i wartościowanie
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html
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ółowoJęzyki programowania deklaratywnego
Katedra Inżynierii Wiedzy laborki 14 Języki deklaratywne Główne różnice między paradygmatem deklaratywnym a imperatywnym Omów główne cechy paradygmatu programowania w logice na przykładzie Prologa Główne
Bardziej szczegółowoMATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI
MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI Program wykładów: dr inż. Barbara GŁUT Wstęp do logiki klasycznej: rachunek zdań, rachunek predykatów. Elementy semantyki. Podstawy teorii mnogości
Bardziej szczegółowoKwerendy (zapytania) wybierające
Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia
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ół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ół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ółowoRys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:
1. QT creator, pierwsze kroki. Qt Creator wieloplatformowe środowisko programistyczne dla języków C++, JavaScript oraz QML, będące częścią SDK dla biblioteki Qt. Zawiera w sobie graficzny interfejs dla
Bardziej szczegółowoPrzykłady zdań w matematyce. Jeśli a 2 + b 2 = c 2, to trójkąt o bokach długości a, b, c jest prostokątny (a, b, c oznaczają dane liczby dodatnie),
Elementy logiki 1 Przykłady zdań w matematyce Zdania prawdziwe: 1 3 + 1 6 = 1 2, 3 6, 2 Q, Jeśli x = 1, to x 2 = 1 (x oznacza daną liczbę rzeczywistą), Jeśli a 2 + b 2 = c 2, to trójkąt o bokach długości
Bardziej szczegółowoProgramowanie w Logice Struktury danych (Lista 2)
Programowanie w Logice Struktury danych (Lista 2) Przemysław Kobylański Wstęp Struktury danych wyraża się w Prologu w postaci termów, tj. symbolicznych wyrażeń. Dotychczas poznaliśmy proste termy takie
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ółowoOdwrotna Notacja Polska
Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).
Bardziej szczegółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
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ółowoI. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)
I. WSTĘP Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych) Algorytm - sposób na osiągnięcie celu w pewnych ograniczonych krokach. Program komputerowy realizuje zawsze algorytm.
Bardziej szczegółowoJAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Bardziej szczegółowoWprowadzenie do Prologa
Wprowadzenie do Prologa Rozdział 1 Tutorial Introduction Maciej Gapiński Dominika Wałęga Spis treści 1. Podstawowe informacje 2. Obiekty i relacje 3. Reguły 4. Fakty 5. Zapytania 6. Zmienne i stałe Podstawowe
Bardziej szczegółowoProgramowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Bardziej szczegółowoUONET+ moduł Dziennik
UONET+ moduł Dziennik Dokumentowanie lekcji w systemie UONET+ W systemie UONET+ bieżące lekcje rejestruje się i dokumentuje w module Dziennik w widoku Dziennik/ Lekcja. Dokumentowanie lekcji w tym widoku,
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ółowoInstalacja i opis podstawowych funkcji programu Dev-C++
Instalacja i opis podstawowych funkcji programu Dev-C++ Przed rozpoczęciem programowania musimy zainstalować i przygotować kompilator. Spośród wielu dostępnych kompilatorów polecam aplikację Dev-C++, ze
Bardziej szczegółowoOperatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo
Operatory w C++ Operatory arytmetyczne + dodawanie - odejmowanie * mnożenie / dzielenie % modulo Operatory relacyjne (porównania) < mniejszy niż większy niż >= większy lub równy
Bardziej szczegółowoElementy logiki matematycznej
Elementy logiki matematycznej Przedmiotem logiki matematycznej jest badanie tzw. wyrażeń logicznych oraz metod rozumowania i sposobów dowodzenia używanych w matematyce, a także w innych dziedzinach, w
Bardziej szczegółowoWprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2
Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone
Bardziej szczegółowoMentorGraphics ModelSim
MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu
Bardziej szczegółowoProgramowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!
Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po
Bardziej szczegółowo0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.
Wykłady z Analizy rzeczywistej i zespolonej w Matematyce stosowanej Wykład ELEMENTY LOGIKI ALGEBRA BOOLE A Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek
Bardziej szczegółowoWprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.1 Elementy języka Prolog: fakty i zapytania. Przemysław Kobylański
Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.1 Elementy języka Prolog: fakty i zapytania Przemysław Kobylański Część I Wprowadzenie 1 Stałe i zmienne Jedynym dostępnym w języku Prolog rodzajem
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ółowoJęzyki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Bardziej szczegółowoDr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
Bardziej szczegółowoLaboratorium przedmiotu Paradygmaty Programowania
Laboratorium przedmiotu Paradygmaty Programowania Laboratorium 9 Prolog podstawy 1. Podstawy Prologu Programowanie w Prologu polega na deklarowaniu: Faktów dotyczących pewnych obiektów z analizowanego
Bardziej szczegółowo1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
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ół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ół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ółowoPodstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.
Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane
Bardziej szczegółowoWYRAŻENIA ALGEBRAICZNE
WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.
Bardziej szczegółowoObliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
Bardziej szczegółowoC++ wprowadzanie zmiennych
C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym
Bardziej szczegółowoProlog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek
Prolog (Pro-Logic) Programowanie w Logice Dr inż. Piotr Urbanek Do czego służy ProLog? Używany w wielu systemach informatycznych związanych z: logiką matematyczną (automatyczne dowodzenie twierdzeń); przetwarzaniem
Bardziej szczegółowoCel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)
W odcinku III tworzyliśmy paski narzędzi. Umieszczaliśmy na panelach ikony, reprezentujące czynności (charakterystyczne dla edytorów tekstu). Musimy teraz przypisać każdemu przyciskowi jego czynność (wycinanie,
Bardziej szczegółowoProgramowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer
Bardziej szczegółowoMake jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików.
Spis treści 1 Krótkie wprowadzenie do makefile'a 1.1 Typowa reguła programu make 1.2 Zmienne w pliku Makefile 1.3 Zmienne standardowe 1.4 Zmienne automatyczne 1.5 Więcej o regułach 1.5.1 Reguły z wzorcem
Bardziej szczegółowodokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika
asix 4 Edytor Bazy Zmiennych Podręcznik użytkownika asix 4 dokumentacja Edytor Bazy Zmiennych ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście znaki firmowe
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Bardziej szczegółowoMikrokontroler ATmega32. Język symboliczny
Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami
Bardziej szczegółowoAutor: dr inż. Katarzyna Rudnik
Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe
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ółowoDefinicje wyższego poziomu
Definicje wyższego poziomu Interpreter Scheme-a nie będzie narzekad w przypadku wystąpienia niezdefionowanej zmiennej w ciele wyrażenia lambda dopóki nie będzie zastosowana Przykład braku informacji o
Bardziej szczegółowoJęzyk programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.
PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne
Bardziej szczegółowoMetody numeryczne Laboratorium 2
Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania
Bardziej szczegółowoLaboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Bardziej szczegółowoECDL Podstawy programowania Sylabus - wersja 1.0
ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy
Bardziej szczegółowoPrzykład wykorzystania dodatku SOLVER 1 w arkuszu Excel do rozwiązywania zadań programowania matematycznego
Przykład wykorzystania dodatku SOLVER 1 w arkuszu Ecel do rozwiązywania zadań programowania matematycznego Firma produkująca samochody zaciągnęła kredyt inwestycyjny w wysokości mln zł na zainstalowanie
Bardziej szczegółowoUzupełnij pola tabeli zgodnie z przykładem poniżej,
1. Wykonaj bazę danych biblioteki szkolnej, Otwórz MS Access a następnie z menu plik wybierz przycisk nowy, w oknie nowy plik wybieramy pusta baza danych nadaj jej nazwę Biblioteka i wybierz miejsce w
Bardziej szczegółowoLiczby zespolone. x + 2 = 0.
Liczby zespolone 1 Wiadomości wstępne Rozważmy równanie wielomianowe postaci x + 2 = 0. Współczynniki wielomianu stojącego po lewej stronie są liczbami całkowitymi i jedyny pierwiastek x = 2 jest liczbą
Bardziej szczegółowoProgramowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Bardziej szczegółowoLOGIKA I TEORIA ZBIORÓW
LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja
Bardziej szczegółowoMakropolecenia w Excelu
Makropolecenia w Excelu Trochę teorii Makropolecenie w skrócie nazywane makro ma za zadanie automatyczne wykonanie powtarzających się po sobie określonych czynności. Na przykładzie arkusza kalkulacyjnego
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla
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ółowoDeklarowania faktów dotyczących obiektów i związków między nimi. Definiowania reguł dotyczących obiektów i związków między nimi.
Prolog Prolog Programowanie w Prologu składa się z: Deklarowania faktów dotyczących obiektów i związków między nimi. Definiowania reguł dotyczących obiektów i związków między nimi. Zadawania zapytao o
Bardziej szczegółowoInstalacja
Wprowadzenie Scilab pojawił się w Internecie po raz pierwszy, jako program darmowy, w roku 1994 Od 1990 roku pracowało nad nim 5 naukowców z instytutu INRIA (Francuski Narodowy Instytut Badań w Dziedzinie
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ółowoProgramowanie w logice Prolog 1
Programowanie w logice Prolog 1 Prolog - zastosowania Zastosowania: relacyjne bazy danych. przetwarzanie języka naturalnego. logistyka. analiza struktur biochemicznych. wspomaganie projektowania. sztuczna
Bardziej szczegółowoPrzykład rozwiązywania problemu w programie DSS1OPT
1. Założenia Przykład rozwiązywania problemu w programie DSS1OPT Krzysztof Fleszar W niniejszym przykładzie zakładam, że program DSS1OPT jest zainstalowany w katalogu oznaczanym w dalszej części .
Bardziej szczegółowoJak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Bardziej szczegółowoInstalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory
Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory Poniższa instrukcja opisuje sposób zdalnej instalacji oprogramowania Webroot SecureAnywhere w środowiskach wykorzystujących usługę Active
Bardziej szczegółowo