wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

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

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

Tablice, funkcje - wprowadzenie

Języki i metodyka programowania. Wskaźniki i tablice.

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

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

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

Tablice deklaracja, reprezentacja wewnętrzna

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

Podstawy programowania w języku C++

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:

Podstawy programowania 1

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Struktury czyli rekordy w C/C++

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

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.

Wskaźniki. Programowanie Proceduralne 1

DYNAMICZNE PRZYDZIELANIE PAMIECI

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

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

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Wstęp do programowania 1

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

Języki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Język C++ wykład VIII

Szkic wykładu Wstęp do Informatyki - wykład 3,4,5 język C opr. A. Piórkowski, Kraków 2004

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

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

Uzupełnienie dot. przekazywania argumentów

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

Podstawy programowania C. dr. Krystyna Łapin

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

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

Podstawy programowania w języku C++

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Podstawy informatyki. Wykład nr 1 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Wskaźniki w C. Anna Gogolińska

Programowanie Proceduralne

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Podstawy programowania komputerów

Języki i metody programowania. Omówienie języków C, C++ i Java

Spis treści JĘZYK C - WSKAŹNIKI, DYNAMICZNY PRZYDZIAŁ PAMIĘCI. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Informatyka. Wy-03 Dynamiczna alokacja pamięci, wyjątki. mgr inż. Krzysztof Kołodziejczyk

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

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

tablica: dane_liczbowe

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

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Funkcje zawarte w bibliotece < io.h >

Operacje na łańcuchach znaków

Wstęp do Programowania, laboratorium 02

Wykład 1

Funkcja (podprogram) void

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

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

Podstawy programowania w języku C++

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania w języku C++

Język ANSI C. część 11. Jarosław Gramacki Instytut Informatyki i Elektroniki

KURS C/C++ WYKŁAD 6. Wskaźniki

Tablice w argumentach funkcji. Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku

Język C : szkoła programowania / Stephen Prata. Gliwice, cop Spis treści

Biblioteka standardowa - operacje wejścia/wyjścia

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Podstawy informatyki 2. Podstawy informatyki 2. Wykład nr 1 ( ) Dane podstawowe. Politechnika Białostocka. - Wydział Elektryczny

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie strukturalne język C - wprowadzenie

Wprowadzenie do programowania w języku C

Programowanie 2. Język C++. Wykład 3.

Operacje wejścia/wyjścia odsłona pierwsza

Funkcje zawarte w bibliotece < io.h >

Tablice, funkcje, wskaźniki - wprowadzenie

Programowanie strukturalne język C

Laboratorium 6: Dynamiczny przydział pamięci. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Programowanie obiektowe W3

Lab 9 Podstawy Programowania

Stałe, tablice dynamiczne i wielowymiarowe

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

Programowanie strukturalne i obiektowe

Język C. Szkoła programowania. Wydanie VI

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

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

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

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Microsoft IT Academy kurs programowania

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Wprowadzenie do programowania w języku C

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

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

Transkrypt:

, Programowanie, uzupełnienie notatek: dr Jerzy Białkowski

, 1 2 3 4

, Wczytywanie liczb

, Wczytywanie liczb 1 #include <s t d i o. h> 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer = 0 ; 6 7 scanf ( "%d", &rozmiar ) ; 8 float tab [ rozmiar ], liczba ; 9 10 while ( numer < rozmiar ) { 11 scanf ( "%f", &liczba ) ; 12 tab [ numer++] = liczba ; 13 }/* w h i l e */ 14 15 while ( numer ) { 16 printf ( "%f\n", tab[ numer ] ) ; 17 } 18 return 0 ; 19 }

, malloc, realloc i free Funkcja malloc zwraca wskaźnik do obszaru pamięci dla obiektu o rozmiarze rozmiar. void *malloc(size_t rozmiar);

, malloc, realloc i free Funkcja malloc zwraca wskaźnik do obszaru pamięci dla obiektu o rozmiarze rozmiar. void *malloc(size_t rozmiar); Funkcja malloc zwraca wskaźnik do obszaru pamięci dla tablicy ilosc elementów, z których każdy ma rozmiar rozmiar i zeruje go. void *calloc(size_t ilosc, size_t rozmiar);

, malloc, realloc i free Funkcja malloc zwraca wskaźnik do obszaru pamięci dla obiektu o rozmiarze rozmiar. void *malloc(size_t rozmiar); Funkcja malloc zwraca wskaźnik do obszaru pamięci dla tablicy ilosc elementów, z których każdy ma rozmiar rozmiar i zeruje go. void *calloc(size_t ilosc, size_t rozmiar); Funkcja realloc zmienia rozmiar pamięci dla obiektu wskazanego przez wsk. void *realloc(void *wsk, size_t rozmiar);

