• Nie Znaleziono Wyników

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje

N/A
N/A
Protected

Academic year: 2021

Share "Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje"

Copied!
220
0
0

Pełen tekst

(1)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje

Robert Muszyński

Katedra Cybernetyki i Robotyki, PWr

Zagadnienia: pojęcie algorytmu, przejście od algorytmu do programu, za- pis składni programu, typy danych, stałe, zmienne, operatory, wy- rażenia, drzewa wyliczania wartości wyrażeń, instrukcje, instrukcja złożona, instrukcja warunkowa i pętli

Copyright c 2007–2021 Robert Muszyński

Niniejszy dokument zawiera materiały do wykładu na temat podstaw programowania w językach wysokiego poziomu. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może być kopiowany wyłącznie w całości, razem ze stroną tytułową.

– Skład FoilTEX –

(2)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 1

Algorytm

scharakteryzowanie wszystkich poprawnych

danych wejściowych

scharakteryzowanie oczekiwanych wyników

jako funkcji danych wejściowych

oraz

(3)

scharakteryzowanie wszystkich poprawnych

danych wejściowych

scharakteryzowanie oczekiwanych wyników

jako funkcji danych wejściowych

oraz

dowolne dane wejściowe

oczekiwane wyniki

ALGORYTM

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(4)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje 2

(5)

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(6)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje 2

(7)

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(8)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje 2

(9)

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(10)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje 2

(11)

Przedstaw się.

START

a i b

Wczytaj wartości

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(12)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 3

Przykładowy algorytm i jego realizacja

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

(13)

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

STOP Wyświetla

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(14)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 3

Przykładowy algorytm i jego realizacja

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

Wyświetla

Nie

Wyświetlb

(15)

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

STOP Wyświetla

Nie

Wyświetlb

'

&

$

%

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(16)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 3

Przykładowy algorytm i jego realizacja

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

Wyświetla

Nie

Wyświetlb

' $

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

(17)

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

STOP Wyświetla

Nie

Wyświetlb

'

&

$

%

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(18)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 3

Przykładowy algorytm i jego realizacja

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

Wyświetla

Nie

Wyświetlb

' $

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

(19)

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

STOP Wyświetla

Nie

Wyświetlb

'

&

$

%

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(20)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 3

Przykładowy algorytm i jego realizacja

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

Wyświetla

Nie

Wyświetlb

' $

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

(21)

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

STOP Wyświetla

Nie

Wyświetlb

'

&

$

%

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(22)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 3

Przykładowy algorytm i jego realizacja

Przedstaw się.

START

a i b

Wczytaj wartości

a < b

Czy ?

Tak

Wyświetla

Nie

Wyświetlb

' $

#include <stdio.h>

int main() { int a, b;

printf("Program wskazuje mniejsza z ");

printf("podanych dwoch liczb calkowitych\n");

printf("Podaj wartosc pierwszej liczby: ");

scanf("%d", &a);

printf("Podaj wartosc drugiej liczby: ");

scanf("%d", &b);

if (a < b)

printf("Mniejsza wartoscia jest %d\n",a);

else

printf("Mniejsza wartoscia jest %d\n",b);

}

(23)

Notacja MBNF

LHS = RHS

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(24)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 4

Składnia programu

Notacja MBNF

LHS = RHS

? Symbole nieterminalne: zdania, grupy podmiotu ;

(25)

Notacja MBNF

LHS = RHS

? Symbole nieterminalne: zdania, grupy podmiotu ;

? symbole terminalne: „bezbarwne”, „zielone”, „pomysły”, „śpią”,

„wściekle” ;

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(26)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 4

Składnia programu

Notacja MBNF

LHS = RHS

? Symbole nieterminalne: zdania, grupy podmiotu ;

? symbole terminalne: „bezbarwne”, „zielone”, „pomysły”, „śpią”,

„wściekle” ;

? operatory: konkatenacja, alternatywa — |, opcja — [],

powtórzenie — {}, grupowanie — ().

(27)

Diagramy składni

? Symbole nieterminalne →

B

;

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(28)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 5

Składnia programu

Diagramy składni

? Symbole nieterminalne →

B

;

? symbole terminalne →

x

;

(29)

Diagramy składni

? Symbole nieterminalne →

B

;

? symbole terminalne →

