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



Podobne dokumenty
Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

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.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

po wykonaniu instrukcji wartość zmiennej x zostanie zwiększona o 50,a

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Część XV C++ Ćwiczenie 1

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

Utworzenie pliku. Dowiesz się:

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

7. Pętle for. Przykłady

Część XII C++ Warunki zagnieżdżone Ćwiczenie 1 nazwisko40 2. nie przepisując komentarzy!

Programowanie strukturalne i obiektowe. Funkcje

Wstęp do Programowania, laboratorium 02

1 Podstawy c++ w pigułce.

Informatyka I: Instrukcja 4.2

1 Podstawy c++ w pigułce.

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

4. Funkcje. Przykłady

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

5 Przygotował: mgr inż. Maciej Lasota

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

W dowolnym momencie można zmienić typ wskaźnika.

Pętle. Dodał Administrator niedziela, 14 marzec :27

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

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

CLARION 2 - część II Tworzenie aplikacji

Programowanie w języku Python. Grażyna Koba

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Program 14. #include <iostream> #include <ctime> using namespace std;

Wstęp do programowania. Wykład 1

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Warsztaty dla nauczycieli

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka II. Laboratorium Aplikacja okienkowa

Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Laboratorium 5: Tablice. Wyszukiwanie binarne

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wykład 8: klasy cz. 4

Wstęp do informatyki- wykład 11 Funkcje

Czym są właściwości. Poprawne projektowanie klas

Programowanie komputerowe. Zajęcia 2

Rozdział 4 KLASY, OBIEKTY, METODY

Programowanie i techniki algorytmiczne

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Wstęp do informatyki- wykład 9 Funkcje

Podstawy Programowania

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:

Zapis algorytmów: schematy blokowe i pseudokod 1

Argumenty wywołania programu, operacje na plikach

Wykład 5: Klasy cz. 3

Wstęp do programowania

Język C, tablice i funkcje (laboratorium, EE1-DI)

5.2. Pierwsze kroki z bazami danych

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Język C, tablice i funkcje (laboratorium)

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

lekcja 8a Gry komputerowe MasterMind

Pytania sprawdzające wiedzę z programowania C++

Blockly Kodowanie pomoc.

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

6. Pętle while. Przykłady

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

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Podstawy programowania w C++

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

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

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

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

Zapisywanie algorytmów w języku programowania

Język C++ zajęcia nr 2

Podstawy Programowania Obiektowego

Pakiety i interfejsy. Tomasz Borzyszkowski

Programowanie - wykład 4

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

TEMAT : KLASY DZIEDZICZENIE

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Część 4 życie programu

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

ALGORYTMY I PROGRAMY

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Programowanie komputerowe. Zajęcia 1

