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

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. Wydział Inżynierii Metali i Informatyki Przemysłowej

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

Wprowadzenie do programowania i programowanie obiektowe

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

Lab 9 Podstawy Programowania

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

Część 4 życie programu

Wskaźniki. Informatyka

Wstęp do informatyki- wykład 11 Funkcje

Argumenty wywołania programu, operacje na plikach

Wstęp do informatyki- wykład 9 Funkcje

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

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

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

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

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

Język C zajęcia nr 11. Funkcje

I - Microsoft Visual Studio C++

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

Przekazywanie argumentów wskaźniki

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

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:

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

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

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

Wprowadzenie do programowania i programowanie obiektowe

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

Wykład 1: Wskaźniki i zmienne dynamiczne

Techniki Programowania wskaźniki

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

Techniki Programowania wskaźniki 2

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

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

Wstęp do Programowania, laboratorium 02

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

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

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

Inicjacja tablicy jednowymiarowej

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

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

Podstawy Programowania Obiektowego

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

Projektowanie klas c.d. Projektowanie klas przykład

Program 22. #include <iostream> using namespace std; struct Osoba { string Imie; string Nazwisko; char Plec; int RokUr; };

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

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

1 Podstawy c++ w pigułce.

Język C, tablice i funkcje (laboratorium)

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

Wskaźniki w C. Anna Gogolińska

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

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

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:

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

Podstawy języka skryptowego Lua

Wstęp do programowania

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Zajęcia 6 wskaźniki i tablice dynamiczne

Języki i metodyka programowania. Wprowadzenie do języka C

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

r. Tablice podstawowe operacje na tablicach

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach.

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW

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

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

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

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

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Język C++ zajęcia nr 2

Struktury Struktura polami struct struct struct struct

Programowanie obiektowe W3

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

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

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

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

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Podstawy informatyki

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

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.

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

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

1 Podstawy c++ w pigułce.

Podstawy i języki programowania

Transkrypt:

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

Materiał Umiemy Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji Przed nami Struktury Operacje IO Argumenty do funkcji main

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 i więcej! 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

Argumenty funkcji main

Argumenty funkcji main Dla funkcji main: int main (int argc, char* argv[]), argc argument counter ilośc argumentów argv argument value ścieżka oraz argumenty. char* argv[] jednoznaczne z char** argv - jest tablicą wskaźnikową dwuwymiarową, gdzie wprowadzając do programu jakieś zmienne, zapisuje zawsze liczbę zmiennych argc, a potem jakie zmienne do argv, Zawsze argv[0] przechowuje nazwę programu! np.: argc zawsze = 1, gdzie argv[0] = nazwa programu/ ścieżka+nazwa programu uruchomienie programu:./program boo foo hii to argc = 4, po kolei argv = { program, boo, foo, hii }

Argumenty funkcji main #include <iostream> using namespace std; int main(int argc, char* argv[]) { cout<<"nazwa programu: " <<argv[0]<<endl; cout<<"ilosc argumentow: "<<argc<<endl; for(int i=1; i<argc; i++) { cout<<"argument "<<i<<" to: "<<argv[i]<<endl; } Program wywołuje się z konsoli: <nazwa_programu>.exe b 20 t o kaczka } system("pause"); return 0; Do programu można przesłać efekt działania innego programu lub zmienne środowiskowe. np. %USERNAME% https://pl.wikipedia.org/wiki/zmienna_%c5%9brodowiskowa

Struktury

Struktury - budowa Przykład budowy: struct nazwa { // definicja struktury typ1 element1; typ2 element2; }; // pola elementów // struktury nazwa obiekt; // deklaracja obiektu

Struktury odwołanie do elementów struct data { int dzien; int miesiac; int rok; }; data dzis; dzis.dzien = 16; dzis.miesiac = 12; dzis.rok = 2017; Data dziś = {16, 12, 2017}; // wykorzystanie agregatu

Zadania

Zadania: 1. Napisz program w którym zaimplementowana będzie struktura Liczba_zespolona, zawierająca dwie zmienne cz_rzeczywista, cz_urojona. I. Program ma umożliwić wykonanie podstawowych operacji arytmetycznych przy pomocy funkcji II. Program ma spytać użytkownika czy chce ponownie wykonać operacje na zdefiniowanych liczbach, czy podać nowe III. Wyświetlenie liczb w postaci: <1, 2i>

Zadanie 2. Napisz program, który za pomocą argumentów do funkcji main otrzyma: Nazwę_użytkownika (%USERNAME%) Aktualną datę Aktualną godzinię (%DATE%) (%TIME%) wyświetli na ekranie w formacie. Witaj: <nazwa użytkownika> W programie <nazwa programu> Dzisiejsza data: <data>, <godzina>

Zadania 3. Napisz program do którego zostanie przekazany ciąg znaków liczbowych. Zapisz otrzymany ciąg w postaci tablicy typu int Przy pomocy funkcji zlicz ilość elementów parzystych i nieparzystych Wynik oraz elementy z tablicy wyświetl na ekranie.

Zadanie 4. Napisz program w którym zaimplementowana będzie struktura Student zawierająca pola: imię, nazwisko, numer_indeksu licznik (statyczny) Utwórz tablicę 5 studentów i przy pomocy funkcji globalnej uzupełnij ich dane. Wypisz dane studentów przy pomocy metody.

Zadanie 5. Zmodyfikuj zadanie 4 w taki sposób, by dane studenta zostały przekazane przez argumenty do funkcji main.

Adventofcode.com

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