x

;

? operatory →

(

+ A

A

)

X

.

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(30)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 6

Przykładowe konstrukcje

Notacja MBNF

liczba-calkowita = [ znak-liczby ]

liczba-calkowita-bez-znaku .

(31)

Notacja MBNF

liczba-calkowita = [ znak-liczby ]

liczba-calkowita-bez-znaku . znak-liczby = "+" | "-" .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(32)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 6

Przykładowe konstrukcje

Notacja MBNF

liczba-calkowita = [ znak-liczby ]

liczba-calkowita-bez-znaku . znak-liczby = "+" | "-" .

liczba-calkowita-bez-znaku = ciag-cyfr .

(33)

Notacja MBNF

liczba-calkowita = [ znak-liczby ]

liczba-calkowita-bez-znaku . znak-liczby = "+" | "-" .

liczba-calkowita-bez-znaku = ciag-cyfr . ciag-cyfr = cyfra { cyfra } .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(34)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 6

Przykładowe konstrukcje

Notacja MBNF

liczba-calkowita = [ znak-liczby ]

liczba-calkowita-bez-znaku . znak-liczby = "+" | "-" .

liczba-calkowita-bez-znaku = ciag-cyfr . ciag-cyfr = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6"

| "7" | "8" | "9" .

(35)

Notacja MBNF

liczba-calkowita = [ znak-liczby ]

liczba-calkowita-bez-znaku . znak-liczby = "+" | "-" .

liczba-calkowita-bez-znaku = ciag-cyfr . ciag-cyfr = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6"

| "7" | "8" | "9" .

Porównaj

ciag-cyfr = { cyfra } .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(36)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje 7

Przykładowe konstrukcje

Diagram składni

znak-liczby

liczba-calkowita-bez-znaku liczba-calkowita

znak-liczby

+

-

ciag-cyfr liczba-calkowita-bez-znaku

cyfra ciag-cyfr

(37)

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(38)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 8

Notacja MBNF — dalsze przykłady

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok .

dzien = cyfra | cyfra cyfra .

(39)

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(40)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 8

Notacja MBNF — dalsze przykłady

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

(41)

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" |

"7" | "8" | "9" .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(42)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 8

Notacja MBNF — dalsze przykłady

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" |

"7" | "8" | "9" . Które z poniższych ciągów znaków spełniają definicję data? Jeśli nie spełniają to dlaczego?

12-12-12

(43)

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" |

"7" | "8" | "9" . Które z poniższych ciągów znaków spełniają definicję data? Jeśli nie spełniają to dlaczego?

12-12-12 3.10.67

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(44)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 8

Notacja MBNF — dalsze przykłady

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" |

"7" | "8" | "9" . Które z poniższych ciągów znaków spełniają definicję data? Jeśli nie spełniają to dlaczego?

12-12-12

(45)

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" |

"7" | "8" | "9" . Które z poniższych ciągów znaków spełniają definicję data? Jeśli nie spełniają to dlaczego?

12-12-12 3.10.67 0-0-00

00-00-00

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(46)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 8

Notacja MBNF — dalsze przykłady

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" |

"7" | "8" | "9" . Które z poniższych ciągów znaków spełniają definicję data? Jeśli nie spełniają to dlaczego?

12-12-12 00-00-00

(47)

data = dzien "." miesiac "." rok |

dzien "-" miesiac "-" rok . dzien = cyfra | cyfra cyfra .

miesiac = [ "1" ] cyfra .

rok = cyfra cyfra | cyfra cyfra cyfra cyfra .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" |

"7" | "8" | "9" . Które z poniższych ciągów znaków spełniają definicję data? Jeśli nie spełniają to dlaczego?

12-12-12 3.10.67 0-0-00

00-00-00 47-19-99 12-2-997

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(48)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 9

Notacja MBNF — dalsze przykłady

ciag = "A" [ ciag ] "A" | "B" [ ciag ] "B" | "A" | "B" .

(49)

ciag = "A" [ ciag ] "A" | "B" [ ciag ] "B" | "A" | "B" . Które z poniższych ciągów znaków spełniają definicję? Jeśli nie spełniają to dlaczego?

ABBA

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(50)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 9

Notacja MBNF — dalsze przykłady

