Programowanie w Logice Wejście i wyjście (Lista 5)

Podobne dokumenty
Programowanie w Logice Przykłady programów. Przemysław Kobylański

Drgania własne ramy wersja komputerowa, Wpływ dodatkowej podpory ( sprężyny ) na częstości drgań własnych i ich postacie

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Programowanie w Logice

Bash - wprowadzenie. Bash - wprowadzenie 1/39

DOKUMENTACJA WYPEŁNIANIA DEKLARACJI ELEKTRONICZNYCH ONLINE

imię kod ulica prześlij Dzięki formularzom możliwe jest pobieranie danych, a nie tylko ich wyświetlanie.

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Języki formalne i techniki translacji

Wykład 5 Listy leniwe

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych

Sekcja B. Okoliczności powodujące konieczność złożenia deklaracji.

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

TWORZENIE PREZENTACJI MULTIMEDIALNYCH W PROGRAMIE MICROSOFT POWERPOINT

Projektowanie systemów informatycznych

PSO matematyka I gimnazjum Szczegółowe wymagania edukacyjne na poszczególne oceny

Writer edytor tekstowy.

Sposoby sprawdzania i oceniania osiągnięć edukacyjnych uczniów. Mówienie (opowiadanie ustne- twórcze i odtwórcze);

Instrukcja korzystania z serwisu Geomelioportal.pl. - Strona 1/12 -

Wstęp do Informatyki dla bioinformatyków

MEGAANALIZA. Instrukcja korzystania z raportów Megaanalizy

Instrukcja obsługi Lokalizator Orange

Skróty klawiszowe Window-Eyes

Podstawy Programowania Podstawowa składnia języka C++

Instrukcja serwisu e-wyniki dla Pacjenta

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Podstawowe I/O Liczby

Programowanie w logice Prolog 2

Podstawy programowania w języku C i C++

Wymagania edukacyjne z przedmiotu Pracownia Baz danych dla klasy 3iA Nauczyciel: Mariusz Walendzewicz Rok szkolny: 2015/2016

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

INFORMACJA o ELEKTRONICZNEJ LEGITYMACJI STUDENCKIEJ

REGULAMIN I MIĘDZYSZKOLNEGO KONKURSU ORTOGRAFICZNEGO DLA UCZNIÓW KLAS GIMNAZJALNYCH

Programowanie w Logice

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Podstawy programowania skrót z wykładów:

Pliki wykład 2. Dorota Pylak

Prolog Wejście / wyjście r

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ Arkusz I. Czas pracy: 60 minut Liczba punktów do uzyskania: 15

Tworzenie kwerend. Nazwisko Imię Nr indeksu Ocena

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Symulacja komputerowa i obróbka części 4 na tokarce sterowanej numerycznie

Waga sklepowa samoobsługowa PLUS 31 S, PLUS 32, PLUS 33

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

CZERWIEC MATEMATYKA - poziom podstawowy. Czas pracy: 170 minut. Instrukcja dla zdającego

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

LibreOffice Calc VBA

WYDAWNICTWA INFORMACYJNE - konspekt lekcji bibliotecznej dla klasy v szkoły podstawowej

Instrukcja serwisu e-wyniki dla Kontrahenta

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

while(wyrażenie) instrukcja

Optymalne przydzielanie adresów IP. Ograniczenia adresowania IP z podziałem na klasy

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Szczegółowe warunki konkursu ofert: Realizacja zadań z zakresu redukcji szkód narkotykowych oraz profilaktyki zakażeń HIV i STI.

Podstawy Kompilatorów

Skrypty startowe. Tryb interaktywny tryb logowania: nie logowanie: Tryb nieinteraktywny

Algorytmy z powrotami. Algorytm minimax

System operacyjny Linux

Przewodnik po e-sklepie

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Pliki wykład 2. Dorota Pylak

Jerzy Nawrocki, Wprowadzenie do informatyki

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

System operacyjny Linux

Parametryzacja modeli części w Technologii Synchronicznej

WYMAGANIA EDUKACYJNE Z PRZEDMIOTU SIECI KOMPUTEROWE. dla klasy 2

Podstawy Programowania C++

"Pies" P i e s \0. Prawidłowy zapis wymaga wykorzystania funkcji strcpy() z pliku nagłówkowego string.h: char txt[10]; strcpy(txt, Pies );

REGULAMIN PÓŁKOLONII LETNICH ORGANIZOWANYCH PRZEZ IQ-POINT SZKOŁA TENISA GRZEGORZ JEŻ W NOWYM SĄCZU r.

MapInfo Professional - 4

Środowisko programisty Zestaw 7

WYMAGANIA EDUKACYJNE Z TECHNIKI:

Przekierowanie wejścia wyjścia:

Opieka i edukacja w żłobkach dzieci urodzonych w latach w roku 2014

