ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima Uwagi przed sprawdzianem nr 1.

Wielkość: px
Rozpocząć pokaz od strony:

Download "ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima Uwagi przed sprawdzianem nr 1."

Transkrypt

1 POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 5 : Algorytmy sortowania. Struktury i rekordy. Uwagi przed sprawdzianem nr 1.

2 SKS System Komunikacji ze Studentami 2 Wszyscy już powinni mieć dostęp do SKS (login i hasło otrzymane w mailu od administratora systemu) tu jest dostępny online podręcznik multimedialny Programowanie C++, prezentacje do wykładów, tematy zadań dodatkowych i sprawdzianów, aktualne ogłoszenia i inne pliki. Administratorem SKS jest dr inż. Krzysztof Kukiełka (pok. 340). Należy się do niego zwrócić mailowo: k.kukielka@mchtr.pw.edu.pl podając swój adres i nr albumu w sytuacji, gdy do tej pory nie otrzymaliśmy loginu i hasła do SKS. Osoby powtarzające przedmiot koniecznie powinny się zwrócić mailowo do dr Kukiełki z prośbą o dopisanie do aktualnej grupy, w której powtarzają ćwiczenia (podając informację, w której grupie byli w ub. roku) inaczej nie będą mieli dostępu do tegorocznej witryny SKS, nowych plików, ogłoszeń i wyników ze sprawdzianów. Od następnego tygodnia wszystkie prezentacje do wykładów i inne pliki będą umieszczane wyłącznie na witrynie SKS.

3 Algorytmy prostego sortowania N-1 Algorytm 1 sortowanie przez wybieranie ( selection sort ) Wybieramy najmniejszy element z nieposortowanych i zamieniamy z pierwszym nieposortowanym aż do posortowania całości. Algorytm 2 sortowanie przez wstawianie ( insertion sort ) Bierzemy pierwszy element z nieposortowanych i wstawiamy go w odpowiednie miejsce w części posortowanej aż do posortowania całości. Algorytm 3 sortowanie przez zamianę ( bubble sort ) Zamieniamy ze sobą, jeśli trzeba, dwóch sąsiadów najpierw w całej tablicy, a potem za każdym razem w części mniejszej o 1 element.

4 Algorytm 1 sortowanie przez wybieranie ( selection sort ) 4 for (i = 0; i< N-1; i++) { i_min = i; for (j = i+1; j < N; j++) if (a[ j ] < a[ i_min ]) i_min = j; temp = a[ i ]; a[ i ] = a[ i_min ]; a[ i_min ] = temp; } // 0..i-1 posortowane // i..n-1 - nieposortowane Algorytm: z nieposortowanych elementów wybieramy element najmniejszy (zapamiętujemy jego położenie) zamieniamy go z pierwszym elementem z ciągu nieposortowanych elementów - odtąd będzie należał do posortowanych Zatem: W pierwszym kroku element najmniejszy w tablicy zamieniamy z pierwszym Ostatni krok to ewentualna zamiana ostatniego elementu z przedostatnim N posortowane nieposortowane

5 Algorytm 2 sortowanie przez wstawianie ( insertion sort ) 5 for (i = 0; i<n; i++ ) { j = i; temp = a[j]; while (j>0 && temp < a[j-1]) { a[ j ] = a[ j-1 ] ; j=j-1 ; } a[ j ] = temp; } // 0..i-1 - posortowane // i..n-1 - nieposortowane bierzemy pierwszy element z części nieposortowanej porównujemy go kolejno z elementami posortowanymi, idąc na lewo dopóki jest mniejszy od kolejnego elementu z grupy posortowanych, przesuwamy ten element w prawo jeśli nie jest już mniejszy - wstawiamy go na zwolnione miejsce (albo na początek, jeśli inaczej się nie da) N posortowane nieposortowane

