c++, wyklad c1

background image

Wprowadzenie do programowania strukturalnego.

Język programowania – C/C++.

Zagadnienia:

1. Pojęcia elementarne z zakresu architektury i programowania komputerów.
2. Systemy liczbowe.
3. Etapy tworzenia programu.
4. Podział języków programowania.
5. Język C/C++ - krótka charakterystyka.

background image

Pojęcia elementarne

1. Bit

Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry

w systemie (liczbowym) dwójkowym. Może przyjmować dwa stany 0 lub 1.

4. Rejestr

Pamięć o pojemności jednego słowa lub jego części lub wielokrotności o dużej
szybkości dostępu. Rejestry stanowią ważną część architektury procesora.

3. Bajt

Ciąg ośmiu bitów, stanowiący porcję informacji, przechowującą jeden znak
alfanumeryczny lub liczbę z zakresu 0-255.

2. Słowo

Ciąg bitów, stanowiących porcję danych.

Ustalona dla danego komputera (procesora) pojemność komórki pamięci (rejestru).
Najczęściej słowo jest wielokrotnością bajtu.

background image

Pojęcia elementarne

5. Rozkaz

a) Elementarna operacja wykonywana przez procesor, np.:

- dodaj dwie liczby,

- odejmij od akumulatora,

- pomnóż,

- podziel,

- załaduj do rejestru,

- skocz do etykiety,

- złóż na stosie.

Każdy procesor posiada tzw. listę rozkazów. Listy rozkazów mogą być

długie (rozbudowane) – procesory z rozkazami multimedialnymi lub
krótkie (zredukowane) – architektura typu RISC . Rozkazy z listy
rozkazowej w przedstawione w postaci mnemonicznej składają się na język
asemblera danego procesora.

b) Sekwencja bitów stanowiąca kod polecenia dla procesora.

background image

6. Akumulator

Wyróżniony rejestr procesora, biorący udział w operacjach arytmetycznych
i logicznych, często z założenia dane aby operacja była przeprowadzona
muszą znajdować się właśnie w akumulatorze. Akumulatorów może być
więcej niż jeden.

Pojęcia elementarne

7. Pamięć

Jeden z podstawowych modułów komputera mogący przyjmować,
przechowywać (pamiętać) i udostępniać dane w postaci niezmienionej. W
pamięci przechowywane są dane oraz programy. Pamięć jest
charakteryzowana przez dwa podstawowe parametry:

-

pojemność (wyrażaną w: B, KB, MB, GB, TB),

-

czas dostępu (ms, ns)

background image

8. Plik

Najmniejszy adresowalny zbiór (danych lub program) przechowywany w
pamięci zewnętrznej.

Pliki mogą zawierać dane lub programy. Dane mogą być w postaci
tekstowej (znakowej) lub binarnej (określonej standardem lub w postaci
dowolnie określonych, z poziomu programu, rekordów).

Pojęcia elementarne

9. System plików

Sposób organizacji plików w danym systemie operacyjnym. Najczęściej
spotykaną jest struktura hierarchiczna wykorzystująca system katalogów plików
(grup).

10. Komputer cyfrowy

Urządzenie (zespół urządzeń) działających automatycznie, służących do
przetwarzania danych w postaci dyskretnej (cyfrowej).

background image

Pojęcia elementarne

14. Algorytm

Sekwencja (zbiór) dokładnie określonych (jednoznacznych) czynności wraz
kolejnością ich wykonywania (porządkiem).

15. Program komputerowy

Algorytm zapisany w języku programowania (zapisany na nośniku w postaci

pliku źródłowego lub wykonywalnego).

16. Instrukcja

Elementarny składnik programu opracowywanego przez programistę.

Instrukcja przekłada się na jeden lub więcej rozkazów procesora.

background image

Pojęcia elementarne

17. Język programowania

Język formalny zapewniający komunikację człowieka (programisty) z

komputerem przeznaczony do opisu danych oraz algorytmów ich
przetwarzania w komputerze.

18. Język formalny

Odpowiednio zorganizowany system określonych znaków, których

znaczenie jest dokładnie zdefiniowane oraz zbiór reguł postępowania
uwzględniający zasady przyjętej gramatyki formalnej.

20. Składnia i semantyka języka programowania

Inaczej alfabet i gramatyka języka programowania.

Pojęcia charakteryzujące język programowania. Składnia języka jest to zbiór
sekwencji znaków dopuszczalnych w danym języku programowania.
Semantyka języka jest to znaczenie poszczególnych sekwencji znaków.

background image

Systemy liczbowe

System liczbowy (system liczenia) jest to

