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

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

Katedra Elektrotechniki Teoretycznej i Informatyki. sem. III. Dr inż. M. Czyżak

Wstęp do Programowania, laboratorium 02

Język ANSI C tablice wielowymiarowe

Część 4 życie programu

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

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

Wskaźniki. Informatyka

Język C zajęcia nr 11. Funkcje

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

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

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

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

I - Microsoft Visual Studio C++

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

Programowanie komputerowe. Zajęcia 2

Tablice, funkcje - wprowadzenie

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

Wstęp do programowania

Programowanie strukturalne i obiektowe. Funkcje

Programowanie - wykład 4

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Wstęp do wskaźników w języku ANSI C

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

Zmienne, stałe i operatory

x szereg(x)

Język C++ zajęcia nr 2

Wstęp do informatyki- wykład 11 Funkcje

Funkcja (podprogram) void

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

Techniki Programowania wskaźniki 2

Wstęp do informatyki- wykład 9 Funkcje

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

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

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

Wykład 4: Klasy i Metody

5 Przygotował: mgr inż. Maciej Lasota

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

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

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach.

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

Alokacja pamięci dla tablicy dwuwymiarowej

Argumenty wywołania programu, operacje na plikach

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

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

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

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

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

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

Wykład 3. Instrukcje powtarzające

4. Funkcje. Przykłady

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

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

Jerzy Nawrocki, Wprowadzenie do informatyki

Wstęp do programowania

Co nie powinno być umieszczane w plikach nagłówkowych:

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

2 Przygotował: mgr inż. Maciej Lasota

Liczby zespolone w języku C (cz.1)

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

// Funkcja glowna int main() { // zmienne int kont='t'; double x1, y1, x2, y2, x3, y3, a, b, c, p1, p2, p3, pole, ha, hb, hc;

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

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

3 Przygotował: mgr inż. Maciej Lasota

Uzupełnienie dot. przekazywania argumentów

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

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

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

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

Struktury Struktura polami struct struct struct struct

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Język C, tablice i funkcje (laboratorium)

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

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

Wstęp do programowania

int f(); //f - funkcja zwracająca wartość typu int int (*f)(); //f - wskaźnik do funkcji zwracającej wartość typu int

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Wprowadzenie do programowania i programowanie obiektowe

1 Podstawy c++ w pigułce.

Część 4 pętla FOR. Instrukcja pętli iteracyjnej FOR. Postać pętli for jest następująca: a)dla jednej instrukcji wykonywanej przez pętlę.

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

Spis treści JĘZYK C - PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI, REKURENCJA. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

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

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

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

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

Przekazywanie argumentów wskaźniki

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

dr inż. Jarosław Forenc

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

Język ANSI C-struktury

Transkrypt:

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

Przykład. (do wykonania w trakcie wykładu) Napisać i wywołać w main() następujące funkcje: a) funkcję obliczającą sumę swoich argumentów typu int b) funkcję obliczającą różnicę swoich argumentów typu int c)funkcję obliczającą iloczyn swoich argumentów typu double Funkcje obliczające sumę i różnicę wywołać dla dwóch par argumentów.

#include <stdio.h> int sum (int a, int b); // deklaracje funkcji int roznica (int a, int b); double iloczyn (double a, double b); int main() int a,b,c,d,sum,roz; double e,f,ilo; printf("\n Podaj a :"); scanf("%d",&a); printf("\n Podaj b :"); scanf("%d",&b); sum=suma(a,b);// a,b to argumenty wywołania funkcji

cz 2. programu printf("\n Suma %d + %d =%d ", a,b,sum); printf("\n Podaj c :"); scanf("%d",&c); printf("\n Podaj d :"); scanf("%d",&d); sum=suma(c,d); printf("\n Suma %d + %d =%d ", c,d,sum); roz=roznica(a,b); printf("\n Roznica %d - %d =%d ", a,b,roz); roz=roznica(c,d); printf("\n Roznica %d - %d =%d \n", c,d,roz);