Transkrypt:

Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo pożyteczny twór języka programowania. Pozwala wydzielić fragment programu wykonujący określone zadanie i w ten sposób uporządkować kod źródłowy. Stosowanie funkcji ma też wiele innych zalet. Każdą funkcję możemy wywołać wielokrotnie w dowolnym miejscu naszego programu. Dzięki temu polecenia umieszczone wewnątrz funkcji w kodzie zapisywane są tylko raz, a wykonywane dowolną liczbę razy. Do funkcji możemy ponadto przesyłać różne dane i na ich podstawie wykonywać obliczenia, których wynik będzie zwracała funkcja. Na koniec omówimy zagadnienie ściśle związane z funkcjami - widoczność zmiennych. Przekonamy się, że niektóre zmienne mogą być w określonych miejscach kodu niewidoczne, z innych będziemy mogli natomiast korzystać w każdej chwili. 1.Co to jest funkcja? Poznane przez nas do tej pory konstrukcje pozwalały tworzyć programy liniowe. Dzięki funkcjom jeden fragment kodu będziemy mogli wykorzystać wielokrotnie. Do tej pory tworzyliśmy różne bloki instrukcji. Bloki te były wykonywane warunkowo (jeśli wykorzystaliśmy instrukcje warunkowe) lub wielokrotnie (gdy blok instrukcji stanowił ciało pętli). Poznaliśmy też instrukcję goto, dzięki której można w programie przejść w zupełnie inne miejsce kodu i wykonać znajdujące się tam instrukcje. Nadszedł czas, aby poznać dosyć specyficzny sposób na wyodrębnianie w jeden blok niektórych instrukcji - nauczmy się posługiwać funkcjami. W poprzednich ćwiczeniach poznaliśmy już kilka funkcji. Korzystaliśmy z funkcji o nazwie main, czyli tak zwanej funkcji głównej. W ostatnim przykładzie znalazła się również inna funkcja int(). 2.Definicja funkcji Znajdujący się w każdym omawianym do tej pory przykładzie zapis 2 1 4 3 (gdzie w miejscu znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. W definicji każdej funkcji muszą się znaleźć następujące elementy: określenie nazwy funkcji 1 funkcja główna musi się nazywać main, określenie typu danych będących wynikiem działania funkcji 2 - funkcja main powinna zwracać liczbę całkowitą (a najlepiej liczbę 0 - wtedy dla systemu jest to informacja, że wykonanie funkcji głównej zostało zakończone sukcesem), argumenty (wraz z ich typami) funkcji 3, czyli wartości przekazywane do wnętrza funkcji - do funkcji main przekazywane są dwa argumenty, instrukcje wykonywane wewnątrz funkcji 4 - dla funkcji głównej dotychczas instrukcje te stanowiły cały kod naszego programu, instrukcję return, dzięki której jako wynik działania funkcji zwracana jest wartość zmiennej lub

wyrażenia znajdującego się po słowie kluczowym return - funkcja główna zwraca wartość EXIT SUCCESS, która jest równoważna liczbie 0. 3.Wywołanie funkcji Wiemy już ogólnie, jak zdefiniować funkcję. Ale po co to robić? Na przykład po to, aby ją w dowolnym miejscu programu wywołać, przekazując do niej dowolny jeden lub więcej argumentów (oczywiście takiego typu, jaki ustaliliśmy w definicji). Funkcja main jest dosyć specyficznym rodzajem funkcji - nie trzeba jej wywoływać, bo od niej zaczyna się wykonywanie naszego programu. Stwórzmy więc własną, bardzo prostą funkcję - najpierw ją zdefiniujemy, a potem wywołamy wewnątrz funkcji main. Przy nazywaniu funkcji stosujemy zasady podobne do tych, którymi należy się kierować przy nadawaniu nazw zmiennym. Ćwiczenie 1 a) Ustalamy, że nasza funkcja będzie nazywała się dodawanie (). Będziemy do niej przekazywać dwie liczby całkowite, a efektem działania funkcji będzie suma tych liczb (wynik będzie również liczbą całkowitą). Tuż przed definicją funkcji main wpisujemy typ zwracanego przez naszą funkcję wyniku ( int - oznacza, jak pamiętamy, typ całkowitoliczbowy) i wpisujemy nazwę funkcji b) w nawiasach określamy argumenty, które zostaną przekazane do funkcji. Ustaliliśmy, że będą to dwie liczby całkowite -wpisujemy więc (nasze zmienne wejściowe nazywamy w dowolny sposób - oczywiście zgodnie z zasadami nadawania nazwy zmiennym). c) teraz wystarczy już tylko wewnątrz nawiasów klamrowych umieścić instrukcje, które zostaną wykonane przez funkcję. Ponieważ nasza funkcja dodawanie () jest niezwykle prosta, wpisujemy od razu słowo kluczowe return i wyrażenie. Dzięki temu funkcja zwraca sumę przekazanych do niej dwóch liczb. d) aby się przekonać o tym, że nasza funkcja naprawdę działa, w funkcji głównej umieszczamy wywołanie, przekazując jako argumenty dwie liczby - 10 i 25. e) utwórz nowy projekt w Dev C++ i zapisz go na pulpicie w folderze o nazwie nazwisko55 f) wprowadź do projektu modyfikacje tak aby wyglądał jak poniżej

g) z menu Uruchom wybieramy Kompiluj i uruchom h) powinniśmy zobaczyć Oczywiście, do funkcji, zamiast liczb, możemy przekazać również wartość zmiennej. Przekazywane zmienne mogą mieć taką samą nazwę, jak w definicji naszej funkcji. Pamiętajmy jednak, że mimo iż są tak samo nazwane, to w rzeczywistości są to różne zmienne. Nie ma również przeszkód, aby naszą funkcję wywołać w programie kilkakrotnie, przekazując do niej za każdym razem różne argumenty. 4. Definicja a deklaracja funkcji W poprzednim przykładzie umieściliśmy definicję funkcji dodawanie() tuż przed funkcją main. Sprawdźmy, co się stanie, jeśli zamienimy definicje tych funkcji miejscami. Ćwiczenie nr 2 1. Utwórz nowy projekt w Dev C++ i zapisz go na pulpicie w folderze o nazwie nazwisko56 2. Wprowadź do projektu modyfikacje tak aby wyglądał jak poniżej