ciag = "A" [ ciag ] "A" | "B" [ ciag ] "B" | "A" | "B" . Które z poniższych ciągów znaków spełniają definicję? Jeśli nie spełniają to dlaczego?

ABBA

BABA

(51)

ciag = "A" [ ciag ] "A" | "B" [ ciag ] "B" | "A" | "B" . Które z poniższych ciągów znaków spełniają definicję? Jeśli nie spełniają to dlaczego?

ABBA BABA ABABA

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(52)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 9

Notacja MBNF — dalsze przykłady

ciag = "A" [ ciag ] "A" | "B" [ ciag ] "B" | "A" | "B" . Które z poniższych ciągów znaków spełniają definicję? Jeśli nie spełniają to dlaczego?

ABBA

BABA

ABABA

AAABAAA

(53)

ciag = "A" [ ciag ] "A" | "B" [ ciag ] "B" | "A" | "B" . Które z poniższych ciągów znaków spełniają definicję? Jeśli nie spełniają to dlaczego?

ABBA BABA ABABA AAABAAA ABABA

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(54)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 9

Notacja MBNF — dalsze przykłady

ciag = "A" [ ciag ] "A" | "B" [ ciag ] "B" | "A" | "B" . Które z poniższych ciągów znaków spełniają definicję? Jeśli nie spełniają to dlaczego?

ABBA BABA ABABA AAABAAA ABABA

AAABBAABABBABBABAABBAAA

(55)

liczba = [ znak-liczby ] liczba-bez-znaku .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(56)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 10

Notacja MBNF — dalsze przykłady

liczba = [ znak-liczby ] liczba-bez-znaku .

znak-liczby = "+" | "-" .

(57)

liczba = [ znak-liczby ] liczba-bez-znaku . znak-liczby = "+" | "-" .

liczba-bez-znaku = cyfra { cyfra } .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(58)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 10

Notacja MBNF — dalsze przykłady

liczba = [ znak-liczby ] liczba-bez-znaku . znak-liczby = "+" | "-" .

liczba-bez-znaku = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" .

(59)

liczba = [ znak-liczby ] liczba-bez-znaku . znak-liczby = "+" | "-" .

liczba-bez-znaku = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" .

Czy w sensie powyższych reguł poprawna jest liczba?

13

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(60)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 10

Notacja MBNF — dalsze przykłady

liczba = [ znak-liczby ] liczba-bez-znaku . znak-liczby = "+" | "-" .

liczba-bez-znaku = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" .

Czy w sensie powyższych reguł poprawna jest liczba?

13 +13

(61)

liczba = [ znak-liczby ] liczba-bez-znaku . znak-liczby = "+" | "-" .

liczba-bez-znaku = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" .

Czy w sensie powyższych reguł poprawna jest liczba?

13 +13 +7

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(62)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 10

Notacja MBNF — dalsze przykłady

liczba = [ znak-liczby ] liczba-bez-znaku . znak-liczby = "+" | "-" .

liczba-bez-znaku = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" .

Czy w sensie powyższych reguł poprawna jest liczba?

13 +13 +7 -666

(63)

( p | h [ k ] ) [ d ] .

b = "bigos". c = "chleb". r = "rogalik". m = "maslo".

w = "wedlina". p = "piwo". h = "herbata".

k = "cukier". d = "deser".

Które z poniższych ciągów znaków spełniają definicję? Jeśli nie spełniają to dlaczego?

p pd

brmpd rmwpk bcrmwh bcp

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(64)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 12

Notacja MBNF — dalsze przykłady

piwo = "Piast" | "EB" | "Lech" | "Zywiec" | "Okocim" . menu = piwo { piwo } .

Zamówienie: Dwa piwa prosze zamowienie = piwo piwo .

Zamówienie: Obojętne co i czy w ogóle, ale jeśli cokolwiek to jedno zamowienie = [ piwo ] .

Zamówienie: Dwa Żywce lub EB i Lecha prosze

(65)

Czy poniższe konstrukcje definiują liczby całkowite?

liczba-calkowita = [ znak-liczby ]

liczba-calkowita-bez-znaku . znak-liczby = "+" | "-" .

liczba-calkowita-bez-znaku = ciag-cyfr . ciag-cyfr = cyfra { cyfra } .

cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6"

| "7" | "8" | "9" . konstrukcja = cyfra .