cz 3. programu printf("\n Podaj e :"); scanf("%lf",&e); printf("\n Podaj f :"); scanf("%lf",&f); ilo=iloczyn(e,f); printf("\n Iloczyn %f * %f =%f \n", e,f,ilo); system ("PAUSE"); return 0; }

cz 4. programu int suma (int a, int b) int sum; sum=a+b; return sum;} int roznica (int a, int b) int roz; roz=a-b; return roz;} double iloczyn (double a, double b) double ilo; ilo=a*b; return ilo;}

Wynik działania programu --------------------------------- Podaj a :2 Podaj b :3 Suma 2 + 3 =5 Podaj c :4 Podaj d :5 Suma 4 + 5 =9 Roznica 2-3 =-1 Roznica 4-5 =-1 Podaj e :2.5 Podaj f :3.5 Język ANSI C funkcje Iloczyn 2.500000 * 3.500000 =8.750000 Aby kontynuować, naciśnij dowolny klawisz...

Przykład. Napisać i zastosować w programie funkcję silnia. #include <stdio.h> int silnia (int n ) int i, sil=1; if (n>0) for (i=1;i<=n;i++) sil=sil*i; return sil; } int main() int l1=5, l2=6; int sil1,sil2; sil1=silnia (l1); sil2=silnia (l2); printf("\n % d! wynosi %d", l1,sil1); printf("\n % d! wynosi %d\n", l2,sil2); system("pause"); return 0;}

Przykład. Napisać i zastosować w programie funkcję silnia. Wynik działania programu 5! wynosi 120 6! wynosi 720 Aby kontynuować, naciśnij dowolny klawisz...

Przykład. Napisać i zastosować w programie funkcję wczytajd wczytującą zmienną typu double. #include <stdio.h> double wczytajd (void ) int k; double x; do printf("\n Podaj zmienna :"); k=scanf("%lf",&x); if (k==0) printf("\n Niepoprawny format liczby!"); fflush(stdin); } while (k==0); // można też while (!k); return x;} int main() double x1,x2; x1=wczytajd (); x2=wczytajd(); printf("\n x1 wynosi %f", x1); printf("\n x2 wynosi %f \n", x2); system("pause"); return 0;}

Wynik działania programu ------------------------ Podaj zmienna :12 Podaj zmienna :23 x1 wynosi 12.000000 x2 wynosi 23.000000 Aby kontynuować, naciśnij dowolny klawisz...

Przykład. Użycie funkcji silnia w obliczania wartości szeregu (cz.1 ) i x x e = =0 i! #include <stdio.h> #include <math.h> double silnia (int); int main(int argc, char *argv[]) int i,j,n; double xn,s,sil,x; while(1)// wielokrotne wykonanie programu printf("\n Podaj x:"); scanf("%lf",&x); printf("\n Podaj liczbe wyrazow szeregu:"); scanf("%d",&n); i

Przykład. Użycie funkcji silnia w obliczania wartości szeregu (cz. 2) s=0; for ( i=0;i<n;i++) xn=pow(x,i)/silnia(i); s=s+xn; } printf("\n Wartosc e_do_x z szeregu:%f",s); printf("\n Wartosc e do x: exp %f\n", exp(x)); }// koniec while system("pause"); return 0; } double silnia (int n) int i; double sil=1; for (i=1;i<=n;i++) sil=sil*i; return sil;}

Wynik działania programu ------------------------ Podaj x: 2 Podaj liczbe wyrazow szeregu:6 Wartosc e_do_x z szeregu:7.266667 Wartosc e do x: exp 7.389056 Podaj x: 2 Podaj liczbe wyrazow szeregu: 7 Wartosc e_do_x z szeregu:7.355556 Wartosc e do x: exp 7.389056 Podaj x: 2 Podaj liczbe wyrazow szeregu:8 Wartosc e_do_x z szeregu:7.380952 Wartosc e do x: exp 7.389056

Przykład. Użycie funkcji silnia i funkcji szerege w obliczaniu wartości szeregu (cz. 1) #include <stdio.h> #include <math.h> double silnia (int); double szerege(double x, int n); int main(int argc, char *argv[]) int i,j,n; double xn,s,sil,x; while(1) printf("\n Podaj x:"); scanf("%lf",&x); printf("\n Podaj liczbe wyrazow szeregu:"); scanf("%d",&n);

