5 Przygotował: mgr inż. Maciej Lasota

Podobne dokumenty
Wstęp do Programowania, laboratorium 02

Język C zajęcia nr 11. Funkcje

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

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; a > b - a większe od b if (warunek) instrukcja1; a <= b - a mniejsze lub równe b

2 Przygotował: mgr inż. Maciej Lasota

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

Podział programu na moduły

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Argumenty wywołania programu, operacje na plikach

Zmienne, stałe i operatory

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

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

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Część 4 życie programu

6 Przygotował: mgr inż. Maciej Lasota

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

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

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

Język C, tablice i funkcje (laboratorium)

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

3 Przygotował: mgr inż. Maciej Lasota

Funkcja (podprogram) void

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

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

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

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

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

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

I - Microsoft Visual Studio C++

Wstęp do programowania

Programowanie strukturalne i obiektowe. Funkcje

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

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

Wskaźniki. Informatyka

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

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

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

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

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

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Wskaźniki w C. Anna Gogolińska

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

Programowanie komputerowe. Zajęcia 1

Rekurencja. Przygotowała: Agnieszka Reiter

1 Podstawy c++ w pigułce.

Wstęp do programowania

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

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

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

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?

Instrukcje sterujące. Programowanie Proceduralne 1

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

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

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19

Wykład 3 Składnia języka C# (cz. 2)

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

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

Szablony funkcji i klas (templates)

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

Lab 9 Podstawy Programowania

1 Podstawy c++ w pigułce.

Algorytm. a programowanie -

Powyższe wyrażenie alokuje 200 lub 400 w zależności od rozmiaru int w danym systemie. Wskaźnik wskazuje na adres pierwszego bajtu pamięci.

Wstęp do programowania

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

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

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

dr inż. Jarosław Forenc

Katedra Elektrotechniki Teoretycznej i Informatyki. sem. II - wykład 6. Dr hab. inż. M. Czyżak

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Programowanie komputerowe. Zajęcia 2

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

ALGORYTMY I STRUKTURY DANYCH

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Programowanie Proceduralne

Algorytmy i struktury danych

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

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

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy Programowania.

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

Proste algorytmy w języku C

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Schematy blokowe. Algorytmy Marek Pudełko

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Tablice, funkcje - wprowadzenie

Podstawy programowania C. dr. Krystyna Łapin

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Transkrypt:

Laboratorium nr 5 1/6 Język C Instrukcja laboratoryjna Temat: Funkcje, parametry linii poleceń, typ wyliczeniowy. 5 Przygotował: mgr inż. Maciej Lasota 1) Parametry linii poleceń. Język C oprócz wprowadzania danych za pomocą odpowiednich funkcji biblioteki standardowej (scanf, sscanf, getchar, getc, gets itp.) umożliwia również tworzenie programów, w których dane wprowadzane są z linii poleceń (podczas wywoływania programu) przez użytkownika. Wprowadzanie danych z linii poleceń polega na podaniu listy argumentów po nazwie programu podczas wywoływania. Obsługa parametrów wymaga stworzenia odpowiedniej funkcji głównej main. Przykład takiej funkcji został przedstawiony poniżej: int main(int argc, char *argv[])... return(0); *argv[ ] jest to parametr, który jest wskaźnikiem na tablicę znakową zawierającą wszystkie argumenty wprowadzane z linii poleceń. Pierwszym elementem tablicy argv[0] jest zawsze nazwa programu. argc jest to parametr, który zawiera liczbę całkowitą. Liczba ta określa ilość przekazywanych argumentów do programu z linii poleceń. Zarazem argc jest indeksem tablicy argv[ ].

Laboratorium nr 5 2/6 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) int a,b,wynik; if(argc!= 3) printf("program dodaje dwie liczby, podaj dwa parametry!!!\n"); exit(1); a = atoi(argv[1]); //konwersja na liczbe calkowita b = atoi(argv[2]); //konwersja na liczbe calkowita printf("nazwa programu: %s\n",argv[0]); printf("parametr A: %d\n",a); printf("parametr B: %d\n",b); wynik = (a+b); printf("wynik dodawania: %d\n",wynik); 2) Funkcje. Funkcje umożliwiają podzielenie oraz pogrupowanie często wykonywanego kodu źródłowego (instrukcji programu) na mniejsze moduły (bloki), które mogą być wielokrotnie wykorzystywane w programie. Zadaniem funkcji zazwyczaj jest wykonywanie określonych operacji oraz zwracanie lub też nie określonej wartości. Często ukrywają one w sobie szczegóły pewnych operacji przed innymi częściami programu, w których znajomość tych szczegółów jest zbędna lub niewskazana. Wykorzystywanie funkcji w programie daje większą przejrzystość kodu oraz łatwiejsze wprowadzanie zmian. Funkcja główna jest to podstawowa funkcja, od której zaczyna działanie każdy program napisany w języku C. Funkcja ta musi występować w każdym pliku źródłowym, który kompilujemy i który później będziemy wykonywać jako program (nie dotyczy plików źródłowych kompilowanych jako moduły). W języku C funkcją główną jest funkcja main. Może ona zwracać określona wartość lub nie zwracać żadnej wartości, wszystkie pozostałe zdefiniowane funkcje zawsze wywołujemy z wnętrza funkcji main.