konstrukcja = "+" cyfra cyfra cyfra .

konstrukcja = [ "-" | "+" ] cyfra { cyfra } . konstrukcja = [ "-" | "+" ] { cyfra } .

konstrukcja = [ ( "+" | "-" ) [ cyfra [ cyfra ]]] .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(66)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 14

Notacja MBNF — rownoważność reguł

Czy poniższe pary reguł są sobie równoważne?

(1) cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6" . (2) cyfra = mala-cyfra | duza-cyfra .

mala-cyfra = "0" | "1" | "2" | "3" | "4" . duza-cyfra = "3" | "4" | 5" | "6" .

(1) czas = godzina [ ":" minuta ] [ ":" sekunda ] .

(2) czas = godzina [ ":" minuta [ ":" sekunda ] ] .

(67)

Czy poniższe pary reguł są sobie równoważne?

(1) liczba = cyfra cyfra { cyfra cyfra } . (2) liczba = cyfra cyfra .

liczba = liczba liczba .

(1) nr-telefonu = cyf cyf "-" cyf cyf "-" cyf cyf . (2) nr-telefonu = cyf cyf cyf "-" cyf cyf cyf .

(1) w1 = cyfra { cyfra } . (2) w2 = { cyfra } cyfra .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(68)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 16

O standaryzacji

(by xkcd)

(69)

komentarz = "/*" ciag-znakow "*/" .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(70)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 17

Kategorie składniowe C – komentarze

komentarz = "/*" ciag-znakow "*/" .

ciag-znakow = { znak } .

(71)

komentarz = "/*" ciag-znakow "*/" . ciag-znakow = { znak } .

znak = dowolny znak .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(72)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 17

Kategorie składniowe C – komentarze

komentarz = "/*" ciag-znakow "*/" . ciag-znakow = { znak } .

znak = dowolny znak . Przykłady:

lower = 0 /* dolna granica temperatur */

(73)

komentarz = "/*" ciag-znakow "*/" . ciag-znakow = { znak } .

znak = dowolny znak . Przykłady:

lower = 0 /* dolna granica temperatur */

/* wypisanie zestawienia temperatur w roznych skalach dla wartosci znajdujacych sie w zakresie 0..300; wersja zmiennopozycyjna */

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(74)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 17

Kategorie składniowe C – komentarze

komentarz = "/*" ciag-znakow "*/" . ciag-znakow = { znak } .

znak = dowolny znak . Przykłady:

lower = 0 /* dolna granica temperatur */

/* wypisanie zestawienia temperatur w roznych skalach dla wartosci znajdujacych sie w zakresie 0..300; wersja zmiennopozycyjna */

/* to jest komentarz */ ale to nie jest juz komentarz */

(75)

komentarz = "/*" ciag-znakow "*/" . ciag-znakow = { znak } .

znak = dowolny znak . Przykłady:

lower = 0 /* dolna granica temperatur */

/* wypisanie zestawienia temperatur w roznych skalach dla wartosci znajdujacych sie w zakresie 0..300; wersja zmiennopozycyjna */

/* to jest komentarz */ ale to nie jest juz komentarz */

/* to jest komentarz /* i to tez */ ale to niestety nie */

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(76)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 17

Kategorie składniowe C – komentarze

komentarz = "/*" ciag-znakow "*/" . ciag-znakow = { znak } .

znak = dowolny znak . Przykłady:

lower = 0 /* dolna granica temperatur */

/* wypisanie zestawienia temperatur w roznych skalach dla wartosci znajdujacych sie w zakresie 0..300; wersja zmiennopozycyjna */

/* to jest komentarz */ ale to nie jest juz komentarz */

(77)

{ litera | podkreslenie | cyfra } .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(78)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 18

Kategorie składniowe C – identyfikatory

identyfikator = ( litera | podkreslenie )

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

(79)

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

Które z napisów są poprawnymi identyfikatorami?

moja_dana Moja_Dana MOJA_DANA moja_dana2

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(80)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 18

Kategorie składniowe C – identyfikatory

identyfikator = ( litera | podkreslenie )

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

Które z napisów są poprawnymi identyfikatorami?

moja_dana Moja_Dana MOJA_DANA moja_dana2

moja moja_ moja__dana moja-dana