3. Z menu Uruchom wybieramy Kompiluj i uruchom Próba skompilowania takiego programu kończy się wystąpieniem błędu. Dlaczego tak się dzieje? Odpowiedź jest prosta. Wywołanie funkcji dodawanie() wystąpiło przed jej definicją - to tak, jakbyśmy chcieli zapisać coś do zmiennej, której wcześniej nie zadeklarowaliśmy. 4. Nie poprawiaj kodu programu zamknij program i przejdź do dalszej części 5. Czy więc skazani jesteśmy na definiowanie własnych funkcji przed funkcją główną? Na szczęście nie - byłoby to bardzo niewygodne, bo analizę programu należy zawsze rozpoczynać od funkcji głównej, która w takim wypadku znajdowałaby się gdzieś na końcu kodu. Jak więc rozwiązać ten problem? Naszą funkcję możemy umieścić poniżej funkcji głównej, ale przed pierwszym wywołaniem naszej funkcji należy ją zadeklarować Deklaracja funkcji od jej definicji różni się tym, że w deklaracji, zamiast wpisywania ciała funkcji, umieszczamy jedynie średnik. Deklaracja jest więc tylko zapowiedzią naszej funkcji. Kompilator na podstawie deklaracji wie, jaki typ wyniku zwraca funkcja oraz ile oraz jakiego typu argumenty należy do niej przekazać. Na tej podstawie może już sprawdzić, czy wywołanie naszej funkcji jest prawidłowe.

Co prawda deklaracja funkcji może nastąpić tuż przed jej wywołaniem, jednak zalecane jest umieszczanie deklaracji funkcji przed funkcją główną. Dzięki temu kod jest czytelniejszy i łatwiej wprowadzać do niego zmiany. Ćwiczenie nr 3 1. Utwórz nowy projekt w Dev C++ i zapisz go na pulpicie w folderze o nazwie nazwisko57 2. Wprowadź do projektu modyfikacje tak aby wyglądał jak poniżej 3. z menu Uruchom wybieramy Kompiluj i uruchom. 6. Argumenty funkcji głównej W każdym napisanym przez nas programie w definicji funkcji main podawaliśmy (a raczej były generowane przez - Dev-C++) dwa argumenty W zmiennej całkowitoliczbowej argc znajduje się liczba przekazanych do funkcji main (czyli naszego programu) argumentów. Zmienna *argv to tablica (tę konstrukcję języka poznamy dalej), w której znajdują się te argumenty. W linii wyświetlamy liczbę argumentów przekazanych do funkcji. Następnie w pętli wyświetlamy kolejne argumenty. Dla ułatwienia przed każdym argumentem wyświetlamy jego numer oraz i strzałkę.

Ćwiczenie nr 4 1. Utwórz nowy projekt w Dev C++ i zapisz go na pulpicie w folderze o nazwie nazwisko58 2. Wprowadź do projektu modyfikacje tak aby wyglądał jak poniżej 3. Skompiluj i uruchom programu 4. Na ekranie pojawi się widok Jak łatwo zauważyć, do funkcji main został przekazany jeden argument(o numerze 0), którego wartością jest ścieżka i nazwa naszego programu. Ten argument jest zawsze dostarczany do każdego programu. 7. Argumenty do funkcji głównej możemy przekazać również z poziomu aplikacji Dev-C++. Aby to zrobić, należy: - w folderze nazwisko58 uruchomić plik o nazwie nazwisko58.dev -z menu Uruchom wybieramy pozycję Parametry... i w pole wpisujemy argumenty.

-po kliknięciu na OK kompilujemy i uruchamiamy program - argumenty zostaną przekazane. - powinniśmy zobaczyć Wszystkie pliki z nazwiskiem i kolejnym numerem umieszczamy w swoim folderze nazwiskocplusplus na serwerze.