Programowanie w językach

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Wstęp. #define include include include include include include

Opieka i edukacja w żłobkach dzieci urodzonych w latach w roku 2013

Instrukcja obsługi plusbank24

Wykonanie i dostawa artykułów promocyjnych Numer ogłoszenia: ; data zamieszczenia: OGŁOSZENIE O ZAMÓWIENIU - dostawy

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Gra planszowa dla 2-5 osób

Narzędzia informatyczne w językoznawstwie

Nowe funkcje w programie Symfonia e-dokumenty w wersji Spis treści:

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

I. 1) NAZWA I ADRES: Szkoła Podstawowa im. Stefana Żeromskiego w Bielowicach, Bielowice 56,

( ) σ v. Adam Bodnar: Wytrzymałość Materiałów. Analiza płaskiego stanu naprężenia.

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

DACHOWYCH. odwiedź nas. Parotec sp. z o.o. schemat techniczny. etapy montażu. PRODUCENT MEMBRAN I AKCESORIÓW

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Wstęp do programowania

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Języki programowania imperatywnego

I. 1) NAZWA I ADRES: Instytut Transportu Samochodowego, ul. Jagiellońska 80,

Transkrypt:

Prgramwanie w Lgice Wejście i wyjście (Lista 5) Przemysław Kbylański Wstęp Aby rzłżyć term na funktr i listę jeg argumentów należy użyć predykatu =.. w następujący spsób Term =.. [Funktr ListaArgumentów] Stałe traktwane są jak funktry zer-argumentwe, natmiast jeśli term jest zmienną, t nie da się g rzłżyć:?- f(a, b) =.. [F A]. F = f, A = [a, b].?- f(a, b) =.. X. X = [f, a, b].?- X =.. [f, 1, a]. X = f(1, a).?- a =.. X. X = [a].?- X =.. L. ERROR: =../2: Arguments are nt sufficiently instantiated?- 10 =.. X. X = [10].?- 2.5 =.. X. X = [2.5]. 1

Zadania Zadanie 1 (5 pkt) Pniżej przedstawin gramatykę BNF języka Imperatr: PROGRAM ::= PROGRAM ::= INSTRUKCJA ; PROGRAM INSTRUKCJA ::= IDENTYFIKATOR := WYRAŻENIE INSTRUKCJA ::= read IDENTYFIKATOR INSTRUKCJA ::= write WYRAŻENIE INSTRUKCJA ::= if WARUNEK then PROGRAM fi INSTRUKCJA ::= if WARUNEK then PROGRAM else PROGRAM fi INSTRUKCJA ::= while WARUNEK d PROGRAM d WYRAŻENIE ::= SKŁADNIK + WYRAŻENIE WYRAŻENIE ::= SKŁADNIK - WYRAŻENIE WYRAŻENIE ::= SKŁADNIK SKŁADNIK ::= CZYNNIK * SKŁADNIK SKŁADNIK ::= CZYNNIK / SKŁADNIK SKŁADNIK ::= CZYNNIK md SKŁADNIK SKŁADNIK ::= CZYNNIK CZYNNIK ::= IDENTYFIKATOR CZYNNIK ::= LICZBA_NATURALNA CZYNNIK ::= ( WYRAŻENIE ) WARUNEK ::= KONIUNKCJA r WARUNEK WARUNEK ::= KONIUNKCJA KONIUNKCJA ::= PROSTY and KONIUNKCJA KONIUNKCJA ::= PROSTY PROSTY ::= WYRAŻENIE = WYRAŻENIE PROSTY ::= WYRAŻENIE /= WYRAŻENIE PROSTY ::= WYRAŻENIE < WYRAŻENIE PROSTY ::= WYRAŻENIE > WYRAŻENIE PROSTY ::= WYRAŻENIE >= WYRAŻENIE PROSTY ::= WYRAŻENIE =< WYRAŻENIE PROSTY ::= ( WARUNEK ) Identyfikatry są słwami złżnymi z wielkich liter. Napisz predykat scanner(strumień, Tkeny), który czyta strumień znaków i zamienia g na listę tkenów, przy czym tkeny pwinny mieć następującą pstać: 2