(81)

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

Które z napisów są poprawnymi identyfikatorami?

moja_dana Moja_Dana MOJA_DANA moja_dana2 moja moja_ moja__dana moja-dana moja dana

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(82)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 18

Kategorie składniowe C – identyfikatory

identyfikator = ( litera | podkreslenie )

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

Które z napisów są poprawnymi identyfikatorami?

moja_dana Moja_Dana MOJA_DANA moja_dana2

moja moja_ moja__dana moja-dana

moja dana moja^dana

(83)

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

Które z napisów są poprawnymi identyfikatorami?

moja_dana Moja_Dana MOJA_DANA moja_dana2 moja moja_ moja__dana moja-dana moja dana moja^dana tmp21d3233

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(84)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 18

Kategorie składniowe C – identyfikatory

identyfikator = ( litera | podkreslenie )

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

Które z napisów są poprawnymi identyfikatorami?

moja_dana Moja_Dana MOJA_DANA moja_dana2

moja moja_ moja__dana moja-dana

moja dana moja^dana tmp21d3233 12tmp

(85)

{ litera | podkreslenie | cyfra } . litera = małe i duże litery alfabetu łacińskiego

podkreslenie = "_" . cyfra = cyfry dziesiętne

Identyfikator nie może pokrywać się ze słowami kluczowymi.

Które z napisów są poprawnymi identyfikatorami?

moja_dana Moja_Dana MOJA_DANA moja_dana2 moja moja_ moja__dana moja-dana moja dana moja^dana tmp21d3233 12tmp

A przy poniższej definicji?

identyfikator = ( litera | podkreslenie )

{ [ podkreslenie ] ( litera | cyfra ) } .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(86)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 19

Kategorie składniowe C – słowa kluczowe

slowo-kluczowe = "auto" | "break" | "case" | "char" | "const"

| "continue" | "default" | "do" | "double"

| "else" | "enum" | "extern" | "float" | "for"

| "goto" | "if" | "int" | "long" | "register"

| "return" | "short" | "signed" | "sizeof"

| "static" | "struct" | "switch" | "typedef"

| "union" | "unsigned" | "void" | "volatile"

| "while" .

(87)

| literal_tekstowy .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(88)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 20

Kategorie składniowe C – literały

literal = literal_arytmetyczny | literal_znakowy

| literal_tekstowy . literal_arytmetyczny = literal_stalopozycyjny

| literal_zmiennopozycyjny .

(89)

| literal_tekstowy . literal_arytmetyczny = literal_stalopozycyjny

| literal_zmiennopozycyjny . literal_stalopozycyjny =

[ znak-liczby ] ( ciag-cyfr | ciag-cyfr-szesnastkowych ) [ "l" | "L" | "u" | "U" | "ul" | "UL" ] .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(90)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 20

Kategorie składniowe C – literały

literal = literal_arytmetyczny | literal_znakowy

| literal_tekstowy . literal_arytmetyczny = literal_stalopozycyjny

| literal_zmiennopozycyjny . literal_stalopozycyjny =

[ znak-liczby ] ( ciag-cyfr | ciag-cyfr-szesnastkowych ) [ "l" | "L" | "u" | "U" | "ul" | "UL" ] .

znak-liczby = "+" | "-" .

(91)

| literal_tekstowy . literal_arytmetyczny = literal_stalopozycyjny

| literal_zmiennopozycyjny . literal_stalopozycyjny =

[ znak-liczby ] ( ciag-cyfr | ciag-cyfr-szesnastkowych ) [ "l" | "L" | "u" | "U" | "ul" | "UL" ] .

znak-liczby = "+" | "-" .

ciag-cyfr = cyfra { cyfra } .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(92)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 20

Kategorie składniowe C – literały

literal = literal_arytmetyczny | literal_znakowy

| literal_tekstowy . literal_arytmetyczny = literal_stalopozycyjny

| literal_zmiennopozycyjny . literal_stalopozycyjny =

[ znak-liczby ] ( ciag-cyfr | ciag-cyfr-szesnastkowych ) [ "l" | "L" | "u" | "U" | "ul" | "UL" ] .

znak-liczby = "+" | "-" .

ciag-cyfr = cyfra { cyfra } .

ciag-cyfr-szesnastkowych = ( "0x" | "0X" ) cyfra-szesnastkowa

