Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

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

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. Grzegorz Smyk

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 6. autor: Grzegorz Smyk

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 5. autor: Grzegorz Smyk

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

Wprowadzenie do programowania i programowanie obiektowe

Lab 9 Podstawy Programowania

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 11 Funkcje

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

Programowanie i struktury danych

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

Wskaźniki w C. Anna Gogolińska

1 Podstawy c++ w pigułce.

Wykład 1: Wskaźniki i zmienne dynamiczne

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

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

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

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

Język C zajęcia nr 11. Funkcje

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

1 Podstawy c++ w pigułce.

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

Program 14. #include <iostream> #include <ctime> using namespace std;

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Wskaźniki. Informatyka

Programowanie - wykład 4

Część 4 życie programu

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

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Procedurale

Podstawy Programowania C++

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

tablica: dane_liczbowe

lekcja 8a Gry komputerowe MasterMind

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

Zajęcia 6 wskaźniki i tablice dynamiczne

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

Wprowadzenie do programowania i programowanie obiektowe

O podstawowych operacjach na tablicach. Mateusz Ziółkowski, MBiU II

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

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

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

Podstawy programowania w języku C++

Język C, tablice i funkcje (laboratorium)

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

Inicjacja tablicy jednowymiarowej

r. Tablice podstawowe operacje na tablicach

STL: Lekcja 1&2. Filozofia STL

Język C++ zajęcia nr 2

Programowanie proceduralne w języku C++ Pętle, tablice

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

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

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

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

Podstawowe części projektu w Javie

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

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

Podstawy Programowania Podstawowa składnia języka 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:

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

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

Tablice, funkcje - wprowadzenie

I - Microsoft Visual Studio C++

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

Zmienne i struktury dynamiczne

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Podstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe

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

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

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

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

Programowanie Obiektowe i C++

Wstęp do programowania

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

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Programowanie w języku C++

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

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

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++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Wstęp do programowania

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

ZASADY PROGRAMOWANIA KOMPUTERÓW

Zajęcia 6 wskaźniki i tablice dynamiczne

Transkrypt:

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 Krakowie,

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

