1 Wykład 7 sortowanie BitButton format tekstu rysunki typ rekordowy.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
Sortowanie przez scalanie
C++ wykład 2 ( ) Klasy i obiekty.
Programowanie w języku Visual Basic
Język ANSI C Funkcje Wykład: Programowanie komputerów
PASCAL (3) dr Anna Kwiatkowska.
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
Implementacja ekstensji klasy
OBJECT PASCAL Marzena Szałas.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Kurs Pascala – spis treści
C++ wykład 2 ( ) Klasy i obiekty.
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Dynamiczne struktury danych 1
Tablice jednowymiarowe 1
Wykład 2 struktura programu elementy języka typy zmienne
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
Wprowadzenie do programowania w języku Turbo Pascal
Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty.
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Podstawy programowania
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Zbiór do posortowania mieści się w pamięci
Podstawy programowania
Obiekty dynamiczne Tworzenie klas 3 MPDI Programowanie obiektowe W4.
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
TABLICE C++.
Procedury i funkcje.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Wykład 5 – typy – stałe – tablice – elementy grafiki.
1. Język ObjectPascal - typ tablicowy (array)
Programowanie w środowisku DELPHI
Podstawy programowania
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
ANNA BANIEWSKA SYLWIA FILUŚ
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Podstawy programowania w języku C i C++
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
PROGRAMOWANIE KOMPUTERÓW
Informatyka MPZI Wykład 4 Podprogramy Pliki Typ zbiorowy Rekurencja.
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
MOiPP Matlab Sortowanie Obliczenia symboliczne - Symbolic ToolBox
Wykład 10 typ zbiorowy rekurencja.
Wykład 3 przykłady operacje na tekstach wyrażenia logiczne
Ogólna struktura programu w TP
Informatyka 2 MPDI Wykład 9 Delphi tablice, rekordy.
MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne
Informatyka MPDI2 Wykład 10 DELPHI cd. - zmienne tablicowe,
PWSW Mechatronika Wykład 7 Matlab cd.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Informatyka Transport Matlab c.d. Macierze cd. Wykresy graficzne
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
Typy wyliczeniowe, kolekcje
Dane, zmienne, instrukcje
Zapis prezentacji:

1 Wykład 7 sortowanie BitButton format tekstu rysunki typ rekordowy

2 Algorytm polega porównywaniu kolejnych par elementów sąsiadujących i zamianie miejscami w przypadku niewłaściwej kolejności Sortowanie bąbelkowe Sortowanie N N-1 porównań Wykonujemy N przebiegów

3 1 przebieg zamiana zamiana zamiana zamiana zamiana efekt ostatniej zamiany – największy na końcu 2 przebieg zmiana zmiana zmiana przebieg zamiana zamiana przebieg zamiana N=6

4 5 przebieg zmiana przebieg operacji= (N-1)*N=6*5

5 Algorytm polega na porównywaniu kolejnych par elementów sąsiadujących, z tym, że w każdym kolejnym przebiegu liczba analizowanych par jest zmniejszana o 1 Przebiegów wykonujemy N-1 Sortowanie bąbelkowe skrócone

6 1 przebieg zamiana zamiana zamiana zamiana zamiana efekt 2 przebieg zamiana zamiana zamiana efekt 3 przebieg zamiana zamiana efekt 4 przebieg zamiana efekt 5 przebieg zamiana efekt 15 operacji

7 Algorytm polega na porównywaniu: pierwszego elementu z kolejnymi i dokonanie zamiany jeśli trzeba, drugiego elementu z kolejnymi itd., aż do porównania dwóch ostatnich elementów. N 2 (N-1) operacji Można też tak (rodzaj bąbelkowego):

8 1 przebieg zamiana zamiana zamiana najmniejszy na początku 2 przebieg zamiana 4.. więc zaczynamy od 2-go zamiana zamiana przebieg zamiana zamiana zamiana przebieg zamiana zamiana przebieg zamiana operacji

9 var k:1..N; begin Randomize; for k:=1 to N do begin tab[k]:=random(100); Stringgrid1.cells[1,k]:=IntToStr(tab[k]) end; implementation const N=10; var tab:array [1..N] of integer ; deklaracje globalne (dla wszystkich podprogramów modułu) wypełnienie losowe tablicy i StringGrida

10 var k,m:1..10; pom:integer; begin for k:=1 to N-1 do for m:=1 to N-k do if tab[m]>tab[m+1] then begin pom:=tab[m]; tab[m]:=tab[m+1]; tab[m+1]:=pom; end; for k:=1 to N do Stringgrid1.cells[2,k]:=IntToStr(tab[k]) Sortowanie bąbelkowe skrócone

11 właściwości kind - rodzaj przycisku jak Button + rysunek do wykonywania prostych, typowych poleceń dialogu obsługi aplikacji Przycisk prostego polecenia (z bitmapą) – BitBtn glyph - obrazek

