W 1

background image

AJ

AJ

S

S

„Język

programowania”

Rozwijanie zdolności

logicznego

i precyzyjnego inżynierskiego

myślenia

poprzez naukę

programowania.

background image

AJ

AJ

S

S

Zakładane wyniki

nauki:

umiejętność budowania

algorytmów dla rozwiązywania
podstawowych problemów
inżynierskich,

opanowanie podstaw

języka programowania C++,

umiejętność myślenia

programistycznego.

background image

AJ

AJ

S

S

Główny prowadzący przedmiot:

dr inż. Andrzej

Studnicki

Osoby prowadzące laboratorium:

- dr inż. Krzysztof Janerka,
- dr inż. Jacek Suchoń
- dr inż. Andrzej Studnicki,
- dr inż. Dariusz Bartocha,

background image

AJ

AJ

S

S

Instytut Materiałów

Inżynierskich

i Biomedycznych

Zakład Odlewnictwa

Wydział Mechaniczny

Technologiczny

Politechniki Śląskiej

Gliwice ul. Towarowa 7

tel.231-60-31

sekrmt3@zeus.polsl.gliwice.pl

background image

AJ

AJ

S

S

Zakres tematyczny wykładu obejmuje:

1.analizę problemu na przykładach

ściśle związanych z kierunkiem
studiowania i poszukiwanie metody
(metod) jego rozwiązywania,

2. projektowanie algorytmów według

wybranej

metody

rozwiązywania

problemu – budowanie schematów
blokowych

background image

AJ

AJ

S

S

Cd Zakres tematyczny wykładu

obejmuje:

3. podstawy programowania w języku
C++

(struktura

programu,

typy

danych,

deklaracje

zmiennych

i

stałych,

operatory

i

wyrażenia,

instrukcje, funkcje),

4. wybrane algorytmy i ich programy
(np. sortowanie, przeszukiwanie).

background image

AJ

AJ

S

S

Laboratorium obejmuje

ćwiczenia

praktyczne

(programowanie w C++) dające
prawidłowe nawyki i właściwe
podejście

do

rozwiązywania

problemów.

Ćwiczenia

praktyczne

związane

z

kierunkiem studiowania.

background image

AJ

AJ

S

S

Ćwiczenia laboratoryjne obejmują:

-

podstawy C++ (obsługa zintegrowanego

środowiska C++, struktura programu, typy
danych, wyrażenia i operatory),

- stopniowe wprowadzanie instrukcji C++
(instrukcje wejścia, wyjścia, warunkowe,
obliczeń cyklicznych-pętle),

- zastosowanie funkcji w programie,

- wybrane funkcje graficzne w C++

- podstawy programowania obiektowego w
C++,

- umiejętność czytania programów w C++.

background image

AJ

AJ

S

S

Tematy ćwiczeń laboratoryjnych

 

„Język Programowania”

 
 

1.

Ogólna struktura i podstawowe elementy
programu źródłowego w C++ - program
sekwencyjny

1.1.   Obsługa zintegrowanego środowiska pracy

C++, Ogólna

struktura programu źródłowego w C++,

operacje wejścia-

wyjścia
1.2.   Program sekwencyjny – proste typy danych,

wybrane

operatory, funkcje biblioteczne

(matematyczne)

 
2.     

Podejmowanie decyzji w programie

2.1.   Instrukcja warunkowa – if...else, operatory

relacyjne i

logiczne,
2.2.   Instrukcja wyboru – switch...case.

background image

AJ

AJ

S

S

Tematy ćwiczeń laboratoryjnych cd

 

„Język Programowania”

 
 

3.

Organizacja obliczeń cyklicznych w
programie (pętle)

3.1.   Pętle o nieokreślonej liczbie powtórzeń –

instrukcje

while i do-while,
3.2.   Pętla o określonej liczbie powtórzeń –

instrukcja for.

 
4.     

Instrukcje sterujące przebiegiem

programu

4.1.   Wykorzystanie instrukcji sterujących w

pisaniu

programów.
 
5.     

Zmienne strukturalne w języku C++

5.1.   Tablice w języku C++ - tablice liczbowe.   

background image

AJ

AJ

S

S

Tematy ćwiczeń laboratoryjnych cd

„Język Programowania”

 

 

6.

Konstruowanie funkcji w języku C++

6.1.   Programowanie własnych funkcji w języku

C++,

6.2.   Wykorzystanie funkcji iteracyjnych i

rekurencyjnych w