, malloc, realloc i free Funkcja malloc zwraca wskaźnik do obszaru pamięci dla obiektu o rozmiarze rozmiar. void *malloc(size_t rozmiar); Funkcja malloc zwraca wskaźnik do obszaru pamięci dla tablicy ilosc elementów, z których każdy ma rozmiar rozmiar i zeruje go. void *calloc(size_t ilosc, size_t rozmiar); Funkcja realloc zmienia rozmiar pamięci dla obiektu wskazanego przez wsk. void *realloc(void *wsk, size_t rozmiar); Funkcja free zwalnia obszar pamięci wskazany przez wsk. void free(void *wsk);

, 1 #include <s t d i o. h> 2 #include < s t d l i b. h> /* malloc, r e a l l o c, f r e e */ 3 int main ( ) { 4 size_t rozm = 1 0, numer = 0 ; 5 float * tab, * tmp, liczba ; 6 7 tab = ( float *) malloc ( rozm * sizeof ( float ) ) ; 8 9 while ( scanf ( "%f", &liczba )==1){ 10 if ( numer==rozm ) { 11 tmp = ( float *) 12 realloc ( tab, ( rozm *=2)*sizeof (* tab ) ) ; 13 tab = tmp ; 14 }/* i f */ 15 tab [ numer++] = liczba ; 16 }/* w h i l e */ 17 while ( numer ) 18 printf ( "%f\n", tab[ numer ] ) ; 19 20 free ( tab ) ; 21 return 0 ; 22 }

, Struktura jest obiektem złożonym z jednej lub kilku zmiennych różnych typów. struct nazwa { typ1 pole1; typ2 pole2;... } instancje; Uwaga: można opuścić nazwę nazwa (i mamy wówczas do czynienia ze strukturą anonimową) lub instancje (zmienne).

, 1 #include <s t d i o. h> 2 3 struct wektor { 4 double x ; 5 double y ; 6 } ; 7 8 int main ( ) { 9 struct wektor v1 = { 2, 3 } ; 10 11 struct wektor v2 ; 12 v2. x = 2; 13 v2. y = 3 ; 14 15 return 0 ; 16 }

, 1 #include <s t d i o. h> 2 #include <math. h> /* s q r t ( ) */ 3 4 struct wektor { 5 double x ; 6 double y ; 7 } ; 8 9 double dlugosc ( struct wektor * v ) { 10 return sqrt ( v >x * v >x + v >y * v >y ) ; 11 } 12 13 int main ( ) { 14 struct wektor v1={ 3,4}, *v2 ; 15 v2 = &v1 ; 16 printf ( "%f\n", v1. x ) ; 17 printf ( "%f\n", (* v2 ). x ) ; 18 printf ( "%f\n", v2 >x ) ; 19 printf ( "Dlugosc wektora: %f\n", dlugosc ( v2 ) ) ; 20 21 return 0 ; 22 }

, printf, scanf, fopen, fclose, fprintf, fscanf,... Zobacz Kernighan, Ritchie Język ANSI C.

, 1 #include <s t d i o. h> 2 3 int main ( ) 4 { 5 printf ( "Znaki %c %c \n", 'c', 70) ; 6 printf ( "Liczby rzeczywiste: %d %ld\n", 2010, 123456789 L ) ; 7 printf ( "Wypelnianie miejsca: %10d \n",2010) ; 8 printf ( " Wypelnianie miejsca zerami: %010d \n ", 2010) ; 9 printf ( " Liczby w roznych systemach: %d %x %o \n", 100, 100, 100) ; 10 printf ( " Liczby rzeczywiste: %3.2f %+.0e %E \ n", 3. 1 4 1 6, 33247382478374.1418378734738476,3.1416) ; 11 printf ( "%s \n", "Ala ma kota" ) ; 12 return 0 ; 13 }

, strcpy, strncpy, strcmp, strncmp, strlen,...

, atoi, atof, atol, rand, srand, malloc,, system,...

, sin, cos, tan, asin, acos, atan, exp, log, log10, pow, sqrt, floor,...

, Inne użyteczne konstrukcje języka C ˆ typy wyliczeniowe (enum) zastępują definicje (#define) ˆ unie (mają składnię podobną do struktur, zamiast słowa struct używamy union) wszystkie jej pola rozpoczynają się w tym samym obszarze pamięci ˆ o zmiennej liczbie parametrów (np. printf, scanf) ich deklaracje używają konstrukcji..., a implementacje używają pewnych makr ˆ zmienne zewnętrzne (których deklaracja poprzedzona jest słowem extern) używane, gdy definicja zmiennej znajduje się np. w innym pliku ˆ zmienne statyczne (których deklaracja poprzedzona jest słowem static) inicjalizowane są tylko raz, niezależnie od miejsca deklaracji (też dla funkcji) ˆ definiowanie typów (typedef) ˆ metody przekazywania argumentów do funkcji ˆ przez wartość ˆ przez adres

, Dziękuję za uwagę.