Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych Autor artykułu: mgr Jerzy Wałaszek |
©2015 mgr
Jerzy Wałaszek
|
Każdy uczestnik koła informatycznego powinien zainstalować na swoim domowym
komputerze środowisko Code::Blocks do programowania w języku C++.
Jest ono dostępne do pobrania na stronie projektu:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Instalacja Linuxa w WindowsNa konkursach informatycznych zwykle stosowane jest środowisko Linux wraz z odpowiednimi narzędziami. Zainstalujesz je na swoim komputerze z Windows przy pomocy tzw. maszyny wirtualnej. Jest to program, który tworzy w twoim komputerze wirtualny komputer. Ten z kolei może uruchomić w obrębie swoich zasobów dowolny system operacyjny. Co więcej, między tym systemem a Windows może istnieć komunikacja, np. poprzez schowek. Ja w ten sposób pracuję już od lat na swoim komputerze domowym. W pracowni mamy system Lubuntu, a w domu mam system Windows 10. Jeśli chcę coś przygotować na lekcje lub koła, muszę to sprawdzić w Linuxie. Tutaj idealnym rozwiązaniem jest technologia maszyny wirtualnej. Najpierw pobierz z sieci aplikację VMWare Workstation Player. Znajdziesz ją pod adresem:
Przewiń stronę na koniec sekcji Desktop & End-User Computing. Tam znajdziesz pożądaną aplikację. Na dzień dzisiejszy jest to VMWare Workstation 12 Player. Aplikacja jest 64-bitowa i powinna zainstalować się bez problemu w nowych systemach Windows. Po uruchomieniu pojawi się okienko powitalne:
Zaznacz pierwszą opcję (pozwala darmowo używać programu w zastosowaniach niekomercyjnych) i w podanym polu tekstowym wpisz swój adres e-mail. Kliknij w przycisk Continue. Ukaże się dalsza część informacji wstępnych:
Kliknij w przycisk Finish.
Przypnij program do paska zadań. Wtedy będziesz go mógł szybko uruchamiać. Po zatwierdzeniu okienka powitalnego ukaże się okno robocze VMPlayera.
Jest ono podzielone na dwie części. Z lewej strony będą się pojawiać zainstalowane maszyny wirtualne. Z prawej strony mamy kilka opcji. Gdy rozpoczniesz pracę z aplikacją, zapewne będziesz chciał utworzyć nową maszynę wirtualną i zainstalować w niej system Linux. W tym celu musisz najpierw pobrać z Internetu odpowiednią dystrybucję Linuxa. Polecam Ubuntu, ponieważ jest bardzo wszechstronne i popularne – nie będziesz miał kłopotów ze znalezieniem aplikacji oraz informacji na temat tej dystrybucji. Dystrybucję Ubuntu znajdziesz pod adresem:
Wybierz Ubuntu Desktop. Na stronie ładowania ustaw wersję 64-bitową i kliknij w przycisk Download. Spowoduje to załadowanie pliku iso, który jest obrazem płyty DVD. Za pomocą nagrywarki obraz ten możesz wypalić na fizycznym nośniku (z takiej płytki DVD możesz instalować Ubuntu na innym komputerze). Jednakże dla VMPLayera wystarczy sam plik iso. Gdy plik iso zostanie pobrany, możemy rozpocząć jego instalację w maszynie wirtualnej. W VMPlayerze wybierz opcję Create a New Virtual Machine. Pojawi się okienko dialogowe tworzenia nowej maszyny wirtualnej:
Wybierz opcję Installer disk image file (iso), kliknij w przycisk Browse, wyszukaj i wybierz pobrany z sieci plik iso. U mnie ten plik nazywa się ubuntu-15.04-desktop-amd64.iso i znajduje się w katalogu images na dysku D. U ciebie plik może posiadać inną nazwę i znajdować się w innym miejscu przestrzeni dyskowej komputera. Po wybraniu dysku instalacyjnego, kliknij w Next.
Jeśli instalujesz Ubuntu, to możesz skorzystać z ułatwionej instalacji i niektóre czynności VMPlayer wykona automatycznie. W następnym okienku dialogowym wpisz kolejno swoje nazwisko, nazwę użytkownika oraz dwukrotnie hasło dostępu do konta (później to wszystko możesz zmienić). Kliknij w przycisk Next.
Tutaj określasz nazwę swojej maszyny wirtualnej oraz jej położenie na dysku. Proponuję nic nie zmieniać i kliknąć w przycisk Next.
Tutaj określasz wielkość dysku dla maszyny wirtualnej. Dysk będzie tworzony jako plik. Na początku nie będzie on duży, lecz w miarę zapełniania danymi jego wielkość będzie rosła. Proponuję ustawić 40GB. Również wybierz opcję Store virtual disk as single file, co przyspieszy operacje zapisu danych. Kliknij Next.
W tym okienku znajduje się podsumowanie parametrów dla maszyny wirtualnej. Jeśli zechcesz coś zmienić, kliknij w przycisk Customize Hardware... Wtedy pojawi się inne okienko dialogowe z różnymi zasobami:
Jeśli masz mocny komputer, to wybierz 2...4GB pamięci (Memory), liczba procesorów 2...4. W opcjach USB wybierz wszystko i ustaw kompatybilność na USB 3.0 (jeśli twój komputer to obsługuje). Kliknij w Close, aby zamknąć okienko opcji sprzętowych, po czym kliknij w Finish. Maszyna wirtualna zostanie utworzona i uruchomiona. Rozpocznie się instalacja Ubuntu.
W trakcie instalacji może pojawić się okienko z informacją o dostępności narzędzi VMWare Tools. Należy je zatwierdzić. Narzędzia te dadzą ci dostęp do komputera hosta z poziomu Ubuntu oraz pozwolą zmieniać rozmiar ekranu Linuxa bezpośrednio w oknie Windows (Jeśli narzędzia VMWare Tools nie zainstalują się automatycznie, tutaj masz poradnik). Ubuntu instaluje się w wersji angielskiej, ale można to później łatwo sobie zmienić. Po instalacji uruchom terminal (Ctrl+lewy Alt+T) i wpisz:
sudo apt-get update
sudo apt-get upgrade sudo apt-get install build-essential sudo apt-get install g++ exit
Code::Blocks znajdziesz w Centrum Oprogramowania Ubuntu.
Zainstaluj to środowisko. Następnie uruchom. Przy pierwszym starcie
Code::Blocks wykrywa dostępne kompilatory C++. Wybierz GNU GCC Compiler
i ustaw go jako domyślny. Dobrze jest jeszcze zmienić terminal konsoli na
gnome-terminal. W tym celu wybierz opcję menu
gnome-terminal $TITLE -x
Masz już gotowy system Linux do ćwiczenia programowania. Oprócz Ubuntu również godną do polecenia dystrybucją Linuxa jest Mint, z którego sam korzystam. Jest on troszeczkę trudniejszy w instalacji od Ubuntu, ponieważ nie jest wykrywany automatycznie przez VMPlayera, lecz jest to naprawdę mała trudność. Wystarczy w trakcie instalacji poinformować VMPlayera, że ma do czynienia z systemem Linux z rodziny Ubuntu, reszta ustawień jest taka sama jak dla opisanej wyżej dystrybucji podstawowej. W Mint ustawiamy w Code::Blocks terminal:
gnome-terminal --disable-factory -t $TITLE -x
i mamy to samo co w Ubuntu: Wielką zaletą Linuxa jest kompatybilność terminalu i edytora Code::Blocks pod względem polskich liter. W systemie Windows konsola korzysta z kodowania Latin-2 (852), a reszta systemu z Windows-1250. Powoduje to, że polskie litery są źle wyświetlane w konsoli. Linux z kolei stosuje jeszcze inne kodowanie: pl_PL.UTF-8. Więcej o tym znajdziesz tutaj. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Praca w systemie LinuxGdy staniesz się uczestnikiem zawodów, to zwykle systemem operacyjnym będzie Linux. Jednakże w systemie tym może nie być zainstalowane środowisko Code::Blocks. Co wtedy? Otóż będziesz musiał korzystać z narzędzi, które udostępnia sam system Linux. Terminal uruchamiasz kombinacją klawiszy Ctrl+lewy Alt+T. Po uruchomieniu terminalu zwykle pracujesz w katalogu domowym (ang. home directory). Informuje cię o tym znak tyldy ~ w wierszu oczekiwania na polecenie:
Rozejrzyj się. Wpisz polecenie ls. Zostanie wyświetlona lista plików i katalogów dostępnych w bieżącym katalogu roboczym:
Teraz utwórzmy sobie katalog ki (koło informatyczne), w którym będziemy tworzyć nasze projekty. Wpisz polecenia:
Polecenie mkdir tworzy katalog (ang. make directory). Zwróć uwagę, że teraz na liście pojawił się katalog ki. Przechodzimy do katalogu ki i tworzymy w nim katalog p01 (od projekt nr 01). Następnie wchodzimy do tego katalogu. Zwróć uwagę na zmianę wiersza zgłoszenia:
Teraz twoim bieżącym katalogiem roboczym (ang. current working directory) jest katalog p01, który znajduje się wewnątrz katalogu ki, a ten z kolei znajduje się w twoim katalogu domowym. Jeśli terminal staje się zaśmiecony, to czyścisz go przez naciśnięcie kombinacji klawiszy Ctrl+L. W katalogu p01 utworzymy sobie plik źródłowy main.cpp z tekstem programu. Musimy skorzystać z edytora. W dystrybucji Ubuntu i jej pochodnych (np. Mint) dostępny jest prosty edytor nano. Wpisz nano main.cpp. Edytor ten pracuje w terminalu.
Górną część okna zajmuje obszar wprowadzania tekstu. Na dole masz opcje menu, które przywołujesz kombinacją klawiszy Ctrl+litera. Wpisz do edytora poniższy tekst programu:
Plik zapisujesz na dysku przez naciśnięcie klawiszy Ctrl+O (operację zapisu potwierdzasz klawiszem Enter). Wychodzisz z edytora nano, naciskając klawisze Ctrl+X. gdy teraz wpiszesz polecenie ls, to powinieneś zobaczyć na liście plik main.cpp:
W następnym kroku skompilujemy ten plik kompilatorem g++ i uruchomimy:
To wszystko. Jak widzisz, nie jest to wcale skomplikowane. Terminal zapamiętuje historię wprowadzonych poleceń. Aby ponownie wykonać któreś z nich, naciskasz klawisz strzałka w górę, aż w wierszu pojawi się pożądane polecenie, po czym naciskasz klawisz Enter, aby je wykonać. Przy pewnej wprawie można w tym systemie pracować bardzo szybko i efektywnie. Jednakże środowisko uruchomieniowe IDE jest rozwiązaniem bardziej wygodnym, szczególnie wtedy, gdy w program jest długi i zawiera błędy do poprawienia. Dlatego pomijając zawody w programowaniu, zwykle będziemy pracować w Code::Block. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Krótka powtórka C++KomentarzeKomentarze służą do umieszczania w programie wyjaśnień i opisów. Nie trafiają one do programu wynikowego. Programy warto opatrywać komentarzami, ponieważ zwiększa to ich czytelność. W języku C++ mamy dwa rodzaje komentarzy:
Przykłady: // To jest komentarz wierszowy // Obowiązuje tylko do końca wiersza // --------------------------------- /*---------------------------------- Tutaj mamy komentarz blokowy, który może składać się z dowolnej liczby wierszy ---------------------------------*/ Budowa programu w C++Typowy program w języku C++ zbudowany jest następująco:
// Opis programu (nieobowiązkowy) #include <iostream>; // Dołączanie plików nagłówkowych using namespace std; // Definicja przestrzeni nazw (nieobowiązkowa) // Opis funkcji (nieobowiązkowy) int main() // Funkcja główna (obowiązkowa) { // treść programu }
Pliki nagłówkowe zawierają definicje obiektów używanych w programie. Dyrektywa #include dołącza je do tekstu programu w trakcie kompilacji. Dzięki plikom nagłówkowym nie musimy tych definicji wpisywać ręcznie przy każdym nowotworzonym programie. Wykonanie programu rozpoczyna się w języku C++ od funkcji main(), zwanej funkcją główną lub startową.
Typy danych
Aby sprawdzić wspierane typy danych, utwórz w Code::Blocks nowy projekt konsoli, wpisz do edytora poniższy program, skompiluj i uruchom go:
ZmienneZmienna jest obiektem w programie, który przechowuje dane. Każda zmienna w języku C++ posiada swój typ określający rodzaj przechowywanych danych. Zmienna musi zostać zdefiniowana przed pierwszym użyciem. Definicja zmiennej wygląda następująco:
typ nazwa;
lub
typ nazwa = wartość;
W tym drugim przypadku dodatkowo określana jest zawartość zmiennej. Nazwa zmiennej musi być utworzona wg następujących reguł:
W jednej definicji można zdefiniować wiele zmiennych. Np.:
int a,b,c=15,d,e,f;
Ta definicja tworzy 6 zmiennych. Zmienna c otrzymuje wartość początkową 15. Wartości pozostałych zmiennych są nieokreślone. Dane wprowadzamy do zmiennych za pomocą instrukcji przypisania:
zmienna = wyrażenie;
Komputer oblicza wartość wyrażenia i wynik wpisuje do zmiennej. Np.:
a = 5; b = a * a + 10;
Zmienna b będzie zawierała liczbę 35 (5 * 5 + 10). Modyfikacja zmiennej występuje wtedy, gdy w wyrażeniu w instrukcji przypisania znajduje się przypisywana zmienna. Np:
a = a + 5; b = c * (d + b);
W języku C++ mamy wiele różnych operatorów modyfikacji:
Ogólna zasada operatora modyfikacji brzmi: operacja_dwuargumentowa=. Oprócz tych operatorów mamy również
operator zwiększania o 1 (
++zmienna; --zmienna; zmienna++; zmienna--;
Jeśli operacja zwiększania lub zmniejszania o 1 występuje samodzielnie, to oba warianty dają ten sam wynik. Różnica pojawia się, gdy operację zastosujemy w wyrażeniu:
a = 15; b = ++a;
W tym przypadku b przyjmie wartość 16, ponieważ umieszczenie operatora ++ przed zmienną powoduje wczesne zwiększenie jej zawartości o 1 i w wyrażeniu zmienna będzie miała wartość już zwiększoną.
a = 15; b = a++;
Tutaj zmienna b przyjmie wartość 15, ponieważ umieszczenie operatora ++ za zmienną powoduje późne zwiększenie jej wartości o 1 i w wyrażeniu posiada ona swoją pierwotną wartość. W obu powyższych przykładach zmienna a zostanie zwiększona do wartości 16.
Wartości logiczneJęzyk C++ rozróżnia dwie wartości logiczne: true
(prawda) jest to dowolna wartość różna od zera
false (fałsz) jest to wartość równa zero. Wartość logiczną zwracają operatory porównań oraz funkcje logiczne. Wyrażenie: a > 10 ma wartość 0, jeśli a jest mniejsze lub równe 10. Jeśli a spełnia warunek, to wyrażenie to przyjmie wartość true, czyli 1. Mamy następujące operatory porównań:
Funkcje logiczne:
Operacje bitoweWyróżniamy przesuwy bitowe oraz funkcje logiczne, które działają na poszczególnych bitach argumentów.
Funkcja warunkowaSkładnia: if(warunek) instrukcja; Instrukcja jest wykonywana, jeśli warunek jest prawdziwy. if(warunek) instrukcja1; else instrukcja2; Gdy warunek jest prawdziwy, zostaje wykonana tylko instrukcja 1. Gdy warunek jest fałszywy, zostaje wykonana tylko instrukcja2. W miejsce pojedynczej instrukcji można wstawić instrukcję blokową, która zbudowana jest z klamerek zawierających dowolną liczbę instrukcji:
Zwróć uwagę, że po klamerce zamykającej blok nie umieszczamy średnika (umieszczenie go nie jest błędne, lecz zbędne). Dzięki tej podmianie, otrzymujemy: if(warunek)
lub
Instrukcja warunkowa pozwala tworzyć rozgałęzienia w programie.
PętleW języku C++ mamy trzy rodzaje pętli: while(warunek)
instrukcja; Najpierw sprawdzany jest warunek. Jeśli jest prawdziwy, to zostaje wykonana instrukcja, po czym następuje powrót do sprawdzania warunku. do instrukcja; while(warunek); Najpierw zostaje wykonana instrukcja. Następnie sprawdzany jest warunek. Jeśli jest prawdziwy, to następuje powrót do wykonywania instrukcji. for(inicjalizacja;warunek;kontynuacja) instrukcja; Jest to pętla ogólna, którą najczęściej wykorzystuje się do zliczania obiegów. Inicjalizacja jest kodem wykonywanym przed rozpoczęciem pętli. Następnie sprawdzany jest warunek. Jeśli jest prawdziwy, to zostaje wykonana instrukcja, po czym wykonuje się kod kontynuacji i następuje powrót do sprawdzania warunku. Przykłady:
Resztę przypomnimy sobie w trakcie kolejnych zajęć koła. Zapraszam. |
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe