Sosnowiec, dn... Imię i nazwisko...

Podobne dokumenty
Wprowadzenie do OpenMP

Podstawy XML-a. Zaawansowane techniki programowania

TEMAT : KLASY POLIMORFIZM

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 9. Wojciech Macyna

Plik klasy. h deklaracje klas

Zaawansowane aplikacje WWW - laboratorium

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy 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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Część 4 życie programu

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

I - Microsoft Visual Studio C++

Kontrola przebiegu programu

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Wprowadzenie do programowania i programowanie obiektowe

C++ wprowadzanie zmiennych

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Projektowanie klas c.d. Projektowanie klas przykład

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

Wstęp do Programowania 2

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Wstęp do Informatyki

Techniki Programowania wskaźniki 2

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Programowanie Współbieżne

Wstęp do programowania

dr inż. Jarosław Forenc

Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm

Wyjątki (exceptions)

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

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

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Technologie cyfrowe semestr letni 2018/2019

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Technologie cyfrowe semestr letni 2018/2019

Programowanie Obiektowew języku C++ Zadania L4

#include "stdafx.h" #include <iostream> #include "windows.h" using namespace std;

Informatyka. Wy-08 Klasy. mgr inż. Krzysztof Kołodziejczyk

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

Środowisko programistyczne GEANT4

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Biblioteki dzielone, XML i readline

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach.

Rekurencja. Przygotowała: Agnieszka Reiter

Programowanie w językach

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

JAVA W SUPER EXPRESOWEJ PIGUŁCE

#line #endif #ifndef #pragma

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

Signals + Threads: Qt vs. Boost

Pobieranie argumentów wiersza polecenia

Pytania sprawdzające wiedzę z programowania C++

Wprowadzenie do języka Java

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

Algorytmy z powrotami. Algorytm minimax

Programowanie obiektowe

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Język C++ wykład VIII

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

tablica: dane_liczbowe

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Struktura pliku projektu Console Application

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

Składnia C++ Programowanie Obiektowe, część 3 Mateusz Cicheński

Mechanizm dziedziczenia

Szablon klasy std::vector

3. Instrukcje warunkowe

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Operacje wejścia/wyjścia (odsłona druga) - pliki

Wstęp do programowania

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Programowanie - wykład 4

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

Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI

Wstęp do programowania

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Transkrypt:

