Wykorzystanie możliwości serwerów Online Judge w przygotowaniu drużyny oraz w organizacji zawodów w programowaniu

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

Programowanie - wykład 4

Wstęp do Informatyki

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

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

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

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

Kontrola przebiegu programu

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Technologie cyfrowe semestr letni 2018/2019

Wstęp do programowania

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

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

Algorytmy, reprezentacja algorytmów.

Programowanie komputerowe. Zajęcia 1

Wyjątki (exceptions)

Wstęp do Programowania 2

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

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

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

Wstęp do programowania

Wstęp do programowania

Technologie cyfrowe semestr letni 2018/2019

Wstęp do programowania

Programowanie Procedurale

Warunki i sposoby realizacji podstawy programowej kształcenia ogólnego w klasie IV i VII szkoły podstawowej z informatyki.

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

Wstęp do programowania

Kurs programowania. Wykład 9. Wojciech Macyna

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

Programowanie Obiektowew języku C++ Zadania L4

Programowanie Obiektowe i C++

TEMAT : KLASY POLIMORFIZM

Programowanie obiektowe i C++ dla matematyków

Technologie Informacyjne

Wstęp do Programowania 2

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Programowanie proceduralne w języku C++ Pętle, tablice

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Pytania sprawdzające wiedzę z programowania C++

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

3. Instrukcje warunkowe

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

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

Programowanie i struktury danych

Ćwiczenia podstawowe, zestaw 5, część 1

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

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

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

Programowanie Obiektowe i C++ Marcin Benke

tablica: dane_liczbowe

Programowanie obiektowe

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3

Programowanie Obiektowew języku C++ Zadania L2

Rekurencja. Przygotowała: Agnieszka Reiter

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Język ludzki kod maszynowy

Szablon klasy std::vector

Dziedziczenie & W slajdach są materiały zapożyczone z

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

Programowanie w językach

Operacje wejścia/wyjścia odsłona pierwsza

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

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

C++ - [1-3] Debugowanie w Qt Creator

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

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

Zaawansowane programowanie w języku C++ Biblioteka standardowa

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.

Numer obszaru: 13. Jak pracować z uczniem uzdolnionym informatycznie? Od prostych do poważnych algorytmów w C++ Symbol szkolenia: PUZC++

Spis treści. Wprowadzenie 7 Rozdział 1. Nasz programistyczny warsztat 11 Rozdział 2. Nasz pierwszy program 15

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

Programowanie i struktury danych

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

Podstawy Programowania. Wykład 1

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.

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

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

Języki programowania obiektowego Nieobiektowe elementy języka C++

praktyczne. Wydanie III

Programowanie proceduralne w języku C++ Podstawy

Programowanie w języku C++

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

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

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

DYNAMICZNE PRZYDZIELANIE PAMIECI

I - Microsoft Visual Studio C++

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

Wstęp do informatyki- wykład 7

Programowanie Proceduralne

XII. Warunek wielokrotnego wyboru switch... case

Podstawy Programowania Algorytmy i programowanie

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Spis treści

Wstęp do programowania

Transkrypt:

Wykorzystanie możliwości serwerów Online w przygotowaniu drużyny oraz w organizacji zawodów w programowaniu Alexander Denisjuk Elbląska Uczelnia Humanistyczno-Ekonomiczna mailto:denisjuk@matman.uwm.edu.pl http://www.denisjuk.euh-e.edu.pl 30 kwietnia 2010 1/26

2/26

Akademickie Mistrzostwa Świata w Programowaniu 1970: Zawody w Texas A&M University 1979: ACM 1989: Zawody międzynarodowe, dwa etapy: Regionalny(Central European Programming Contest) Finał(World Finals) 2007:6700drużynz1821uniwersytetów 3/26

Reguły ACM-ICPC drużyny trzyosobowe jeden komputer 5godzinna8do10zadań C, C++, Java testowanie na bieżąco: zadanie rozwiązane lub nie zwycięża drużyna, która rozwiązała najwięcej zadań wprzypakdurównejilościliczysięczas 20 minut karnych za nieudaną próbę testowania 4/26

