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, 
- mgr inż. Maria Dziuba,
- mgr inż. Marcin Kondracki

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

Andrzej.Studnicki@polsl.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 

stałych, 

operatory 

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 

są 

związane 

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ę -termin 
10 listopad lub zadanie inżynierskie 
przygotowane przez prowadzącego laboratorium 
– twermin 2 grudzień, 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

-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.0 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 

są 

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 

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ą 

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


Document Outline