Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
|
|
- Izabela Makowska
- 5 lat temu
- Przeglądów:
Transkrypt
1 Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
2 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane są tablice dwuwymiarowe matematycznym odpowiednikiem tablic dwuwymiarowych są macierze Definicja tablicy k wymiarowej ma postać: typ nazwa[n_1][n_2]..[n_k]; // + ewentualne inicjowanie, np. int tab_int_2d[2][3] = { {0,1,2}, {4,5,6} }; np. dla tablicy znaków przechowującej wiele linii teksu: #define MAX_DL_L 55 // maksymalna liczba znaków w jednej linii tekstu #define MAX_N_L 15 // maksymalna liczba linii tekstu char tekst_wieloliniowy[max_n_l][max_dl_l]; Tablice wielowymiarowe przechowywane są w kolejnych komórkach pamięci istnieje tylko jeden symbol (nie zmienna) w programie zawierający adres tablicy wielowymiarowej Krzysztof Banaś Podstawy programowania 2
3 Tablice wielowymiarowe Dostęp do elementu tablicy wykorzystuje notację: int linia = 5; int znak_w_linii = 27; tekst_wieloliniowy[ linia ][ znak_w_linii ] = 'q'; printf("%c", tekst_wieloliniowy[ 5 ][ 27 ]); Indeksy elementu tablicy służą do prostego obliczenia jego adresu: adres = początek + ( linia*max_dl_l + znak_w_linii ) * rozmiar_typu z tego względu tablice wielowymiarowe często zamieniane są na tablice jednowymiarowe: char tekst_wieloliniowy_1d[ MAX_N_L*MAX_DL_L ]; int linia = 5; int znak_w_linii = 27; tekst_wieloliniowy_1d[ linia*max_dl_l + znak_w_linii ] = 'q'; printf("%c", tekst_wieloliniowy_1d[ 5*MAX_DL_L + 27 ]); standardowy sposób przechowywania tablic dwuwymiarowych w C oznacza przechowywanie macierzy wierszami Krzysztof Banaś Podstawy programowania 3
4 Tablice wielowymiarowe Przesyłanie tablic wielowymiarowych jako argumentów funkcji realizuje prosta notacja: funkcja_tab_wielo( nazwa_tab_wielo ); wczytaj_tekst ( tekst_wieloliniowy ); Każdorazowo wewnątrz funkcji musi być możliwe obliczenie adresu dowolnego elementu posługując się indeksami elementu, jak np. w przypadku przykładowej tablicy dwuwymiarowej: adres = początek + ( linia*max_dl_l + znak_w_linii ) * rozmiar_typu oznacza to, że poza nazwą tablicy (czyli adresem jej początku) muszą zostać przekazane dodatkowe parametry określające rozmiar tablicy, np. w przypadku przykładowej tablicy dwuwymiarowej parametr MAX_DL_L parametr ten musi znaleźć się w deklaracji funkcji, co oznacza, że musi być znany w trakcie kompilacji! (w klasycznym C) Krzysztof Banaś Podstawy programowania 4
5 Tablice wielowymiarowe Deklaracje funkcji przyjmujących jako argument tablicę wielowymiarową mogą mieć jedną z równoważnych postaci: wczytaj_tekst ( char tekst_wieloliniowy [N_L] [MAX_DL_L] ); wczytaj_tekst ( char tekst_wieloliniowy [ ] [MAX_DL_L] ); wczytaj_tekst ( char (*tekst_wieloliniowy)[max_dl_l] ); ostatnia postać wykorzystuje utożsamienie nazwy tablicy ze wskaźnikiem W przypadku alternatywnego przechowywania macierzy w postaci tablic jednowymiarowych: parametry (wymiary) tablicy nie muszą być znane w czasie kompilacji muszą jednak zostać w jakiś sposób przekazane funkcji deklaracja funkcji: wczytaj_tekst_1d( char* tekst_wieloliniowy, int max_dl_l); wywołanie: wczytaj_tekst_1d( tekst_wieloliniowy, max_dl_l); Krzysztof Banaś Podstawy programowania 5
6 Tablice wskaźników Tablice wielowymiarowe nie są elastycznym i często używanym elementem C Znacznie częściej stosowane są bardziej elastyczne tablice wskaźników, np. dla poprzedniego przykładu: #define MAX_N_L 15 // maksymalna liczba linii tekstu char* tekst_wieloliniowy_tab_wsk[max_n_l] = {NULL}; // notacja! wskaźniki są zainicjowane dla bezpiecznego użycia ich wartości muszą zostać podstawione jako adresy istniejących zmiennych lub za pomocą funkcji alokacji pamięci, np. char napis_tab[10] = "..."; tekst_wieloliniowy_tab_wsk[0] = napis_tab; int dl_l = 25; int linia =5; tekst_wieloliniowy_tab_wsk[linia] = malloc( dl_l*sizeof(char)); w powyższym przypadku tekst_wieloliniowy_tab_wsk jest symbolem oznaczającym tablicę (jej adres), natomiast składowe tej tablicy są zmiennymi, które mogą przyjmować różne wartości (adresów) Krzysztof Banaś Podstawy programowania 6
7 Tablice wskaźników Wskaźniki będące składowymi tablicy wskaźników mogą pokazywać na rozmaite obiekty w pamięci wskaźniki muszą zachować zgodność typu wskazywanych obiektów z deklaracją tablicy: int* tab_wsk_int[10] = {NULL}; double* tab_wsk_d[10] = {NULL}; char* tekst_wieloliniowy_tab_wsk[max_n_l] = {NULL}; Dostęp do obiektów wskazywanych przez elementy tablicy wskaźników zależy od tego na co wskazują elementy: elementy mogą pokazywać na pojedyncze zmienne, np.: int liczba_int=5; int* tab_wsk_int[10] = {NULL}; tab_wsk_int[0] = &liczba_int; printf("%d", *tab_wsk_int[0]); // lub printf("%d", tab_wsk_int[0][0]); taki sposób wydaje się nie mieć uzasadnienia wygodniej jest stosować po prostu tablice liczb Krzysztof Banaś Podstawy programowania 7
8 Tablice wskaźników Dostęp do obiektów wskazywanych przez elementy tablicy wskaźników zależy od tego na co wskazują elementy: elementy mogą pokazywać na tablice zmiennych: double tab_d[10] = {1.0, 2.0, 0}; double* tab_wsk_d[10] = {NULL}; tab_wsk_d[0] = tab_d; printf("%lf", tab_wsk_d[0][1]); taki sposób użycia daje elastyczność stosowania wskazywane tablice mogą mieć różną długość (jak w poprzednim przykładzie) elementy mogą pokazywać na struktury typedef struct mg_punkt_2d{ double x; double y; } mg_punkt_2d; mg_punkt_2d* koniec[2] = {NULL}; mg_punkt_2d p1 = {0.0,0.0}; koniec[0] = &p1; koniec[0]->x = 1.0; printf("%lf\n", koniec[0]->x); tablice wskaźników do struktur mogą służyć do konstruowania złożonych struktur danych Krzysztof Banaś Podstawy programowania 8
9 Tablice wskaźników Przesyłanie tablic wskaźników jako argumentów funkcji wykorzystuje notacje: deklaracji funkcji (2 możliwe warianty): wypisz_tekst( char* tekst_wieloliniowy_tab_wsk[] ); wypisz_tekst( char** tekst_wieloliniowy_tab_wsk ); notacja char** zwraca uwagę na fakt, że na stosie funkcji wypisz_tekst będzie znajdowała się zmienna będąca wskaźnikiem do tablicy wskaźników (czyli wskaźnikiem do wskaźnika ten ostatni wskaźnik jest pierwszym elementem tablicy) wywołania funkcji wypisz_tekst( tekst_wieloliniowy_tab_wsk ); wewnątrz funkcji musi istnieć sposób poprawnego realizowania dostępu do obiektów wskazywanych przez elementy tablicy dla tablic napisów można wykorzystać fakt istnienia '\0' na końcu napisu Krzysztof Banaś Podstawy programowania 9
10 Struktury, wskaźniki i lista powiązana Lista powiązana (linked list) jest strukturą danych zawierającą elementy, tworzące węzły listy, zawierające dowolne dane lista powiązana jest strukturą dynamiczną, liczba elementów listy może się zmieniać w trakcie wykonania programu dostęp do elementów listy wykorzystuje zasadę, że każdy element listy wskazuje na element następny najważniejszym elementem listy jest jej "głowa" uchwyt (wskaźnik) do elementu początkowego "głowa" jest reprezentacją listy w funkcjach korzystających z listy chcąc uzyskać dostęp do dowolnego elementu listy należy uzyskać dostęp do jej "głowy", a następnie odwiedzać kolejne węzły (korzystając ze wskaźników w celu przejścia od jednego węzła do kolejnego), aż do znalezienia szukanego elementu inicjowanie listy polega na nadaniu wartości NULL "głowie" listy końcem listy jest węzeł, który nie wskazuje na żaden kolejny węzeł Krzysztof Banaś Podstawy programowania 10
11 Struktury, wskaźniki i lista powiązana Lista powiązana (linked list) struktury są wygodnym typem danych do przechowywania zawartości elementów listy: typedef struct element_listy{ char* nazwa_wezla; // dowolne inne składniki pojedynczego elementu listy wsk_el_list nastepny_wezel; // wskaźnik do kolejnego elementu } el_list; wskaźnik do następnego elementu może posługiwać się typem: typedef struct element_listy* wsk_el_list; pojedyncze elementy listy są obiektami typu el_list: el_list element_1 = { "Węzeł 1", NULL }; operacje na elementach mogą posługiwać się wskaźnikami: el_list* element_1_wsk = &element_1; miejsce w pamięci dla elementów listy można alokować dynamicznie el_list* element_wsk = malloc( sizeof(el_list) ); Krzysztof Banaś Podstawy programowania 11
12 Struktury, wskaźniki i lista powiązana Lista powiązana (linked list) zmiana liczby elementów listy polega na wstawianiu kolejnych elementów i ich usuwaniu węzeł listy można wstawić w dowolne miejsce: na początek (zmieniając wartość wskaźnika będącego "głową" listy), w środek (pomiędzy dwa węzły) lub na koniec wstawienie i usunięcie węzła polega zawsze na modyfikacji powiązań pomiędzy węzłami, np.: int wstaw_na_poczatek( // funkcja zwraca kod sukcesu lub błędu el_list** Glowa_wsk, // lista - identyfikowana przez wskaźnik el_list* Element // wskaźnik do elementu wstawianego na listę ){ // na początku: obsługa błędów danych wejściowych Element->nastepny_wezel=*Glowa_wsk; *Glowa_wsk=Element; // modyfikacja Głowy używając *Głowa_wsk return(0); } Krzysztof Banaś Podstawy programowania 12
13 Struktury, wskaźniki i lista powiązana Lista powiązana (linked list) niektóre z operacji na liście mogą wymagać przeglądania kolejnych elementów listy: int usun_element_listy( // funkcja zwraca kod sukcesu lub błędu el_list** Glowa_wsk, // lista - identyfikowana przez wskaźnik el_list* Element // wskaźnik do elementu usuwanego z listy ) { // na początku: obsługa błędów danych wejściowych if(*glowa_wsk==element) *Glowa_wsk=Element->nastepny_wezel; else{ el_list* poprzedni_wezel = *Glowa_wsk; while(poprzedni_wezel->nastepny_wezel!= Element){ poprzedni_wezel = poprzedni_wezel->nastepny_wezel; } poprzedni_wezel->nastepny_wezel = Element->nastepny_wezel; } // funkcja może także zwalniać pamięć jeśli była zaalokowana return 0; } Krzysztof Banaś Podstawy programowania 13
14 Przykład złożonej struktury danych // definicje struktur w pakiecie mg moja grafika wersja 1 typedef struct mg_punkt_2d{ // punkt w przestrzeni 2D double x; // współrzędna x double y; // współrzędna y } mg_punkt_2d; typedef struct mg_krawedz_2d{ // krawędź w przestrzeni 2D mg_punkt_2d koniec[2]; // punkty będące wierzchołkami } mg_krawedz_2d; typedef struct mg_trojkat_2d{ // trójkąt w przestrzeni 2D mg_krawedz_2d krawedzie[3]; // krawędzie trójkąta } mg_trojkat_2d; Uwaga: nie ma punktów wspólnych dla krawędzi, krawędzi wspólnych dla trójkątów itp. Uwaga: zmiana współrzędnych punktów nie zmienia położenia krawędzi Krzysztof Banaś Podstawy programowania 14
15 Przykład złożonej struktury danych // definicje struktur w pakiecie mg moja grafika wersja 2 typedef struct mg_punkt_2d{ // punkt w przestrzeni 2D double x; // współrzędna x double y; // współrzędna y } mg_punkt_2d; typedef struct mg_krawedz_2d{ // krawędź w przestrzeni 2D mg_punkt_2d* koniec[2]; // punkty będące wierzchołkami } mg_krawedz_2d; typedef struct mg_trojkat_2d{ // trójkąt w przestrzeni 2D mg_krawedz_2d* krawedzie[3]; // krawędzie trójkąta } mg_trojkat_2d; Uwaga: mogą istnieć punkty wspólne dla krawędzi, krawędzie wspólne dla trójkątów itp. Uwaga: zmiana współrzędnych punktów zmienia położenie krawędzi Krzysztof Banaś Podstawy programowania 15
16 Przykład złożonej struktury danych // definicje struktur w pakiecie mg moja grafika wersja 2.1 typedef struct mg_punkt_2d{ // punkt w przestrzeni 2D double x; // współrzędna x double y; // współrzędna y struct mg_trojkat_2d* *trojkaty; // trójkąty zawierające punkt // tablica o długości nieznanej w trakcie kompilacji } mg_punkt_2d; typedef struct mg_krawedz_2d{ // krawędź w przestrzeni 2D struct mg_punkt_2d* koniec[2]; // punkty będące wierzchołkami struct mg_trojkat_2d* trojkaty[2]; // trójkąty zawierające krawędź } mg_krawedz_2d; typedef struct mg_trojkat_2d{ // trójkąt w przestrzeni 2D struct mg_krawedz_2d* boki[3]; // krawędzie (boki) trójkąta struct mg_trojkat_2d* sasiedzi[3]; // sąsiednie trójkąty } mg_trojkat_2d; Krzysztof Banaś Podstawy programowania 16
17 Przykład złożonej struktury danych Definicja struktury obejmującej całą siatkę trójkątów typedef struct mg_siatka_2d{ int liczba_punktow; mg_punkt_2d* tablica_punktow; int liczba_krawedzi; mg_krawedz_2d* tablica_krawedzi; int liczba_trojkatow; mg_trojkat_2d* tablica_trojkatow; } mg_siatka_2d; Parametry siatki (liczba punktów, krawędzi, trójkątów) zadawane są w trakcie wykonania programu Tablice alokowane są w trakcie wykonania Składowe struktur zawierają wskaźniki do odpowiednich elementów tablic Krzysztof Banaś Podstawy programowania 17
18 Przykład złożonej struktury danych Zastosowanie tablic struktur pozwala na posługiwanie się indeksami w tablicach zamiast wskaźnikami do struktur: // definicje struktur w pakiecie mg moja grafika wersja 2.2 typedef struct mg_punkt_2d{ // punkt w przestrzeni 2D double x; // współrzędna x double y; // współrzędna y int *trojkaty; // indeksy trójkątów zawierających punkt } mg_punkt_2d; typedef struct mg_krawedz_2d{ // krawędź w przestrzeni 2D int koniec[2]; // indeksy punktów będących wierzchołkami int trojkaty[2]; // indeksy trójkątów zawierających krawędź } mg_krawedz_2d; typedef struct mg_trojkat_2d{ // trójkąt w przestrzeni 2D int boki[3]; // indeksy krawędzi (boków) trójkąta int sasiedzi[3]; // indeksy sąsiednich trójkątów } mg_trojkat_2d; Krzysztof Banaś Podstawy programowania 18
19 Przykład złożonej struktury danych Zdefiniowane wcześniej struktury danych pozwalają na szybkie wykonywanie dużej liczby operacji na całej siatce (dodawanie nowych punktów, krawędzi, trójkątów) Istnieją inne możliwe struktury danych wystarczające do realizacji operacji, np. minimalistyczna struktura danych: // definicje struktur w pakiecie mg moja grafika wersja 3 typedef struct mg_punkt_2d{ // punkt w przestrzeni 2D double x; double y; // współrzędne x i y } mg_punkt_2d; typedef struct mg_trojkat_2d{ // trójkąt w przestrzeni 2D int wierzcholki[3]; // indeksy wierzchołków trójkąta w tablicy punktów } mg_trojkat_2d; typedef struct mg_siatka_2d{ int liczba_punktow; int liczba_trojkatow; } mg_siatka_2d; mg_punkt_2d* tablica_punktow; mg_trojkat_2d* tablica_trojkatow; Krzysztof Banaś Podstawy programowania 19
20 Przykład złożonej struktury danych W definicji siatki zastosowane zostały tablice struktur (AOS array of structures) W celu zwiększenia wydajności obliczeń, stosuje się często alternatywne warianty struktur danych zawierające pojedynczą strukturę z tablicami zmiennych elementarnych typów liczbowych (SOA structure of arrays) W przypadku programu grafiki 2D struktura danych SOA mogłaby mieć postać: typedef struct mg_siatka_2d{ int liczba_punktow; int liczba_trojkatow; } mg_siatka_2d; double* wspolrzedne_punktow; int* punkty_trojkatow; Tak zdefiniowana struktura eliminuje potrzebę definiowania jakichkolwiek innych struktur ceną jest zmniejszenie czytelności kodu operacji na siatce trójkątów Krzysztof Banaś Podstawy programowania 20
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,
Bardziej szczegółowoPodstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoZmienne i struktury dynamiczne
Zmienne i struktury dynamiczne Zmienne dynamiczne są to zmienne, które tworzymy w trakcie działania programu za pomocą operatora new. Usuwa się je operatorem delete. Czas ich występowania w programie jest
Bardziej szczegółowoTablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoTemat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Tablice Wskaźniki Adresy pamięci Operator adresu
Bardziej szczegółowoutworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Bardziej szczegółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne
Bardziej szczegółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoWskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Bardziej szczegółowoAlgorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
Bardziej szczegółowoTABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;
Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst
Bardziej szczegółowoUniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą
Bardziej szczegółowoWykład 1: Wskaźniki i zmienne dynamiczne
Programowanie obiektowe Wykład 1: Wskaźniki i zmienne dynamiczne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Podstawy programowania w C++ Wskaźniki 2 dr Artur Bartoszewski - Programowanie
Bardziej szczegółowoTablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowotablica: dane_liczbowe
TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoWykład 3 Składnia języka C# (cz. 2)
Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest
Bardziej szczegółowoCo to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoWskaźniki w C. Anna Gogolińska
Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik
Bardziej szczegółowoPodstawy programowania
Podstawy programowania I rok Automatyka i Robotyka Eka PWr Ćwiczenia Zestaw 4 Zakres materiału Analiza poprawności konstrukcji, wyliczanie wyrażeń z wskaźnikami i tablicami, ręczna symulacja, opracowywanie
Bardziej szczegółowo1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Podział kodu programu Struktury definiowanie struktur
Bardziej szczegółowoWskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
Bardziej szczegółowoLab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,
Bardziej szczegółowoProgramowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37
Programowanie w C++ Wykład 4 Katarzyna Grzelak 19 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37 Funkcje cd K.Grzelak (Wykład 1) Programowanie w C++ 2 / 37 Funkcja powtórzenie Funkcje == podprogramy
Bardziej szczegółowoAnaliza konstrukcji zawierających wskaźniki. Piotr Błaszyński
Analiza konstrukcji zawierających wskaźniki Piotr Błaszyński Wskaźniki podejście naiwne: while(ptr!=null){ a[i] = *ptr; i++; ptr++; } po zmianie: N=length(ptr); alias_ptr = ptr; for(j=0 ; j
Bardziej szczegółowoTablice, funkcje, wskaźniki - wprowadzenie
Tablice, funkcje, wskaźniki - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 4 19 listopada 2018 (Wykład 4) Tablice, funkcje, wskaźniki - wprowadzenie 19 listopada 2018 1 / 37 Outline 1 Tablice
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Bardziej szczegółowoWstęp do programowania
Wieczorowe Studia Licencjackie Wrocław, 9.01.2007 Wstęp do programowania Wykład nr 13 Listy usuwanie elementów Poniżej prezentujemy funkcję, która usuwa element o podanej wartości pola wiek z nieuporządkowanej
Bardziej szczegółowoPodstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Podział kodu programu Struktury definiowanie struktur
Bardziej szczegółowoMateriał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje
Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w
Bardziej szczegółowoWskaź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:
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: typ nw; /* definicja zmiennej nw typu typ */ typ *w_nw; /* definicja
Bardziej szczegółowoPodstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów Krzysztof Banaś Podstawy programowania 1 Programy Większość programów w C stanowią rozbudowane kody, definiujące wiele funkcji
Bardziej szczegółowoStałe, tablice dynamiczne i wielowymiarowe
Stałe, tablice dynamiczne i wielowymiarowe tylko do odczytu STAŁE - CONST tablice: const int dni_miesiaca[12]=31,28,31,30,31,30,31,31,30,31,30,31; const słowo kluczowe const sprawia, że wartość zmiennej
Bardziej szczegółowo// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.
Wykład 10 Przykłady różnych funkcji (cd) - przetwarzanie tablicy tablic (tablicy "dwuwymiarowej") - sortowanie przez "selekcję" Dynamiczna alokacja pamięci 1 // Liczy srednie w wierszach i kolumnach tablicy
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót
Bardziej szczegółowoPodstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7
Bardziej szczegółowoĆwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz
Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Funkcje przetwarzające teksty (biblioteka ) - tworzenie własnych
Bardziej szczegółowo//zmienne globalne int *pa, *pb; //wskaźniki globalne void main(void) { clrscr(); printf("\n podaj wartosc liczby a\n"); scanf("%d",&a); pa=&a;
Ćwiczenie 4 4.1. Wskaźnik na zmienną Wskaźniki, tablice Deklaracja int *pa; oznacza, że pa jest wskaźnikiem na obiekt typu int. Zmienna pa zawiera adres pamięci, zarezerwowanej na zmienną typu int. Chcąc
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoNiezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium)
Język C, tablice i funkcje (laboratorium) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoPodstawy programowania komputerów
Podstawy programowania komputerów Wykład 10: Sterowanie pamięcią w C Pamięć na stosie!każdy program napisany w języku C ma dostęp do dwóch obszarów pamięci - stosu i sterty, w których może być przechowywana
Bardziej szczegółowoWstęp do wskaźników w języku ANSI C
Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,
Bardziej szczegółowoczęść 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia
Język ANSI C część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia najbardziej podstawowe operacje na wskaźnikach int x = 1, y = 2, Tab[10]; int *ip; // czy
Bardziej szczegółowoPodstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 6 Tablice statyczne 1 dr Artur Bartoszewski - programowania, sem 1 - WYKŁAD programowania Tablice 2 Tablice Klasyfikacja zmiennych statycznych prosty porządkowy rzeczywisty całkowity
Bardziej szczegółowoLaboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:
Laboratorium nr 9 Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium: wskaźniki referencje zastosowanie wskaźników wobec tablic dynamiczny przydział pamięci,
Bardziej szczegółowoTablicę 2-wymiarową można przedstawić jako pewien zestaw tablic 1-wymiarowych np.:
emat zajęć: ablice wielowymiarowe i struktury w języku C Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (ablice liczbowe wielowymiarowe) ablicę 2-wymiarową można przedstawić jako pewien zestaw tablic
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,
Bardziej szczegółowoJęzyk ANSI C tablice wielowymiarowe
Język ANSI C tablice wielowymiarowe Gdy tablica wielowymiarowa jest parametrem funkcji, to w standardzie ANSI C konieczne jest podanie wszystkich wymiarów poza pierwszym. Przykład. Napisać program wczytujący
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoPrzekazywanie argumentów wskaźniki
Przekazywanie argumentów wskaźniki klasyczne wywołanie wyliczenie i zwrotne przekazanie tylko jednej wielkości moŝliwość uŝycia zmiennych globalnych niebezpieczeństwa z tym związane wyjście wywołanie funkcji
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
Bardziej szczegółowo> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki
> C++ dynamiczna alokacja/rezerwacja/przydział pamięci Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1429536600 > Dzisiejsze zajęcia sponsorują słówka: new oraz delete
Bardziej szczegółowoWskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:
Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie
Bardziej szczegółowoWskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
Bardziej szczegółowoJęzyki i metodyka programowania. Wskaźniki i tablice.
Wskaźniki i tablice. Zmienna1 Zmienna2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Zmienna to fragment pamięci o określonym rozmiarze identyfikowany za pomocą nazwy, w którym może być przechowywana
Bardziej szczegółowoPętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoTypy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoW języku C/C++ pomiędzy wskaźnikami a tablicami istnieje bardzo ścisły związek. Do onumerowania elementów w tablicy służą tzw. INDEKSY.
LEKCJA 12. Wskaźniki i tablice w C i C++. W czasie tej lekcji: 1. Dowiesz się więcej o zastosowaniu wskaźników. 2. Zrozumiesz, co mają wspólnego wskaźniki i tablice w języku C/C++. WSKAŹNIKI I TABLICE
Bardziej szczegółowoPodstawowe struktury danych
Podstawowe struktury danych 1) Listy Lista to skończony ciąg elementów: q=[x 1, x 2,..., x n ]. Skrajne elementy x 1 i x n nazywamy końcami listy, a wielkość q = n długością (rozmiarem) listy. Szczególnym
Bardziej szczegółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoWykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Bardziej szczegółowoWykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
Bardziej szczegółowoGlobalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)
Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoWskaźniki. Programowanie Proceduralne 1
Wskaźniki Programowanie Proceduralne 1 Adresy zmiennych Sterta 1 #include 2 3 int a = 2 ; 4 5 int main ( ) 6 { 7 int b = 3 ; 8 9 printf ( " adres zmiennej a %p\n", &a ) ; 10 printf ( " adres
Bardziej szczegółowoStałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury
Bardziej szczegółowoStruktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Bardziej szczegółowoIX. Wskaźniki.(3 godz.)
Opracowała: dr inż. Anna Dubowicka Uczelniane Centrum Komputerowe PK IX. Wskaźniki.(3 godz.) Wskaźnik jest zmienną, która zawiera adres innej. 1. Definiowanie wskaźników. typ * nazwa ; gdzie: znak * informuje
Bardziej szczegółowoDYNAMICZNE PRZYDZIELANIE PAMIECI
DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne
Bardziej szczegółowoKURS C/C++ WYKŁAD 6. Wskaźniki
Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można
Bardziej szczegółowotyp y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury
typy złożone- tablice wielowymiarowe, struktury Wykład 6 Deklarowanie wskaźników nazwa_typu * nazwa_wskaznika; WSKAŹNIKI: PRZYPOMNIENIE Przypisywanie wskaźnikom wartości double * pn = &zmienna_typu_double;
Bardziej szczegółowoDodatkowo klasa powinna mieć destruktor zwalniający pamięć.
Zadanie 1. Utworzyć klasę reprezentującą liczby wymierne. Obiekty klasy powinny przechowywać licznik i mianownik rozłożone na czynniki pierwsze. Klasa powinna mieć zdefiniowane operatory czterech podstawowych
Bardziej szczegółowoWymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:
5 Tablice Tablica jest zestawem obiektów (zmiennych) tego samego typu, do których można się odwołać za pomocą wspólnej nazwy. Obiekty składowe tablicy noszą nazwę elementów tablicy. Dostęp do nich jest
Bardziej szczegółowo2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych
2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 4
Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości
Bardziej szczegółowododatkowe operacje dla kopca binarnego: typu min oraz typu max:
ASD - ćwiczenia IX Kopce binarne własność porządku kopca gdzie dla każdej trójki wierzchołków kopca (X, Y, Z) porządek etykiet elem jest następujący X.elem Y.elem oraz Z.elem Y.elem w przypadku kopca typu
Bardziej szczegółowoDrzewa BST i AVL. Drzewa poszukiwań binarnych (BST)
Drzewa ST i VL Drzewa poszukiwań binarnych (ST) Drzewo ST to dynamiczna struktura danych (w formie drzewa binarnego), która ma tą właściwość, że dla każdego elementu wszystkie elementy w jego prawym poddrzewie
Bardziej szczegółowozmienne stanowią abstrakcję komórek pamięci: programista może przechowywać dane w pamięci, nie martwiąc się o techniczne szczegóły (np.
ZMIENNE 39 zmienne stanowią abstrakcję komórek pamięci: programista może przechowywać dane w pamięci, nie martwiąc się o techniczne szczegóły (np. przydział pamięci). 40 Nazewnictwo zmiennych Dozwolone
Bardziej szczegółowoPodstawy programowania. Podstawy C# Tablice
Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej
Bardziej szczegółowoMateriał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji
Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 5 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w
Bardziej szczegółowoPodstawy programowania 2. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice
Bardziej szczegółowoJęzyk C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Bardziej szczegółowoKonwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,
Bardziej szczegółowo6 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 6 1/5 Język C Instrukcja laboratoryjna Temat: Wskaźniki. 6 Przygotował: mgr inż. Maciej Lasota 1) Wskaźniki. Wskaźniki (zmienne wskaźnikowe) stanowią jedno z fundamentalnych pojęć języka
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowo