Pierwszy program w C++
Wprowadzenie
Witamy Cię w konkursowej wersji kursu programowania w języku C++. Nie będzie to kurs techniczny języka C++, ale kurs ogólnej umiejętności programowania – napisany w oparciu o nowoczesny język C++. To tak jak z nauką języka obcego – by nauczyć się nowego języka, nie wystarczy nauczyć się słów tego języka (co odpowiada nauce konstrukcji), lecz trzeba się także nauczyć budować poprawne zdania, a później dłuższe wypowiedzi (to właśnie odpowiada nauce programowania). Gdy już będziesz umiał programować, to zmiana języka programowania nie będzie dla Ciebie problemem.
W każdej lekcji umieścimy Część programistyczną, Część techniczną, Komentarz i Zadania do samodzielnego rozwiązania, o zróżnicowanym stopniu trudności. Lekcje będziemy ilustrować nagraniami wideo. Większość lekcji będzie omawiać podstawowe elementy programowania z użyciem prostych mechanizmów wczytywania i wypisywania. Na ostatniej lekcji pokażemy, że elementy, których nauczyliśmy się, pozwalają tworzyć także programy graficzne.
Zachęcamy Cię do próby rozwiązania jak największej liczby zadań w trakcie kursu.
Część techniczna: Środowisko programistyczne
Nasz kurs będziemy prowadzić z użyciem polskojęzycznej wersji środowiska Code Blocks w systemie operacyjnym Windows 7 lub nowszym. Poniżej podajemy instrukcję instalacji tego środowiska. Środowisko Code Blocks działa także w systemach Windows 2000, XP oraz Vista. Na stronie domowej Code Blocks dostępne są także wersje środowiska działające pod różnymi wersjami systemu operacyjnego Linux oraz w systemie Mac OS X.
Może jednak być tak, że z różnych powodów nie możesz zainstalować środowiska Code Blocks (np. korzystasz ze szkolnej pracowni i nie masz do tego uprawnień, a administrator nie wyraził na to zgody). W takim wypadku proponujemy Ci używać strony internetowej ideone, pozwalającej na uruchamianie programów bez konieczności instalowania jakiegokolwiek środowiska na Twoim komputerze. Z punktu widzenia tego kursu środowisko Ideone ma tylko dwa braki w porównaniu do Code Blocks: nie umożliwia wykonywania krokowego programów, tzw. odpluskwiania (będzie o tym mowa na lekcji 7), oraz nie pozwala tworzyć aplikacji graficznych czy okienkowych (lekcja 10). Żadna z tych funkcjonalności nie będzie jednak konieczna do zaliczenia tego kursu. Na jednym z nagrań w tej lekcji pokazujemy, w jaki sposób korzystać ze strony Ideone.
Możesz też w ramach tego kursu używać jakiegoś innego środowiska programistycznego umożliwiającego pisanie programów w C++ (np. Dev-C++, DJGPP, Eclipse-CDT, Geany, Scite, kompilator w konsoli Linuksa/Mac OS plus dowolny edytor), jednak może to utrudniać podążanie za materiałem kursu.
Instalacja Code Blocks
Przejdziemy teraz przez kolejne kroki instalacji środowiska Code Blocks w systemie Windows (konkretniej, będziemy pracować na polskojęzycznej wersji stabilnej Code Blocks 13.12
w systemie Windows 8.1
).
Pamiętaj, że musisz mieć w tym celu prawa administratora na swoim komputerze
i co najmniej pół gigabajta wolnego miejsca na dysku.
Cały proces nie będzie zbytnio skomplikowany,
jednak opisaliśmy go dość dokładnie,
żeby nikt nie utknął w tym miejscu kursu.
Jak zainstalować Code Blocks?
Instrukcje
Na początku ściągnij instalator programu, używając tego linka. Po kliknięciu na link odczekaj kilka sekund, po czym zacznie się pobieranie pliku. Wersja instalacyjna ma rozmiar ok. 100 MB, a program po zainstalowaniu zużywa ok. 250 MB. Polecamy, aby przejść przez proces instalacji w najprostszy możliwy sposób, podany w poniższych krokach. Jeśli w którymś kroku instalacji pomylisz się, wystarczy przerwać i zacząć wszystko od początku. Dopiero na samym końcu, po zainstalowaniu programu, będzie potrzebna pewna sztuczka, aby umożliwić korzystanie z wersji programu w języku polskim.
- Jeśli system Windows spyta Cię, czy chcesz pozwolić programowi na wprowadzanie zmian na Twoim dysku, odpowiedz "Tak".
- Na ekranie powitalnym instalacji wybierz "Next".
- Na ekranie z prośbą o zgodę na używanie licencji GNU General Public License wybierz "I Agree" (GNU GPL to licencja wolnego oprogramowania, za którą nie trzeba niczego płacić itp.).
- Na ekranie wyboru komponentów nie wprowadzaj żadnych zmian i wybierz "Next" (zainstalują się standardowe komponenty, w tym kompilator C++).
- Dalej następuje ekran z wyborem folderu, w którym ma nastąpić instalacja programu. Jeśli możesz, zainstaluj program w folderze, który zaproponuje instalator. Koniecznie zapamiętaj (albo zapisz sobie), w jakim folderze zainstalowałeś(aś) środowisko Code Blocks – będzie to potrzebne do uruchomienia wersji polskojęzycznej środowiska. U nas np. tym folderem jest:
C:\Program Files (x86)\CodeBlocks
Teraz następuje sam proces instalacji. Zajmuje on od jednej do kilku minut. Na koniec możemy otworzyć środowisko Code Blocks i zamknąć okienko instalatora.
Jak ustawić język polski?
Instrukcje
Aby móc korzystać z niej w języku polskim, ściągnij na swój komputer plik z tłumaczeniem na polski (Uwaga: początkowo umieściliśmy tu nieaktualny plik z tłumaczeniem. Ten teraz jest dobry), a następnie wykonaj następujące kroki:
- Wejdź do folderu, w którym zainstalowałeś Code Blocks (używając np. Eksploratora plików).
- Przejdź do folderu "share", a następnie "CodeBlocks".
- Utwórz folder o nazwie "locale".
- Przejdź do folderu locale i utwórz w nim folder o nazwie "pl_PL" (ten znak w środku to podkreślenie; znajduje się na przycisku "minus").
- Przejdź do folderu "pl_PL" i przenieś do niego ściągnięty na początku plik "polish.mo".
- Zamknij i uruchom ponownie środowisko.
- Wejdź do menu Settings, następnie Environment. Po lewej wybierz opcję "View". Upewnij się, że pole "Internationalization" (drugie od góry) jest zaznaczone, po czym wybierz w nim język "Polish".
- Zamknij i uruchom ponownie środowisko Code Blocks. Gratulacje, powinieneś teraz widzieć menu w języku polskim!
Część programistyczna: Piszemy i kompilujemy pierwszy program
Przyszła pora, by napisać pierwszy program w C++. Oto on:
#include <iostream>
using namespace std;
int main() {
cout << "Pierwszy program!" << endl;
}
Jak uruchomić ten program w Code Blocks?
Instrukcje
Otwórz środowisko Code Blocks, z menu Plik wybierz Nowy → Pusty plik i w okienku edycji wprowadź powyższą treść programu.
Uwaga: Jeżeli korzystasz ze stosunkowo nowej wersji przeglądarki Chrome, Firefox, Internet Explorer, Opera lub Safari, to wszystkie programy z lekcji możesz po prostu skopiować i wkleić do Code Blocks – zwróć uwagę na to, że możesz zaznaczyć tekst bez numerów wierszy. W innych przeglądarkach to także może zadziałać, ale nie dajemy gwarancji.
Musisz teraz przejść kilka standardowych kroków, zanim zobaczysz wynik działania programu. Oto one:
- Zapisz plik pod nazwą pierwszy.cpp. W tym celu w menu Plik wybierz opcję Zapisz plik, po czym wskaż katalog i w nazwie pliku wpisz pierwszy.cpp (pamiętaj o rozszerzeniu .cpp, bez niego środowisko zapisze go jako program w języku C). Zamiast korzystać z menu, możesz w przyszłości do zapisywania używać skrótu klawiaturowego Ctrl+S.
- Program, który napisaliśmy, nie jest jeszcze niestety zrozumiały dla komputera i nie może po prostu "zadziałać". Aby można go było uruchomić, trzeba go skompilować. Podczas kompilacji program zostanie przetworzony na język zrozumiały dla komputera i przygotowany do działania. W tym celu w menu Kompilacja wybierz opcję Kompilacja (skrót klawiaturowy: Ctrl+F9). Na dole ekranu powinien się wyświetlić taki mniej więcej komunikat:
Proces zakończył się kodem wyjścia 0 (0 min, 0 sek)
0 błędów, 0 ostrzeżeń (0 min, 0 sek)
- Teraz już możesz uruchomić program. W menu Kompilacja wybierz opcję Uruchom (Ctrl+F10). W wyniku uruchomienia na czarnym tle zobaczysz komunikat "To jest moj pierwszy program!", a także informację, ile czasu działał Twój program:
Pierwszy program!
Process returned 0 (0x0) execution time : 0.043 s
Press any key to continue.
- Uwaga: Przy pierwszym uruchomieniu może okazać się, że okienko, które zobaczysz, będzie strasznie małe, i nic w nim nie będziesz widział. Aby zmienić rozmiar czcionki w okienku, kliknij myszką w lewym górnym rogu okienka, następnie na "Właściwości", tam wybierz zakładkę "Czcionka", a w niej któryś z większych rozmiarów czcionek, np. "12 x 16". Na koniec naciśnij dowolny przycisk, aby zamknąć to okno.
W folderze, w którym zapisałeś program pierwszy.cpp, znajdziesz także wersję programu gotową do uruchomienia, tzw. plik wykonywalny. Możesz go uruchomić (poprzez podwójne kliknięcie), jednak wtedy program szybko otworzy się i zamknie. Wynik działania programu wygodniej więc oglądać w środowisku Code Blocks. Wyjaśnimy teraz w kilku słowach poszczególne elementy programu pierwszy.cpp. Przypomnijmy, jak on wygląda:
#include <iostream>
using namespace std;
int main() {
cout << "To jest moj pierwszy program!" << endl;
}
Instrukcje zawarte w dwóch pierwszych wierszach będą nam towarzyszyć przez większość kursu i na tym etapie nie musisz ich zbyt dokładnie rozumieć. Pierwsza z nich umożliwia wczytywanie i wypisywanie informacji przez program, a druga – łatwe wykorzystywanie różnych standardowych elementów języka C++.
Z naszego punktu widzenia najważniejsze jest to, co dzieje się dalej – wewnątrz main, czyli głównej funkcji programu. Wszystko, co następuje po słowie cout, dotyczy tego, co program ma wypisać, przy czym kolejne elementy do wypisania poprzedzane są znakami <<
. Pierwszym elementem był komunikat "To jest moj pierwszy program!"
, a drugim – endl
, oznaczający przejście do nowego wiersza (czyli to, co standardowo robi przycisk Enter). Na końcu listy komunikatów do wypisania musi być średnik.
Większość elementów tego programu będzie nam towarzyszyła przez cały czas trwania kursu.
A oto krótka instrukcja dla osób, które zamiast Code Blocks będą używać strony Ideone.
Uwaga: W niektórych środowiskach programistycznych do C++ (np. Dev-C++), aby zobaczyć wynik działania programu w środowisku, trzeba używać instrukcji system("pause")
. W przypadku środowiska Code Blocks używanie tej instrukcji nie jest potrzebne. Co więcej, programy wysłane na Szkopuł nie mogą jej używać.
Trochę terminologii
Program, taki jak napisaliśmy na początku, nazywa się kodem źródłowym. Napisaliśmy go w języku o nazwie C++, ale moglibyśmy go napisać w dowolnym innym języku programowania. Niestety takiego programu nie da się bezpośrednio uruchomić na komputerze – język C++ nie jest zrozumiały dla procesora. Dlatego potrzebowaliśmy specjalnego programu o nazwie kompilator C++ (zawartego w środowisku Code Blocks), który przetłumaczył program z języka C++ na tzw. język maszynowy, który jest już zrozumiały dla procesora. Wynik działania kompilatora nazywamy plikiem wykonywalnym (potocznie zwanym programem), czyli wersją programu, którą można uruchomić na komputerze. Samo słowo program jest więc niejednoznaczne: może oznaczać zarówno kod źródłowy programu, jak i otrzymany za pomocą kompilatora plik wykonywalny.
Uwaga: Zamiast prostej procedury kompilowania programu znajdującego się w pojedynczym pliku moglibyśmy też utworzyć projekt Code Blocks. Ponieważ na tym etapie nauki nie jest to do niczego potrzebne, opiszemy, jak to zrobić, dopiero w lekcji 6.
Kolejne programy
Łatwo domyślić się, jak zmodyfikować podany program, by wypisał coś innego. Zmieniamy nasz program następująco:
#include <iostream>
using namespace std;
int main() {
cout << "ABC" << endl
<< "DEF" << endl
<< "GHI" << endl;
}
Uwaga: Jeżeli chcesz zapisać nowy program w miejsce starego, to wystarczy, że zmienisz jego kod zgodnie z uznaniem i naciśniesz kombinację przycisków Ctrl+S. Jeżeli jednak chciałbyś zapisać go osobno pod inną nazwą – i tym samym pozostawić stary program – musisz wejść do menu Plik i tam wybrać opcję Zapisz plik jako..., podać nową nazwę i zatwierdzić – wówczas oba kody będą zachowane w oddzielnych plikach na dysku.
Jeśli przejdziesz kolejno przez kroki 1-3 podane wyżej (np. kolejno: Ctrl+S, Ctrl+F9, Ctrl+F10), zobaczysz tym razem w czarnym okienku trzy wiersze zawierające litery ABC, DEF i GHI.
Możemy dość dowolnie zmieniać treść wypisywanego komunikatu. Kolejny program wypisze to samo co poprzedni, tylko z różnymi dodatkowymi spacjami i znakami interpunkcyjnymi, a także z jednym pustym wierszem:
#include <iostream>
using namespace std;
int main() {
cout << " ? ABC" << endl
<< "DEF." << endl
<< endl
<< "GHI !" << endl;
}
Warto wiedzieć, że programista ma pewną dowolność, jeśli chodzi o kod programu. W większości przypadków kompilator ignoruje dodatkowe spacje (w powyższym programie spacja nie jest dopuszczalna jedynie w ramach znaków "<<"). Również nie jest dla niego istotny podział programu na wiersze (z wyjątkiem wiersza z instrukcją #include
, którego lepiej na razie nie ruszać). A zatem poniższy program będzie działał dokładnie tak samo, jak przedostatni:
#include <iostream>
using
namespace
std;
int main()
{
cout << "ABC" << endl << "DEF" << endl
<<"GHI"<<endl;
}
Nie da się ukryć, że wcześniejszy program wyglądał o niebo ładniej.
Wielu elementów programu absolutnie nie można zmieniać. Jeśli np. będziemy mieli literówkę w słowie cout
, zapomnimy któregoś średnika, umieścimy nawiasy klamrowe zamiast okrągłych lub odwrotnie, zamienimy znak mniejszości <
na znak większości >
, czy napiszemy słowo int
z wielkiej litery – program nie skompiluje się poprawnie.
Proponujemy Ci, abyś poeksperymentował chwilę z tym programem, zmieniając różne drobiazgi i patrząc, jakie błędy wypisał kompilator. Na przykład, czy można umieścić spację między dziubkami <<
?
Co będzie dalej...?
Oczywiście jest o wiele więcej czynności, które można wykonać za pomocą programów w C++, poza wypisywaniem komunikatów na ekran. Będziesz je kolejno poznawać w ramach niniejszego kursu. Jako pewien przedsmak pokażemy, że program w języku C++ może służyć jako kalkulator, np. przeliczyć 100 stopni w skali Celsjusza na stopnie w skali Fahrenheita:
#include <iostream>
using namespace std;
int main() {
cout << 100 * 9 / 5 + 32 << endl;
}
Komentarz
O komputerach często mówi się, że są to "inteligentne" urządzenia liczące. Słowo "inteligentne" sugeruje, że komputery potrafią myśleć. Tak jednak nie jest. Komputer to zwykła maszyna zachowująca się tak, jak nakaże jej użytkownik, wykonując jego polecenia. Co wyróżnia komputer od innych maszyn, to zestaw specyficznych operacji, które komputer jest zdolny wykonać, oraz niezwykła szybkość ich wykonywania. Mówiąc bardzo ogólnie, komputery potrafią po prostu bardzo szybko liczyć. Działają one zgodnie z zadanymi przepisami, które nazywamy algorytmami. Jedna z nieformalnych definicji algorytmu mówi (Lech Banachowski i Antoni Kreczmar, "Elementy analizy algorytmów", WNT, Warszawa 1982):
Algorytmem nazywa się najczęściej przepis postępowania, który ma prowadzić w sposób automatyczny do rozwiązania określonego zadania. Ten przepis postępowania powinien być na tyle precyzyjny, aby posługiwanie się nim polegało tylko na automatycznym wykonywaniu instrukcji przepisu. Zakłada się przy tym, że pewne pierwotne instrukcje tego przepisu są wykonalne, to znaczy, że są one zdefiniowane i w algorytmie nie musi się ich definiować, ale można ich używać.
W tej definicji algorytmu jest kilka bardzo ważnych elementów, na które należy zwrócić uwagę. Po pierwsze, mówimy o rozwiązywaniu zadania. Takie zadanie powinno być dokładnie zdefiniowane. Zazwyczaj podaje się warunki, jakie muszą spełniać dane, na których będziemy operowali, oraz warunki, jakie powinny spełniać wyniki, po wykonaniu algorytmu dla tych danych. Po drugie, musimy wiedzieć, jakim zestawem dostępnych operacji dysponujemy. Pozostaje jeszcze sposób opisu rozwiązania. Ten opis także powinien być zrozumiały dla tego, kto ma wykonywać algorytm, tym bardziej że ma być on wykonany w sposób automatyczny, czyli bez myślenia. W przypadku komputerów algorytmy wyraża się zgodnie z precyzyjnymi regułami zadanymi przez język programowania, używany do zapisywania tych algorytmów, a proces zapisywania algorytmu w konkretnym języku programowania nazywamy kodowaniem. Sam język programowania narzuca ścisłe ograniczenia na operacje, których możemy używać w opisie algorytmu. Kodowanie należy zdecydowanie odróżnić od programowania. Programowanie jest pojęciem dużo szerszym i składa się między innymi z analizy zadania do rozwiązania, ułożenia algorytmu będącego rozwiązaniem tego problemu, zakodowaniu algorytmu w wybranym języku programowania i przetestowaniu otrzymanego programu. Najważniejszy w tym procesie jest algorytm. Dział informatyki zajmujący się badaniem algorytmów nazywamy algorytmiką. Wybitny izraelski informatyk David Harel napisał ("Rzecz o istocie informatyki - algorytmika, WNT, Warszawa 1992):
Algorytmika to więcej niż dział informatyki. Tkwi on w sercu wszystkich działów informatyki i z całą uczciwością można o niej powiedzieć, że jest ważna dla większości nauk matematyczno-przyrodniczych, ekonomii i techniki. Sama natura algorytmiki czyni ją szczególnie odpowiednią do stosowania w tych dyscyplinach, które czerpią korzyści z posługiwania się komputerami; takich dyscyplin jest przytłaczająca większość.
Umiejętność dobrego programowania nie jest łatwa. Niektórzy podnieśli programowanie do rangi sztuki (zobacz dzieło Donalda Knutha "Sztuka programowania"). W tym kursie chcielibyśmy zrobić z Wami pierwszy krok w kierunku artyzmu programowania.
Skąd się wzięło pojęcie algorytm. Jest to termin średniowieczno-łaciński, ale wywodzący się z arabskiego. Pochodzi od imienia perskiego uczonego Muhammeda Al-Chwarizmiego (IX wiek). Jego nazwisko pisane po łacinie brzmiało Algorismus. Dlaczego imię Al-Chwarizmiego przetrwało w postaci terminu algorytm? Otóż napisał on wiele prac naukowych, z których większość zachowała się do dziś. Oto one: Tablice (astronomia, kalendarz, sinus, cotangens), Arytmetyka (hinduski zapis pozycyjny, metody rachunkowe), Algebra (równania liniowe i kwadratowe), Kalendarz Żydowski, Kroniki, Geografia, Astrologia. Oczywiście czerpał wiele z nauki greckiej i hinduskiej. Te dwa połączone nurty dały wspaniały wynik w postaci pozycyjnego zapisu liczb i rozwoju metod rachunkowych.
Słowo o języku programowania C++. Autorem języka programowania C++ jest Bjarne Stroustrup. C++ jest w powszechnym użyciu od początku lat osiemdziesiątych. Język C++ jest znaczącym rozwinięciem języka C, ale zachowano język C jako podzbiór C++ z dokładnością blisko stuprocentową.
Ten komentarz zilustrujemy przykładem algorytmu niekomputerowego dla problemu znanego także pod nazwą "Wieże Hanoi":
Zobacz tekst nagrania
Na ziemi wytyczono niewielkie koło, na jego obwodzie umieszczono trzy kołki. Na jeden z nich nałożono płaskie klocki w kształcie pierścieni. Każdy pierścień ma inną średnicę. Pierścienie zostały nałożone w kolejności od największego (na spodzie) do najmniejszego (na wierzchu). Pierścienie można przekładać z kołka na kołek, ale tylko pojedynczo, i nie wolno kłaść większego pierścienia na mniejszy. Przy tych ograniczeniach należy przełożyć wszystkie pierścienie na inny kołek (którykolwiek).
Rozwiązanie opiszemy na tyle dokładnie, by mógł je wykonać automatyczne np. przedszkolak nierozumiejący samego problemu ani dlaczego metoda działa.
Algorytm
- Usiądź wewnątrz koła.
- Przenieś najmniejszy pierścień o jeden kołek w prawo.
- Dopóki wszystkie pierścienie nie znajdą się na jednym kołku:
- Wykonaj jedyne możliwe przeniesienie bez ruszania najmniejszego pierścienia; innymi słowy, przenieś mniejszy z pierścieni znajdujących się na wierzchach kołków niezawierających najmniejszego pierścienia na drugi z tych kołków.
- Przenieś najmniejszy pierścień o jeden kołek w prawo.
Omówienie sformułowania problemu. Zadania algorytmiczne (informatyczne) często mają strukturę dane-wyniki. Dane to opis obiektów, które podlegają przetwarzaniu w sposób zadawany przez algorytm, natomiast wyniki to opis tego, co chcielibyśmy osiągnąć, wykonawszy algorytm.
Po pierwsze, jest jasne, od czego zaczynamy: trzy kołki na obwodzie koła, na jeden z nich nałożono pierścienie w kolejności od największego do najmniejszego.
Po drugie, wiadomo, do czego zmierzamy: pierścienie w tej samej kolejności, na innym kołku.
By sformułować rozwiązanie, musimy również mieć jasność, jakimi operacjami można się posługiwać. W tym przypadku ze sformułowania zadania wynika, że dostępne operacje to: (1) porównywanie rozmiarów pierścieni oraz (2) przekładanie pierścienia na inny kołek (pod warunkiem, że większego nie kładziemy na mniejszy).
Omówienie algorytmu. Posługując się podanym algorytmem, rzeczywiście przełożymy pierścienie na inny kołek, niezależnie od liczby pierścieni do przełożenia. Przykład ten pokazuje, że jeśli sposób postępowania opiszemy wystarczająco precyzyjnie, to osoba rozumiejąca opis wykona zadanie niezależnie od tego, czy wie, dlaczego ten sposób jest dobry. Jednak twórca algorytmu powinien być przekonany o poprawności swojego rozwiązania. Powinien umieć odpowiedzieć na szereg pytań. Skąd pewność, że przekładanie pierścieni się zakończy? A może w pewnych przypadkach można przekładać je w nieskończoność? Skąd wiadomo, że w momencie zakończenia wykonywania algorytmu faktycznie wszystkie pierścienie będą nałożone na jeden kołek? Czy może się zdarzyć, że po zakończeniu "wylądujemy" z pierścieniami z powrotem na kołku wyjściowym? (To byłby problem, bo pierścienie mamy umieścić na innym kołku niż wyjściowy). Po ilu przełożeniach osiągniemy cel i od czego to zależy? Czy i kiedy mamy dowolność w przekładaniu największego wierzchniego pierścienia (np. na który kołek go przełożyć)? Na takie pytania odpowiada algorytmika – dział informatyki zajmujący się analizą i projektowaniem algorytmów.
Zadania
Na końcu każdej lekcji kursu mamy dla Ciebie konkursowe zadania do samodzielnego rozwiązania. Rozwiązaniem każdego z zadań jest program (a dokładniej: kod źródłowy), który powinieneś zgłosić w serwisie Szkopuł. Programy są oceniane w pełni automatycznie.
Aby program został zaakceptowany w systemie, wynik działania programu powinien być idealnie zgodny z wymaganiami z treści zadania (tolerowane są jedynie dodatkowe spacje na końcach wierszy oraz dodatkowe puste wiersze na końcu programu). Jeśli Twój program nie zadziała za pierwszym razem – nie przejmuj się, możesz przesłać jego poprawioną wersję jeszcze raz! Jeśli chcesz uniknąć ciągłego wysyłania, najpierw sprawdź poprawność kompilacji i działania programu na swoim komputerze.
Zadanie 1. Początek
To jest Twoje pierwsze zadanie do samodzielnego rozwiązania. Napisz program, który wypisze następujący komunikat (trzy wiersze):
Mount Everest - 8850 m n.p.m.
McKinley - 6194 m n.p.m.
Mont Blanc - 4810 m n.p.m.
Wyjście
Twój program powinien wypisać dokładnie podany wyżej komunikat.