Wykład 7
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

Wykład 7 PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on
  • Presentation posted in: General

Wykład 7. sortowanie BitButton format tekstu rysunki typ rekordowy. Sortowanie. Sortowanie bąbelkowe. Algorytm polega porównywaniu kolejnych par elementów sąsiadujących i zamianie miejscami w przypadku niewłaściwej kolejności. 1234.....N. N-1 porównań. Wykonujemy N przebiegów.

Download Presentation

Wykład 7

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Wyk ad 7

Wykład 7

  • sortowanie

  • BitButton

  • format tekstu

  • rysunki

  • typ rekordowy


Wyk ad 7

Sortowanie

Sortowanie bąbelkowe

Algorytm polega porównywaniu kolejnych par elementów sąsiadujących i zamianie miejscami w przypadku niewłaściwej kolejności

1234.....N

N-1 porównań

Wykonujemy N przebiegów


Wyk ad 7

1 przebieg

12  511 4 7 2zamiana 1

 51211 4 7 2zamiana 2

 51112 4 7 2zamiana 3

 511 412 7 2zamiana 4

 511 4 712 2zamiana 5

 511 4 7 212efekt ostatniej zamiany – największy na końcu

2 przebieg

511 4 7 212

 511 4 7 212zmiana 6

 5 411 7 212zmiana 7

 5 4 711 212zmiana 8

 5 4 7 21112

 5 4 7 21112

3 przebieg

 5 4 7 21112zamiana 9

 4 5 7 21112

 4 5 7 21112zamiana 10

 4 5 2 71112

 4 5 2 71112

 4 5 2 71112

4 przebieg

4 5 2 71112

 4 5 2 71112zamiana 11

 4 2 5 71112

 4 2 5 71112

 4 2 5 71112

 4 2 5 71112

N=6


Wyk ad 7

5 przebieg

 4 2 5 71112zmiana 12

 2 4 5 71112

 2 4 571112

 2 4 5 71112

 2 4 5 71112

2 4 5 71112

6 przebieg

 2 4 5 71112

 2 4 5 71112

 2 4 5 71112

 2 4 5 71112

 2 4 5 71112

30 operacji= (N-1)*N=6*5


Wyk ad 7

Sortowanie bąbelkowe skrócone

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


Wyk ad 7

1 przebieg

12  511 4 72zamiana 1

 51211 4 7 2zamiana 2

 51112 4 7 2zamiana 3

 511 412 7 2zamiana 4

 511 4 712 2zamiana 5

 511 4 7212efekt

2 przebieg

 511 4 7 212

 511 4 7 212zamiana 6

 5 411 7 212zamiana 7

 5 4 711 212zamiana 8

 5 4 7 21112efekt

3 przebieg

5 4 7 21112zamiana 9

 4 5 7 21112

 4 5 7 21112zamiana 10

 4 5 2 71112efekt

4 przebieg

4 5 2 71112

 4 5 2 71112zamiana 11

 4 2 5 71112efekt

5 przebieg

4 2 5 71112zamiana 12

 2 4 5 71112efekt

5

15 operacji

4

3

2

1


Wyk ad 7

Można też tak (rodzaj bąbelkowego):

  • 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

(N-1) operacji

2


Wyk ad 7

1 przebieg

12511 4 7 2zamiana 1

51211 4 7 2

51211 4 7 2zamiana 2

41211 5 7 2

41211 5 7 2zamiana 3

21211 5 7 4najmniejszy na początku

2 przebieg

21211 5 7 4zamiana 4 .. więc zaczynamy od 2-go

21112 5 7 4zamiana 5

2 51211 7 4

2 51211 7 4zamiana 6

2 41211 7 5

3 przebieg

2 41211 7 5zamiana 7

2 41112 7 5zamiana 8

2 4 71211 5zamiana 9

2 4 51211 7

4 przebieg

2 4 51211 7zamiana 10

2 4 51112 7zamiana 11

2 4 5 71211

5 przebieg

2 4 5 71211zamiana 12

2 4 5 71112

15 operacji


Wyk ad 7

deklaracje globalne (dla wszystkich podprogramów modułu)

implementation

const N=10;

var tab:array [1..N] of integer;

wypełnienie losowe tablicy i StringGrida

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;

end;


Wyk ad 7

Sortowanie bąbelkowe skrócone

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


Wyk ad 7

Przycisk prostego polecenia (z bitmapą) – BitBtn

  • jak Button + rysunek

  • do wykonywania prostych, typowych poleceń dialogu obsługi aplikacji

  • właściwości

  • kind - rodzaj przycisku

  • glyph - obrazek


Wyk ad 7

  • 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

procedure TForm1.FormActivate(Sender: TObject);

begin

case Form2.ModalResult of

mrAbort: Edit1.Text:='Abort';

.......

end;

end;

  • zdarzenia

  • onClick - procedura obsługi kliknięcia

  • uwaga

wygodnie używać w GroupBox

Przykłady:sortowanie, bitbtn


Wyk ad 7

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…

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


  • Wyk ad 7

    RYSUNKI

    • 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

    Image - mogą być umieszczane na formatkach jako osobne obiekty typu Timage - z plików typu bmp

    • 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


    Wyk ad 7

    Typ rekordowy (record)

    Pojęcie i opis

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

    • opis:

      record

      lista_nazw_pól: typ;

      . . .

      end

    typ dowolny:

    prosty

    strukturalny (bez plików)

    pole  tablica,

    napis,

    rekord

    deklaracja_jednakowych_pól;


    Wyk ad 7

    • fizycznie:

      w PaO kolejne wartości pól określonego typu

    • przykłady:

      type data = record

      rok: 1900 .. 2100;

      mies: 1..12;

      dzien: 1..31

      end;

    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.


    Wyk ad 7

    Porównanie:

    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

    Uwaga:

    Rekord to jeden zestaw danych, jeśli więcej to tworzymy tablicę rekordów

    St. Wołek - Podst. Progr. Komput.


    Wyk ad 7

    Zmienne rekordowe

    całościowedesygnator pola (składowa)

    • zmienne całościowe - tylko przypisanie - typów tożsamych

    brak:+ - * /

    porównania

    wej/wyj

    np:

    var r1, r2: record ..definicja... end ;

    begin

    r1 := r2;


    Wyk ad 7

    • desygnator pola (składowa) - dostęp do pola

    Z . p

     Ztypu składowego

    kropka oddziela nazwę zmiennej rekordowej od nazwy pola

    nazwa pola

    nazwa zmiennej rekordowej

    • użycie - w wyrażeniach lub instrukcjach, jak zmienne typu składowego

    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

    Przykłady:

    var student:

    record

    nazw: string[ 20 ];

    imie: array[1..2] of string[ 15 ];

    data_ur: data;//wcześniej zdef. typrekordowy

    stypend: real

    end;


    Wyk ad 7

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

    type data = record

    rok: 1900 .. 2100;

    mies: 1..12;

    dzien: 1..31

    end;

    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…

    ..bo osoba to nazwa typu


  • Login