programowaniu.
 
7.     

Wskaźniki w języku C++

7.1.   Posługiwanie się typem wskaźnikowym w

programowaniu,

7.2.   Wykorzystanie wskaźników w operowaniu

tablicami.

Dynamiczny przydział pamięci.
 

background image

AJ

AJ

S

S

Tematy ćwiczeń laboratoryjnych

cd

„Język Programowania”

 

 

8.    

Programy graficzne w języku C++

wykorzystujące
bibliotekę graph

8.1.   Tworzenie prostej grafiki punktowej w
języku C++ przy
użyciu funkcji standardowych,
 
9.   

 Obsługa plików dyskowych w C++ - file

handling

9.1.   Zapis i odczyt prostych plików
tekstowych i binarnych.
 
10. 

Wprowadzenie do programowania

obiektowego w C++

10.1. Początki programowania obiektowego w
C++

background image

AJ

AJ

S

S

- uczestnictwo w zajęciach lab. (dopuszczalne 2
zajęcia nieusprawiedliwione),

- zaliczenie dwóch kolokwiów na komputerach
(pisanie programów 40 min., poprawa nie
zaliczonych kolokwiów tylko na konsultacjach),

- wcześniejsze zaliczenie laboratorium (zestaw
zadań przygotowany przez wykładowcę lub
zadanie inżynierskie przygotowane przez
prowadzącego laboratorium, termin 15 listopad,
obrona na konsultacjach-listing programu
źródłowego, dyskietka z programem źródłowym,
oceny 4, 4.5, 5 zwalniają z wykładów),

- zaliczenie wykładów (1 kolokwium),

warunki zaliczenia
przedmiotu

background image

AJ

AJ

S

S

-ocena końcowa z przedmiotu:

O

K

= 0.6*O

W

+ 0.4*O

L

- zaliczenie laboratorium w normalnym
toku zajęć na ocenę 5 zwalnia z zaliczania
wykładów i staje się oceną końcową z
przedmiotu,

- możliwość podwyższenia oceny
końcowej (na 3.5, 4.0) na konsultacjach
po zaliczeniu wybranego przez
prowadzącego zadania z zestawu

- możliwość podwyższenia oceny
końcowej (z 4 na 4.5, 5.0) tylko po
obronie napisanego programu z zestawu
zadań przygotowanego przez wykładowcę

warunki zaliczenia
przedmiotu cd

background image

AJ

AJ

S

S

Język niskiego poziomu

(asemblery)

–szybkość i efektywność kodu wynikowego
programów.

Język wysokiego poziomu

łatwiejsza

przenośność

programów,

prostszy zapis algorytmu.

C++

- ogólna charakterystyka

„Język wysokiego, ale dostatecznie

niskiego poziomu” – synteza

background image

AJ

AJ

S

S

 Autorami pierwszego standardu

języka C są

Kernighan i Ritchie

Bjarne Stroustrup

z

Laboratorium Bella firmy AT&T jest

twórcą C++ - początek lat 80

background image

AJ

AJ

S

S

1. Struzińska-Walczak A., Walczak K.:

Nauka programowania dla początkujących
C++.

Wyd. W&W, Warszawa 2000,

2. Zalewski A.: Programowanie w językach C
i C++ z wykorzystaniem pakietu Borland
C++. Wyd. Nakom, Poznań 2000,

3. Snaith P.:

Nie tylko dla orłów C++.

Wyd.

Intersoftland, Warszawa 2000,

4.

N.M.Josuttis:

C++

Biblioteka

standardowa. Podręcznik Programisty.

Wyd.

Helion, Gliwice 2003,

Literatu
ra

background image

AJ

AJ

S

S

5. Wróblewski P.: Algorytmy struktury
danych i techniki programowania. Wyd.
Helion, Gliwice 1997,

6. Bentley J.: Perełki oprogramowania.
WNT, Warszawa 1992,

7.

Wirth N

.: Algorytmy+struktury danych =

programy. WNT, Warszawa 1989,

Literatu
ra

background image

AJ

AJ

S

S

1. Wróblewski P.: Język C++ dla programistów.
Wyd. Helion, Gliwice 1994,

2. Kernighan B., Ritchie D.: Język C. WNT,
Warszawa 1988

3. Lippman S.: Podstawy języka C++. WNT,
Warszawa 1994,

4. Delanoy C.: Ćwiczenia z języka C++. WNT,
Warszawa 1993,

5. Ragen A.: Leksykon języka C. WNT, Warszawa
1990,

