Polish version    English version  
  Historia OI -> XVI OI 2008/2009 -> Dla zawodników


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
 Historia OI
XVII OI 2009/2010
XVI OI 2008/2009
Terminarz
Zadania
Przepisy
Wyniki I etapu
Wyniki II etapu
Wyniki III etapu
II Etap
III Etap
Dla zawodników
Przydatne zasoby
XV OI 2007/2008
XIV OI 2006/2007
XIII OI 2005/2006
XII OI 2004/2005
XI OI 2003/2004
X OI 2002/2003
IX OI 2001/2002
VIII OI 2000/2001
VII OI 1999/2000
VI OI 1998/1999
V OI 1997/1998
IV OI 1996/1997
III OI 1995/1996
II OI 1994/1995
I OI 1993/1994
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
Informacje o GCC/G++


Kompilatory GCC (język C) i G++ (język C++) są dostępne pod systemy operacyjne Dos, Windows, Linux i wiele innych. Więcej informacji można znaleźć na stronie projektu: http://gcc.gnu.org/. W przypadku Linuxa znaleźć je można we wszystkich popularnych obecnie dystrybucjach.

DJGPP

Pakiet DJGPP jest darmowym kompilatorem C/C++ dla DOS/Windows opartym na GCC. Więcej informacji na jego temat można znaleźć na stronie projektu: http://www.delorie.com/djgpp/

Potrzebne pliki

    Pliki można znaleźć w dziale "Przydatne zasoby"

Instalacja DJGPP w systemie DOS

  1. Ściągnij wymienione wyżej pliki.
  2. Utwórz katalog w którym ma zostać zainstalowane DJGPP (np. c:\djgpp).
  3. Odpakuj wszystkie pliki *.zip.
  4. Do poprawnego działania pakietu potrzebne jest ustawienie wartości zmiennej DJGPP (np. w autoexec.bat), wskazuje ona na plik konfiguracyjny (zazwyczaj C:/DJGPP/DJGPP.ENV), należy pamiętać aby w wartości zmiennej używać znaków / zamiast \.
  5. Do zmiennej PATH dodaj katalog zawierający pliki wykonywalne (zazwyczaj C:\DJGPP\BIN)

Ważna różnica pomiędzy DJGPP a GCC

W napisie formatującym w funkcji printf DJGPP akceptuje duże litery zamiast małych, np. można użyć %D zamiast %d lub %U w miejsce %u. Fragment programu:

   ...
   int i = 13;
   printf("%D", i);
   ...

powoduje w DJGPP wypisanie na standardowe wyjście:

   13

a w GCC/G++:

   %D

Dlatego należy stosować konstrukcję:

   ...
   int i = 13;
   printf("%d", i);
   ...

która spowoduje wypisanie w obu przypadkach liczby 13.

Strumienie w C++

Poprzednie wersje kompilatorów języka C++ miały bardzo nieefektywną implementację strumieni. Fakt ten powodował, że w przypadku wielu zadań nie wolno było ich używać, gdyż inaczej rozwiązania nie mieściły się w limicie czasowym. W najnowszych kompilatorach języka C++ (od wersji 3.4), efektywność strumieni znacznie się poprawiła, co pozwala na używanie ich w rozwiązaniach zadań. W celu skorzystania ze strumieni, należy na samym początku programów wyłączać synchronizację wejścia/wyjścia przy użyciu ios_base::sync_with_stdio(0);. Przykładowe programy można znaleźć w sekcji Przykłady


Wersja do druku