key(słowo_kluczowe) gdzie SŁOWO_KLUCZOWE jest jednym ze słów kluczwych języka Imperatr: read, write, if, then, else, fi, while, d, d, and, r, md; int(liczba_naturalna) gdzie LICZBA_NATURALNA jest, jak sama nazwa wskazuje, liczbą naturalną; id(id) gdzie ID jest nazwą zmiennej będącą słwem złżnym z wielkich liter; sep(separator) gdzie SEPARATOR jest jednym z separatrów języka Imperatr: ;, +, -, *, / (, ), <, >, =<, >=, :=, =, /=. Przykład Załóżmy, że w pliku ex1.prg znajduje się następujący tekst: read N; SUM := 0; while N > 0 d SUM := SUM + N; N := N - 1; d; write SUM; Przykład wyknania skanwania na pwyższym pliku:?- pen( ex1.prg, read, X), scanner(x, Y), clse(x), write(y). [key(read),id(n),sep(;),id(sum),sep(:=),int(0),sep(;),key(while), id(n),sep(>),int(0),key(d),id(sum),sep(:=),id(sum),sep(+),id(n), sep(;),id(n),sep(:=),id(n),sep(-),int(1),sep(;),key(d),sep(;), key(write),id(sum),sep(;)] X = <stream>(0x7f8f0b61e0c0), Y = [key(read), id( N ), sep(;), id( SUM ), sep(:=), int(0), sep(;), key(while), id(...)...]. Uwaga T zadanie trzeba rzwiązać, b na następnych listach będziemy z nieg krzystać. Zadanie 2 (3 pkt) Będziemy ryswać szachwnice złżne z ciemnych i jasnych pól: ::::: ple ple ::::: ciemne jasne 3

Na plach szachwnicy mgą być umieszczne hetmany: :###: ple ### ple :###: ciemne ### jasne Napisz predykat bard(l), któreg parametrem jest lista liczb L. Rysuje n szachwnice N wierszach i N klumnach, gdzie N jest długścią listy L. Liczba na i-tej pzycji listy L, gdzie i {1, 2,..., N}, jest numerem wiersza (licznym d dłu planszy), w którym sti hetman ustawiny w i-tej klumnie. Uwaga Pamiętaj, że ple w lewym dlnym rgu szachwnicy jest zawsze ciemne. Przykład Na rysunku 1 przedstawin przykład użycia predykatu bard/1. W przykładzie tym wykrzystan prezentwany na wykładzie predykat hetmany/2, który znajduje ustawienie niebijących się hetmanów. Zadanie 3* (2 pkt) Na prlgwe termy mżna patrzeć jak na drzewa. Liśćmi takieg drzew są stałe i zmienne występujące w nim, natmiast wierzchłki wewnętrzne dpwiadają funktrm. Na rysunku 2 przedstawin w pstaci drzewa przykładwy term f1(f2(a2, a3), a1, f3(a4)). Obchdzenie drzewa reprezentująceg term rzpczyna się w jeg krzeniu. D pruszania się p drzewie służą następujące plecenia: in przejście z bieżąceg wierzchłka d pierwszeg jeg syna, ut pwrót d jca bieżąceg wierzchłka, next przejście d następneg brata, prev przejście d pprzednieg brata. Pwyższe plecenia przedstawin na rysunku 3. Plecenia będziemy zapisywać krócej pierwszą literą ich nazwy. Na rysunku 4 przedstawin przykładwe bejście wszystkich wierzchłków drzewa z rysunku 2 w klejnści wyknywania pleceń: iinnni. Napisz predykat brwse(term), który pzwala bchdzić drzew dpwiadające termwi Term. Za każdym razem gdy jesteśmy w wierzchłku, drukwany jest term w nim zakrzeniny (drukuj tak aby stałe nazwach rzpczynających się wielkimi literami były ujęte w cudzysłów). 4

?- hetmany(12, X), bard(x). ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: :###: ::::: :###: ::::: ::::: ::::: ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: :###: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: ::::: ::::: ::::: ::::: ### ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: :###: ::::: ::::: ::::: ::::: ::::: X = [1, 3, 5, 8, 10, 12, 6, 11, 2...] Rysunek 1: Przykład szachwnicy dla N = 12. f1 f2 a1 f3 a2 a3 a4 Rysunek 2: Term f1(f2(a2, a3), a1, f3(a4)). 5

funktr in ut next ut pierwszy argument prev drugi argument Rysunek 3: Plecenia d pruszania się p drzewie. i f1 a2 i f2 n n a3 a1 n i f3 a4 Rysunek 4: Obchdzenie drzewa zgdnie z pleceniami: iinnni. 6

P wydrukwaniu termu predykat pwinien czytać stałą dpwiadającą pierwszej literze plecenia i przejść w drzewie dalej zgdnie z tym pleceniem. Jeśli wpisan złą stałą alb nie mżna wyknać daneg plecenia (np. i gdy jesteśmy w liściu), t pzstajemy w bieżącym wierzchłku i jeszcze raz drukujemy zakrzeniny w nim term. Przykład Ot przykładwy dialg jak w sytuacji przedstawinej na rysunku 4:?- brwse(f1(f2(a2, a3), a1, f3(a4))). f1(f2(a2,a3),a1,f3(a4)) cmmand: i. f2(a2,a3) cmmand: : i. a2 cmmand: : n. a3 f2(a2,a3) cmmand: : n. a1 cmmand: : n. f3(a4) cmmand: : i. a4 f3(a4) f1(f2(a2,a3),a1,f3(a4)) true. 7