Przykład. Użycie funkcji silnia i funkcji szerege w obliczaniu wartości szeregu (cz. 1) #include <stdio.h> #include <math.h> double silnia (int); double szerege(double x, int n); int main(int argc, char *argv[]) int i,j,n; double xn,s,sil,x; while(1) printf("\n Podaj x:"); scanf("%lf",&x); printf("\n Podaj liczbe wyrazow szeregu:"); scanf("%d",&n);

Przykład. Użycie funkcji silnia i funkcji szereg w obliczaniu wartości szeregu (cz. 2) s=szerege(x,n); printf("\n Wartosc e_do_x z szeregu:%f",s); printf("\n Wartosc e do x: exp %f\n", exp(x));} system("pause"); return 0;} double silnia (int n) int i; double sil=1; for (i=1;i<=n;i++) sil=sil*i; return sil; } double szerege (double x, int n) int i; double s=0,xn; for ( i=0;i<n;i++) xn=pow(x,i)/silnia(i); s=s+xn; } return s;}

Przykład. Użycie funkcji silnia i funkcji szeregs w obliczaniu wartości szeregu dla funkcji sinus(cz. 1) sin x = n= 0 ( 1) i x (2i 2i+ 1 + 1)! #include <stdio.h> #include <math.h> double silnia (int); double szeregs(double x, int n); int main(int argc, char *argv[]) int i,j,n; double xn,s,sil,x; while(1) printf("\n Podaj x:"); scanf("%lf",&x); printf("\n Podaj liczbe wyrazow szeregu:"); scanf("%d",&n);

Przykład. Użycie funkcji silnia i funkcji szeregs w obliczaniu wartości szeregu dla funkcji sinus(cz. 2) s=szeregs(x,n); printf("\n Wartosc sin x z szeregu:%f",s); printf("\n Wartosc sin x: sin(x)); } } system("pause"); return 0; double silnia (int n) } int i; double sil=1; for (i=1;i<=n;i++) sil=sil*i; return sil; %f\n",

Przykład. Użycie funkcji silnia i funkcji szeregs w obliczaniu wartości szeregu dla funkcji sinus(cz. 3) double szeregs(double x, int n) int i; double s=0,xn; int wsp=-1; for (i=0;i<n;i++) wsp*=(-1); xn=pow(x,2*i+1)/silnia(2*i+1)*wsp; s=s+xn; } return s; }

Podaj x:1.85 Podaj liczbe wyrazow szeregu:3 Język ANSI C funkcje Wynik działania programu ------------------------ Wartosc sin x z szeregu:0.975312 Wartosc sin x: 0.961275 Podaj x:1.85 Podaj liczbe wyrazow szeregu:6 Wartosc sin x z szeregu:0.961275 Wartosc sin x: 0.961275

Ogólna budowa funkcji Definicja funkcji Typ_zwracanej_wartości nazwa_funkcji (deklaracja parametrów formalnych, jeśli występują) } deklaracje instrukcje Definicje poszczególnych funkcji mogą się pojawić w jednym pliku lub większej liczbie plików źródłowych, przy czym żadna funkcja nie może być rozdzielona między plikami źródłowymi (definicja funkcji musi być umieszczona w jednym pliku).

int kwadrat (int, int); int echo_line (void); // void oznacza tutaj, że funkcja nie ma parametrów void print hist(int size);// void oznacza tutaj, że funkcja nic nie zwraca void print_prompt( void); Deklaracja funkcji Deklaracja funkcji stanowi informację dla innych funkcji stosujących daną funkcję o typie zwracanej wartości, liczbie i typach parametrów funkcji. Deklaracja ma postać skróconego nagłówka funkcji zakończonego średnikiem. Przykład. Deklaracje funkcji. Nazwy po typach parametrów są opcjonalne i są ignorowane przez kompilator. Nazwy parametrów stosować można dla celów dokumentacji, pozwalają one zorientować się co do roli poszczególnych parametrów bez sięgania do definicji funkcji.