{ cyfra-szesnastkowa } .

(93)

| literal_tekstowy . literal_arytmetyczny = literal_stalopozycyjny

| literal_zmiennopozycyjny . literal_stalopozycyjny =

[ znak-liczby ] ( ciag-cyfr | ciag-cyfr-szesnastkowych ) [ "l" | "L" | "u" | "U" | "ul" | "UL" ] .

znak-liczby = "+" | "-" .

ciag-cyfr = cyfra { cyfra } .

ciag-cyfr-szesnastkowych = ( "0x" | "0X" ) cyfra-szesnastkowa

{ cyfra-szesnastkowa } . cyfra = "0" | "1" | "2" | "3" | "4" | "5" | "6"

| "7" | "8" | "9" .

cyfra-szesnastkowa = cyfra | "a" | "b" | "c" | "d" | "e" | "f"

| "A" | "B" | "C" | "D" | "E" | "F" .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(94)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 21

Kategorie składniowe C – literały cd.

literal-zmiennopozycyjny =

[ znak-liczby ] liczba-rzeczywista-bez-znaku .

(95)

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(96)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 21

Kategorie składniowe C – literały cd.

literal-zmiennopozycyjny =

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

| "." ciag-cyfr [ ("e"|"E") mnoznik-skalujacy ]

| ciag-cyfr ("e"|"E") mnoznik-skalujacy ) [ "f" | "F" | "l" | "L" ] .

(97)

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

| "." ciag-cyfr [ ("e"|"E") mnoznik-skalujacy ]

| ciag-cyfr ("e"|"E") mnoznik-skalujacy ) [ "f" | "F" | "l" | "L" ] . mnoznik-skalujacy = [ znak-liczby ] ciag-cyfr .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(98)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 21

Kategorie składniowe C – literały cd.

literal-zmiennopozycyjny =

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

| "." ciag-cyfr [ ("e"|"E") mnoznik-skalujacy ]

| ciag-cyfr ("e"|"E") mnoznik-skalujacy ) [ "f" | "F" | "l" | "L" ] . mnoznik-skalujacy = [ znak-liczby ] ciag-cyfr .

literal_znakowy = "’" ( znak-bez-\ | sekwencja-specjalna ) "’" .

(99)

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

| "." ciag-cyfr [ ("e"|"E") mnoznik-skalujacy ]

| ciag-cyfr ("e"|"E") mnoznik-skalujacy ) [ "f" | "F" | "l" | "L" ] . mnoznik-skalujacy = [ znak-liczby ] ciag-cyfr .

literal_znakowy = "’" ( znak-bez-\ | sekwencja-specjalna ) "’" . znak-bez-\ = dowolny znak za wyjątkiem znaku „\” .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(100)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 21

Kategorie składniowe C – literały cd.

literal-zmiennopozycyjny =

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

| "." ciag-cyfr [ ("e"|"E") mnoznik-skalujacy ]

| ciag-cyfr ("e"|"E") mnoznik-skalujacy ) [ "f" | "F" | "l" | "L" ] . mnoznik-skalujacy = [ znak-liczby ] ciag-cyfr .

literal_znakowy = "’" ( znak-bez-\ | sekwencja-specjalna ) "’" . znak-bez-\ = dowolny znak za wyjątkiem znaku „\” .

sekwencja-specjalna = "\\" | "\’" | "\"" | "\?" | "\a" | "\b"

| "\f" | "\n" | "\r" | "\t" | "\v"

(101)

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

| "." ciag-cyfr [ ("e"|"E") mnoznik-skalujacy ]

| ciag-cyfr ("e"|"E") mnoznik-skalujacy ) [ "f" | "F" | "l" | "L" ] . mnoznik-skalujacy = [ znak-liczby ] ciag-cyfr .

literal_znakowy = "’" ( znak-bez-\ | sekwencja-specjalna ) "’" . znak-bez-\ = dowolny znak za wyjątkiem znaku „\” .

sekwencja-specjalna = "\\" | "\’" | "\"" | "\?" | "\a" | "\b"

| "\f" | "\n" | "\r" | "\t" | "\v"

| "\" (( cyfra-osemkowa [ cyfra-osemkowa ] [ cyfra-osemkowa ] )