Laboratorium nr 5 3/6 Deklaracja funkcji w języku C wygląda następująco: [typ danych funkcji] [nazwa funkcji]([parametry funkcji]) [deklaracja zmiennych lokalnych] instrukcja1; instrukcja2;... [zwracana wartość]; Parametry funkcji są to zmienne przekazywane, do ciała funkcji w celu wykonania na nich operacji (działań). W języku C wszystkie parametry przekazywane są przez wartość, oznacza to że operujemy jedynie na kopiach zmiennych, a nie na oryginalnych zmiennych. Zmienne lokalne funkcji są to zmienne widoczne tylko w obrębie danego bloku (ciała funkcji), tworzone są w momencie inicjowania (wywoływania) i niszczona w momencie kończenia funkcji. Kolejne wywołanie tej samej funkcji tworzy nowe instancje zmiennych. Zasięg nazw jest ta cześć programu, wewnątrz której można daną nazwę zmiennej stosować. W przypadku zmiennych lokalnych funkcji zasięg nazw ogranicza się jedynie do danego bloku instrukcji (ciała funkcji). Zmienne lokalne o tej samej nazwie, które występują w różnych funkcjach nie są ze sobą powiązane w żaden sposób. #include <stdio.h> #include <stdlib.h> int warunek(int a, int b) if(a > b) return (1); if(a < b) return (2);

Laboratorium nr 5 4/6 int main(void) int x,y; printf("podaj liczbe calkowita \"x\": "); scanf("%d",&x); printf("podaj liczbe calkowita \"y\": "); scanf("%d",&y); if(warunek(x,y) == 1) printf("liczba %d jest wieksza od liczby %d\n",x,y); else if(warunek(x,y) == 2) printf("liczba %d jest mniejsza od liczby %d\n",x,y); else printf("liczba %d jest rowna liczbie %d\n",x,y); #include <stdio.h> #include <stdlib.h> float suma(float a, float b) return(a+b); float roznica(float a, float b) return(a-b); float iloczyn(float a, float b) return(a*b); float iloraz(float a, float b) return(a/b);

Laboratorium nr 5 5/6 int main(int argc, char *argv[]) float x,y; if(argc!= 3) printf("blad!, wywolanie programu: %s [liczba1] [liczba2]\n",argv[0]); exit(0); x = atof(argv[1]); y = atof(argv[2]); printf("suma liczb: %.2f + %.2f = %.4f\n",x,y,suma(x,y)); printf("roznica liczb: %.2f - %.2f = %.4f\n",x,y,roznica(x,y)); printf("iloczyn liczb: %.2f * %.2f = %.4f\n",x,y,iloczyn(x,y)); printf("iloraz liczb: %.2f / %.2f = %.4f\n",x,y,iloraz(x,y)); 3) Rekurencja. Rekurencja lub też rekursja ma miejsce wtedy, gdy dana funkcja w sposób pośredni lub bezpośredni wywołuje samą siebie. W różnych językach programowania funkcja, która wywołuje samą siebie nazywana jest funkcją rekurencyjną. Funkcja rekurencyjna musi spełniać dwa podstawowe założenia: musi posiadać koniec, musi zmniejszać stopień złożoności obliczanego problemu. Definicja silni spełnia obie zasady rekurencji. Po pierwsze, posiada koniec (określony warunkiem n = 0). Po drugie, upraszcza początkowy problem, ponieważ obliczenie wartości wyrażeni (n 1) jest prostsze niż obliczenie wyrażenia (n). int silnia(int liczba) if(liczba == 0) return(1); return(liczba * silnia(liczba-1));

Laboratorium nr 5 6/6 4) Typ wyliczeniowy. Typ wyliczeniowy enum w języku C został stworzony dla zmiennych, które przechowują tylko ograniczony zbiór wartości. Dostęp do tych wartości odbywa się poprzez nazwę tzw. etykietę. Język C implementuje typ wyliczeniowy enum jako zgodny z typem całkowitym, dlatego też, poprawnym sposobem przydzielenie wartości do zmiennej jest podanie numeru określonej etykiety. Ogólna postać instrukcji enum jest następująca: enum nazwa_typu etykieta1, etykieta2,... nazwa_zmiennej;