Definicja a deklaracja funkcji Definicja funkcji może występować jednokrotnie. 1. Deklaracja funkcji f może występować wewnątrz funkcji g, która wywołuje daną funkcję f lub też na zewnątrz wszystkich funkcji. 2. Deklaracja funkcji f wewnątrz funkcji g służy tylko funkcji g. 3. Deklaracja funkcji f na zewnątrz wszystkich funkcji służy wszystkim tym funkcjom, których definicje umieszczono po deklaracji funkcji f.

// funkcja g - definicja // deklaracja funkcji f f(...); // wywołanie f } // funkcja h -definicja f(...); // wywołanie f - //niepoprawne} // funkcja f -definicja } // deklaracja funkcji f // funkcja g - definicja f(...); // wywołanie f } // funkcja h -definicja f(...); // wywołanie f } // funkcja f -definicja }

Instrukcja return (1) Instrukcja return ( ang. powróć, zwróć) pełni dwie zasadnicze funkcje: 1. Zwraca sterowanie programem do miejsca wywołania funkcji ( do funkcji wywołującej). 2. Umożliwia przekazanie wartości obliczonej przez funkcję do funkcji wywołującej.

Instrukcja return (2) - Funkcja, która zwraca wartość, powinna mieć przynajmniej jedną instrukcję return w formie return (wyrażenie); lub return wyrażenie; gdzie wyrażenie jest jakimkolwiek legalnym wyrażeniem języka C. - Obie formy mają to samo znaczenie. - Do funkcji wywołującej zwracana (przekazywana) jest wartość wyrażenia. - Funkcja przy wywołaniu może zwrócić co najwyżej jedną wartość.

Instrukcja return (3) Przykład. Instrukcja return. a) return 25*5 + fun2(x); b) return (25*5+ fun2(x)); c) double modul ( double x) return x>0? x : -x; } Niezależnie od tego czy wyrażenie po return jest skomplikowane, czy też nie, zwracana jest jedna wartość.

Instrukcja return (4) Funkcja może posiadać kilka instrukcji return, jednak w czasie danego wywołania funkcji może zostać wykonana tylko jedna instrukcja return. Nie powinno się stosować w funkcji kilku instrukcji return, gdyż funkcja staje się mniej zrozumiała oraz trudniejsza do testowania i modyfikacji. Instrukcja return nie jest konieczna w funkcji, która nie zwraca żadnej wartości, ale jeśli jest używana to w postaci return; Jeśli nie ma instrukcji return wykonywane są kolejne instrukcje w treści funkcji, aż do momentu dojścia do nawiasu zamykającego funkcję.

Język ANSI C wskaźniki Wskaźniki (1) - Wskaźniki to typ obiektów, przechowujących adresy innych obiektów np. zmiennych. - Adres to konkretna lokalizacja pewnego obiektu w pamięci. -Jeżeli pewien obiekt typu wskaźnikowego (np. zmienna) przechowuje adres innego obiektu, to mówimy, że wskazuje na ten obiekt. Wskazniki i dynamiczna alokacja ( link do materiału na temat wskaźników)

Język ANSI C wskaźniki int main() int x=5,y=23; int *px;// definicja zmiennej wskaźnikowej px=&x; } px y x 12FF88 23 5 zawartości 12FF80 12FF84 (1245056) (1245060) 12FF88 (1245064) adresy hex adresy dec Adresy te mogą się zmieniać przy kolejnych uruchomieniach programu, jednak w komórce px będzie zawsze adres zmiennej x.

Język ANSI C wskaźniki Przykład. Program obliczający adresy zmiennych i zawartość zmiennej wskaźnikowej. #include <stdio.h> int main(int argc, char *argv[]) int x,y; int *px; printf("\n Adres zmiennej x w hex = %p i w dec =%d\n", &x,&x); printf("\n Adres zmiennej y w hex = %p i w dec =%d\n", &y,&y); printf("\n Adres wskaznika px w hex =%p i w dec =%d\n",&px,&px); px=&x; printf("\n Zawartosc komorki px w hex =%x i w dec =%d\n", px,px); system("pause"); return 0; }