zbiór znaków (cyfr) i zasady ich uporządkowania, pozwalające dokonać
zapisu dowolnej liczby i przyporządkować jej określoną nazwę.

Powszechnie stosowanym jest system liczbowy pozycyjny, w którym stosuje
się zapis pozycyjny. W systemie pozycyjnym dowolną liczbę przedstawia się
wg zależności:

gdzie:
L – wartość liczby w systemie dziesiętnym,
N- podstawa systemu liczbowego,
n- numer pozycji,

- współczynnik (cyfra) przyjmujący wartości z przedziału [0,N-1].

0

0

1

1

1

1

0

1

1

....

......

N

a

N

a

N

a

N

a

a

a

a

a

L

n

n

n

n

n

n

+

+

+

+

=

=

n

a

background image

Podstawa systemu liczbowego jest jego wyróżnikiem . W zależności od

podstawy mamy do czynienia z:

-

systemem dwójkowym (binarnym) – N=2, cyfry 0 i 1;

10101011=

-

systemem ósemkowym (oktalnym) – N=8, cyfry 0-7,

253=

zapis liczby w C++ > 0253

-

systemem dziesiętnym (decymalnym) – N=10, cyfry 0-9;

171=

-

systemem szesnastkowym (heksadecymalnym) – N=16, cyfry 0-9 i A-F.

AB=

zapis liczby w C++ > 0xAB

Należy zwrócić uwagę na fakt, iż systemy ósemkowy i szesnastkowy są

pochodną systemu dwójkowego, stąd łatwość ich zamiany.

Systemy liczbowe

171

2

*

1

2

*

1

2

*

0

2

*

1

2

*

0

2

*

1

2

*

0

2

*

1

0

1

2

3

4

5

6

7

=

+

+

+

+

+

+

+

171

8

*

3

8

*

5

8

*

2

0

1

2

=

+

+

171

10

*

1

10

*

7

10

*

1

0

1

2

=

+

+

171

16

*

11

16

*

10

0

1

=

+

background image

Etapy tworzenia programu

Błędy logiczne

Kod wynikowy

