Polish version    English version  
  XVIII OI 2010/2011


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
Terminarz
Zadania
II Etap
Przepisy
Wyniki I etapu
Wyniki II etapu
Dla zawodników
Przydatne zasoby
 Historia OI
 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