O podstawowych operacjach na tablicach. Mateusz Ziółkowski, MBiU II
|
|
- Witold Kurek
- 6 lat temu
- Przeglądów:
Transkrypt
1 Wykład Ⅴ O podstawowych operacjach na tablicach Mateusz Ziółkowski, MBiU II
2 Czym są tablice? Tablica (ang. array) to zespół równorzędnych zmiennych, posiadających wspólną nazwę. Jego poszczególne elementy są rozróżnianie poprzez przypisane im liczby - tak zwane indeksy. Każdy element tablicy jest więc zmienną należącą do tego samego typu. Nie ma tutaj żadnych ograniczeń: może to być liczba (w matematyce takie tablice nazywamy wektorami), łańcuch znaków (np. lista uczniów lub pracowników), pojedynczy znak, wartość logiczna czy inny typ danych z wyjątkiem typu referencyjnego lub void. W szczególności, elementem tablicy może być także inna tablica!
3 Uwaga: W tablicy o n elementach NIE istnieje element n-ty!!! Spowodowane jest to tym, że indeksowanie elementów w tablicy zaczyna się od zera i ostatni element wtedy jest n-1 elementem.
4 Spis zagadnień Deklaracja tablic Inicjalizacja tablic Tablice statyczne i dynamiczne Tablice dynamiczne o dynamicznym rozmiarze Wprowadzanie i wyprowadzanie danych Wypełnianie tablic
5 Deklaracja tablic Przed pierwszym użyciem każda tablica musi być zadeklarowana tak jak wszystkie zmienne używane w programie tablica jest zmienną złożoną. Deklaracja w języku C++ wygląda następująco: typ_danych nazwa_tablicy[liczba_elementów], gdzie: Typ danych określa rodzaj informacji przechowywanych w tablicy np. int, nazwa aby odnieść się później do tablicy w programie oraz w nawiasach kwadratowych liczba elementów należąca do liczb naturalnych.
6 Deklaracja tablic Tablice mogą być wielowymiarowe w zależności od tego jak je zadeklarujemy na przykład: int a[2] tablica jednowymiarowa o dwóch elementach. Jej odpowiednikiem w matematyce jest ciąg. int b[5][3] tablica dwuwymiarowa o pięciu elementach w 3. Odpowiednikiem dwuwymiarowych tablic w matematyce jest macierz.
7 Inicjalizacja tablic Tablicę możemy zainicjalizować w bardzo prosty sposób, unikając przy tym wielokrotnych przypisań (po jednym dla każdego elementu): int a[2][3] = { {1, 2, 3}, {4, 5, 6} }; lub int b[2][3] = { 1, 2, 3, 4, 5, 6 }; Możemy użyć także takiego zapisu (pominąć jej rozmiar): int fib[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34}; Kompilator wtedy domyśli się rozmiaru tablicy.
8 Tablice statyczne i dynamiczne Statyczną tabelę nazywamy wtedy kiedy programista definiuje jej rozmiar w programie. Zdarza się, iż w trakcie pisania programu nie wiemy, ile dokładnie elementów będzie zawierała używana w tym programie tablica. W takim przypadku problem tworzenia dynamicznej tablicy możemy rozwiązać na dwa sposoby:
9 1. Sposób Utworzyć tablicę o maksymalnej, przewidywanej liczbie elementów. Rozwiązanie nieefektywne ze względu na wykorzystanie pamięci. Jeśli w typowych przypadkach wykorzystujemy małą liczbę elementów tablicy, to i tak musimy rezerwować założoną ilość komórek dla przypadku pesymistycznego, który pojawia się bardzo rzadko, ale jest prawdopodobny.
10 2. Sposób Utworzyć tablicę dynamicznie o tylu komórkach, ile w danej chwili jest nam potrzebne. Po wykorzystaniu, tablicę dynamiczną usuwamy, zwalniając w ten sposób zajmowany przez nią obszar pamięci, który teraz można wykorzystać do innych celów np. dla nowej tablicy dynamicznej.
11 W celu utworzenia w języku C++ tablicy dynamicznej, tworzymy zmienną wskaźnikową na typ danych, które mają być przechowywane w tablicy: typ_elementów * nazwa_tablicy_dynamicznej; Zmienna wskaźnikowa (ang. pointer variable) nie przechowuje danych tylko adres obszaru pamięci komputera, w którym te dane się znajdują. Deklarację zmiennej wskaźnikowej zawsze poprzedzamy znakiem gwiazdki.
12 W poniższym przykładzie tworzymy trzy wskaźniki a, b i c do danych typu double (czyli do obszaru pamięci, w którym będą przechowywane liczby zmiennoprzecinkowe o podwójnej precyzji): double * a, * b, * c; Pamięć rezerwujemy operatorem new i adres zarezerwowanego obszaru umieszczamy w zmiennej wskaźnikowej: nazwa_tablicy_dynamicznej = new typ_elementów[liczba_elementów];
13 Poniższy przykład tworzy trzy tablice dynamiczne, w których będzie można przechowywać odpowiednio 10, 100 i 1000 elementów typu double: a = new double[10]; // elementy od a[0] do a[9] b = new double[100]; // elementy od b[0] do b[99] c = new double[1000]; // elementy od c[0] do c[999] Po tej operacji do elementów tablic a, b i c odwołujemy się w zwykły sposób za pomocą indeksów. Istnieje również alternatywna metoda, wykorzystująca fakt, iż zmienne a, b i c są wskaźnikami. W języku C++ dodanie do wskaźnika liczby całkowitej powoduje obliczenie adresu elementu o indeksie równym dodawanej liczbie.
14 Zatem wynik takiej operacji jest również wskaźnikiem: Tablica a[2] = 10.54; cout << a[2] << endl; Wskaźnik * (a + 2) = 10.54; cout<< * (a + 2) <<endl; W rzeczywistości zapis a[i] kompilator i tak przekształca sobie na zapis * (a + i). Forma tablicowa jest tylko uproszczeniem zapisu wskaźnikowego.
15 Tablice dynamiczne nie są automatycznie usuwane z pamięci, jeśli utworzono je w funkcji. Dlatego po zakończeniu korzystania z tablicy program powinien zwolnić zajmowaną przez tablicę pamięć. Dokonujemy tego poleceniem delete w sposób następujący: delete [] nazwa_tablicy_dynamicznej; W poniższym przykładzie zwalniamy pamięć zarezerwowaną wcześniej na elementy tablic b i c. delete [] b; // usuwamy obszar wskazywany przez b delete [] c; // usuwamy obszar wskazywany przez c
16 C++ pozwala również na tworzenie statycznych tablic o liczbie elementów podanej w zmiennej. Na przykład: int n; cin >> n; double a[n]; Jednakże nie jest to zbyt standardowe rozwiązanie i może nie być przenośne na inne kompilatory C++, dlatego odradza się używania go lepiej zastosować tablicę dynamiczną.
17 Tablice dynamiczne o dynamicznym rozmiarze Gdy operujemy na dynamicznych strukturach danych, to często okazuje się, że taką strukturę należy zwiększyć lub zmniejszyć w czasie działania programu. Np. utworzyliśmy na początku algorytmu dynamiczną tablicę 100 elementową, lecz dalej okazało się, że w tablicy tej należy dodatkowo umieścić jeszcze 50 kolejnych elementów. Co możemy zrobić? Odpowiedź jest prosta dynamicznie zmienić rozmiar naszej struktury. Zasada jest następująca
18 Oprócz wskazania do tablicy tworzymy dodatkową zmienną, która przechowuje jej maksymalny rozmiar. Oznaczmy tę zmienną przez nn. Każdą tablicę tworzymy z pewnym zapasem komórek, oznaczmy go przez z. Zmienna n przechowuje informację o ilości zajętych komórek. Gdy dodajemy element do tablicy, to najpierw zwiększamy n o 1 i sprawdzamy, czy warunek n nn jest spełniony. Jeśli tak, to tablica zawiera za mało komórek, i należy zwiększyć jej rozmiar. Operację tę przeprowadzamy następująco
19 Postępowanie wstawiania elementów do tablicy 1. Rezerwujemy nowy obszar pamięci o rozmiarze nn + z i zapamiętujemy jego adres w tymczasowej zmiennej. 2. Przepisujemy zawartość starego obszaru tablicy do nowego. 3. Usuwamy stary obszar w ten sposób system odzyska pamięć. 4. Do wskaźnika tablicy przepisujemy adres ze zmiennej tymczasowej. 5. Zmienną nn zwiększamy o z
20 Zwróćmy uwagę, że cała tablica zmieniła swoje położenie w pamięci. Jeśli zatem posiadaliśmy jakieś zmienne, które przechowywały adresy jej elementów (wskaźniki), to teraz przestaną one być aktualne, ponieważ wskazują stary obszar, który już do tej tablicy nie należy (chociaż przez pewien czas może zachowywać swoją zawartość aż system zapisze go innymi danymi). Należy to wziąć pod uwagę, gdy planujemy wykorzystywanie dynamicznych tablic o dynamicznym rozmiarze.
21 Kod postępowania if(++n >= nn) { typ_danych * T = new typ_danych[nn+z]; for(int i = 0; i < nn; i++) T[i] = A[i]; delete [] A; A = T; nn += z; }
22 Postępowanie usuwania elementów do tablicy Przy usuwaniu elementów z tablicy postępujemy podobnie. Gdy usuniemy element, to rozmiar tablicy n zostanie zmniejszony o 1. Sprawdzamy, czy jest spełniony warunek n nn - 2z. Jeśli tak, to tablica zajmuje zbyt duży obszar i powinniśmy zmniejszyć jej rozmiar.
23 Dlaczego w nierówności użyliśmy 2z a nie po prostu z? Chodzi o to, aby po zmniejszeniu rozmiaru tablica wciąż posiadała zapas z komórek, co zmniejszy ryzyko częstych przeładowań pamięci, które są przecież kosztowne czasowo. Zmianę rozmiaru tablicy wykonujemy podobnie jak przy zwiększaniu liczby elementów:
24 Kod postępowania if(--n <= nn) { typ_danych * T = new typ_danych[nn-z]; for(int i = 0; i < nn; i++) T[i] = A[i]; delete [] A; A = T; nn -= z; }
25 Wprowadzanie/wyprowadzanie danych Dane dla programu zwykle muszą być odczytywane ze zewnętrznego źródła konsoli lub pliku. W takim przypadku nie wiemy z góry (tzn. w trakcie pisania programu) ile ich będzie. Narzucającym się rozwiązaniem jest zastosowanie tablic dynamicznych. Ze źródła danych odczytujemy rozmiar tablicy, tworzymy tablicę dynamiczną o odpowiednim rozmiarze, a następnie wczytujemy do jej komórek poszczególne dane.
26 Sposoby odczytu zawartości tablicy z konsoli 1. Dane podajemy bezpośrednio z klawiatury. Sposób skuteczny i prosty dla niedużego zbioru danych. Jednakże przy większej ich liczbie staje się bardzo uciążliwy;
27 Sposoby odczytu zawartości tablicy z konsoli 2. Skopiowanie danych poprzez schowek. Procedura postępowania jest następująca: Tworzymy w notatniku Windows (aplikacja zawsze pod ręką) odpowiedni zbiór danych Zbiór kopiujemy do schowka (zaznaczamy całość Ctrl+A i naciskamy Ctrl+C) Uruchamiamy program Klikamy PPM w pasek tytułowy okna konsoli Z menu kontekstowego wybieramy polecenie Edytuj Wklej Gotowe (^.^)
28 Sposoby odczytu zawartości tablicy z konsoli 3. Przekierowanie standardowego wejścia z konsoli na plik na dysku. W tym przypadku program będzie pobierał dane z pliku, a nie z klawiatury.
29 Aby to uzyskać uruchamiamy program w oknie konsoli następująco: nazwa_programu < nazwa_pliku_wejściowego Program nazywa się szukaj.exe, a plik nosi nazwę dane.txt. Odpowiednie polecenie odczytu danych z pliku przez nasz program wygląda następująco: szukaj < dane.txt
30 To rozwiązanie umożliwia również zapis danych wynikowych nie na ekran konsoli, lecz do pliku na dysku. W tym celu wystarczy wydać polecenie: nazwa_programu > nazwa_pliku_wynikowego Niech plik wyniku będzie wyniki.txt. Obydwa polecenia można skupić w jedno następujące: szukaj < dane.txt > wyniki.txt
31 Jeśli często używamy takiego typu rozwiązania, możemy stworzyć plik wsadowy (ang. batch file) i umieścimy go w katalogu projektu. Oto jego off cls echo DANE WEJSCIOWE: echo. type dane.txt echo. prg < dane.txt > wyniki.txt echo WYNIKI: echo. type wyniki.txt echo.
32 Kod programu PRG #include <iostream> using namespace std; int main() { int * T,n,i; cin >> n; T = new int[n]; for(i = 0; i < n; i++) cin >> T[i]; cout << endl; for(i = 0; i < n; i++) cout << T[i] << " "; cout << endl << endl; delete [] T; return 0; } Program z pierwszego wiersza odczytuje liczbę n określającą ilość danych. Z następnych n wierszy odczytywane są dane i umieszczane w tablicy dynamicznej. Odczytane dane zostają następnie wyświetlone jedna obok drugiej. Można wypróbować z tym programem podane wcześniej trzy opcje dostarczania danych i wyprowadzania wyników.
33 Wypełnianie tablicy Czasami algorytm musi wstępnie wypełnić tablicę określoną zawartością. Operację taką przeprowadza się w pętli iteracyjnej, której zmienna licznikowa przebiega przez wszystkie kolejne indeksy elementów. Następnie wykorzystuje się zmienną licznikową jako indeks elementu tablicy, w którym umieszczamy określoną zawartość. W poniższych przykładach zakładamy, iż w programie zadeklarowano tablicę T o 20 elementach typu integer. Indeksy elementów tablicy T są w zakresie od 0 do 19.
34 Wypełnianie liczbami parzystymi począwszy od 2 for(i = 0; i < 20; i++) T[i] = (i + 1) << 1; Wypełnianie liczbami nieparzystymi począwszy od 1 for(i = 0; i < 20; i++) { T[i] = (i + 1) << 1; }
35 Wypełnianie stałą zawartością x for(i = 0; i < 20; i++) T[i] = x; Wypełnianie liczbami pseudolosowymi z przedziału <a,b> #include <cstdlib> #include <time.h> srand((unsigned)time(null)); for(i = 0; i < 20; i++) T[i] = a + rand() % (b - a + 1);
36 Dziękuję za uwagę (*^O^*)
r. Tablice podstawowe operacje na tablicach
27.03.2014r. Tablice podstawowe operacje na tablicach Tablica - definicja Tablica (ang. array) lub wektor (ang. vector) jest złożoną strukturą danych (ang. compound data structure) zbudowaną z ciągu elementów
ZASADY 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.
Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak:
Tablice Tablice jednowymiarowe Jeżeli nasz zestaw danych składa się z wielu drobnych elementów tego samego rodzaju, jego najbardziej naturalnym ekwiwalentem w programowaniu będzie tablica. Tablica (ang.
1 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,
Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119
Tablice Tablica to struktura danych, która może przechowywać wiele wartości tego samego typu. Na przykład tablica może zawierać: 10 wartości typu int opisujących liczbę studentów przyjętych na kierunek
typ 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;
Wskaź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
Wstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata
MACIERZE Sobiesiak Łukasz Wilczyńska Małgorzata Podstawowe pojęcia dotyczące macierzy Nie bez przyczyny zaczynamy od pojęcia macierzy, które jest niezwykle przydatne we wszystkich zastosowaniach, obliczeniach
Podstawy 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
Część 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ęść
Wstęp do programowania
wykład 7 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji
tablica: 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
Niezwykł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ą
Wskaź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
> 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
INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki
INFORMATYKA Z MERMIDONEM Programowanie Moduł 5 / Notatki Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Realizator projektu: Opracowano w ramach projektu
Programowanie obiektowe W3
Programowanie obiektowe W3 Przegląd typów strukturalnych w C++ : tablice statyczne i dynamiczne Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Typy złożone: tablice
Inicjacja tablicy jednowymiarowej
TABLICE C++ Inicjacja tablicy jednowymiarowej typ_komórek_tablicy nazwa_tablicy [ ilość elementów tablicy ] ; np.: int tablica[1000]; czyli tablica, która może przechowywać tysiąc elementów typu całkowitego,
1 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,
Zmienne 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
Materiał 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
TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.
Złożone typy danych - TABLICE TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych. * Może przechowywać dowolny typ danych, typ
DYNAMICZNE 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
Programowanie 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
Podstawy 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:
Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
I - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
Programowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
Jak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Wstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Wymiar 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
Deklaracja struktury w C++
Struktury to złożone typy danych pozwalające przechowywać różne informacje. Za pomocą struktur możliwe jest grupowanie wielu zmiennych o różnych typach w jeden obiekt. Strukturę można nazywać obiektem
Programowanie komputerowe. Zajęcia 1
Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program
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.
Część XXII C++ w 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. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Podstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok
Temat: 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,
1 Wskaźniki. 1.1 Główne zastosowania wskaźników
1 Wskaźniki Wskaźnik (ang. pointer) jest obiektem (zmienną) przechowującym adres pamięci. Definiowanie wskaźników: typ *nazwa wskaznika; np.: int *wsk na x;, double *xxx;, char *znak;. Aby można było pracować
2. 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:
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017
> C++ wskaźniki Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 >??? Co to jest WSKAŹNIK? ++ wskaźniki 2 / 20 >??? Co to jest WSKAŹNIK? To po prostu ADRES
Pytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
Podstawy 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
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:
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
Lab 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
Podstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
TABLICE 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
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
M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.
8. Wektory Przykłady 8.1. Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. Uwaga! Kod poniżej. To zadanie można rozwiązać przy użyciu wiedzy
Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.
Przygotować program tworzący tablicę dwuwymiarową zawierającą zestawy 10 2, 10 4, 10 6 liczb losowych zmiennoprzecinkowych. Korzystając z funkcji bibliotecznych uporządkować zawartość każdego (a) wiersza
Programowanie komputerowe. Zajęcia 5
Programowanie komputerowe Zajęcia 5 Tablice wielowymiarowe Tablicę dwuwymiarową możemy deklarować statycznie: typ nazwa[rozmiar1][rozmiar2]; Ma ona elementy nazwa[i][j] dla i=0,,rozmiar1-1, j=0,...,rozmiar2-1.
Programowanie 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
Wstęp do programowania
wykład 6 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji
Transponowanie macierzy Mnożenie macierzy Potęgowanie macierzy Wyznacznik macierzy
Transponowanie macierzy Mnożenie macierzy Potęgowanie macierzy Wyznacznik macierzy Problem Transponować macierz A m n na A T n m. Operacja transponowania macierzy polega na zamianie wierszy w kolumny i
Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 5 Algorytmy i wskaźniki dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Plan Zapis i odczyt z plików tekstowych O tablicach ciąg dalszy Referencje
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie
Algorytmika i programowanie Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Tablice Tablica jest zbiorem elementów tego samego typu. Każdy element jest identyfikowany (numer
STL: Lekcja 1&2. Filozofia STL
STL: Lekcja 1&2 Tematy: Filozofia STL Po co nam STL? Podstawowa zawartość STL Co warto znać zanim zaczniemy pracę z STL?: wskaźniki Praca na tekstach: klasa String Vector: nowy wymiar standardowych tablic.
Tablice. Jones Stygar na tropie zmiennych
Tablice Jones Stygar na tropie zmiennych Czym jest tablica? Obecnie praktycznie wszystkie języki programowania obsługują tablice. W matematyce odpowiednikiem tablicy jednowymiarowej jest ciąg (lub wektor),
Programowanie strukturalne i obiektowe. Funkcje
Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE
1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne
Stał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
Programowanie komputerowe. Zajęcia 3
Programowanie komputerowe Zajęcia 3 Instrukcje przypisania Poza zwykłą instrukcją przypisania, powodującą ustawienie wartości zmiennej na podane wyrażenie, istnieje wiele innych, np. += dodaj, a+=b jest
C++ wprowadzanie zmiennych
C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym
Liczby całkowite i rzeczywiste
Wykład 4(20 marzec 2014r.) Liczby całkowite i rzeczywiste Paulina Rogowiecka Klaudia Kamińska Adrianna Znyk 1 Spis treści: Czynniki pierwsze metoda próbnych dzieleń Pierwszość liczby naturalnej algorytmy
ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 4 : Napisy. Tablice dwuwymiarowe. Formaty
Programowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include
do instrukcja while (wyrażenie);
Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie
Tablice (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
Programowanie proceduralne w języku C++ Pętle, tablice
Programowanie proceduralne w języku C++ Pętle, tablice Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki
JĘ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,
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard
Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa
Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich
Programowanie i struktury danych
Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne
Laboratorium 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,
Pę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
Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne
1 Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)
Utworzenie pliku. Dowiesz się:
Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program
Ję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
Algorytmy 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
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Materiał. 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
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty
Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja
Opis zagadnieo 1-3 Iteracja, rekurencja i ich realizacja Iteracja Iteracja to czynnośd powtarzania (najczęściej wielokrotnego) tej samej instrukcji (albo wielu instrukcji) w pętli. Mianem iteracji określa
7. Pętle for. Przykłady
. Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i
(3 kwiecień 2014) Marika Pankowska Kamila Pietrzak
(3 kwiecień 2014) Marika Pankowska Kamila Pietrzak Wyszukiwanie liniowe (ang. linear search), zwane również sekwencyjnym (ang. sequential search) polega na przeglądaniu kolejnych elementów zbioru Z. Jeśli
Wskaź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