Podstawy Programowania 02 TypyDanych


Podstawy
Programowania
ELEMENTY PROGRAMU
i TYPY DANYCH
Michał Bujacz
bujaczm@p.lodz.pl
B9  Lodex 207
godziny przyjęć: środy i
czwartki 10:00-11:00
http://www.eletel.p.lodz.pl/bujacz/
1
Pytania weryfikacyjne:
o
Wiedza deklaratywna vs imperatywna
o
6 kroków pracy programisty
o
Sposoby projektowania programów
o
Klasyfikacje języków programowania
o
Poziom/generacja języka programowania
o
Kompilator vs. interpreter
o
Paradygmaty programowania
2
SÅ‚ownictwo
o
Instrukcja (Instruction)
o
Zmienna (Variable)
o
SÅ‚owo kluczowe (Keyword)
o
Wyrażenie (Expression)
o
Operator (Operator)
o
Komentarz (Comment)
Przykładowa instrukcja
instrukcja
wyrażenie
a = a + 1
operator dodawania
operator przypisania (podstawienia)
zmienna
Instrukcja
o
Program komputerowy to ciÄ…g instrukcji w
języku programistycznym
o
Podstawowe typy instrukcji:
" czynne (zmieniają wartości zmiennych,
wywołują kolejne instrukcje)
" bierne (deklaracje zmiennych, specyfikacje
funkcji/obiektów)
Zmienna
o
Nazwa (identyfikator) przypisana do danych
zapisanych w pamięci komputera
o
Większość języków programistycznych
posiada wiele typów danych które określa się
na stałe dla danej zmiennej (JAVA, C)
o
Niektóre języki (np. Python, Pearl, PHP,
JavaScript) nie wymagają stałego
deklarowania typu, gdyż może on się
zmieniać w trakcie działania programu
(typowanie dynamiczne)
Nazwy zmiennych
o
mogą zawierać duże i małe litery cyfry, _ , w
niektórych językach również $
o
nie mogą zaczynać się od cyfry
o
nie mogą pokrywać się ze słowami kluczowymi
danego języka (reserved keywords)
and del for is raise
assert elif from lambda return
break else global not try
class except if or while
continue exec import pass yield
def finally in print
SÅ‚owa kluczowe: Python ~30, JAVA ~50, C++ ~80-150
Typy danych
o
Liczbowe  całkowite i zmiennoprzecinkowe
o
Znakowe (char)
o
Tekstowe
o
Tablicowe
o
Wyliczeniowe (listy)
o
Wskaznikowe
o
Strukturalne
o
Logiczne (boolean)
o
Klasy (typ obiektowy)
Systemy liczbowe
o
Dziesiętny
o
Binarny (bit, bajt, słowo)
o
Szesnastkowy
o
Kolejność bajtów: Big endian / little endian
(grubokońcowe/cienkokońcowe)
System dziesiętny
o
1234
= 1 * 103 + 2 *102 + 3 * 101 + 4 * 100
System binarny
o
1101
= 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20
10
1 Bajt = 8 bitów
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
11
Liczby ujemne
o
Sign bit
27 26 25 24 23 22 21 20
+/- 64 32 16 8 4 2 1
o
Two s complement (invert bits, add 1)
27 26 25 24 23 22 21 20
-128 64 32 16 8 4 2 1
12
Szesnastkowy
(hexadecimal)
o
23 22 21 20
F201(hex)
3 2
8 4 2 1
= 15*16 + 2*16 +
1 0
0*16 + 1*16 (dec)
= 1111 0010 0000
0001 (bin)
13
Kolejność bajtów w pamięci
o
Wartość 0x4A3B2C1D w pamięci pod
adresem 100
o
Big-endian (grubokońcowość)
o
Little-endian (cienkokońcowość)
14
Liczby całkowite
(integer, long)
o
W zależności od ilości bitów, różny górny limit
o
Przykłady z Javy:
JAVA Memory Approximate Range
Integral Types Storage
int 4 bytes +/- 2 billion
short 2 bytes +/- 32,767
long 8 bytes +/- 9.2 x 1018
byte 1 byte -128 to 127
o
Python standardowo używa aż 8 bajtów na zwykły int
63
(maksymalnie 2 -1 = 9223372036854775807)
o
Automatycznie zmienia na long (36 bajtów) gdy ten limit
15
zostaje przekroczony i dynamicznie zmienia rozmiar
Liczby zmiennoprzecinkowe
(float, double)
o
Rozbite na dwa elementy:
ab
o
a - mantysa (mantissa)
o
b - wykładnik (exponent)
o
Pewna ilość bajtów na jedno i drugie
o
W Pytonie float ma 8 bajtów - 1 bit znak, 11
bitów wykładnik, 52 bity mantysa
16
JAVA DATA TYPES
Groups Variable Type Storage Approximate Range
Integrals int 4 bytes +/- 2 billion
short 2 bytes +/- 32,767
long 8 bytes +/- 9.2 x 1018
byte 1 byte -128 to 127
Floating-point float 4 bytes 7-8 digits
double 8 bytes 16-17 digits
Character char 2 bytes 65,536
Boolean boolean 1 bit true and false
Zmienne znakowe - ASCII
18
OPERATORY