Instrukcje warunkowe while (warunek) { // blok instrukcji; } Obliczana jest wartość warunku, jeśli warunek wynosi 0 to blok instrukcji nie jest wykonywany. Jeśli warunek jest różny od 0 to blok instrukcji jest wykonywany dopóki warunek ma wartość niezerową;

Instrukcje warunkowe do { // blok instrukcji } while (warunek); Najpierw wykonywany jest blok instrukcji, a dopiero potem sprawdzany jest warunek. Jeśli warunek jest prawdziwy to wykonywany jest ponownie blok instrukcji.

Instrukcje warunkowe for (instr_ini; wyraz_warunk; instr_krok) { //instrukcja1 } instr_ini instrukcja wykonywana w czasie pierwszego wykonywania pętli wyraz_warunk wyrażenie obliczane w czasie każdej iteracji zmiennych (gdy jest równe 0 to pętla kończy swoje działanie) instr_krok instrukcja wykonywana na zakończenie każdego obiegu pętli

Tablice

Tablice statyczne [od C++ 9] tablica statyczna jednowymiarowa: typ_danych nazwa_tablicy[ilosc_elementów]; tablica statyczna dwuwymiarowa: typ_danych nazwa_tablicy[l_wierszy][l_kolumn]; Do tablic możemy przypisywać elementy w momencie jej inicjalizacji, jak również przy tablicach statycznych możemy operować na wartościach używając: cin / cout;

Tablice statyczne Odwoływanie się do elementów tablicy: int tab[3] = { 1, 2, 3 }; Wartości: tab[0] = 1; tab[1] = 2; tab[2] = 3; Jeśli umiemy się odwołać do elementu, możemy wywołać na nim: cin>>element; cout<<element;

Tablice statyczne (C++ 11, ) #include <array> Tablica statyczna jednowymiarowa: std::array<typ, rozmiar> nazwa_tablicy; Tablica wielowymiarowa: std::array<std::array<typ, rozmiar>, rozmiar> arr; http://en.cppreference.com/w/cpp/container/array

Tablice statyczne (C++ 11, ) Biblioteka array umożliwia stosowanie kontenera o zadanym rozmiarze dowolnego typu Pozwala na wykorzystanie elementów wbudowanych Możliwe jest wykorzystanie pętli for w formie for each Brak odpowiednika tablicy dynamicznej (czyt: dynarray) Wymuszone przejście na vector

Funkcje

Funkcje::Deklaracja, definicja użycie Deklaracja funkcji: typ_zwracany nazwa_funkcji( argumenty ); Definicja funkcji: typ_zwracany nazwa_funkcji( argumenty ) { ciało funkcji }; Przekazywanie argumentów do funkcji jest opcjonalne. Możliwe jest również przekazywanie kilku argumentów jednocześnie. By to zrobić należy rozdzielić jest przecinkami. Przykład: int funkcja(int arg1, int arg2); Funkcja jest to część programu, która możemy wywołać w kodzie programu poprzez podanie jej nazwy w programie oraz poprzez (opcjonalne) przekazanie argumentów do funkcji. Uwaga! Możliwa jest jednoczesna deklaracja z definicja funkcji, ale musi się ona odbyć przed użyciem funkcji w kodzie

Funkcje::Przeładowanie Może istnieć zdefiniowanych wiele funkcji o tej samej nazwie z różną liczbą argumentów jednak ich deklaracja ma być jednoznaczna!

Wskaźniki & referencje

Referencja Typ referencyjny jest połączeniem funkcjonalności typu wskaźnikowego ze składnią typu bezpośredniego Definicja zmiennej typy referencyjnego tworzona jest przez dodanie symbolu & przez nazwą zmiennej typu wskaźnikowego.

Wskaźniki - inicjalizacja Wskaźnik zmienna wskaźnikowa w której zapisywany jest nie obiekt, a adres komórki pamięci, inicjalizowana jest przez dodanie * przed nazwą zmiennej; Dzięki wskaźnikom możemy przechowywać np. adres innej zmiennej oraz umożliwić bezpośredni dostęp do tej zmiennej.

Wskaźniki i referencje Operacja Wskaźnik Referencja Zmienne bezpośrednie Deklaracja bez inicjalizacji Deklaracja z inicjalizacją Zmiana zmiennej wskazywanej int a, b; int a, b; int *wskaznik; - BRAK - int *ptr = &a; Int &ref = a; ptr = &b; - BRAK -

Wskaźniki vs tablice Nazwa tablicy jest wskaźnikiem na adres jej pierwszego elementu. int *wsk = tab; Zmienne wskaźnikowe można przesuwać, więc zapis tab[0] = 0; tab[1] = 1; tab[9] = 9; Jest równoznaczny z: *wsk = 0; *(wsk+1) = 1; *(wsk+9) = 9;

Tablice dynamiczne

Tablice dynamiczne Istnieje możliwość dynamicznej alokacji pamięci dla tablicy przy wykorzystaniu wskaźników. Generujemy wtedy tablicę o zalokowanej pamięci o zadanym rozmiarze. Istnieje możliwość zrobienia też dynamicznej tablicy wielowymiarowej, generuje się wtedy tablicę wskaźników na wskaźniki. int** tab = new int*[a];

Tablice i operacje na nich. tablica dynamiczna jednowymiarowa: TYP *nazwa_tablicy = new TYP [ilosc_elementów]; tablica wielowymiarowa: TYP **nazwa_tablicy = new TYP* [ilosc_elementów]; for(int i=0; i<ilość_elementów;i++) Nazwa_tablicy[i] = new TYP[ilość_elementów] zaletą tablic dynamicznych jest fakt, że pamięć można zwolnić

String tablica charow Aby móc posługiwać się typem string, który przechowuje łańcuchy znaków należy dodać plik nagłówkowy: #include <string> oraz użyć przestrzeni nazw std. Na zmiennej typu string możemy operować tak samo jak każdej innej zmiennej ORAZ tak jak na tablicy charów odwołując się do poszczególnych elementów w tablicy. Możliwe jest dodawanie (konkatenacja) zmiennych typu string jednak nie można sklejać w następujący sposób: string zmienna = nowy + wyraz

#include <ctime> using namespace std; void f() { clock_t begin = clock(); code_to_time(); clock_tend = clock(); double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC; }

Zadania

Zadania: 1. Napisz program w którym zaalokowana zostanie tablica dynamiczna o rozmiarze podanym przez użytkownika. I. Przekaż tablicę do funkcji, która uzupełni tablicę zmiennymi losowymi z przedziału podanego przez użytkownika II. Przekaż tablicę do funkcji, która zwróci kopię tablicy III. Przekaż tablice do funkcji, która posortuje elementy tablicy dowolnym algorytmem sortowania IV. Przekaz tablicę do funkcji, która znajdzie i wyświetli min-max tablicy. V. Wypisz elementy tablicy przed i po sortowaniu I. tablica jest posortowana II. kopia jest nieposortowana

Zadanie 2. Napisz program, w którym: I. wewnątrz funkcji zostanie zaalokowana tablica dwuwymiarowa II. Przy pomocy osobnej funkcji zostanie uzupełniona tablica wg schematu. III. Wyświetl elementy tablicy IV. Zwolnij zaalokowaną pamięć 25 24 23 22 21 10 9 8 7 20 11 2 1 6 19 12 3 4 5 18 13 14 15 16 17

Zadania: 3. Napisz program, który na podstawie wartości liczbowej podanej przez użytkownika wygeneruje losowy ciąg znaków o danej długości (min 8 znaków). I. Łańcuch znaków jest tablicą dynamiczną typu char. II. Pojedyncze znaki są zwracane z indywidualnych funkcji: 1. Małe litery :: ASCII<97-122>, 2. Duże litery :: ASCII<65-90>, 3. Liczby :: ASCII <48-57> III. Uzupełniamy tablicę losowymi wynikami w zależności od wyboru użytkownika: I. Same małe litery II. Litery małe i duże w losowej ilości III. IV. Litery małe, duże i liczby w losowej ilości. Zdefiniuj ilość poszczególnych znaków w haśle.

Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie: http://creativecommons.org/licenses/by-sa/3.0/deed.pl