Sosnowiec, dn.... Imię i nazwisko... Test znajomości zaawansowanch technik programowania składa się z 10 ptań. Dla każdego ptania zaproponowano czter odpowiedzi, z którch tlko jedna jest prawidłowa. Na ptania odpowiadam wpisując literę A, B, C lub D w odpowiedniej kratce na ostatniej stronie. Prolog Ptanie 1 Dan jest program: sprawdź(słowo) :- dobre(słowo, układ(0, 0)). dobre([], układ(0, 0)). dobre([a T], układ(0, 0)) :- dobre(t, układ(0, 0)). dobre([b T], układ(0, 0)) :- dobre(t, układ(0, 0)). dobre([c T], układ(0, 0)) :- dobre(t, układ(0, 2)). dobre([c T], układ(0, 2)) :- dobre(t, układ(0, 0)). dobre([d T], układ(0, 0)) :- dobre(t, układ(2, 0)). dobre([d T], układ(2, 0)) :- dobre(t, układ(0, 0)). dobre([e,e T], układ(0, 0)) :- dobre(t, układ(0, 0)). dobre([e,e T], układ(0, 2)) :- dobre(t, układ(0, 2)). dobre([e,e T], układ(2, 0)) :- dobre(t, układ(2, 0)). dobre([e,a T], układ(0, 0)) :- dobre(t, układ(0, 0)). dobre([e,b T], układ(0, 0)) :- dobre(t, układ(0, 0)). dobre([e,c T], układ(2, 0)) :- dobre(t, układ(0, 0)). dobre([e,d T], układ(0, 2)) :- dobre(t, układ(0, 0)). Jaki będzie wnik zaptań: (i) sprawdź([b,d,e,c,a]). (ii) sprawdź([e,d,b,c,a]).? (A) (i) false (ii) false (B) (i) false (ii) true (C) (i) true (ii) false (D) (i) true (ii) true Ptanie 2 Wbudowan predkat append, sprawdzając cz trzecia tablica jest złączeniem dwóch pierwszch, zdefiniowano następująco: append([], L, L). append([x L1, L2, [X L3]) :- append(l1, L2, L3). Jaki będzie wnik zaptania setof(a+b, append(a,b,[1,2,3]),z).? (A) Z = [[]+[1, 2, 3], [1]+[2, 3], [1, 2]+[3], [1, 2, 3]+[]]. (B) Z = [[3], [4], [5]]. (C) Z = [3, 4, 5]. (D) Z = [[1, 2, 3], [3, 3], [1, 5], [1, 2, 3]]. Haskell Ptanie 3 Dana jest funkcja: f x = takewhile ((x>=).(^)) [0..] 1

Jaka będzie wartość wrażenia f 9 2? (A) parse error on input `[0..]' (B) No instance for ((x>=).(^)) (C) [2,3,4,5,6,7,8,9] (D) [0,1,2,3] Ptanie 4 Rozważm dialog z sstemem ghci: > let f = foldr (\x -> if x > then x else ) 0 > :tpe f Jak zostanie określon tp funkcji? (A) f :: Integer -> Integer (B) f :: [Integer] -> Integer (C) f :: Integer -> [Integer] (D) f :: [Integer] -> [Integer] Message-Passing Interface (MPI) Ptanie 5 Dan jest program: #include <iostream> #include "mpi.h" using namespace std; int m_rank; int p; MPI_Status status; #define S 9 #define N 10 int tab[n] = -2, 3, 5, 1, 4, -1, 0, 2, 6, 7; int main(int argc, char* argv[]) MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &m_rank); MPI_Comm_size(MPI_COMM_WORLD, &p); int znaleziono = false; for (int i = m_rank; not znaleziono && i < N-1; i += p) for (int j = i+1; not znaleziono && j < N; j++) if (tab[i] + tab[j] == S) znaleziono = true; cout << znaleziono << endl; MPI_Finalize(); return 0; Załóżm, że po skompilowaniu go (do programu o nazwie zad) uruchomiono program mpd, a następnie uruchomiono skompilowan program poleceniem mpiexec -l -n 2./zad na masznie dwuprocesorowej. Jaki będzie wnik jego działania ( = endl)? (A) 0: 0 1: 0 (B) 0: 0 1: 1 (C) 0: 1 1: 0 (D) 0: 1 1: 1 2

Open Multi-Processing (OpenMP) Ptanie 6 Dan jest program: #include <omp.h> #include <iostream> using namespace std; int main (int argc, char *argv[]) int lw, nr; // liczba wątków, numer wątku float suma=0.0; #pragma omp parallel private(nr) nr = omp_get_thread_num(); if (nr == 0) lw = omp_get_num_threads(); cout << "lw:" << lw << " "; #pragma omp barrier #pragma omp for for (int i=1; i<=5; i++) suma = suma + i*1.0; #pragma omp critical cout << nr << ":" << suma << " "; Załóżm, że po skompilowaniu tego programu z odpowiednią opcją wskazującą, że program źródłow napisan jest z użciem interfejsu OpenMP, następnie uruchomiono go na masznie z procesorem dwurdzeniowm. Jaki na pewno nie będzie wnik jego działania? (A) lw:2 0:15 1:15 (B) lw:2 1:15 0:15 (C) 1:15 lw:2 0:15 (D) lw:2 1:9 0:9 Wrażenia regularne Ptanie 7 Dan jest tekst: babb cbbcbc accac bbaba bacb bbbbbbb Jaki będzie efekt zastąpienia w nim wszstkich podciągów pasującch do wzorca \b(?=[^ ]*a)(?=[^ ]*c)[abc]+?\b przez łańcuch ***? (A) *** *** accac *** bacb *** (B) babb cbbcbc accac bbaba bacb *** (C) *** *** *** *** *** bbbbbbb (D) babb cbbcbc *** bbaba *** bbbbbbb 3

Ptanie 8 Dan jest tekst: 03824531449411615213441829503544272752010217443235 Znajdź wszstkie podciągi pasujące do wzorca 44\d3(?=(\d5)*$) (A) 44941, 44182, 44272, 44323 (B) 44182, 44272 (C) 44941 (D) 44323 Extensible Markup Language (XML) Ptanie 9 Tp dokumentu został zdefiniowan w następującm pliku figur.dtd: <!ENTITY % barw "(czarn biał żółt czerwon)"> <!ELEMENT figur (trójkąt kwadrat)+> <!ELEMENT punkt EMPTY> <!ATTLIST punkt x NMTOKEN #REQUIRED NMTOKEN #REQUIRED > <!ELEMENT trójkąt (punkt, punkt, punkt)> <!ATTLIST trójkąt kolor %barw; "biał"> <!ELEMENT kwadrat (punkt, punkt)> <!ATTLIST kwadrat kolor %barw; "czarn"> Załóżm, że poniższ plik XML został poddan kontroli prawidłowości dokumentu pod względem właściwej konstrukcji opisanej w pliku DTD. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE figur SYSTEM "figur.dtd"> <figur> <kwadrat kolor="żółt"> <punkt x="0" ="0" /> <punkt x="1" ="1" /> <trójkąt kolor="czerwon"> <punkt x="0" ="0" /> <punkt x="1" ="1" /> <punkt x="2" ="2" /> <trójkąt> <punkt ="0" x="-1" /> <punkt x="1" ="1" /> <punkt x="1" ="2" /> </figur> Które z poniższch stwierdzeń jest prawdziwe? (A) Nie zostanie zgłoszon żaden wjątek. (B) Zostanie zgłoszon wjątek z tego powodu, że pierwsz trójkąt opisan jest trzema współliniowmi punktami. (C) Zostanie zgłoszon wjątek z tego powodu, że w drugim trójkącie nie określono koloru. (D) Zostanie zgłoszon wjątek z tego powodu, że kolejność współrzędnch w pierwszm punkcie drugiego trójkąta jest nieprawidłowa. 4

Ptanie 10 Dan jest plik kolekcja.xml: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE figur SYSTEM "figur.dtd"> <figur> <kwadrat kolor="biał"> <punkt x="0" ="0" /> <punkt x="1" ="1" /> <kwadrat kolor="żółt"> <punkt x="0" ="0" /> <punkt x="2" ="3" /> <trójkąt kolor="czerwon"> <punkt x="-2" ="0" /> <punkt x="1" ="1" /> <punkt x="1" ="2" /> <trójkąt kolor="czarn"> <punkt x="0" ="-1" /> <punkt x="1" ="1" /> <punkt x="1" ="2" /> </figur> oraz następując program: import java.io.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.*; public class MojaXML public static void main(string[] args) tr DocumentBuilderFactor factor = DocumentBuilderFactor.newInstance(); factor.setvalidating(true); factor.setignoringelementcontentwhitespace(true); DocumentBuilder builder = factor.newdocumentbuilder(); File f = new File("kolekcja.xml"); Document doc = builder.parse(f); Element root = doc.getdocumentelement(); Element figura = (Element)root.getLastChild(); figura = (Element)figura.getPreviousSibling(); Sstem.out.println(figura.getTagName()+":"+figura.getAttribute("kolor")); catch (Exception e) Jaki będzie wnik jego działania? (A) kwadrat:biał (B) punkt:żółt (C) trójkąt:czerwon (D) punkt:czarn Ptanie nr: 1 2 3 4 5 6 7 8 9 10 Odpowiedź: 5