Struktury - wprowadzenie

Podobne dokumenty
Tablice, funkcje - wprowadzenie

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

6 Przygotował: mgr inż. Maciej Lasota

Zmienne, stałe i operatory

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Wstę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 2018/19 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Podstawy programowania w języku C++

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Struktury czyli rekordy w C/C++

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Deklaracja struktury w C++

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

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

Struktury, unie, formatowanie, wskaźniki

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Tablice, funkcje, wskaźniki - wprowadzenie

Co nie powinno być umieszczane w plikach nagłówkowych:

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

Język C zajęcia nr 12. Struktury i unie

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

Wstęp do programowania 1

Podstawy programowania w języku C++

Podstawy programowania w języku C++

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

2 Przygotował: mgr inż. Maciej Lasota

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

KURS C/C++ WYKŁAD 7. struct Punkt { int x, y; int kolor; };

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

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

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

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

Struktury, unie, wyliczenia oraz typedef

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

Wskaźniki. Programowanie Proceduralne 1

C-struktury wykład. Dorota Pylak

Język C zajęcia nr 11. Funkcje

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Struktury typ definiowany przez uŝytkownika.

Algorytmy i język C++

C-struktury wykład. Dorota Pylak

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

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

nowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof

Wykład 5: Klasy cz. 3

Struktury Struktura polami struct struct struct struct

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Wprowadzenie do szablonów szablony funkcji

Struktury. Przykład W8_1

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

Wprowadzenie do szablonów szablony funkcji

referencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50.

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

Język ANSI C-struktury

Wskaźniki. Przemysław Gawroński D-10, p Wykład 1. (Wykład 1) Wskaźniki / 9

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

PODSTAW PROGRAMOWANIA WYKŁAD 6 WSKAŹNIKI

Języki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński

Wskaźniki w C. Anna Gogolińska

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Stałe, tablice dynamiczne i wielowymiarowe

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Lab 9 Podstawy Programowania

Programowanie Proceduralne

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

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

IX. Wskaźniki.(3 godz.)

Wstęp do programowania

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Programowanie 2. Język C++. Wykład 3.

KURS C/C++ WYKŁAD 6. Wskaźniki

Tablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2

Wstęp do Programowania, laboratorium 02

Argumenty wywołania programu, operacje na plikach

Podstawy programowania 1

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

Szablony klas, zastosowanie szablonów w programach

Podstawy Kompilatorów

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

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

ALGORYTMY I STRUKTURY DANYCH

Operacje wejścia/wyjścia odsłona pierwsza

Wstęp do programowania 2

Aplikacje w środowisku Java

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

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Wstęp do programowania

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Podstawy programowania w języku C++

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Funkcja (podprogram) void

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

Szablony funkcji i szablony klas

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Transkrypt:

Struktury - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 6 5 kwietnia 2019 (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 1 / 12

Outline 1 Struktury (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 2 / 12

Niestandardowe typy danych Sposoby definiowania w języku C niestandardowych typów danych: struktury - grupy zmiennych, do których można odwoływać się za pośrednictwem jednej nazwy, (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 3 / 12

Niestandardowe typy danych Sposoby definiowania w języku C niestandardowych typów danych: struktury - grupy zmiennych, do których można odwoływać się za pośrednictwem jednej nazwy, unie - pozwalają definiować kilka typów dla jednego obszaru pamięci, (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 3 / 12

Niestandardowe typy danych Sposoby definiowania w języku C niestandardowych typów danych: struktury - grupy zmiennych, do których można odwoływać się za pośrednictwem jednej nazwy, unie - pozwalają definiować kilka typów dla jednego obszaru pamięci, pola bitowe - elementy struktur, pozwalają operować na poszczególnych bitach, (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 3 / 12

Niestandardowe typy danych Sposoby definiowania w języku C niestandardowych typów danych: struktury - grupy zmiennych, do których można odwoływać się za pośrednictwem jednej nazwy, unie - pozwalają definiować kilka typów dla jednego obszaru pamięci, pola bitowe - elementy struktur, pozwalają operować na poszczególnych bitach, wyliczenia - listy stałych wartości o określonych nazwach, (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 3 / 12

Niestandardowe typy danych Sposoby definiowania w języku C niestandardowych typów danych: struktury - grupy zmiennych, do których można odwoływać się za pośrednictwem jednej nazwy, unie - pozwalają definiować kilka typów dla jednego obszaru pamięci, pola bitowe - elementy struktur, pozwalają operować na poszczególnych bitach, wyliczenia - listy stałych wartości o określonych nazwach, typedef - definiuje nową nazwę dla istniejącego typu. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 3 / 12

Struktury Struktura to wygodny sposób na przechowywanie pokrewnych informacji (zbiór zmiennych), do których można odwoływać za pomocą jednej nazwy. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 4 / 12

Struktury Struktura to wygodny sposób na przechowywanie pokrewnych informacji (zbiór zmiennych), do których można odwoływać za pomocą jednej nazwy. struct { int id_nmbr ; char name [ SIZE ]; int on_shelf ; } item1, item2 ; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 4 / 12

Struktury Struktura to wygodny sposób na przechowywanie pokrewnych informacji (zbiór zmiennych), do których można odwoływać za pomocą jednej nazwy. struct { int id_nmbr ; char name [ SIZE ]; int on_shelf ; } item1, item2 ; Każda struktura reprezentuje nowy zakres widzialności zmiennych. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 4 / 12

Struktury Struktura to wygodny sposób na przechowywanie pokrewnych informacji (zbiór zmiennych), do których można odwoływać za pomocą jednej nazwy. struct { int id_nmbr ; char name [ SIZE ]; int on_shelf ; } item1, item2 ; Każda struktura reprezentuje nowy zakres widzialności zmiennych. Każda struktura reprezentuje oddzielną przestrzeń nazw. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 4 / 12

Struktury Struktura to wygodny sposób na przechowywanie pokrewnych informacji (zbiór zmiennych), do których można odwoływać za pomocą jednej nazwy. struct { int id_nmbr ; char name [ SIZE ]; int on_shelf ; } item1, item2 ; Każda struktura reprezentuje nowy zakres widzialności zmiennych. Każda struktura reprezentuje oddzielną przestrzeń nazw. struct { int id_nmbr ; char name [ SIZE ]; int age ; } person1, person2 ; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 4 / 12

Struktury struct { int id_nmbr ; char name [ SIZE ]; int on_shelf ; } item1 = {528, " Hard drive ", 100}, item2 = {914, " Printer cable ", 57}; printf (" Item id: %d\n", item1. id_nmbr ); printf (" Item name : %s\n", item1. name ); printf (" Item quantity in store : %d\n", item1. on_shelf ); item1. id_nmbr = 767; item1. on_shelf ++; scanf ("%d\n", & item1. id_nmbr ); item2 = item1 ; Do składowych struktury odwołujemy się za pomocą operatora.(kropka): nazwa-struktury.nazwa-pola-struktury. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 5 / 12

Struktury Deklaracja struktury to szablon, którego można używać do tworzenia kolejnych instancji struktury. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 6 / 12

Struktury Deklaracja struktury to szablon, którego można używać do tworzenia kolejnych instancji struktury. Ogólna postać deklaracji struktury: struct [ etykieta ]{ typ pole_struktury ; } [ zmienne ]; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 6 / 12

Struktury Deklaracja struktury to szablon, którego można używać do tworzenia kolejnych instancji struktury. Ogólna postać deklaracji struktury: struct [ etykieta ]{ typ pole_struktury ; } [ zmienne ]; Przykład. struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 6 / 12

Struktury Deklaracja struktury to szablon, którego można używać do tworzenia kolejnych instancji struktury. Ogólna postać deklaracji struktury: struct [ etykieta ]{ typ pole_struktury ; } [ zmienne ]; Przykład. struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; Po deklaracji struktury nie powstaje jeszcze żadna zmienna. Zadeklarowany został jedynie nowy złożony typ danych, a nie zmienna. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 6 / 12

Struktury Przykładowa deklaracja struktury: struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 7 / 12

Struktury Przykładowa deklaracja struktury: struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; Aby zadeklarować zmienną należy napisać: struct iteminstore item1 ; struct iteminstore item2, item3 ; struct iteminstore item4 = {914, " Printer cable ", 57}; item1 = item4 ; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 7 / 12

Struktury Przykładowa deklaracja struktury: struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; Aby zadeklarować zmienną należy napisać: struct iteminstore item1 ; struct iteminstore item2, item3 ; struct iteminstore item4 = {914, " Printer cable ", 57}; item1 = item4 ; W trakcie deklaracji zmiennej będącej zmienną strukturalną iteminstore, kompilator automatycznie rezerwuje odpowiednią ilość pamięci na wszystkie składowe struktury. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 7 / 12

Przekazywanie pól struktury do funkcji Przekazując składową(pole) struktury, przekazujemy wartość i nie ma znaczenia, że wartość pochodzi ze składowej struktury. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 8 / 12

Przekazywanie pól struktury do funkcji Przekazując składową(pole) struktury, przekazujemy wartość i nie ma znaczenia, że wartość pochodzi ze składowej struktury. Przykład. Deklaracja:int is on shelf(int); Wywołanie:int qi = is on shelf(item1.on shelf); (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 8 / 12

Przekazywanie pól struktury do funkcji Przekazując składową(pole) struktury, przekazujemy wartość i nie ma znaczenia, że wartość pochodzi ze składowej struktury. Przykład. Deklaracja:int is on shelf(int); Wywołanie:int qi = is on shelf(item1.on shelf); Aby przekazać adres składowej struktury należy skorzystać z operatora &. (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 8 / 12

Przekazywanie pól struktury do funkcji Przekazując składową(pole) struktury, przekazujemy wartość i nie ma znaczenia, że wartość pochodzi ze składowej struktury. Przykład. Deklaracja:int is on shelf(int); Wywołanie:int qi = is on shelf(item1.on shelf); Aby przekazać adres składowej struktury należy skorzystać z operatora &. Przykład. Deklaracja:int put on shelf(int*); Wywołanie:int iq = put on shelf(&item1.on shelf); (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 8 / 12

Przekazywanie pól struktury do funkcji Przekazując składową(pole) struktury, przekazujemy wartość i nie ma znaczenia, że wartość pochodzi ze składowej struktury. Przykład. Deklaracja:int is on shelf(int); Wywołanie:int qi = is on shelf(item1.on shelf); Aby przekazać adres składowej struktury należy skorzystać z operatora &. Przykład. Deklaracja:int put on shelf(int*); Wywołanie:int iq = put on shelf(&item1.on shelf); Przykład. Wywołanie:scanf( %d,&item1.on shelf); (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 8 / 12

Przekazywanie struktur do funkcji struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; void print_itme ( struct iteminstore p){ printf (" Item nmbr : %d\n", p. id_nmbr ); printf (" Item name : %s\n", p. name ); printf (" On shelf : %d\n", p. on_shelf ); }... struct iteminstore item = {914, " Printer cable ", 57};... print_item ( item ); (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 9 / 12

Funkcja zwracająca strukturę struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; struct iteminstore build_itme ( int n, const char * name, int ns){ struct iteminstore temp ; temp. id_nmbr = n; strcpy ( temp.name, name ); temp. on_shelf = ns; return temp ; }... struct iteminstore item = build_item (914, " Printer cable ", 57) ; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 10 / 12

Zagneżdżanie struktur struct iin { char imie [ SIZE +1]; char nazw [ SIZE +1]; }; struct student { struct iin nm; int idnmbr, wk; char brg ; } s, t; strcpy (s.nm.imie, " Fred "); strcpy (s.nm.nazw, " Perry "); display_name (s.nm); struct iin abc ; t.nm=abc ; t.wk =23; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 11 / 12

Tablice struktur struct iteminstore { int id_nmbr ; char name [ SIZE ]; int on_shelf ; }; struct iteminstore inventory [ 100]; inventory [ i]. id_nmbr = 883; inventory [i]. name [0] = \0 ; print_item ( inventory [i]); int iq = put_on_shelf (& inventory [ i]. on_shelf ); struct iteminstore nvntr [] = { {914, " Printer cable ", 57}, {528, " Hard drive ", 100} }; (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 12 / 12