| ciag-cyfr-szesnastkowych ) .

cyfra-osemkowa = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" .

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(102)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 21

Kategorie składniowe C – literały cd.

literal-zmiennopozycyjny =

[ znak-liczby ] liczba-rzeczywista-bez-znaku . liczba-rzeczywista-bez-znaku =

( ciag-cyfr "." [ ciag-cyfr ] [ ("e"|"E") mnoznik-skalujacy ]

| "." ciag-cyfr [ ("e"|"E") mnoznik-skalujacy ]

| ciag-cyfr ("e"|"E") mnoznik-skalujacy ) [ "f" | "F" | "l" | "L" ] . mnoznik-skalujacy = [ znak-liczby ] ciag-cyfr .

literal_znakowy = "’" ( znak-bez-\ | sekwencja-specjalna ) "’" . znak-bez-\ = dowolny znak za wyjątkiem znaku „\” .

sekwencja-specjalna = "\\" | "\’" | "\"" | "\?" | "\a" | "\b"

| "\f" | "\n" | "\r" | "\t" | "\v"

(103)

literal-tekstowy – analogiczny do kategorii literal-znakowy, tyle że złożo- ny z zera lub więcej znaków i ograniczony znakami cudzysłowu (”) w miejsce apostrofów (’).

Przykłady:

"Jestem napisem"

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(104)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 22

Kategorie składniowe C – literały cd.

literal-tekstowy – analogiczny do kategorii literal-znakowy, tyle że złożo- ny z zera lub więcej znaków i ograniczony znakami cudzysłowu (”) w miejsce apostrofów (’).

Przykłady:

"Jestem napisem"

"" /* napis pusty */

(105)

literal-tekstowy – analogiczny do kategorii literal-znakowy, tyle że złożo- ny z zera lub więcej znaków i ograniczony znakami cudzysłowu (”) w miejsce apostrofów (’).

Przykłady:

"Jestem napisem"

"" /* napis pusty */

"a" /* napis zawierajacy jeden znak */

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(106)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 22

Kategorie składniowe C – literały cd.

literal-tekstowy – analogiczny do kategorii literal-znakowy, tyle że złożo- ny z zera lub więcej znaków i ograniczony znakami cudzysłowu (”) w miejsce apostrofów (’).

Przykłady:

"Jestem napisem"

"" /* napis pusty */

"a" /* napis zawierajacy jeden znak */

’a’ /* literal znakowy */

(107)

literal-tekstowy – analogiczny do kategorii literal-znakowy, tyle że złożo- ny z zera lub więcej znaków i ograniczony znakami cudzysłowu (”) w miejsce apostrofów (’).

Przykłady:

"Jestem napisem"

"" /* napis pusty */

"a" /* napis zawierajacy jeden znak */

’a’ /* literal znakowy */

"Oto jestem" " swiecie" jest równoznaczne z "Oto jestem swiecie"

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(108)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 22

Kategorie składniowe C – literały cd.

literal-tekstowy – analogiczny do kategorii literal-znakowy, tyle że złożo- ny z zera lub więcej znaków i ograniczony znakami cudzysłowu (”) w miejsce apostrofów (’).

Przykłady:

"Jestem napisem"

"" /* napis pusty */

"a" /* napis zawierajacy jeden znak */

’a’ /* literal znakowy */

"Oto jestem" " swiecie" jest równoznaczne z "Oto jestem swiecie"

(109)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(110)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 23

Typy i rozmiary danych

• Podstawowe typy danych (arytmetyczne)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

∗ int — typ stałopozycyjny (co najmniej 16 bitów)

(111)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

∗ int — typ stałopozycyjny (co najmniej 16 bitów)

? typy zmiennopozycyjne

∗ float — pojedynczej precyzji

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(112)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 23

Typy i rozmiary danych

• Podstawowe typy danych (arytmetyczne)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

∗ int — typ stałopozycyjny (co najmniej 16 bitów)

? typy zmiennopozycyjne

∗ float — pojedynczej precyzji

∗ double — podwójnej precyzji

(113)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

∗ int — typ stałopozycyjny (co najmniej 16 bitów)

? typy zmiennopozycyjne

∗ float — pojedynczej precyzji

∗ double — podwójnej precyzji

• Kwalifikatory typów podstawowych

