Podstawy. Uruchomienie programu C++ Builder. O czym będziemy mówić? Krótka historia C++ (od C zaczynając) Narzędzie.



Podobne dokumenty
Podstawy. O czym będziemy mówić? Krótka historia C++ (od C zaczynając) Pierwsze programy

Podstawy. Uruchomienie programu C++ Builder. O czym będziemy mówić? Krótka historia C++ (od C zaczynając) Narzędzie.

Podstawy. Uruchomienie programu C++ Builder. Krótka historia C++ Narzędzie. Rozpoczęcie pracy

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Wstęp do programowania. Wykład 1

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych

Języki i metodyka programowania. Wprowadzenie do języka C

Utworzenie pliku. Dowiesz się:

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

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

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

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

Podstawy Programowania

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

Programowanie w języku C++ Grażyna Koba

1 Podstawy c++ w pigułce.

Programowanie obiektowe i C++ dla matematyków

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy programowania w C++

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

1 Podstawy c++ w pigułce.

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Programowanie w języku Python. Grażyna Koba

Część 4 życie programu

I - Microsoft Visual Studio C++

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy programowania skrót z wykładów:

C++ wprowadzanie zmiennych

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

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

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

WYKŁAD 1 - KONSPEKT. Program wykładu:

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

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

Wprowadzenie do środowiska Qt Creator

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

WPROWADZENIE DO INFORMATYKI

Programowanie komputerowe. Zajęcia 1

Programowanie proceduralne w języku C++ Podstawy

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

Wstęp do programowania

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

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

Wstęp do Programowania, laboratorium 02

Programowanie obiektowe zastosowanie języka Java SE

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

7. Pętle for. Przykłady

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Język C++ Różnice między C a C++

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Programowanie Obiektowe GUI

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Laboratorium 1 - Programowanie proceduralne i obiektowe

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

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

Zastanawiałeś się może, dlaczego Twój współpracownik,

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług

Programowanie niskopoziomowe

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

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

1. Wypisywanie danych

Podstawy Programowania. Wykład 1

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

1.Wstęp. 2.Generowanie systemu w EDK

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

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

Programowanie obiektowe

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Delphi podstawy programowania. Środowisko Delphi

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Java jako język programowania

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie - wykład 4

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Pytania sprawdzające wiedzę z programowania C++

Fragment wykładu z języka C ( )

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Programowanie strukturalne z C ++ 1 Wprowadzenie do programowania 1.1 Co to znaczy programować Algorytm JSP

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

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

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

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

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

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Transkrypt:

Podstawy O czym będziemy mówić? Krótka historia C++ (od C zaczynając) Język C wyłonił się z języka B, który powstał z kolei z języka BCPL (Basic Combined Programming Language). BCPL został stworzony przez Martina Richardsa w roku 1967. Był to język beztypowy, który działał bezpośrednio na słowach maszynowych i adresach. Zainspirowany językiem BCPL Ken Thomspon w roku 1970 stworzył beztypowy język B. Język B i język asemblera zostały użyte do napisania pierwszej wersji systemu UNIX. W roku 1972, Dennis Ritchie zaprojektował język C, w którym zawarł szereg idei pochodzących z języka BCPL, ponadto zostały wprowadzone typy (typy całkowite, rzeczywiste itp.). Komitet ANSI określił w roku 1988 unowocześniony standard języka C. Język zgodny z tym standardem określony jest jako ANSI C. Język C++ został stworzony przez Bjarne Stroustrup a i jego zespół w AT&T, jako rozwinięcie C. Przeznaczenie: symulacje- język miał umożliwić efektywne zorientowane obiektowo programowanie. Pierwsza wersja C(++) powstała w 1980 roku jako C with classes, a ostateczna wersja języka wg Stroustrupa - w 1985 roku, już pod nazwą C++. 1989 - utworzenie przez ANSI (American National Standards Institute) komitetu standaryzacyjnego. Cel unifikacja języka różnicowanego przez producentów kompilatorów i środowisk programistycznych. 1998 ISO (International Organization for Standarization) zatwierdza standard dla C++ (ISO/IEC 14882). Narzędzie C++Builder 5 jest środowiskiem RAD (Rapid Application Development błyskawiczne tworzenie aplikacji) dla programujących w języku C++. C++Builder 6 - pierwszym, które zawiera bibliotekę komponentów CLX, umożliwiającą tworzenie aplikacji dla Windows i Linuksa przy wykorzystaniu wspólnego kodu. Pozwoli to programistom (przy użyciu wersji C++Buildera dla Linuksa - Kylix 3) szybko tworzyć wydajne aplikacje dla obu najpopularniejszych systemów operacyjnych dla PC. Oczywiście korzystanie z CLX zamiast z kontrolek windowsowych (VCL) wpłynie nieco na wygląd i zachowanie, a także większą objętość tworzonych programów, jednak dzięki temu możliwe będzie obniżenie kosztów przygotowania aplikacji dla większej grupy użytkowników. Rozpoczęcie pracy Uruchomienie programu C++ Builder C++ Builder po uruchomieniu wygeneruje automatycznie kod nowego projektu niestety ten projekt to aplikacja wykorzystująca interfejs graficzny. Ponieważ nasze programy będą przeznaczone do uruchamiania w środowisku konsoli, nie możemy korzystać z tego projektu.