Arytmetyczne (+,-,/....)

Jednoargumentowe (Unary) (!,~,-,++...)

Przypisania (Assignment) (=,+=...)

Porównania (Relational) (==, !=, <=...)

Logiczne (and, or not) i bitowe (&, |, ~)

Przynależności (in)
ARYTMETYCZNE JEDNOARGUMENTOWE
+ Addition - Arithmetic negation
- Subtraction (also unary minus) ! Logical negation
* Multiplication ++ Increment
/ Division -- Decrement
% Modulus (remainder from division)
** Exponent
// Floor division
Styl
o
Zbiór wytycznych w języku programistycznym
nie wpływających na działanie programu
o
Wpływa na czytelność kodu
o
Nazewnictwo zmiennych
o
Wcięcia kodu, spacje, komentarze
o
PEP 8  obowiÄ…zujÄ…cy styl Pythona
Styl PEP 8  wcięcia i linijki
o
Wcięcia na 4 spacje
o
Bez tabulatorów (chyba że edytujemy plik w
którym już ich używano)
o
Puste linie :
" Pomiędzy klasami 2
" Pomiędzy metodami, funkcjami, atrybutami 1
o
Znaków w linii 72
21
Styl PEP 8 - spacje
o
Spacje
" po przecinku, nie przed
" dookoła operatorów
o
Brak spacji
" dookoła operatorów jednoargumentowych
" przed otwarciem nawiasu lub klamry
" Puste linie
22
Styl PEP 8 - komentarze
o
Komentarz na poczÄ…tku pliku informuje o
użytym kodowaniu ASCII (np. US-ASCII lub
UTF-8)
o
Blok dokumentacyjny na poczÄ…tku skryptu
o
Komentarze zazwyczaj po #
o
Każda funkcja udokumentowana po
nagłówku:
def funkcja_add(self):
" " " Opis funkcji & .
" " "
23
Styl PEP 8  nazewnictwo
o
WIELKIMI_LITERAMI
Stałe -
o
ZWielkichLiter
Klasy - (jak w JAVA)
o
male krotkie
Zmienne - , ,
o
a,b,c
Zmienne lokalne tymczasowe -
o
podkresl_jesli_konieczne
Funkcje -
24


Wyszukiwarka

Podobne podstrony:
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Podstawy Programowania Wersja Rozszerzona
Visual C 6 0 Podstawy programowania
matlab podstawy programowania
JP SS 2 algorytmy i podstawy programowania
Podstawy programowania II 2
podstawy programowania 5
Podstawy programowania  11 2013
podstawa programowa
podstawa programowa
Podstawy Programowania
Delphi podstawy programowania rejestr systemowy
wychowanie fizyczne w nowej podstawie programowej
ćw 05 podstawy programowania
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 8
[C ]Rataj Podstawy programowania obiektowego
Podstawy programowania programy 17 12 2013
podstawa programowa z plastyki nowa

więcej podobnych podstron