Konserwacja programu (usuwanie
błędów wykrytych na etapie
użytkowania, zmiany inicjowane
przez użytkownika.

Błędy logiczne

Kod wynikowy

Testowanie programu (usuwanie
błędów logicznych- program działa
lecz nie tak jak powinien).

Błędy wykonania

Kod wynikowy (binarny,
maszynowy)

Uruchamianie – scalanie programu i
wykorzystywanych podprogramów
bibliotecznych (usuwanie błędów
wykonania np. dzielenie przez zero) .

Błędy syntaktyczne

Kod źródłowy, plik tekstowy

Kompilacja, edycja (usuwanie błędów
kompilacji, syntaktycznych).

Kod źródłowy, plik tekstowy

Zapis algorytmu w języku
programowania.

Błędy

Wynik etapu

Nazwa etapu

background image

Podział języków programowania

Wyróżniamy kilka kryteriów podziału języków programowania.

1.

Kryterium poziomu – języki: niskiego, wysokiego poziomu.

2.

Kryterium sposobu wykonania programu – języki: kompilowane,
interpretowane.

3.

Kryterium modularyzacji – języki: strukturalne, niestrukturalne.

background image

Podział języków programowania

Języki niskiego i wysokiego poziomu

Język niskiego poziomu – asembler

Instrukcje asemblera są wiernym odwzorowaniem listy rozkazowej
procesora, co za tym idzie, programy w asemblerze są dedykowane
na jeden lub co najwyżej pewną rodzinę procesorów, są
nieprzenoszalne.

W asemblerach brak jest kontroli zakresów.

Brak instrukcji iteracji.

Brak jest ograniczeń w operacjach na danych, rejestrach (operacje na
bitach, flagach).

Mała złożoność kompilatora (asemblera).

background image

Podział języków programowania

Języki niskiego i wysokiego poziomu

Język wysokiego poziomu – Modula-2, Ada, Pascal, COBOL, FORTRAN

Posiadają rozbudowany alfabet (duża liczba słów kluczowych),
instrukcje warunkowe i iteracji.

Duża złożoność kompilatorów.

Ś

cisła typizacja danych, kontrola zakresów dla tablic.

Ograniczenia w operacjach na danych, rejestrach (operacje na bitach,
flagach).

Większa przenoszalność programów napisanych języku wysokiego
poziomu w porównaniu z asemblerami (poziom systemu
operacyjnego).

A język C/C++ ?

background image

Języki kompilowane i interpretowane

Kompilatory i interpretery są programami działającymi na kodzie
ź

ródłowym. Ich zadaniem jest tłumaczenie kodu źródłowego na język

zrozumiały dla procesora, który jest wykonawcą wszystkich programów.

Interpreter - wczytuje wiersze kodu źródłowego programu i wykonuje
zawarte w nich instrukcje (tłumaczy na język maszynowy). Oznacza to,
ż

e programy napisane w języku interpretowanym muszą być wykonywane

za pośrednictwem interpretera.

Kompilator - wczytuje cały program i przekształca go (tłumaczy) na kod
wynikowy (maszynowy lub binarny). Wynikiem działania kompilatora ( i
konsolidatora, który dołącza skompilowane funkcje biblioteczne) jest
binarny plik wykonywalny, uruchamiany z poziomu systemu
operacyjnego.

background image

Strukturalne i niestrukturalne języki programowania

Językiem strukturalnym nazywamy język ze strukturą blokową
pozwalający definiować funkcje i procedury (także je zagnieżdżać).

Cechą charakterystyczną języków strukturalnych jest to, iż umożliwiają
ukrycie przed pozostałymi częściami programu instrukcji
pozwalających na wykonanie określonego zadania. Taką własność
nazywa się modularyzacją. Własność tą osiąga się poprzez stosowanie
właśnie podprogramów (procedur i funkcji) korzystających z
tymczasowych zmiennych lokalnych.

Dodatkową korzyścią stosowania podprogramów jest możliwość
wielokrotnego ich wykorzystania w różnych miejscach programu.

Języki strukturalne nie posiadają (lub nie zaleca się korzystania z)
instrukcji skoku

goto

. Oferowane przez nie instrukcje iteracji

umożliwiają pełną implementację algorytmów.

background image

Jezyk C/C++ - krótka historia

Twórcą języka C jest Denis Ritche (lata siedemdziesiąte XX wieku).
Pierwsza implementacja miała miejsce na komputerze DEC PDP-11 (w
Polsce znane jako MERA) z systemem UNIX.

Przez wiele lat standardem C była wersja rozprowadzana z systemem
UNIX wersja V (opis – rok 1978).

Opracowanie standardu ANSI C - rok 1983, a jego przyjęcie – rok 1989.
Standard ANSI C jest honorowany przez większość kompilatorów C++.

Język C++ stanowi rozszerzenie języka C, powstał już w roku 1983
początkowo pod nazwą „C with Classes”, jego autorem jest Bjorne
Struostrup z Bell Laboratories. C++ powstał zatem aby umożliwić
programowanie zorientowane obiektowo.

Standard ANSI C++ został zatwierdzony w roku 1994.

background image

Jezyk C/C++ - krótka charakterystyka

Język C/C++ jest językiem posiadającym cechy zarówno języka wysokiego jak i

niskiego poziomu, bywa nazywany językiem średniego poziomu.

Umożliwia wykonywanie operacji na bitach, bajtach i adresach (wskaźnikach).

Występują w nim typy danych, choć nie należy do języków ze ścisłą kontrolą typów.
Można na przykład zamiennie używać typu

char

i

int

. W instrukcjach przypisania C

dokonuje automatycznej konwersji typów. Nie sprawdza czy zostały przekroczone
zakresy tablic.

Posiada stosunkowo małą liczbę słów kluczowych (32 w ANSI C + 30 w ANSI C++).

Jest językiem nie w pełni strukturalnym, gdyż nie umożliwia zagnieżdżania definicji
funkcji.

C++ jest językiem zorientowanym obiektowo, przez co umożliwia programową
realizację wielkich projektów (opracowywanych przez wielu programistów).

Nadal posiada cechy języka niezwykle elastycznego wykorzystywanego do
rozwiązywania różnych zadań. Począwszy od realizacji oprogramowania
systemowego poprzez edytory tekstów na bazach danych kończąc.


Wyszukiwarka

Podobne podstrony:
WYKLAD 1 C1 5.10.2009, Prawo, Cywilne, Cyw 1
mt wyklad c1
mt wyklad c1
Test C1 Ochrona Środowiska, iś pw, semestr I, Ochrona Środowiska, zaliczenie wykładów
Napęd Elektryczny wykład
wykład5
Psychologia wykład 1 Stres i radzenie sobie z nim zjazd B
Wykład 04
geriatria p pokarmowy wyklad materialy
ostre stany w alergologii wyklad 2003
WYKŁAD VII
Wykład 1, WPŁYW ŻYWIENIA NA ZDROWIE W RÓŻNYCH ETAPACH ŻYCIA CZŁOWIEKA
Zaburzenia nerwicowe wyklad
Szkol Wykład do Or
Strategie marketingowe prezentacje wykład
Wykład 6 2009 Użytkowanie obiektu
wyklad2

więcej podobnych podstron