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

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

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

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 11 Funkcje

Wstęp do informatyki- wykład 9 Funkcje

Programowanie - wykład 4

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

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

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

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

Wskaźniki w C. Anna Gogolińska

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

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

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

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

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

1 Podstawy c++ w pigułce.

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

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

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

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

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

Język C zajęcia nr 11. Funkcje

Wstęp do programowania

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

Wprowadzenie do programowania i programowanie obiektowe

Wykład 1: Wskaźniki i zmienne dynamiczne

Część 4 życie programu

Programowanie i struktury danych

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

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

Programowanie Procedurale

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

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

1 Podstawy c++ w pigułce.

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

Programowanie obiektowe W3

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

tablica: dane_liczbowe

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

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

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

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

Wstęp do informatyki- wykład 7

Wskaźniki. Informatyka

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

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

Programowanie komputerowe. Zajęcia 4

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

Programowanie Obiektowe i C++

Techniki Programowania wskaźniki

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

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

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

Instrukcje sterujące

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

Rekurencja (rekursja)

r. Tablice podstawowe operacje na tablicach

STL: Lekcja 1&2. Filozofia STL

Język C, tablice i funkcje (laboratorium)

Podstawy programowania w języku C++

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

Podstawy Programowania Podstawowa składnia języka C++

Język C++ zajęcia nr 2

Zmienne i struktury dynamiczne

Wstęp do programowania

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

I - Microsoft Visual Studio C++

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

Funkcje. Wprowadzenie. Mirosław Ochodek

Programowanie w języku C++

Programowanie obiektowe w C++ Wykład 1

Podstawy Programowania C++

Zajęcia 6 wskaźniki i tablice dynamiczne

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

- - Ocena wykonaniu zad3. Brak zad3

Przekazywanie argumentów wskaźniki

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

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

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

W dowolnym momencie można zmienić typ wskaźnika.

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

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

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); }

ZASADY PROGRAMOWANIA KOMPUTERÓW

Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster

Wstęp do informatyki- wykład 7

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

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

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

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

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

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Transkrypt:

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 akademicki 2016/2017

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

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 [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ć

#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, możliwa będzie alokacja tablicy dynamicznej typu int. I. Przy pomocy funkcji wykona alokację tablicy II. I. Funkcja przyjmuje tylko rozmiar, a zwraca kopię wskaźnika z zaalokowaną pamięcią II. *) Funkcja przyjmuje wskaźnik oraz rozmiar i nic nie zwraca Przy pomocy funkcji uzupełnij tablicę kolejnymi wartościami ciągu Fibonacciego III. Znajdź i wyświetl największy element w tablicy. IV. Zmodyfikuj typ int w taki sposób by można było wyświetlić więcej elementów ciągu Fibonacciego (91) Zmierz czas wykonywania obliczeń dla 40 elementów w zależności od implementacji liniowej oraz rekurencyjnej.

Zadanie 4 2. Napisz program, w którym w funkcji zostanie utworzona tablica dwuwymiarowa (zwrócona do funkcji main). Napisz funkcję która uzupełni tą tablicę wg schematów. Do wyświetlania użyj metody std::setw(int); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7

Zadania: 3. Napisz program który wyświetli wszystkie dodatnie dzielniki liczby podanej przez użytkownika (wynik ma zostać zapisany w tablicy), w przypadku braku dzielników (poza 1 i samą sobą) na ekranie pojawia się komunikat, że jest to liczba pierwsza. 4. 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 posortuje elementy tablicy dowolnym algorytmem sortowania III. Przekaż tablice do funkcji, która odwróci kolejność elementów tablicy IV. Napisz funkcję, która zwróci kopię przekazanej do niej tablicy, V. Wypisz elementy tablicy po wykonaniu każdej operacji przy pomocy funkcji

Zadania: 5. Napisz program generujący hasła: a. Użytkownik zostanie poproszony o długość hasła b. Generowanie haseł tylko alfanumerycznych c. Generowanie haseł zawierających znaki specjalne

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