6 Algorytm 3 sortowanie przez zamianę (tzw. bąbelkowe) 6 for (i = N-1; i>0; i--) { } Pierwszy przebieg : zamieniamy miejscami dwa pierwsze elementy, jeśli pierwszy z nich jest większy od drugiego taką samą zamianę sąsiednich elementów wykonujemy idąc po kolei wzdłuż całej tablicy, od 0 do N-1 (for j) w efekcie tego największy element znajdzie się na końcu tablicy - jako a[n-1] Kolejne przebiegi: for (j = 0; j < i; j++) if (a[ j ] > a[ j+1 ]) { } temp = a[ j ]; a[ j ] = a[ j+1]; a[ j+1] = temp; takie same zamiany sąsiadów wykonujemy w obszarze od 0 do i, gdzie i maleje od N-1 aż do 1 (for i) - kolejny największy element znajdzie się w a[i] bool byla_zamiana=true; i=n-1; while (byla_zamiana) { } była_zamiana=false; for (j = 0; j< i; j++) if (a[ j ] > a[ j+1 ]) { } i-- ; temp = a[ j ]; a[ j ] = a[ j+1]; a[ j+1] = temp; była_zamiana=true; Wersja bardziej efektywna - przejście przez tablicę i zamianę sąsiadów powtarzamy tylko wtedy, jeśli w poprzednim kroku była choć jedna taka zamiana.

7 Porównanie algorytmów prostego sortowania 7 Porównując metody sortowania analizuje się liczbę porównań elementów i liczbę ich przesunięć w tablicy. Należy też uwzględnić przypadki najlepsze (tablica posortowana lub prawie posortowana) i najgorsze (posortowana w kolejności odwrotnej). Sortowanie przez zamianę (nawet w wersji ulepszonej) jest gorsze zarówno od metody sortowania przez wstawianie, jak i od metody sortowania przez wybieranie. Algorytm sortowania przez zamianę jest bardzo wrażliwy na konfiguracje danych i tylko w przypadku elementów prawie posortowanych ma przewagę nad pozostałymi metodami. Algorytm prostego wybierania jest przeważnie lepszy od prostego wstawiania (które wymaga przesuwania elementów w tablicy) i tylko w przypadku elementów prawie posortowanych proste wstawianie jest od niego nieco szybsze. Jednakże wszystkie zaprezentowane algorytmy prostego sortowania mają złożoność obliczeniową O(N 2 ), co można czytać jako proporcjonalne do N 2, czyli w przypadku b. dużych wartości N algorytmy te są mało efektywne. UWAGA: zarówno 10N N, jak i N 2 /30 są rzędu O(N 2 ). Metody szybkie, o mniejszej złożoności (zwykle N lg 2 N), konieczne do zastosowania w przypadku wielkich wartości N, wymagają zaawansowanych algorytmów (np. quicksort) lub zaawansowanych struktur danych (np. drzew binarnych). Dla małych i średnich wartości N algorytmy prostego sortowania są natomiast całkowicie wystarczające, a wybierając któryś z nich należy przede wszystkim kierować się czytelnością kodu i łatwością jego użycia.

8 Tablice i rekordy 8 Są to złożone struktury danych, które pozwalają za pomocą jednej nazwy zapamiętać wiele wartości (elementów). w tablicy (zmiennej typu tablicowego) - wszystkie elementy muszą być tego samego typu, rozróżniane są za pomocą indeksów. w rekordzie (zmiennej typu struktura) - elementy (pola) rekordu mogą być różnych typów, rozróżniane są za pomocą nazw. a 0... i... N a[0]... a[i]... a[n-1] indeksy elementów nazwy pól typy pól tak odwołujemy się do elementów tablicy o nazwie a...a tak odwołujemy się do pól rekordu o nazwie osoba1 osoba1.imie osoba1.nazwisko osoba1.zarobki... imie string nazwisko string plec char dzien int miesiac int rok int zarobki double jest_w_pracy bool

9 Struktury i rekordy 9 REKORDY pozwalają za pomocą jednej nazwy przechowywać wiele elementów różnych typów. Żeby zdefiniować pojedyncze rekordy, trzeba najpierw zdefiniować ich strukturę, czy nowy typ danych. Definicja struktury - czyli typu strukturalnego (inaczej: rekordowego) struct nazwa struktury { typ pola nazwa pola,..., nazwa pola; // nazwy pól i ich typ... typ pola nazwa pola,..., nazwa pola; } ; // uwaga - średnik na końcu!!! Definicja pojedynczych rekordów - czyli zmiennych typu strukturalnego nazwa struktury nazwa rekordu,..., nazwa rekordu; typ danych nazwy zmiennych tego typu Desygnator ( oznacznik ) pola rekordu nazwa rekordu. nazwa pola lub tu są kropki nazwa rekordu. nazwa pola. nazwa pola itd.

10 Nazwy typów a nazwy zmiennych 10 Definiując struktury, czyli nowe typy danych, trzeba bardzo uważać, by nie pomylić nazwy struktury (czyli nowo zdefiniowanego typu) z nazwą zmiennej tego typu. Aby uniknąć pomyłek, warto nazwy typów strukturalnych rozpoczynać od wielkiej litery S (jak Struktura) albo T (jak Typ) albo od innej wielkiej litery. zalecany styl using namespace std; struct SOsoba { definicje struktur najlepiej umieszczać string imie, nazwisko; poza funkcją main (jako def. zewnętrzne) char plec; zdefiniowaliśmy nowy typ danych - int dzien, miesiac, rok; nową strukturę o nazwie SOsoba; double zarobki; // pole zarobki jest typu double każde z pól struktury ma podany typ bool jest_w_pracy; }; int main( ) { SOsoba osoba1, osoba2, szef; // tak definiujemy rekordy - zmienne typu SOsoba cin >> szef.zarobki; a tak odwołujemy się do pól tych rekordów szef.imie = "Jan"; }... cin >> SOsoba.zarobki; SOsoba.plec= M ; Tak nie wolno! SOsoba to nie zmienna, tylko typ danych.

11 Przykład struktury zagnieżdżonej 11 nazwa typu danych nazwy pól // najpierw trzeba zdefiniować strukturę SData: struct SData { int dzien, miesiac, rok; }; // a dopiero teraz można zdefiniować strukturę SOsoba: struct SOsoba { string imie, nazwisko; char plec; SData data; // tu jest pole o nazwie data, typu SData double zarobki; bool jest_w_pracy; }; SOsoba pracownik; pracownik.data.rok = 2014; // pracownik jest zmienną typu SOsoba // tak odwołujemy się do pól struktur zagnieżdżonych

12 Operacje wykonywane na rekordach (i tablicach) 12 REKORDY należy wczytywać i drukować odwołując się do kolejnych pól rekordu, nie wolno tych operacji wykonywać na całych rekordach: cout << szef.nazwisko << szef.imie << szef.zarobki // drukujemy różne dane szefa cout << szef; // nie wolno drukować szefa w całości! Przypomnienie: ta sama zasada odnosi się do TABLIC: wczytujemy i drukujemy kolejne elementy tablic, a nie tablice w całości: const N=20; int i, a[n], b[n]; for (i=0; i<n; i++) cin >> a[i]; tablice wczytujemy element po elemencie cin >> b; b=a; // nie wolno wczytywać tablic w całości // i nie wolno kopiować całych tablic (podstawiać jednych pod drugie) UWAGA: inicjowanie rekordów w sposób analogiczny do inicjowania tablic jest niewskazane, gdyż może być różnie interpretowane przez kompilatory.

13 Tablice rekordów 13 REKORDY bardzo często są elementami tablic: using namespace std; struct Tpunkt { double x,y; // definicja struktury o nazwie Tpunkt }; int main ( ) { const N=10; Tpunkt p[n], q[n]; // definicja tablic p i q zawierających N elementów typu Tpunkt for (int i=0; i<n; i++) cin >> p[i].x >> p[i].y; tak wczytujemy dane do tablicy p for (int i=0; i<n; i++) cin >> p[i]; for (int i=0; i<n; i++) q[i] = p[i]; Tpunkt schowek = p[0]; p[0] = p[n-1]; p[n-1] = schowek; tak nie wolno - nie da się wczytać rekordów w całości ale można wykonywać przypisania całych rekordów, o ile ich polami nie są tablice - na to należy uważać! Taka możliwość przypisania nie jest więc zbyt bezpieczna.

14 Struktury rekordów a klasy obiektów 14 Programowanie strukturalne: struktura struktura - typ danych (inaczej: typ strukturalny, typ rekordowy, wzorzec struktury, szablon) rekord 1 rekord 2... rekord n zmienne danego typu (zmienne strukturalne, bywają w uproszczeniu, niezbyt poprawnie, nazywane strukturami) Programowanie obiektowe: klasa obiekt 1 obiekt 2... obiekt n klasa - typ danych (inaczej: typ obiektowy, szablon obiektów) zmienne danego typu (zmienne obiektowe, instancje klasy, egzemplarze klasy)

15 Kilka uwag przed sprawdzianem nr 1 15 Założenia podstawowe Należy bardzo dokładnie czytać treść zadań. Zadania rozwiązujemy za pomocą konstrukcji, które były już przedmiotem zajęć laboratoryjnych, innych nie używamy. Ocena zadania nie zależy od efektywności jego rozwiązania, wystarczy, że jest ono poprawne (wyjątkiem jest nieumiejętność poruszania się po przekątnych w tablicy w jednej pętli). Nie robić tego, co nie podano w zadaniu, np. nie drukować tablic, jeśli nie było takiego polecenia. Jeśli w zadaniu nie jest podane, jakiego typu są wczytywane dane liczbowe, to można przyjąć dowolny typ danych (double lub int). Wszelkie inne założenia konieczne do rozwiązania zadania, a nie podane w treści, mogą być przyjęte dowolnie (należy wtedy dopisać komentarz na ten temat). UWAGA: Prace muszą być czytelne!!!

16 Kilka uwag Uwagi edycyjne 16 Uwagi edycyjne (przypomnienie): Do porównywania wyrażeń używać operatora ==, nie zaś = Nie wstawiać z rozpędu średnika tuż za nawiasem zamykającym warunek w instrukcji if ( ) lub za nawiasem kończącym definicję instrukcji for ( ), bo to oznacza, że ma się wykonywać instrukcja pusta. Uwagi edycyjne (nowe!): Nie zapominać o średniku za klamrą zamykającą definicję struktury. Nie kończyć komentarza (rozpoczynającego się od //) znakiem backslash \, bo to oznacza, że następna linia będzie doklejona do tego komentarza i też traktowana jako komentarz zaś edytor wcale nie pokaże, że jest to linia nieaktywna - i to jest najbardziej niebezpieczne!

17 Kilka uwag Pętle for i while 17 W pętlach for, while i do-while wykonuje się zawsze tylko jedna instrukcja, więc jeśli ma się wykonywać ich kilka, trzeba je ująć w klamry { }. To samo dotyczy instrukcji if. Na ogół warunek w pętli while polega na sprawdzeniu jakiejś zmiennej, i ta zmienna musi być wczytana jednorazowo przed pętlą while (lub inaczej przed wejściem do pętli określona). Nie wolno więc napisać np. while (x>0) {...}, jeśli wcześniej nie poznaliśmy wartości zmiennej x. Jeśli wczytywany ciąg ma się kończyć jakimiś dwiema kolejnymi liczbami etc., to nie wolno danych wczytywać w pętli parami i porównywać ich z tymi dwiema końcowymi; zmienne należy wczytywać w pętli po jednej, uprzednio zapamiętując wartość poprzednią, i w każdym kroku sprawdzać warunek dotyczący dwu kolejnych wartości. Jeśli w pętli mamy sprawdzać wartość bieżącą i poprzednią, to zanim wczytamy nową wartość bieżącą, trzeba uaktualnić wartość poprzednią. Odwrotna kolejność jest zupełnie bez sensu i świadczy o próbie nauczenia się programowania na pamięć (co nie jest wykonalne!).

18 Kilka uwag Maksima-minima i zadania z tablicami 18 Wartość początkowa maksimum powinna należeć do zbioru wartości, wśród których szukamy maksimum - albo być od tych wartości na pewno mniejsza. Podstawienie max=0 jest więc dozwolone tylko w bardzo szczególnych przypadkach (jeśli w zbiorze przeszukiwanym jest co najmniej jedna liczba >=0). Analogiczna zasada dotyczy szukania minimum. Jeśli chcemy zlokalizować wartość maksymalną/minimalną w tablicy, trzeba nie tylko zapamiętywać w pętli indeksy aktualnego maksimum/minimum, ale także przed petlą ustawić wartości początkowe tych indeksów. Tablice indeksowane są od 0, zatem ostatni element tablicy N-elementowej ma indeks N-1. Po przekątnych tablicy i po pojedynczych wierszach i kolumnach poruszamy się z użyciem pętli pojedynczej. Do poruszania się w pozostałych przypadkach - używamy pętli podwójnej (pętli w pętli) Ustawianie wartości początkowych sum, maksimów, indeksów etc. w tablicy należy wykonywać zależnie od zadania - często dla każdego wiersza/kolumny od nowa (a więc wewnątrz pętli zewnętrznej).

Podstawy Programowania C++

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:

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓ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.

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n ) SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Laboratorium nr 7 Sortowanie

Laboratorium nr 7 Sortowanie Laboratorium nr 7 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) Materiały Wyróżniamy następujące metody sortowania: 1. Przez prostą zamianę

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

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

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

Algorytmy sortujące i wyszukujące Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Podstawy algorytmiki i programowania - wykład 4 C-struktury 1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

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

Bardziej szczegółowo

Struktury Struktura polami struct struct struct struct

Struktury Struktura polami struct struct struct struct Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

tablica: dane_liczbowe

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

Bardziej szczegółowo

Sortowanie przez wstawianie Insertion Sort

Sortowanie przez wstawianie Insertion Sort Sortowanie przez wstawianie Insertion Sort Algorytm sortowania przez wstawianie można porównać do sposobu układania kart pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 8 Wskaźniki 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania w C++ Wskaźniki 2 Podstawy Pojęcie wskaźnika Wskaźnik na zmienną danego

Bardziej szczegółowo

C-struktury wykład. Dorota Pylak

C-struktury wykład. Dorota Pylak C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.

Bardziej szczegółowo

C-struktury wykład. Dorota Pylak

C-struktury wykład. Dorota Pylak C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Programowanie Proceduralne Wykład 1 1 / 59 Cel wykładów z programowania

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

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

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1 Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).

Bardziej szczegółowo

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

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

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;

Bardziej szczegółowo

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

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std; Programowanie C++ Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakooczonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany. Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często

Bardziej szczegółowo

Algorytm selekcji Hoare a. Łukasz Miemus

Algorytm selekcji Hoare a. Łukasz Miemus Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego

Bardziej szczegółowo

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

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

Bardziej szczegółowo

Inicjacja tablicy jednowymiarowej

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,

Bardziej szczegółowo

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

Bardziej szczegółowo

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

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

Bardziej szczegółowo

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Wstęp do programowania

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

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych

Bardziej szczegółowo

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2016 ) prof. nzw. dr hab. inż. Barbara Putz

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2016 ) prof. nzw. dr hab. inż. Barbara Putz POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2016 ) prof. nzw. dr hab. inż. Barbara Putz pok. 306, bputz@mchtr.pw.edu.pl Język programowania:

Bardziej szczegółowo

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 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 ()

Bardziej szczegółowo

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

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

Bardziej szczegółowo

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński WYKŁAD 9 Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c Tomasz Zieliński /* Przyklad 4.1 - SORTOWANIE TABLIC - metoda najprostsza */ #include #define ROZMIAR 11 void

Bardziej szczegółowo

PODSTAWY INFORMATYKI wykład 5.

PODSTAWY INFORMATYKI wykład 5. PODSTAWY INFORMATYKI wykład 5. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutnicza w Krakowie WEAIiE,

Bardziej szczegółowo

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:

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

Bardziej szczegółowo

Podstawy Programowania

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

Bardziej szczegółowo

Lab 9 Podstawy Programowania

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

Bardziej szczegółowo

Deklaracja struktury w C++

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

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

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.

Bardziej szczegółowo

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP ) rok ak. 2012/2013. prof. nzw. dr hab. inż. Barbara Putz. Podstawowe pojęcia, najprostsze programy

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP ) rok ak. 2012/2013. prof. nzw. dr hab. inż. Barbara Putz. Podstawowe pojęcia, najprostsze programy POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP ) rok ak. 2012/2013 prof. nzw. dr hab. inż. Barbara Putz pok. 306 Język programowania: C/C++ Środowisko

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

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

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

Bardziej szczegółowo

Szablony funkcji i klas (templates)

Szablony funkcji i klas (templates) Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp

Bardziej szczegółowo

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 7 1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Program 6 Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Funkcja pobierz_osobe wczytuje dane osoby podanej jako argument. Funkcja wypisz_osobe

Bardziej szczegółowo

Wstęp do programowania

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

Bardziej szczegółowo

Sortowanie - wybrane algorytmy

Sortowanie - wybrane algorytmy Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe Algorytmy sortujące sortowanie kubełkowe, sortowanie grzebieniowe Sortowanie kubełkowe (bucket sort) Jest to jeden z najbardziej popularnych algorytmów sortowania. Został wynaleziony w 1956 r. przez E.J.

Bardziej szczegółowo

Programowanie obiektowe i C++ dla matematyków

Programowanie obiektowe i C++ dla matematyków Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 22 XI 2011 Uwaga! Ponieważ już sobie powiedzieliśmy np. o wskaźnikach i referencjach, przez które nie chcemy przegrzebywać

Bardziej szczegółowo

Programowanie - wykład 4

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

Bardziej szczegółowo

Języki programowania obiektowego Nieobiektowe elementy języka C++

Języki programowania obiektowego Nieobiektowe elementy języka C++ Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków

Bardziej szczegółowo

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for. Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

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

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy

Bardziej szczegółowo

Sortowanie bąbelkowe - wersja nr 1 Bubble Sort

Sortowanie bąbelkowe - wersja nr 1 Bubble Sort Sortowanie bąbelkowe - wersja nr 1 Bubble Sort Algorytm Algorytm sortowania bąbelkowego jest jednym z najstarszych algorytmów sortujących. Można go potraktować jako ulepszenie opisanego w poprzednim rozdziale

Bardziej szczegółowo

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

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2014 ) prof. nzw. dr hab. inż. Barbara Putz

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2014 ) prof. nzw. dr hab. inż. Barbara Putz POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2014 ) prof. nzw. dr hab. inż. Barbara Putz pok. 306 Język programowania: C/C++ Środowisko programowania:

Bardziej szczegółowo

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2015 ) prof. nzw. dr hab. inż. Barbara Putz

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2015 ) prof. nzw. dr hab. inż. Barbara Putz POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2015 ) prof. nzw. dr hab. inż. Barbara Putz pok. 306 Język programowania: C/C++ Środowisko programowania:

Bardziej szczegółowo

Sortowanie. Bartman Jacek Algorytmy i struktury

Sortowanie. Bartman Jacek Algorytmy i struktury Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39

Bardziej szczegółowo

Sortowanie bąbelkowe

Sortowanie bąbelkowe 1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym

Bardziej szczegółowo

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

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Programowanie i struktury danych

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

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 4

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

Bardziej szczegółowo

Techniki Programowania wskaźniki

Techniki Programowania wskaźniki Techniki Programowania wskaźniki Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Wskaźniki Dla typu T zapis T* oznacza

Bardziej szczegółowo

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

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ć

Bardziej szczegółowo

Strategia "dziel i zwyciężaj"

Strategia dziel i zwyciężaj Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania

Bardziej szczegółowo

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

Bardziej szczegółowo

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

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Podstawowe algorytmy przetwarzania tablic (wypełnianie, porównywanie elementów,

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 4 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Pętle wykonujące się podaną liczbę razy Jeśli chcemy wykonać pewien fragment programu określoną liczbę razy, możemy użyć

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 05 1 / 15 Plan wykładu 1 Biblioteka

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 5 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Zadanie o kotach z poprzedniego wykładu # include < iostream > using namespace std ; int main (){ int rozmiar_ rodzinki,

Bardziej szczegółowo

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

Bardziej szczegółowo

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro

Bardziej szczegółowo

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

Sortowanie. LABORKA Piotr Ciskowski

Sortowanie. LABORKA Piotr Ciskowski Sortowanie LABORKA Piotr Ciskowski main Zaimplementuj metody sortowania przedstawione w następnych zadaniach Dla każdej metody osobna funkcja Nagłówek funkcji wg uznania ale wszystkie razem powinny być

Bardziej szczegółowo