Tworzenie nowego projektu Jeśli chcemy utworzyć nowy program, postępujemy zgodnie z ilustracjami poniżej. [Wprowadzamy następującą konwencję zapisu takich operacji, jak powyżej: File>New>Other...>Console Wizard] a następnie Ponieważ nasz pierwszy (i nie tylko) program nie będzie korzystał z komponentów VCL, CLX ani też nie będzie wielowątkowy (Multi Threaded) wybieramy jak powyżej. Kompilator automatycznie wygeneruje szkielet pliku źródłowego (Unit1.cpp): //--------------------------------------------------------------------------- #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) //--------------------------------------------------------------------------- Wygenerowany kod nie jest nam do niczego potrzebny, zastępujemy go własnym. Kompilowanie i uruchamianie projektu Plik wykonywalny (*.exe) tworzony przez Buildera, zawsze będzie miał taką samą nazwę, jak projekt. Domyślnie projekt uzyskuje nazwę Projectnumer_porządkowy (jeśli to pierwszy projekt, numer_porządkowy będzie równy 1). Projekt można zapisać pod dowolną nazwą : File > Save Project as... Zakładając, że to nasz pierwszy projekt, Builder zażąda kolejno nazwy pliku źródłowego (domyślnie Unit1.cpp) i nazwy pliku projektu (domyślnie Project1.bpr). Plik wykonywalny uzyskamy poleceniem: - Project > Make Project1 [skrót Ctrl+F9] - kompilator przetworzy tylko pliki, zmodyfikowane przez nas od dokonania ostatniej kompilacji [ten sam efekt uzyskamy wydając polecenie uruchomienia naszego programu - Run [skrót F9] (przycisk )]. Oczywiście Run po kompilacji dodatkowo uruchomi nasz program. - Project > Build Project1 [skrót F7] kompilator przetwarza ponownie wszystkie pliki projektu

Otwieranie już istniejącego pliku z kodem źródłowym 1 (*.cpp) Pracę musimy rozpocząć od polecenia File>Close All. Pominięcie tego kroku jest częstym błędem. Dlaczego? Jeśli właśnie uruchomiliśmy C++ Buildera, utworzony jest projekt przeznaczony dla aplikacji z interfejsem graficznym (porównaj: Uruchomienie programu C++ Builder) i skompilowanie naszego kodu źródłowego nie będzie dla takiego projektu możliwe. Jeśli otwarty jest projekt przeznaczony dla konsoli otwarcie naszego kodu źródłowego w tym projekcie nic nie da, C++ Builder w dalszym ciągu będzie kompilował stary plik źródłowy. Przykład: Utwórz nowy projekt: File>Close all; File>New>Other>Console Wizard. Jako kod źródłowy umieść następujący program: cout<<"a"; system("pause"); Teraz zapisz projekt [File>Save Project as...] pod nazwą test.bpr [a plik źródłowy jako test.cpp]. Teraz otwórz program notatnik, wprowadź następujący kod: cout<<"b"; system("pause"); i zapisz plik jako test2.cpp w katalogu, w którym zostały zapisane pliki test.cpp i test.bpr. Zamknij w Builderze okno Edytora kodu: Teraz otwórz plik test2.cpp [File>Open...]. Uruchom program [F9]. Jaki komunikat został wyświetlony na konsoli? Otwieranie pliku projektu Project Manager Aby otworzyć zapisany plik projektu należy wybrać polecenie File>Open Project... [Ctrl+Shift+o], wyszukać plik projektu i zatwierdzić. Po otwarciu projektu musimy sami otworzyć okno Edytora kodu. Należy otworzyć narzędzie Project Manager - View>Project Manager [skrót Ctrl+Alt+F11], a następnie rozwinąć węzeł o nazwie NazwaProjektu.exe i otworzyć plik z kodem źródłowym: i już możemy zacząć pracę z naszym programem. 1 Przyjmujemy, że jest to kod aplikacji przeznaczonej do wykonywania z poziomu konsoli