6. Kopacz T.: Język C w praktyce Turbo C i C++.
Wyd. Mikom, Warszawa 1993,

7. Wróblewski P.: Od C do Asemblera. Wyd.
Helion, Gliwice 1992,

8. K.Loundon: C++ Leksykon kieszonkowy. Wyd.
Helion, Gliwice 2003.

background image

AJ

AJ

S

S

Wirth N.: Algorytmy+struktury danych = programy. WNT,
Warszawa 1989,

„... programowanie
stało się dziedziną
wiedzy, której
opanowanie ma
zasadnicze znaczenie
przy rozwiązywaniu
wielu problemów
inżynierskich, ...”

Niklaus Wirth

background image

AJ

AJ

S

S

Programowanie jako
umiejętność rozwiązywania
problemów

Wykonan
ie
program
u

Dane

Wyniki

Proble
m

Sprawa do
rozwiązania

Algoryt
m

Sposób, przepis rozwiązania
danego problemu w
skończonej liczbie kroków

Progra
m

Sformalizowany zapis
algorytmu w danym języku
programowania

background image

AJ

AJ

S

S

Algorytm

w sensie

ogólnym określa
sposób wykonania
pewnego zadania,
rozwiązania
określonego
problemu, czy
osiągnięcia
zamierzonego celu

background image

AJ

AJ

S

S

Algorytm

opracowany dla

progra-mu

określa sposób

przekształcenia danych
wejściowych w dane wyj-
ściowe zgodnie z celem

(dla realizacji jednego celu
można zastosować wiele
algorytmów)

background image

AJ

AJ

S

S

Algorytm składa się z
opisu:

-

obiektów

, na których

wykony-wane są

działania,

-

działań

realizujących

cel algorytmu,

-

kolejności działań

.

background image

AJ

AJ

S

S

PROBLEM 1

Korekta zawartości węgla w
piecu metalurgicznym przy
wytopie żeliwa szarego

DANE

       -

norma określająca zawartość węgla w

wytapianym gatunku żeliwa,

       - masa ciekłego metalu w piecu,

       - dostępne materiały wsadowe do korekty
zawartości węgla,

       - analiza chemiczna zawartości węgla w
wytapianym żeliwie.

background image

AJ

AJ

S

S

START

STOP

DANE

CC

max

Oblicz dodatek wsadu
obniża-jący węgiel
(złom stalowy)

CC

min

Oblicz dodatek wsadu
zwiększający węgiel
(grafit)

Dodaj do wsadu

Dodaj do wsadu

T

T

N

N

background image

AJ

AJ

S

S

PROBLEM

PROBLEM

2

2

Drzwi z zamkiem na
hasło. Po 3-krotnym
błędnym wpisaniu hasła
ma uruchomić się alarm.

 

 

DANE

- hasło definiowane jako stała (możliwość

- hasło definiowane jako stała (możliwość

zmiany tylko w programie źródłowym)

zmiany tylko w programie źródłowym)

background image

AJ

AJ

S

S

STAR
T

Utwórz wzór hasła

Wprowadź hasło

Poprawne

Dodaj p+1

p>3

Otwórz drzwi

Włącz alarm

STOP

N

T

N

T

background image

AJ

AJ

S

S

PROBLEM 3

 

 

Ustalenie spawalności stali
konstrukcyjnej dla
opracowania optymalnej
technologii spawania.

 

DANE

 

 

-  

-  

     

      skład chemiczny stali konstrukcyjnej

background image

AJ

AJ

S

S

STAR
T

STOP

Skład chemiczny
stali

Oblicz równoważnik
węgla Rc

Wybór Rc

Rc0.4

0.4<Rc0.48

0.48<Rc0.5

5

Rc>0.
55

Stal łatwospawalna

Stal spawalna po
podgrzaniu lub
elektrodą zasadową

Stal spawalna po
podgrzaniu tylko
elektrodą zasadową

Stal niespawalna

Podaj technologię
spawania

background image

AJ

AJ

S

S

Schemat

blokowy jest

graficznym

zapisem

algorytmu,

pokazuje

następstwo

działań,

nazywany jest

też siecią

działań.

SCHEMAT

BLOKOWY

background image

AJ

AJ

S

S

Metody tworzenia algorytmu i jego
zapisu w postaci schematu blokowego
(sieci działań):

metoda od szczegółu do

ogółu

polega na wyodrębnieniu w

problemie

małych

fragmentów,