Zwyciężcy ACM-ICPC 2010 Shanghai Jiao Tong University, Chiny 2009 Politechnika w Sankt Petersburgu, Rosja... 2007 Uniwersytet Warszawski, Polska... 2003 Uniwersytet Warszawski, Polska... 1997 Michigan State University, USA 5/26

Akademickie Mistrzostwa Polski w Programowaniu 1996 Pierwsze AMPPZ odbyły się na Politechnice Poznańskiej. 2005 Zawody Online. 6/26

Inne zawody w Polsce Mistrzostwa Wielkopolski w Programowaniu Potyczki Algorytmiczne 7/26

8/26

UVa Online http://uva.onlinejudge.org/ od roku 1997 Universidad de Valladolid ACM-ICPC Live Archive 2686 zadań 250 zorganizowanych zawodów 97891 użytkowników 9/26

Zadania UVa Online Problem Set Volumes: I IX Contest Volumes: C CXVII Prominent Problemsetters ACM-ICPC World Finals(1990-2000) Programming Challenges(Skiena& Revilla) AOAPC I: Beginning Algorithm Contests(Rujia Liu) 10/26

Zawody Otwarte lub prywatne Reguły ACM/ICPC Język angielski lub hispański Instrukcja dla organizatorów: http://acm.uva.es/contest/setup.html Najbiższe zawody VIII Programming Olympiad in Murcia 15maja20109:30UTC(11:30CEST) 11/26

Zadanie przykładowe(volumin CXI, 11172) 12/26

Treść przykładowej zadania Some operators checks about the relationship between two values and these operators are called relational operators. Given two numerical values your job is just to find out the relationship between themthatis(i)firstoneisgreaterthanthesecond(ii)firstoneis lessthanthesecondor(iii)firstandsecondoneisequal. Input:Firstlineoftheinputfileisanintegert(t<15)which denoteshowmanysetsofinputsarethere.eachofthenexttlines containtwointegersaandb( a, b <1000000001). Output:Foreachlineofinputproduceonelineofoutput.Thisline contains any one of the relational operators >, < or =, which indicates the relation that is appropriate for the given two numbers. Sample Input Output for Sample Input 3 < 1020 > 2010 = 1010 13/26

Rozwiązanie przykładowego zadania #include <iostream> using namespace std; int main() { int t, a, b; cin >> t; while (t >0) { cin >> a >>b; if (a <b) cout << < << endl; else if (a >b) cout << > << endl; else cout << = << endl; } return 0; } 14/26

Kompilacja rozwiązania $ g++ lm lcrypt O2 pipe DONLINEJUDGE \ 11172.cpp o 11172 15/26

Pierwszy test Test1.txt 3 1020 2010 1010 $./11172 <test1.txt < > = 16/26

Drugi test Test2.txt 4 1000000001-1000000001 -1000000001-1000000001 1000000001 1000000001-1000000001 1000000001 $./11172 <test2.txt > = = < 17/26

Testowanie rozwiązania na serwerze 18/26

Wysyłanie rozwiązania 19/26

Przejście do werdyktu 20/26

Werdykt sędziego 21/26

Zawody 22/26

Sphere Online http://pl.spoj.pl/ Ponad 5000 problemów. 40 języków programowania Polski, angielski, portugalski i wietnamski języki Organizacja zawodów Wykorzystanie w procesie dydaktycznym Zasady są analogiczne 23/26

24/26

Książki(lista niepełna) 1. S. S. Skiena, M. A. Revilla: Programming Challenges, Springer, 2002. 2. Ahmed Shamsul Arefin: Art of Programming Contest, Gyankosh Prokashoni, Bangladesh, 2006. (dostępna online) 3. Piotr Stanczyk: Algorytmika praktycza, PWN, 2009. 4. William B. Poucher, Miguel A. Revilla: From Baylor to Baylor, Lulu.com, 2009. 25/26

Web-Strony(lista niepełna) Forum UVa Online UVa Toolkit Algorithmist Methods to Solve Klub Samotnych Programistów Sierżanta Peppera 26/26