? short, long — odnoszą się do obiektów stałopozycyjnych

? signed, unsigned — odnoszą się do obiektów całkowitych

? long — odnosi się do obiektów double

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(114)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 23

Typy i rozmiary danych

• Podstawowe typy danych (arytmetyczne)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

∗ int — typ stałopozycyjny (co najmniej 16 bitów)

? typy zmiennopozycyjne

∗ float — pojedynczej precyzji

∗ double — podwójnej precyzji

• Kwalifikatory typów podstawowych

? short, long — odnoszą się do obiektów stałopozycyjnych

? signed, unsigned — odnoszą się do obiektów całkowitych

? long — odnosi się do obiektów double

• Podstawowe typy pochodne

(115)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

∗ int — typ stałopozycyjny (co najmniej 16 bitów)

? typy zmiennopozycyjne

∗ float — pojedynczej precyzji

∗ double — podwójnej precyzji

• Kwalifikatory typów podstawowych

? short, long — odnoszą się do obiektów stałopozycyjnych

? signed, unsigned — odnoszą się do obiektów całkowitych

? long — odnosi się do obiektów double

• Podstawowe typy pochodne

? tablice obiektów

? funkcje, których rezultatami są obiekty

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(116)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 23

Typy i rozmiary danych

• Podstawowe typy danych (arytmetyczne)

? typy całkowite

∗ char — typ znakowy (jeden bajt)

∗ int — typ stałopozycyjny (co najmniej 16 bitów)

? typy zmiennopozycyjne

∗ float — pojedynczej precyzji

∗ double — podwójnej precyzji

• Kwalifikatory typów podstawowych

? short, long — odnoszą się do obiektów stałopozycyjnych

? signed, unsigned — odnoszą się do obiektów całkowitych

? long — odnosi się do obiektów double

• Podstawowe typy pochodne

(117)

? short i int są co najmniej 16-bitowe

? long jest co najmniej 32-bitowy

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

(118)

Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje ←- ,→ 24

Typy i rozmiary danych cd.

• Relacje między wielkościami typów całkowitych

? short i int są co najmniej 16-bitowe

? long jest co najmniej 32-bitowy

? short nie może być dłuższy niż int

? int nie może być dłuższy niż long

(119)

? short i int są co najmniej 16-bitowe

? long jest co najmniej 32-bitowy

? short nie może być dłuższy niż int

? int nie może być dłuższy niż long

? Kwalifikatory signed, unsigned nie zmieniają rozmiaru typu a jedynie za- kres wartości

– Skład FoilTEX – Indeks R. Muszyński, 4 lutego 2021c

Cytaty

Powiązane dokumenty

Ze wstêpnych badañ wynika, ¿e przep³yw krwi w pêcherzykach jajniko- wych, mierzony maksymalnym polem powierzchni kolorowych pikseli i przep³ywem krwi w macicy oce- niany na

Operatory inkrementacji przedrostkowej i przyrostkowej Operatory jednoargumentowe – i plus służą do określenia wartości dodatniej lub ujemnej.. Operatory inkrementacji i

Należy wykorzystać funkcje System.out.println oraz JOptionPane.showMessageDialog do wyświetlania wyników wyrażeń.. Należy przeanalizować uzyskane wyniki wyświetlanych wyrażeń na

Dane wprowadź z klawiatury za pomocą metody JOptionPane.showInputDialog i dokonaj konwersji na int za pomocą metody Integer.parseInt dla składowej wiek oraz na typ float

Klasa abstrakcyjna może zawierać metody abstrakcyjne, poprzedzone słowem kluczowym abstract; w miejscu ciała metody abstrakcyjnej występuje średnik; każda jej podklasa musi

Dane wprowadź z klawiatury za pomocą metody JOptionPane.showInputDialog i dokonaj konwersji na int za pomocą metody Integer.parseInt dla składowej wiek oraz na typ float

• Języki wysokiego poziomu: ADA, Pascal, Fortran, C++, Lisp, B, SmallTalk, Java. &#34;Podstawy informatyki&#34;, Tadeusz Wilusz

● Losowe z zastępowaniem jest odmianą wyboru losowego, gdy każdy obiekt może być wylosowany więcej niż raz. Ten rodzaj losowania gwarantuje ze każdy element jest losowany