które

po

oddzielnym

opisaniu

składane w coraz większe
części aż do otrzymania
całego pełnego algorytmu
realizującego problem.

background image

AJ

AJ

S

S

metoda od ogółu do

szczegółu

polega na ogólnym zapisaniu
całego

problemu

bez

szczegółowego analizowania
jego

fragmentów.

Po

otrzymaniu

podstawowego

algorytmu należy przystąpić
do

podobnej

analizy

poszczególnych fragmentów.

Metody tworzenia algorytmu i jego
zapisu w postaci schematu blokowego
(sieci działań):

background image

AJ

AJ

S

S

Postać graficzna podstawowych bloków

wykorzystywanych w schematach blokowych

blok początkowy

(rozpoczyna
algorytm)

Start

blok we/wy

(określa

nazwy

danych

wprowa-dzanych

i

wyprowadzanych

przez

program)

Dane

blok operacyjny

(określa działanie, które
może zmienić wartość
zmiennej)

Działanie

background image

AJ

AJ

S

S

Warunek

nie

tak

blok warunkowy (decyzyjny)

(rozdziela

wykonywanie

algorytmu na dwie drogi w
zależności od spełnienia
tak
lub niespełnienia warunku;
nie zmienia stanu zmiennych)

Zmienn

a=

w1

w2

w3

w
n

blok wyboru

(wybiera

jedną

z

wielu

możliwych dróg algorytmu, na
podstawie aktualnej wartości
wyrażenia)

Postać graficzna podstawowych bloków

wykorzystywanych w schematach blokowych

cd

background image

AJ

AJ

S

S

Postać graficzna podstawowych bloków

wykorzystywanych w schematach blokowych

cd

Blok kolekcyjny

(łączy dwie różne drogi
algorytmu)

Blok końcowy

(kończy
algorytm)

Stop

Blok podprogramu

(określa nazwę procedury lub
funkcji i jej zadanie)

Nazwa

Funkcj

a

background image

AJ

AJ

S

S

Postać graficzna podstawowych bloków

wykorzystywanych w schematach blokowych

cd

3/5

Blok wyjściowy
łącznika
międzystr.

Blok
wejściowy
łącznika
międzystr.

3/5

Blok
wyjściowy
łącznika na
stronie

Blok wejściowy
łącznika na
stronie

1

1

background image

AJ

AJ

S

S

Proces tworzenia i uruchamiania
programów w C++

Każdy nowoczesny kompilator
zawiera :

Edytor

Program do wpisywania i modyfikowania

tekstów programów (kodów źródłowych)
[*.cpp],

Kompilator

Program do sprawdzania poprawności i

wyszukiwania formalnych błędów w kodzie
źródłowym. Gdy kod jest poprawny kompilator
przekształca go w plik binarny [*.obj]),

Konsolidator

(linker) Program, który do pliku

binarnego(skompilowanego) dołącza z bibliotek
(*.lib) kody maszynowe gotowych do użycia funkcji i
tworzy program wykonywalny (program wynikowy,
maszynowy) na komputerze [*.exe]).

background image

AJ

AJ

S

S

Komput
er

Kod
źródłowy

program
źródłowy

[*.cpp]

Kod
kompilowany

kod binarny

[*.obj]

Kod
wykonywalny

Kod maszynowy

[*.exe]

Zintegrowane
środowisko pracy

background image

AJ

AJ

S

S

background image

AJ

AJ

S

S

September 28 2002 :

September 28 2002 :

Dev-C++ 5 Beta

Dev-C++ 5 Beta

6 (4.9.6.0)

6 (4.9.6.0)

PC FORMAT CD#27

PC FORMAT CD#27

Listopad 2002

Listopad 2002

Strona internetowa

Strona internetowa Bloodshed

Bloodshed

Software

Software

http://

http://

www

www

.

.

bloodshed

bloodshed

.net

.net

background image

AJ

AJ

S

S

Ogólny schemat kodu źródłowego
programu w C++

#include <iostream.h>

#include <conio.h>

#include <math.h>

#include
“nazwa_uzytkownika”

#define stala 2

main()

 {

int liczba, suma=0, iloczyn=1;

clrscr;

cout<<”Podaj pierwsza liczbe”<<endl;

cin>>liczba;

while (liczba!=0)

{

suma+=liczba;

iloczyn*=liczba;

cin>>liczba;

}

cout<<”Suma liczb wynosi” <<suma<<endl;

cout<<”Podwojony

iloczyn

liczb

wynosi”<<iloczyn*stala<<endl;

getch();

return 0;

}