12 caption: string - tytuł przycisku (z & - dla znaku skrótu) glyph - plik z rysunkiem (bmp) symbolu default: boolean - True – Enter oznacza kliknięcie cancel: boolean - True – Esc oznacza kliknięcie modalResult - rezultat przyciśnięcia: mrNonemrOkmrCancel mrAbortmrRetrymrIgnore mrYesmrNomrAll dostępny np. po zamknięciu okna lub grupy obiektów zdarzenia onClick - procedura obsługi kliknięcia uwaga wygodnie używać w GroupBox procedure TForm1.FormActivate(Sender: TObject); begin case Form2.ModalResult of mrAbort: Edit1.Text:='Abort'; end; Przykłady:sortowanie, bitbtn

13 f. strToIntDef( s: string; default: integer ): integer; - wynik konwersji lub wartość domyślna (gdy string niepoprawny) p: val( s: string; var value; var code: integer) - s value (int lub real) code 0- OK, >0 nr niepoprawnego znaku f. floatToStrF( value: extended; format: TFloatFormat; precision, digits: integer ): string; - real string + format: TFloatFormat - ffGeneral najkrótsza - ffExponent d,ddd...E dddd - ffFixed ddd,ddd... - ffNumber ddd ddd,dddd - ffCurrency ddd ddd,dd zł Funkcje konwersji tekstowo-numerycznej Znamy.... f. intToStr( value: integer ): string; - integer string f. strToInt( s: string ): integer; - string integer f. floatToStr( value: extended ): string; - real string f. strToFloat( s: string ): extended; - string real Inne…

14 RYSUNKI właściwości transparent: boolean - przeźroczystość picture - określenie pliku pochodzenia rysunku metody - dla picture - p. loadFromFile( const fileName: string ); - wpisanie z pliku - p. saveToFile( const fileName: string); - zapisanie do pliku - p. loadFromClipboardFormat - p. saveToClipboardFormat Image - mogą być umieszczane na formatkach jako osobne obiekty typu Timage - z plików typu bmp Shape – komponent rysujący prymitywny kształt Shape – typ obiektu - stRectangle, stCircle itp.. Pen - złożona właściwość opisująca kontur Brush – złożona właściwość opisująca wypełnienie

15 Typ rekordowy (record) Pojęcie i opis opis: record lista_nazw_pól: typ;... end pojęcie: - skończony zbiór elementów dowolnego typu składowego - pola - ułożonych jednowymiarowo, niejednorodnie - o położeniu (selekcji) określanym przez nazwę składowej (pola) tzw. dostęp kwalifikowany wektor nazwanych pól dowolnego typu (różnego rozmiaru) typ dowolny: prosty strukturalny (bez plików) pole tablica, napis, rekord deklaracja_jednakowych_pól;

16 przykłady: type data = record rok: ; mies: 1..12; dzien: end; fizycznie: w PaO kolejne wartości pól określonego typu var student: record nazw: string[ 20 ]; imie: array[1..2] of string[ 15 ]; data_ur: data; stypend: real end; St. Wołek - Podst. Progr. Komput.

17 jednakowe składowe selektor typu indeks dostęp bezpośredni statyczny rozmiar różne składowe selektor typu nazwa pola dostęp bezpośredni statyczny rozmiar St. Wołek - Podst. Progr. Komput. Porównanie: Uwaga: Rekord to jeden zestaw danych, jeśli więcej to tworzymy tablicę rekordów

18 Zmienne rekordowe zmienne całościowe - tylko przypisanie - typów tożsamych całościowedesygnator pola (składowa) brak:+ - * / porównania wej/wyj np: var r1, r2: record.. definicja... end ; begin r1 := r2;

19 desygnator pola (składowa) - dostęp do pola Z. p Przykłady: nazwa pola Z typu składowego użycie - w wyrażeniach lub instrukcjach, jak zmienne typu składowego var student: record nazw: string[ 20 ]; imie: array[1..2] of string[ 15 ]; data_ur: data; //wcześniej zdef. typ rekordowy stypend: real end; student.nazw student.imie student.imie[1] student.data_ur.rok student.nazw[1] student.imie[2][1] student.stypend student[1].imie student.rok nazwa zmiennej rekordowej kropka oddziela nazwę zmiennej rekordowej od nazwy pola

20 type osoba = record nazw: string[ 20 ]; imie: array[1..2] of string[ 15 ]; data_ur: data; end; var grupa: array[1..100] of osoba; //tablica rekordów !!!! grupa – typ tablicowy grupa[k] – typ rekordowy grupa[1].nazw- typ string grupa[2].imie – typ tablicowy grupa[k].imie[1] - typ string grupa[k].data_ur - typ rekordowy grupa[k].data_ur.rok – typ integer grupa[2].imie[2][5] – typ char Użycie zależne od typu: memo1.lines.add( grupa[3].nazw); osoba.nazw := 'Nowak'; edit1.text := grupa[k]. imie; if grupa[k].data_ur.rok>1970 then… type data = record rok: ; mies: 1..12; dzien: end;..bo osoba to nazwa typu