Pierwsze programy Najprostszy program w C++ ma postać: Każdy program C++ przeznaczony dla konsoli musi zawierać funkcję main (główna funkcja programu, od niej powłoka rozpoczyna wykonywanie programu), zwracającą (do powłoki systemu operacyjnego) wartość typu int (integer liczba całkowita 2 lub 4 bajtowa [zależnie od architektury procesora]). Przedstawiony powyżej program składa się wyłącznie z definicji funkcji main. Ciało funkcji, zawarte pomiędzy nawiasami klamrowymi, składa się z jednej instrukcji: return 0 zakończonej średnikiem. W języku C++ (w przeciwieństwie do np. Visual Basic-a) większość instrukcji musi być zakończonych średnikiem. Instrukcje, których nie kończymy średnikiem zostaną szczegółowo omówione później. Przyjmijmy, że nasz drugi program ma wyświetlić na konsoli tekst Jestem Twoim drugim programem. Skorzystamy z obiektu cout (console output), który kieruje wszystkie dane wysłane do niego na standardowe wyjście (zwykle jest to konsola, ale istnieje możliwość przekierowania strumienia wyjścia do pliku lub urządzenia peryferyjnego). Obiekt cout jest instancją klasy ostream (output stream strumień wyjścia ). Obiekt ten jest tworzony automatycznie podczas uruchomienia programu, jeśli dołączymy odpowiedni standardowy plik nagłówkowy przy użyciu dyrektywy preprocesora (która zaczyna się od znaku # i kończy wraz z końcem linii):. Dyrektywa wymaga wykonania pewnego działania zanim program zostanie przetłumaczony na kod maszynowy. Preprocesor włącza (wstawia) zawartość wymienionego pliku (w tym przypadku iostream), dokładnie w miejscu, gdzie pojawia się linia #include. Zanim będziemy mogli skorzystać z obiektu cout, musimy wstępnie omówić pojęcie przestrzeni nazw (namespace). Przestrzeń nazw jest narzędziem umożliwiającym uniknięcie kolizji nazw zmiennych, stałych, funkcji i obiektów. Do elementów należących do danej przestrzeni nazw możemy się dostać tylko, jeśli poinformujemy kompilator, że dany identyfikator należy do określonej przestrzeni nazw. Na przykład wszystkie identyfikatory standardowej biblioteki są zawarte w przestrzeni nazw std. Możemy się do nich odwoływać na trzy sposoby (przykłady dla obiektu cout): - za pomocą dyrektywy using, np: coutdalszy ciąg instrukcji; - za pomocą kwalifikatora ::, np.: std::coutdalszy ciąg instrukcji; - za pomocą deklaracji using: using std::cout; coutdalszy ciąg instrukcji; My będziemy się posługiwać pierwszą metodą dyrektywą using. Aby przesłać komunikat Jestem Twoim drugim programem do obiektu cout, który wyśle go na konsolę, użyjemy operatora << (operator wstawienia - insertion). Odpowiednia instrukcja ma postać: cout<< Jestem Twoim drugim programem ;. Nasz drugi program będzie miał zatem postać: //dyrektywa preprocesora dołączająca plik nagłówka iostream /*udostępnienie wszystkich elementów przestrzeni nazw std za pomocą dyrektywy using */ //definicja funkcji main() - początek cout<< Jestem Twoim drugim programem ; //definicja funkcji main() - koniec

W powyższym kodzie pojawiają się dwa nowe elementy : // symbol komentarza nakazujący kompilatorowi zignorowanie wszystkich znaków od miejsca jego wystąpienia do końca linii /*...*/ symbol /* nakazuje kompilatorowi zignorować wszystkie znaki aż do sekwencji kończącej komentarz: */ - ten rodzaj komentarza może obejmować kilka linii kodu Jeszcze jedna uwaga wykonywanie instrukcji zawartych w ciele funkcji (w naszym przypadku funkcji main) kończy się w momencie wykonania instrukcji return. Oznacza to, że dla ciągu instrukcji //definicja funkcji main() cout<< Jestem Twoim pierwszym programem ; instrukcja cout<< Jestem Twoim pierwszym programem ; nigdy nie zostanie wykonana, bo po instrukcji program zwraca sterowanie do powłoki systemu operacyjnego (BCB: Warning: unreacheable code ). Okno konsoli zamknęło się natychmiast po zakończeniu wykonywania programu. Jeśli chcemy wstrzymać wykonywanie programu do momentu wciśnięcia dowolnego klawisza, możemy posłużyć się funkcją getch(). Aby jej użyć musimy załączyć plik nagłówka conio (patrz zadanie 5). UWAGA: conio nie jest biblioteką standardową ANSI/ISO C++! Inny sposób: system("pause"); - wymaga tylko biblioteki iostream. Trochę więcej o strumieniu wyjściowym Przyjmijmy, że chcemy wypisać na konsoli tekst: Napis w pierwszej linii. Napis w drugiej linii. Aby przejść do nowej linii możemy posłużyć się specjalnym manipulatorem strumieni wyjścia endl, wysyłającym znak końca linii do strumienia: cout<< Napis w pierwszej linii. <<endl<< Napis w drugiej linii. ;. Jak widać na powyższym listingu do obiektu cout możemy wysłać dowolną liczbę wyrażeń poprzedzonych operatorem <<. Równoważny jest zapis: cout<< Napis w pierwszej linii. <<endl << Napis w drugiej linii. ; //instrukcja może obejmować kilka wierszy! Identyczny efekt uzyskamy korzystając ze specjalnej zbitki znaków \n: cout<< Napis w pierwszej linii.\nnapis w drugiej linii. ;. Jeśli z jakichś przyczyn (np. dla lepszej przejrzystości kodu) chcielibyśmy umieścić tekst wysyłany do obiektu cout w kilku liniach, możemy to zrobić także w następujący sposób: cout<< Napis w pierwszej linii.\n Napis w drugiej linii. ; Powyższy kod jest poprawny. Preprocesor sam połączy następujące po sobie teksty zawarte w cudzysłowach (określane dalej jako stałe tekstowe lub łańcuchy tekstowe), jeśli są oddzielone spacją, znakiem tabulacji, końcem linii lub pustą linią. Linia może być zawsze przedłużona, jeśli jej ostatnim znakiem (czyli poprzedzającym znak końca linii) jest znak \ : cout<< Napis w pierwszej linii.\n\ Napis w drugiej linii. ; Więcej specjalnych sekwencji rozpoczynających się od znaku \ (escape sequences) zawiera tabela: Tabela 1 Wybrane sekwencje specjalne. Sekwencja Efekt \a Sygnał dźwiękowy \b backspace \t Tabulacja pozioma \n Przejście do nowego wiersza \r Powrót karetki (strumień zaczyna pisać od początku bieżącego wiersza)

\ Cudzysłów \ Apostrof \?? \\ Ukośnik \ \0 Znak końca łańcucha tekstowego \xhh Kod znaku ASCII (hexadecymalnie) \888 Kod znaku ASCII (oktalnie) Do obiektu cout możemy wysyłać także pojedyncze znaki: cout<<'a'; oraz liczby: cout<<121; Zadania 1. Napisz program BANNER drukujący na ekranie napis: # # # # # # ##### ## # # # # # # # # # # # # # # # # # # # # # # ###### # # # # # # # # # # ## ## # # # # #### 2. Napisz program, który wyświetli na konsoli Twoją wizytówkę: ****************************** " " " Imię Nazwisko " " wiek: 00 lat(a) " " " ****************************** 3. Napisz program, który wyświetli na konsoli Twoje inicjały w formacie: * * * * ** * * * * * * * * * * * * * * * ** * * * 4. Popraw błędy w kodzie: */wytęż wzrok i znajdź??? szczegółów :-)// #include <stream> int main cout<< Jeśli, cout>> program wyświetli ; cout<< endl; cout<< ten tekst, << możesz zrobić sobie przerwę. <<endl. Return 0; 5. Co wyświetli na konsoli ten program? Skorzystaj z Tabela 1 Wybrane sekwencje specjalne. #include <conio> //UWAGA! conio nie jest standardową biblioteką ANSI/ISO C++!!! cout<<"\n1\n\t2\r3";

getch(); /* to jest funkcja z biblioteki conio stosowanie jej nie jest zalecane inne rozwiązanie: system("pause"); //wysyła do powłoki komendę systemową pause */ 6. Napisz program, który będzie zwracał następującą tabelę (ż == \xbe): Poniższe kursy obowiązują od dnia 2003-10-31: +----------------+-------+---------------+-------+----------+ Kraj Symbol Waluta Kurs Kurs waluty kupna sprzedaży +----------------+-------+---------------+-------+----------+ Australia 781 1 AUD 2,8111 2,8679 Czechy 213 1 CZK 0,1446 0,1476 Dania 792 1 DKK 0,6243 0,6369 Estonia 233 1 EEK 0,2965 0,3025 Japonia 784 100 JPY 3,6686 3,7428 Kanada 788 1 CAD 3,0324 3,0936 +----------------+-------+---------------+-------+----------+ 7. Napisz program, który narysuje jeden z obrazków:.--------------. _. `., ( ((_( (_() \'-:--:-.,'` '- -'-----'-- -' b d,\--/,,-, -------------- @ @ -----------,-, _/ -------------- \/ ----------- `-/ ) (,-,`-'_/ _/ --------------`W-mm-W'-------- _/ / \ / /`-'/ _/ WW / / / / /