funkcja główna - start

funkcja główna - start

programu

programu

lista wszystkich

lista wszystkich

zmiennych

zmiennych

ciąg instrukcji

ciąg instrukcji

realizujący

realizujący

dany algorytm

dany algorytm

dyrektywy
preprocesora

background image

AJ

AJ

S

S

#

#

main(

main(

)

)

{

{

}

}

dyrektywy preprocesora:

#include –dołącz pliki
nagłówkowe
#define –zdefiniuj stałe

funkcja główna - start

funkcja główna - start

programu

programu

deklaracja zmiennych i ciąg instrukcji

deklaracja zmiennych i ciąg instrukcji

realizujący dany algorytm

realizujący dany algorytm

background image

AJ

AJ

S

S

#

#

main( )

main( )

{

{

}

}

Zadania
preprocesora

- definiowanie
makrodefinicji
upraszczających
postać kodu
źródłowego,
- włączanie tekstów
innych plików,
- sterowanie
przebiegiem
kompilacji

background image

AJ

AJ

S

S

Typy danych w
C++

Typ danych

definiuje

zakres lub zbiór
dopuszczalnych wartości
dla stałej, zmiennej,
wyrażenia, funkcji oraz
zbiór dopuszczalnych
operacji wykonywanych na
tych wartościach. Określa
też format zapisu w
pamięci.

background image

AJ

AJ

S

S

1.

Typy proste

(skalary)

- arytmetyczne (

całkowite i

rzeczywiste

)

- wskaźnikowe,

- referencyjne.

Typy danych w
C++

2.

Typy

strukturalne

(złożone)

-

tablice

,

- struktury,

- unie,

- klasy.

background image

AJ

AJ

S

S

Typy całkowite

(skończone , przeliczalne podzbiory zbioru liczb

całkowitych)

Słowa kluczowe określające typy całkowite

char

typ znakowy

int

typ całkowity

long

typ tzw.długich liczb

całkowitych

signed

liczby ze znakiem

short

typ tzw.krótkich

liczb całkowitych

unsigned

liczby bez znaku

background image

AJ

AJ

S

S

Typy całkowite

(skończone , przeliczalne podzbiory zbioru liczb
całkowitych)

Typ

Rozmiar

w bitach

min

max

unsigned
char

8, jeden

znak

0

255

char,
signed
char

8, jeden

znak

-128

127

int, signed
int

16

-32768

32767

unsigned
int

16

0

65535

long
unsigned
int

32

0

4294967

295

long
signed int

32

-

2147483

648

2147483

647

background image

AJ

AJ

S

S

char a, b=‘F’;

int x, y=2;

long k;

inicjowanie

składnia

typ całkowity identyfikator[=wartość zainicjowana

Deklaracje

i

inicjacja

zmiennych całkowitych

background image

AJ

AJ

S

S

Typy rzeczywiste

(skończone , przeliczalne
podzbiory zbioru liczb
rzeczywistych)

Typ

Rozmi

ar w

bitach

min

max

Liczba

znaczący

ch cyfr

float

32

3.4E-38 3.4E38

6

double

64

1.7E-

308

1.7E30

8

15

long

double

80

3.4E-

4932

1.1E49

32

18

background image

AJ

AJ

S

S

Typy rzeczywiste

(skończone , przeliczalne podzbiory zbioru liczb
rzeczywistych)

Pojęcie znaczących cyfr

Pojęcie znaczących cyfr

Liczbę rzeczywistą w pamięci komputera

Liczbę rzeczywistą w pamięci komputera

zapisuje się w postaci dwóch liczb (mantysa,

zapisuje się w postaci dwóch liczb (mantysa,

cecha)

cecha)

L=mantysa*10

L=mantysa*10

cecha

cecha

Dla

Dla float

float

liczba 1254986719873674.678

liczba 1254986719873674.678

zostanie zapisana w 0.125498 E16

zostanie zapisana w 0.125498 E16

A więc zostanie zaokrąglona do

A więc zostanie zaokrąglona do

wartości: 1254980000000000

wartości: 1254980000000000

background image

AJ

AJ

S

S

float a, b=123.16e10;

double x, y=-145.67;

long double k;


inicjowanie

składnia

typ rzeczywisty identyfikator[=wartość
zainicjowana

Deklaracje i inicjacja zmiennych
rzeczywistych


Document Outline


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron