background image

 

 

 

 

„Metody kompleksowego zarz dzania jako ci . Opracowanie programu 

do kart kontrolnych wła ciwo ci liczbowych. Karta kontrolna  redniej 

ruchomej” 

 

 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

SPIS TRE CI 

 

I.

  WST P……………………………………………………………………….........

 2 

II.

  METODY KOMPLEKSOWEGO ZARZ DZANIA JAKO CI ………………. 4 

1.

 

Metody planowania……………………………………………………  4 

2.

 

Metody i techniki organizowania pracy………………………………  5 

3.

 

Metody motywowania…………………………………………………  7 

4.

 

Techniki kontroli mened erskiej……………………………………….. 11 

III.

  STATYSTYCZNA ANALIZA WYDOLNO CI PROCESU…………………… 14 

1.

 

Badanie wydolno ci procesu przy alternatywnej ocenie wła ciwo ci 

produktu………………………………………………………………..  15 

2.

 

Badanie wydolno ci procesu przy liczbowej ocenie wła ciwo ci 

produktu………………………………………………………………..  15 

IV.

  STEROWANIA PROCESAMI ZA POMOC  KART KONTROLNYCH…….  17 

V.

  WST P DO PROGRAMOWANIA W J ZYKU C/C++…………………………

 21 

1.

 

Wprowadzenie......................................................................................... 21 

2.

 

Operatory.................................................................................................. 23 

3.

 

Instrukcje................................................................................................. 25 

4.

 

Funkcje.................................................................................................... 28 

5.

 

Budowa programu. ................................................................................. 31 

6.

 

Klasy i obiekty......................................................................................... 31 

7.

 

Dziedziczenie i polimorfizm................................................................... 33 

VI.

  PROGRAMOWANIE DLA WINDOWS Z WYKORZYSTANIEM 

OWL(OBIEKT WINDOW LIBRARY) ..................................................................

 35 

VII.

  PRAKTYCZNY CZ

 TWORZENIA PROGRAMU KART 

KONTROLNYCH.................................................................................................. 41 

VIII.

  BIBIOGRAFIA....................................................................................................... 58 

 
 
 
 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

I.  WST P 

 
U  podstaw  wszelkich  działa   człowieka  le y  ch   zaspokojenia  odczuwanych  potrzeb. 
Pierwotne potrzeby człowieka pozostaj  niemal niezmienione w całej historii cywilizacji. 
Od pocz tku swych dziejów człowiek odczuwa: 

  potrzeb  od ywiania si  w celu utrzymania procesów  yciowych 
  potrzeb   posiadania  ubrania  w  celu  ochrony  przed  oddziaływaniem 

czynników atmosferycznych 

  potrzeb   posiadania  mieszkania  jako  wydzielonej  przestrzeni  chroni cej 

przed bezpo rednim oddziaływaniem otoczenia 

  potrzeb  komunikowania si  w celu wymiany informacji 
  potrzeb  przemieszczania si . 

Poziom  wa no ci  tych  potrzeb  jest  okre lony  przez  rodowisko  naturalne,  a  tak e 
uwarunkowania społeczne i kulturalne.  
Zbiór  pierwotnych  potrzeb  człowieka,  zaliczanych  do  tak  zwanych  potrzeb  niedoboru, 
pozostaje niemal stały, o tyle technologie ich zaspokajania podlegaj  ci głym zmianom,  
a technologia zaspokajania potrzeb jest pewn  koncepcj  zwi zan  zwykle z praktycznym 
wykorzystaniem  wynalazku  lub  odkrycia  naukowego,  konkretny  wyrób  lub  usługa  jest 
natomiast realizacj  owej ogólnej koncepcji. 
W  systemach  społeczno-ekonomicznych  proces  zaspokajania  potrzeb  rozwija  si   pod 
wpływem  bod ców  emitowanych  przez  rynek.  Pierwotnym  ródłem  tych  bod ców  s  
rozbie no ci  mi dzy  istniej cym  i  oczekiwanym  poziomem  zaspokojenia  odczuwanych 
potrzeb.  Im  wyra niejsze  s  te  rozbie no ci oraz  im  zamo niejsza jest  popytowa strona 
rynku,  tym  silniejszy  jest  nacisk  na  doskonalenie  jako ci  oferowanych  na  tym  rynku 
produktów.  Produktów  takiej  sytuacji,  zwłaszcza  w  przypadku  owych  zamo niejszych 
rynków, jako  oferowanego produktu staje si  podstawowym i najbardziej efektywnym 
instrumentem  konkurencji  handlowej.  W  coraz  wi kszym  stopniu  pozycja 
przedsi biorstwa na rynku zale y od jako ci produkowanych wyrobów lub  wiadczonych 
usług. Wynika st d bezpo rednio,  e wszelkie problemy zwi zane z procesami kreowania 
i ochrony jako ci produktów nale y postrzega  w kontek cie uwarunkowa  rynkowych.  
Z punktu widzenia celów i potrzeb zarz dzania jako ci  rynek jest systemem relacyjnym, 
w  którym  kształtuj   si  zarówno  decyzje  konsumentów,  dotycz ce zakupu  konkretnych 
produktów,  jak  i  decyzje  konsumentów,  dotycz ce  zakupu  konkretnych  produktów,  jak  

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

i  decyzje  producentów  odniesieniu  do  jako ci  wytwarzanych  wyrobów  albo 

wiadczonych usług.  

 
 
 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

II.  METODY KOMPLEKSOWEGO ZARZ DZANIA JAKO CI  

 

1.  Metody planowania 

Ostatnie  dziesi ciolecie  cechuje  rosn ca  zmienno   i  zło ono   warunków  działania 
podmiotów  gospodarczych.  Powoduje  to,  e  nieustannie  poszukuje  si   sposobów 
rozpoznawania  i  ograniczania  niepewno ci  oraz minimalizacji  ryzyka,  jakie  towarzyszy 
podejmowanym  decyzjom,  zwłaszcza  strategicznym.  Rozpoznawaniu  przyszło ci  słu  
metody prognozowania i planowania, w ród których wyró niamy: 

a.

  Metody scenariuszowe 

Metoda scenariuszowa polega na budowie kilku wariantów scenariuszy przyszło ci, 
czyli  konstruowaniu  logicznego,  przypuszczalnego  opisu  zdarze ,  jakie  mog  
wyst pi  w przedsi biorstwie jego otoczeniu w przyszło ci, aby okre li  wła ciwe 
cele i przygotowa  odpowiednie strategie działania. 

 

b.

  Metody symulacyjne 

Termin  „symulacja”  w  nauce  oznacza  odwzorowanie  oraz  sztuczne  odtwarzanie  
i  na ladowanie  procesów  realnych  z  zastosowaniem  ró norodnych  modeli 
fizycznych, analogowych i matematycznych. 

 

c.

  Wykresy Gantta 

Za  pomoc   wykresu  Gantta  mo na  nie  tylko  planowa   i  kontrolowa   wykonanie 
planu,  ale  tak e  –  poprzez  zastosowanie  odpowiedniego  systemu  oznacze   – 
uwzgl dnia  zmienno  przebiegu wykonania zadania. 

 

d.

  Planowanie sieciowe 

Technik   planowania  sieciowego  stosuje  si   do  planowania  i  kontroli  realizacji 
zło onych  przedsi wzi   gospodarczych,  technicznych  organizacyjnych  przy 
zało eniu  racjonalnego  wykorzystania  zasobów.  Przykładem  zastosowania  tej 
techniki  mo e  by   planowanie  realizacji  du ych  inwestycji  lub  remontów 
kapitalnych,  uruchomienie  produkcji  nowego  wyrobu,  zorganizowanie  du ej 
imprezy itp. 

 

e.

  Metody analizy portfelowej 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Metody analizy portfela umo liwiaj  porównywanie, według jednolitych kryteriów 
ró nych  dziedzin  działalno ci  przedsi biorstwa  i  zarz dzanie  „portfelem”  tych 
działalno ci w celu uzyskania mo liwie najlepszej pozycji konkurencyjnej.  

 

f.

  Metodyka budowy biznes planu przedsi biorstwa 

Biznes  plan  to  przygotowywany  dla  celów  wewn trznych  lub  zewn trznych 
dokument  stanowi cy  zbiór  analiz,  prognoz  i  planów  opisuj cych  całe 
przedsi biorstwo  lub  pojedyncze  przedsi wzi cie  (np.  wprowadzanie  nowego 
produktu  na  rynek)  od  strony  celu,  przedmiotu,  zewn trznych  i  wewn trznych 
uwarunkowa  działalno ci, koniecznych do zaanga owania zasobów finansowych, 
osobowych  i  rzeczowych,  spodziewanych  efektów  finansowych,  osobowych  
i rzeczowych, spodziewanych efektów finansowych i czynników ryzyka.

1

 

 

2.  Metody i techniki organizowania pracy 

Analizuj c  pogl dy  ró nych  autorów  na  temat  metodologii  badania  i  projektowania 
organizatorskiego  a  nawet  technicznego  mo na  zauwa y ,  e  w  praktyce  istniej   dwie 
podstawowe metody projektowania i doskonalenia organizacji a mianowicie: 

  Metoda diagnostyczna. 
  Metoda prognostyczna. 

W  obu  metodach,  a  tak e  w  doskonaleniu  ka dego  ludzkiego  działania  nale y 
post powa   według  z  góry  okre lonej  procedury  organizacyjnej  zapewniaj cej  wysok  
sprawno  i efektywno . 
Metoda  diagnostyczna  bazuje  na  przekonaniu, 

e  organizacj   dotychczas 

funkcjonuj cego  systemu  mo na  usprawni   tylko  w  drodze  identyfikacji,  diagnozy  
i  oceny  stanu  istniej cego,  wykryciu  wszelkich  nieprawidłowo ci  oraz  zaprojektowaniu  
i  wdro eniu  niezb dnych  usprawnie .  Rozpoczynaj c  analiz   diagnostyczn   nale y 
precyzyjnie  ustali   cele  badawcze.  Ogólnym  celem  badania  jest  zawsze  poprawa 
organizacji lub zarz dzania a przez to sprawno ci funkcjonowania przedsi biorstwa jako 
cało ci,  natomiast  celem  szczegółowym  udoskonalenia  struktury  lub  organizacji 
przebiegu  działa   na  konkretnym  odcinku  działalno ci  przedsi biorstwa.  Badanie  
i  usprawnienie  organizacji  w  całym  systemie  jest  zazwyczaj  trudne,  dlatego  te  

                                                 

1

 „Metody sprawnego zarz dzania” Henryk Bieniok i zespół, Agencja Wydawnicza „Placet” Warszawa 

1999, str. 11-54 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

przedmiotem badania s  tylko niektóre starannie wybrane podsystemy przedsi biorstwa. 
W procesie wyboru przedmiotu badania nale y bra  pod uwag  kryteria: 

•  Ekonomiczne, uwzgl dniaj ce konieczno  likwidacji w skich ogniw, popraw  
indywidualnej  wydajno ci  pracy,  obni k   kosztów  własnych,  popraw  
efektywno ci, rentowno ci itp. 
•  Techniczne,  takie  jak  np.  konieczno   doprowadzenia  nowo  uruchomionej 
instalacji  do  pełnej  zdolno ci  produkcyjnej,  uruchomienie  produkcji  nowego 
wyboru, skróceniu cyklu produkcyjnego itp. 
•  Fizjologiczno-psychologiczne,  uwzgl dniaj ce  zmniejszeniu  zm czenia 
fizycznego  i  psychicznego  ludzi,  popraw   warunków  bhp,  zwi kszenie  komfortu 
pracy itp. 
•  rodowiskowe, 

uwzgl dniaj ce 

reakcj  

otoczenia 

oraz 

samych 

zainteresowanych. 

Podstaw  

metody prognostycznej jest przekonanie,  e dokonanie istotnego usprawnienia 

organizacji jest mo liwe jedynie w oderwaniu od istniej cych rozwi za , które obci aj  
psychicznie organizatora, a przez to rzutuj  ograniczaj co na projektowany system i nie 
pozwalaj  na nowatorskie spojrzenie.  
Główn   metod   prognostyczn   stworzon   przez  G.  Nadlera  jest  synteza  tzw.  systemu 
idealnego.  System  idealny  jest  pod  ka dym  wzgl dem  najdoskonalszy,  działaj cy  bez 
jakichkolwiek ogranicze  i realizuj cy swoje zadania w idealnych warunkach. Przy jego 
konstrukcji  przyjmuje  si   nierzeczywiste  zało enie  istnienia  doskonałych  warunków 
działania, w których system wypełnia w sposób idealny wyznaczone funkcje. Taki system 
ma oczywi cie charakter czysto teoretyczny, w praktyce nieosi galny, jednak operowanie 
tego typu wzorcem okazuje si  wysoce przydatne, gdy  uzyskany w ten sposób pó niej 
system  realny  charakteryzuje  si   wy szym  poziomem  rozwi za   ani eli  system 
otrzymany  w  drodze  mozolnej  analizy  i  doskonalenia  stanu  istniej cego  (zastosowanie 
metody diagnostycznej).  
System  Nadlera  udawania,  e  racjonalne  ukształtowanie  organizacji  nie  jest  wynikiem 
syntezy  usprawnionych  elementów,  lecz  odwrotnie,  pochodn   cało ciowej  koncepcji 
idealnej.  Kieruj c  si   dalej  musimy  poszuka   rozwi zania  realnego  (kompromisowego) 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

wychodz cego  od  koncepcji  idealnej  i  zbli aj c  j   stopniowo  do  koncepcji  spełniaj cej 
warunki ograniczaj ce istniej ce w realnej rzeczywisto ci.

2

 

 

3.  Metody motywowania 

Poprzez metody motywowania mo emy wyró ni : 

a.

  Zarz dzanie przez cele 

Idea  przewodnia  i  swoista filozofia  Zarz dzani  przez  cele  skoncentrowana jest na 
wspólnym  (przeło eni  i  podwładni)  okre laniu  negocjowaniu  celów,  wspólnym 
ustalaniu  mierników  po danych  wyników  ko cowych  oraz  na  wspólnych 
okresowych przegl dach i ocenie uzyskanych rezultatów. Wprowadzaj c powy sz  
ide  powinni my pami ta ,  e: 

•  Im  wi kszy  udział  kierowników  i  podwładnych  we  wspólnym 
precyzowaniu celów, tym wy sze prawdopodobie stwo ich realizowania, 
•  Podwładni, którzy sami okre laj  własne cele, albo współuczestnicz  w ich 
ustalaniu  uzyskuj   lepsze  wyniki  od  tych,  którym  cele  te  s   narzucane. 
Pracownicy, którzy postawili przed sob  konkretny cel osi gaj  lepsze wyniki 
od tych, którzy staraj  si  robi  tylko to, co do nich nale y. 
 

b.

  Zarz dzanie prze delegowanie uprawnie  

Naczeln   zasad   le c   u  podstaw  zarz dzania  przez  delegowanie  uprawnie   jest 
przekazywanie innej osobie, ni szym szczeblu zarz dzania cz ci formalnej władzy 
i odpowiedzialno ci za wykonanie okre lonych zada . 
 
c.

  Zarz dzanie przez wyj tki (odchylenia) 

Istot  systemu zarz dzanie przez wyj tki jest identyfikacja „wyj tków” (odchyle ), 
czyli wła nie tego, co odbiega od obowi zuj cych standardów, planów, wzorców, 
norm  i  rutynowych  zachowa   organizacyjnych  oraz  oparty  na  wyj tkach  systemu 
informacji i decyzji w organizacji. W praktycznym rozumowaniu i zgodnie z zasad  
wyj tków,  kierownik  powinien  otrzymywa   tylko  skondensowane,  streszczone  
i porównywalne informacje, które powinny ujmowa  najwa niejsze dla zarz dzania 
elementy stanu rzeczywistego i wszystkie wyj tki w stosunku do dotychczasowych 
warto ci  przeci tnych  lub  standardowych  zarówno  te  szczególnie  dobre,  jak  

                                                 

2

 „Metody sprawnego zarz dzania” Henryk Bieniok i zespół, Agencja Wydawnicza „Placet” Warszawa 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

i  szczególnie  złe.  Dzi ki  nim  kierownik  mo e  w  ci gu  kilku  minut  mie   pełny 
obraz, jak du y osi gni to post p. 
 
d.

  Zarz dzanie przez wyniki (rezultaty) 

Zarz dzenie  przez  wyniki  zakłada  formułowanie  konkretnych  celów  i  zada   dla 
poszczególnych  komórek  organizacyjnych,  z  nast pnie  rozliczanie  ich  
z  uzyskanych  wyników,  które  w  naukach  ekonomicznych,  a  zwłaszcza  
w  rachunkowo ci  i  finansach  s   definiowane  jako  ró nica  mi dzy  dochodami  
a nakładami, czyli zysk. 
 
e.

  Zarz dzanie przez zadania 

Zarz dzanie  przez  zadania  polega  najogólniej  mówi c  na  formułowaniu  przez 
kierownika, konkretnych mobilizuj cych zada  rzeczowych oraz na zlecaniu ich do 
wykonania  podwładnym  wraz  z  okre leniem  terminów  ich  realizacji.  Ka demu 
zadaniu  ustala  si   na  ogół  norm   (granic )  czas,  w  którym  zadanie  ma  by  
wykonane. 
 
f.

  Zarz dzanie przez innowacje 

Zarz dzanie  przez  innowacje  zmierza  do  rozwoju  przedsi biorstwa  przez 
wprowadzanie  szeroko  poj tych  zmian  (usprawnie ,  udoskonale ,  innowacji) 
przede 

wszystkim 

przełomowych 

obszarach 

działalno ci 

firmy.  

W przedsi biorstwach ukierunkowanych na rozwój innowacje s  niekwestionowan  
konieczno ci  generuj c  pozytywne tendencje efektywno ciowe. Aby si  rozwija  
trzeba  odrzuci   wygodnictwo,  bierno   i  postawy  zachowawcze,  przyjmuj c 
ofensywny  styl  działania,  wymagaj cy  stałego  wysiłku  i  gotowo ci  do  reakcji  na 
obserwowane zachowania klientów i konkurentów. 
 
g.

  Zarz dzanie przez partycypacj  

Celem  zarz dzania  przez  partycypacj   jest  wzrost  aktywno ci  podwładnych  oraz 
zaspokojenie ich potrzeb wy szego rz du (samorealizacji, uznania, przynale no ci) 
w  drodze  dopuszczenia  ich  do  procesu  podejmowania  decyzji.  Akceptuj c  model 
partycypacji  pracowniczej  kierownictwo  ma  nadziej ,  e  mo e  skutecznie 

                                                                                                                                               

1999, str. 56-82 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

realizowa   cele  organizacji  wyci gaj c  pracowników  do  aktywnego 
współuczestnictwa  w  procesy  zarz dzania,  organizowania  pracy,  kreowania  
i  wdra ania  innowacji  oraz  do  współdecydowania  o  wszystkich  najwa niejszych 
sprawach przedsi biorstwa. Nic tak nie szkodzi przedsi biorstwu, jak przekonanie 
kierownictwa,  e wie lepiej od pracowników, jakie s  przyczyny niepowodze  i  e 
ma wył czn  m dro  jak im zaradzi . 
 
h.

  Zarz dzanie przez komunikowanie si  

Bezpo rednim  celem  zarz dzania  przez  komunikowanie  si   jest  doinformowanie  
i dowarto ciowanie załogi, w nadziei,  e przyczyni si  ona do stworzenia klimatu 
wzajemnego  zaufania pomi dzy  kierownictwem a  podwładnym,  a  dzi ki  temu  do 
lepszej  motywacji  i  pozytywnych  zachowa   pracowników  na  rzecz  organizacji.  
W  przedsi biorstwie  komunikowanie  si   jest  głównym  procesem  organizacyjnym 
polegaj cym  na  wymianie  informacji  mi dzy  ró nymi  uczestnikami  procesów 
społeczno-gospodarczych. Komunikowanie si  kierownictwa z pracownikami słu y 
dwom celom: 

•  Tłumaczy  abstrakcyjne  cele  i  plany  kierownictwa  na  j zyk  wyzwalaj cy 
aktywne działania pracowników, 
•  Ł czy działania ludzi całej organizacji we wspólnym kierunku. 

 
i.

  Zarz dzanie przez konflikt 

Zarz dzenie  przez  konflikt  w  przedsi biorstwie  polega  na  mo liwie  wczesnym 
wykrywaniu potencjalnych  ródeł sporów nieporozumie , aby podj  odpowiednie 

rodki  zapobiegawcze.  Zadaniem  kierowników  jest  zapanowanie  nad  konfliktami  

w  sensie  sterowania  tymi  procesami,  w  kierunku  ich  „skanalizowania”  
i  wykorzystania  dla  dobra  przedsi biorstwa.  Korzenie  konfliktu  tkwi   przede 
wszystkim  w  sferze  emocjonalnej  człowieka,  a  nie  w  obiektywnie  istniej cej 
rzeczywisto ci. 

 

j.

  Zarz dzanie przez motywacj  

Motywowanie  polega  na  wpływaniu  na  postawy  i  zachowania  człowieka  za 
po rednictwem okre lonych bod ców, które przekształcaj  si  w motywy (pobudki) 
działania  uruchamiaj ce  jego  aktywno .  Motywowanie  do  pracy  polega  na 
stosowaniu  szeregu  zró nicowanych  indywidualnie  narz dzi  i  instrumentów 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

oddziaływania  na  człowieka.  Sterowanie  zachowaniami  pracowników  w  kierunku 
skłonienia ich do ofiarnej i efektywnej pracy na rzecz firmy polega na bezustannym 
i systematycznym stwarzaniu ró nych sytuacji oddziałuj cych na ich indywidualne 
i bardzo zró nicowane potrzeby. W szczególno ci pobudzanie do pracy sprowadza 
si  zasadniczo do: 

•  Stwarzania  okre lonych  zach t  (sytuacji  n c cych)  b d   to  materialnych 
(płaca, premia, nagroda, udział w zyskach itp.) b d  niematerialnych (pro ba, 
namowa, pochwała, wyrazy uznania itp.), 
•  Stwarzanie  sytuacji  przymusowej  poprzez  stosowanie  nakazów,  gró b  
i ró nego rodzaju kar. 

 

k.

  Zarz dzania przez grupy autonomiczne 

Zarz dzania  przez  grupy  autonomiczne  polega  na  tworzeniu,  głównie  na 
najni szych  szczeblach  wykonawczych  (np.  na  szczeblu  brygady  roboczej) 
samodzielnych grup  roboczych, pozbawionych formalnego kierownika, w  których 
funkcj  t  spełnia demokratycznie wybrany lider (przywódca). 
 
l.

  Zarz dzanie przez inspirowanie 

Zarz dzanie przez inspirowanie zmierza do poprawy motywacji oraz podniesienia 
ch ci  działania  podwładnych  poprzez  skłonienie  do  współpracy  z  oficjalnym 
kierownictwem nieformalnego przywódcy grupy, w sytuacji, kiedy mało skuteczne 
s  inicjatywy, zamierzenia i polecenia kierownictwa formalnego. 
 
m.

 Zarz dzanie przez zespoły twórcze 

Zarz dzanie przez zespoły twórcze polega na tworzeniu kilkuosobowych zespołów 
innowacyjnych, zło onych ze specjalnie wyselekcjonowanych ludzi celu  ledzenia 
literaturze  bli szym  i  dalszym  otoczeniu  najnowszych  trendów  rozwoju  techniki, 
technologii, ekonomii, organizacji i zarz dzania oraz wykorzystaniu ich literaturze 
drodze  adaptacji  do  budowy  i  doskonalenia  strategii  funkcjonowania  i  rozwoju 
własnego przedsi biorstwa 

 

n.

  Zarz dzanie przez doskonalenie i rozwój pracowników 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Zarz dzanie  przez  doskonalenie  i  rozwój  pracowników  polega  na  inwestowaniu 
literaturze  ludzi,  aby  zapewni   sobie  zdolnych  i  efektywnych  współpracowników 
oraz kompetentnych nast pców. 
 
o.

  Zarz dzanie przez formalizacj   

Zarz dzanie  przez  formalizacj   polega  na  kierowaniu  lud mi  i  instytucjami  za 
pomoc  szczegółowo okre lonych przepisów organizacyjnych w postaci zarz dze , 
okólników,  regulaminów,  instrukcji,  kart  stanowisk  pracy,  itp.  Jego  celem  jest 
ograniczenie  dowolno ci  (samowoli,  woluntaryzmu)  działania  pracowników  oraz 
skłonienie ich do wzorcowego wykonywania pracy okre lonego przepisami. 
 
p.

  Zarz dzanie przez ryzyko 

Zarz dzanie  przez  ryzyko  polega  na  identyfikacji  i  analizowaniu  sytuacji 
ryzykownych wynikaj cych literaturze zagro e  oraz szans i okazji pojawiaj cych 
si  literaturze otoczeniu w celu optymalizacji decyzji oraz opracowaniu strategii ich 
wprowadzania w  ycie, przy jednoczesnej minimalizacji niepewno ci. 
 
W literaturze i praktyce mo na spotka  bardzo wiele metod i technik, których celem 
jest  motywacja  do  pracy  i  wyzwalanie  aktywno ci  pracowniczej.  Mo na  wr cz 
powiedzie ,  e  cał   filozofia  efektywno ci  przedsi biorstwa  sprowadza  si  
bezpo rednio, albo po redni do pobudzania ludzi w kierunku ofiarnej pracy na rzecz 
swojej firmy.  

 
 

4.  Techniki kontroli mened erskiej 

a.

  Zarz dzanie przez stosowanie zasad nadzoru i kontroli 

Kontrola  kierownicza  polega  na  porównaniu  uzyskanego  wyniku  działania  
z  zaplanowanym  oraz  w  razie  stwierdzenia  odchyle ,  na  doprowadzeniu  stanu 
rzeczywistego do po danego (pierwotnie zamierzonego). Proces kontroli obejmuje 
nadzór bie cy nad przebiegiem działa , jak i kontrol  ko cow . 
 
b.

  Zarz dzanie przez kontrol  na zasadzie sprz enia zwrotnego 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Podstaw   techniki  kontroli  jest  cybernetyczny  model  sprz enia  zwrotnego 
zakładaj cy  konieczno   ka dorazowego  dopływu  od  obiektu  sterowanego 
(regulowanego)  do  obiektu  steruj cego  (reguluj cego)  informacji  zwrotnej 
(wynikowej)  o  sposobie  realizacji  norm  pierwotnie  zadanych  obiektowi 
sterowanemu.  
W modelu sterowania wyst puj  w uproszczeniu dwa typy obiektów: 

•  Obiekt  steruj cy  (reguluj cy  –  regulator)  generuj cy  impulsy  w  postaci 
pewnych norm i zada  (jest to obiekt kieruj cy, czyli kierownik) 
•  Obiekt sterowany (regulowany) – (wykonawca) 

Ł cznikiem mi dzy obu obiektami jest proces kontroli, w którym oceniamy osi gi 
wyniki  z  punktu  widzenia  stopnia  realizacji  pierwotnie  okre lonych  celów  
i  wyznaczonych  na  tej  podstawie  zada   (norm  zadaniowych).  Kierownicy  s   tym 
ogniwem  w  procesach  zarz dzania,  którzy  powinni  ci le  wi za   planowanie  
i kontrolowanie. Planowanie jest pierwsz  funkcj  planowania, a kontrolowanie jest 
funkcj   ostatni ,  weryfikuj c  rzeczywisto   z  pierwotnymi  zamierzeniami  
i oczekiwaniami. 

 

c.

  Zarz dzanie przez obchód 

Zało eniem  tej  prostej,  ale  bardzo  skutecznej  techniki  zarz dzania  jest  codzienny 
kontakt  ze  wszystkimi  pracownikami  w  celu  okazania  im  swojego  szczerego 
zainteresowania tym co i jak robi . Stosowanie techniki zarz dzania przez obchód 
wymagana  jest  nawet  kilkakrotnych,  ale  krótkich  obecno ci  kierownika  w ród 
podwładnych.  Obecno   ta  wyra a  si   w  formie  najlepiej  nieregularnych,  ale 
codziennych obchodów stanowisk pracy w czasie, których istnieje mo liwo : 

•  Osobistego przywitania si  i rozmowy z pracownikami (nawet w sprawach 
rodzinnych), w celu ich lepszego poznania, 
•  Dokonanie obserwacji i rejestracji zarówno pozytywów, jak i negatywów 
w przebiegu pracy, 
•  Wyra enia natychmiastowej pochwały i uznania za dobr  prac , tam, gdzie 
to jest uzasadnione, 
•  Wydania  stosownych  dyspozycji  w  celu  usuni cia  ewentualnych 
nieprawidłowo ci, 
•  Zach cenia do lepszej pracy i dodania otuchy. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
d.

  Zarz dzanie przez inwigilacj  

Inwigilacja polega na dyskretnej, ale systematycznej obserwacji pracy podwładnych 
lub  maszyny  po  to,  aby  tok  zdarze   przebiegał  zgodnie  z  zamierzeniami 
kierownika. Inwigilacji winna towarzyszy  minimalizacja interwencji kierownika – 
przybiera  ona  wówczas  posta   tzw.  Inwigilacji  czystej.  Wyra a  si   ona  w  tym 
przypadku  jedynie  pilnowaniem  i  zabezpieczaniem  samoczynnie  przebiegaj cego 
procesu,  ewentualnie  wprowadzaniem  (ale  w  ostateczno ci)  poprawek,  ilekro  
procesy  pracy  przebiegaj   nie  tak,  jak  nale y.  Wynika  z  tego,  e  kierownik 
pozostaje w ci głej gotowo ci do interwencji, je li zajdzie taka potrzeba. 
 
e.

  Zarz dzanie przez kontrol  strategiczn  

Celem  kontroli strategicznej jest zapewnienie  skutecznego dostosowania firmy  do 
otoczenia  i jej  działania  w  kierunku  realizacji  celów  strategicznych.  Za  kluczowe 
obszary kontroli uwa a si  istotne czynniki ograniczaj ce lub punkty newralgiczne 
decyduj ce o przetrwaniu i dalszym rozwoju firmy.  
 
f.

  Zarz dzanie przez controlling 

Controlling  jest  to  kompleksowy  i  ponadfunkcyjny  system  sterowania  
i  nadzorowania  przedsi biorstwem,  wspieraj cy  dyrekcj   i  kierowników  ni szych 
szczebli  przy  podejmowaniu  decyzji.  Controlling  musi  obejmowa   całe 
przedsi biorstwo  w  system  kompleksowego  planowania  zada   rzeczowych, 
finansowych  i  kosztów  oraz  sterowania  jego  działalno ci   i  dostarczania 
niezb dnych informacji, a tak e nadzorowania i rozliczania centrów gospodarczych 
z  realizacji  uzgodnionych  zada .  Jego  zadaniem  dodatkowym  jest  wspieranie 
naczelnego  kierownictwa  nowymi  wersjami  strategii  rozwoju  przedsi biorstwa, 
uwzgl dniaj cymi  przy  tym  nie  tylko  ju   zaobserwowane,  ale  tak e  spodziewane 
zmiany w otoczeniu. 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

III.  STATYSTYCZNA ANALIZA WYDOLNO CI PROCESU 

Decyzja  o  podj ciu  produkcji  wyrobu  b d   o  rozpocz ciu  wiadczenia  dowolnej  usługi 
powinna  by   poprzedzona  analiz   wydolno ci  procesu,  a  istot   analizy  jest  badanie 
zgodno ci  mi dzy  wymaganiami  wynikaj cymi  z  projektu  produktu  a  mo liwo ciami 
procesu technologicznego, w którym ten produkt (wyrób lub usługa) ma by  wytwarzany. 
Podstaw  oceny owej zgodno ci jest oczekiwany poziom jako ci wykonania. Je li mo na 
oczekiwa  wysokiej jako ci wykonania, a wi c je li proces ma zdolno  do odtwarzania 
projektu  w  praktycznie  ka dym  akcie  produkcji,  albo  praktycznie  ka dym  akcie 

wiadczenia  usługi,  to  proces  taki jest  oceniany  jako  wydolny.  I  odwrotnie,  proces  jest 

oceniany jako niewydolny, je li przeprowadzona analiza nie pozwala oczekiwa  wysokiej 
jako ci wykonania produktu. Celem statystycznej analizy wydolno ci procesu jest zawsze 
rozstrzygni cie, czy konkretnym przypadku spełniona jest nierówno : 

0

)

;

(

Q

Z

A

Q

 

w której 

)

;

Z

A

Q

 oznacz poziom jako ci wykonania, jakiego mo na oczekiwa  realizuj c 

projekt  produktu  A  w  procesie  technologicznym  Z,  natomiast 

0

Q

  jest  najni szym, 

mo liwym do zaakceptowania poziomem jako ci konkretnego produktu. Je li wi c proces 
nie  ma  dostatecznej  wydolno ci,  to  konieczne  s   zmiany  w  projekcie,  modyfikacje 
procesu  technologicznego  albo  działania  zmierzaj ce  w  obu  tych  kierunkach 
jednocze nie. Je li działania te nie prowadz  do celu, to pozostaj  poszukiwania innego, 
mniej wymagaj cego odbiorcy produktu lub rezygnacja z jego wytwarzania.  

Ogólna  nierówno  

0

)

;

(

Q

Z

A

Q

  nie  wystarcza  do  rozwi zywania  praktycznych 

problemów w zakresie badania wydolno ci procesów. W takiej sytuacji nale y posłu y  
si  odpowiedni  miar  jako ci wykonania. Nale y tu wymieni  przede wszystkim: 

•  Wadliwo , 
•  Przeci tn  liczb  wad w jednostce produktu. 

Dodatkowo z ka d  z tych miar mo na wykorzysta  dwojako. Mo na mianowicie ocenia  
jako  wykonania albo ze wzgl du na pojedyncz  cech  u ytkow  lub techniczn , albo ze 
wzgl du na pewien zbiór tych cech. 
Je li zgodno  mi dzy wymaganiami projektu i mo liwo ciami procesu jest oceniana na 
podstawie  oczekiwanej  cz stkowej  wadliwo ci  strumienia  produktu,  to  ogólna 

nierówno  

0

)

;

(

Q

Z

A

Q

 zast pujemy warunkiem: 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

)

(

)

(

0

X

p

X

P

 

gdzie 

)

(

0

X

p

  jest  najwi ksz   dopuszczaln   wadliwo ci   produktu  generowanego  przez 

badany proces ze wzgl du na zmienn  diagnostyczn  X. 
Wyró niamy dwie mo liwo ci badania wydolno ci procesu: 
 

1.  Badanie  wydolno ci  procesu  przy  alternatywnej  ocenie 

wła ciwo ci produktu. 

W  tym  przypadku  liczbowym  obrazem  badanej  cechy  jest  zero  -  jedynkowa  zmienna 
losowa X, o realizacjach (x) generowanych według procedury: 

=

,

1

,

0

X

 

Miar   poziomu  jako ci  jest  w  takiej  sytuacji  wadliwo  

)

(X

p

,  interpretowana  jako 

prawdopodobie stwo  wygenerowania  wadliwej  jednostki  produktu.  Z  tego  wynika,  e 
wadliwo ci 

)

(X

p

 zale y od tego, w jaki sposób zostanie okre lona reguła, według której 

rozstrzyga si , czy badana jednostka produktu spełnia wymagania jako ciowe, czy te  nie 
pełnia. Je li reguła ta zostanie okre lona bardzo liberalnie, to nawet bardzo lichy produkt 
mo na  uzna   za  dobry.  I  odwrotnie,  je li  owa  reguła  zostanie  okre lona  bardzo 
rygorystycznie, to nawet najlepszy produkt mo na zdyskwalifikowa .  
 

2.  Badanie  wydolno ci  procesu  przy  liczbowej  ocenie 

wła ciwo ci produktu. 

W tej sytuacji załó my,  e liczbowym obrazem pojedynczej (u ytkowej lub technicznej) 
cechy  produktu  jest  ci gła  zmienna  losowa  X,  któr   traktujemy  jako  zmienn  

diagnostyczn   na  podzbiór  warto ci  po danych 

0

,  w  którym  wyró niamy  warto  

docelow   (najbardziej  po dan ,  nominaln )  oznaczan   symbolem 

0

.  Przedział 

tolerancji 

0

X

 mo e by  ograniczony obustronnie albo jednostronnie. W przypadku, gdy 

zmienna  ta  ma  rozkład  normalny 

)

;

(

σ

M

N

X

,  gdzie  odchylenie  standardowe 

σ

  jest 

miar   precyzji  procesu,  M.  natomiast  jest  zbiorem  mo liwych  do  uzyskania  warto ci. 
Mo na  zało y ,  e  precyzja  procesu  jest  ustalona,  natomiast  na  poprawno   procesu  
w pewnych granicach oddziałuje si  poprzez wybór odpowiednich parametrów procesu. 
W  wietle  przedstawionych  powy ej  zale no ci  mi dzy  projektem  i  procesem 
technologicznym zachodzi zgodno , gdy: 

gdy jednostka produktu spełnia wymagania jako ciowe 
gdy jednostka produktu nie spełnia wymagania jako ciowych 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

)

(

)

(

)

Pr(

0

0

X

p

X

p

X

x

=

 

albo 

)

(

1

)

(

1

)

Pr(

0

0

X

p

X

p

X

x

=

 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

IV.  STEROWANIA 

PROCESAMI 

ZA 

POMOC  

KART 

KONTROLNYCH 

Statystyczna analiza wydolno ci procesu zamyka etap sterowania jako ci  w trybie off-
line. Je li wynik tej analizy jest pozytywny, to mo na uruchomi  proces produkcji albo 
proces  wiadczenia  usługi.  Przyst puje  si   jednocze nie  do  monitorowania  przebiegu 
uruchomionego  procesu,  a  tak e  do  sterowania  operacyjnego  w  trybie  on-line. 
Wykorzystuje si  do tego celu metody i narz dzia SPC (statistical process control): 

1.

 

Diagram przebiegu procesu 

 
 
 
 
 

Diagram  przebiegu  procesu  obrazuje  powi zania  mi dzy  operacjami  technologicznymi. 
Jest  on  wykorzystywany  przede  wszystkim  podczas  projektowania  systemu  sterowania 
jako ci .  Pozwala  on  racjonalnie  zlokalizowa   punkty  monitorowani  procesu.  Przy 
lokalizowaniu  tych  punktów  nale y  bra   pod  uwag   tempo  przyrostu  jednostkowego 
kosztu produktu, a tak e intensywno  powstawania wad, zwłaszcza nienaprawialnych. 

 
2.

 

Karta kontrolna 

 
 
 
 

 
 
 
 
 

Karty  kontrolne  s   instalowane  w  blokach  analizuj cych  systemy  sterowania  jako ci   
i  słu   do  analizy  strumieni  informacji  numerycznych  generowanych  przez  bloki 
pomiarowe  tych  systemów.  Ze  wzgl du  na  to,  e  ka dy  proces  technologiczny  jest 

B

B

C

C

X(t

Górna lina kontrolna 

Lina centralna 

Dolna lina kontrolna 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

zjawiskiem dynamicznym, nie całkiem zdeterminowanym przez zadane parametry, przeto 
karty  kontrolne  konstruowane  s   na  podstawie  aparatu  formalnego  statystyki 
matematycznej.  Najcz ciej  s   to  albo  odpowiednio  zorganizowane  sekwencje 
klasycznych  testów  istotno ci  (karty  kontrolne  typu  Shewharta),  albo  procedury 
wykorzystuj ce testy sekwencyjne (karty kontrolne sum skumulowanych). W przypadku 
wykrycia  systematycznego  zakłócenia  obserwowanego  procesu  karta  kontrolna  emituje 
odpowiedni sygnał, który uruchamia ci g skoordynowanych działa  nazywanych cyklem 
Shewharta, zmierzaj cych do wykrycia i wyeliminowania przyczyny tego zakłócenia. 

 
3.

 

Arkusz analityczny 

 

Kontrola dostaw 

Rodzaj wady 

 

Ogólna 

ilo  wad 

Ilo  wad 

15 

12 

14 

 

Arkusz analityczny słu y do wykrycia, wyeliminowania przyczyn zakłóce . 
 

4.

 

Diagram Ishikawy 

 
 
 
 
 
 
 
 
 
 

przyczyny 

przyczyny 

skutek 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Diagram  Ishikowy  słu y  równie   do  realizacji  wykrycia,  wyeliminowania  przyczyn 
zakłócenia. 
 

5.

 

Diagram Pareto 

 

 
 
 
 
 
 

 
 
 

 
Diagramy  Pareto  słu   do  badania  cz sto ci  wyst powania  wad  produktu  lub  procesu. 
Pozwalaj  one identyfikowa  te problemy, które powinny by  rozwi zywane w pierwszej 
kolejno ci. Ten sam cel mo na osi gn  za pomoc  diagramu Lorenza.  

 
6.

 

Histogram 

 
 
 
 
 
 
 
 

 
 
 

Histogram  jest  prostym  i  wygodnym  narz dziem  badania  rozkładu  obserwowanej 
zmiennej  diagnostycznej.  Ma  to  znaczenie  szczególnie  podczas  badania  wydolno ci 

f(x) 

Przedział tolerancji 

n(x

Rodzaje wady 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

procesu  technologicznego,  a  tak e  podczas  poszukiwania  przyczyn  zakłóce   tego 
procesu. 

 
7.

 

Punktowy diagram korelacji 

 
 
 
 
 
 
 
 
 
Punktowy  diagram  korelacji  jest  bardzo  prostym,  graficznym  narz dziem  badania 
współzale no ci  mi dzy  obserwowanymi  zmiennymi  diagnostycznymi.  Podobnie  jak  w 
przypadku  histogramu,  jest  to  tylko  pocz tkowy  etap  pogł bionej  analizy  problemu  za 
pomoc  narz dzi i metod, jakich dostarcza teoria regresji i korelacji. 

 

Podstawow   rol   w  tych  działaniach  odgrywaj   karty  kontrolne.  S   to  podstawowe  
i  najwcze niejsze  historycznie  narz dzia  statystycznego  sterowania  procesami.  Pomysł 
karty  kontrolnej  zawdzi czamy  Shewhartowi,  a  pierwsze  praktyczne  zastosowania  tego 
pomysłu nast piło w 1924 roku. W owym czasie  rodki obliczeniowe, jakimi dysponował 
przemysł,  były  nader  skromne  i  ograniczały  si   do  liczydła,  suwaka  logarytmicznego 
 i  arytmometru  mechanicznego.  Dlatego  te   zaproponowana  przez  Shewharta  metoda 
monitowania i regulacji pomy lana była jako procedura graficzna, w której główn  rol  
odgrywa  odpowiednio  zorganizowany  diagram  przegl dowy,  minimalizuj cy  liczb  
niezb dnych  operacji  numerycznych,  numerycznych  jednocze nie  pozwalaj cy 
obserwowa  w  sposób  usystematyzowany  przebieg  kontrolowanego  procesu.  Ta  ogólna 
idea  karty  kontrolnej  pozostała  niezmieniona  do  chwili  obecnej.  Decyzje  podejmowane 
przy  u yciu  karty  kontrolnej  oparte  s   na  analizie  informacji  dostarczanej  przez  próbki 
losowe pobierane ze strumienia produktu. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

V.   WST P DO PROGRAMOWANIA W J ZYKU C/C++ 

 

 

1.

 

WPROWADZENIE. 

 
Nazwa j zyka C wywodzi si  od j zyka o d wi cznej nazwie B, który został opracowany 
w  1970  roku  przez  Kena  Thompsona  dla  minikomputerów  PDP.  Poniewa   j zyk  
B  zawiera  pewne  istotne  ograniczenia,  w  roku1972  Dennis  Ritchie  i  Ken  Thompson 
stworzyli  j zyk  C.  Jednak  nie  od  razu  stał  on  si   popularny  przez  pierwsze  sze   lat 
stosowała  go  jedynie  w ska  grupa  programistów.  Dla  C  i  C++  nadszedł  historyczny 
przełom  w  roku  1978,  gdy  Brian  Kernighan  i  Dennis  Ritchie  napisali  i  opublikowali 
ksi k   „The  C  programming  language”,  która  została  wydana  równie   przez 
wydawnictwo  polskie  WNT  w  1987  roku  pod  tytułem:  „J zyk  C”.  Pierwotnie  j zyk  
C  został  zaimplementowany  na  komputerach  8-bitowych  pracuj cych  pod  systemem 
operacyjnym  CP/M.  Kiedy  w  roku  1981  pojawił  si   IBM  PC  i  rozpocz ła  si  
komputerowa  rewolucja,  j zyka  C  stał  si   jednym  z  najlepszych  kandydatów  do 
zawładni cia  spor   cz ci   rynku.  Liczba  komputerów  PC  i  u ytkowników  C  szybko 
wzrastała.  Dzi ki  popularno ci  i  wysokiemu  zainteresowaniu  C  wiele  firm  rozpocz ło 
prac   nad  stworzeniem  kompilatorów  j zyka  C  –  ka da  z  nich  rozpocz ła  tworzenie 
własnej wersji i ka da z nich rozpocz ła prac  w zupełnie innym kierunku. 
Rewolucja  komputerowa  i  kariera  j zyka  została  zagro ona  powstaniem  wielu 
niekompatybilnych wersji kompilatorów. Z tego powodu w Ameryka skim Narodowym 
Instytucie  Standardów  (ANSI)  został  utworzony  specjalny  komitet  X3J11  maj cy  za 
zadanie utworzenie standardowej wersji j zyka C – co przyczyniło si  do uratowanie jej 
kariery.  Nale y  jednak  zauwa y ,  e  ANSI  był  zainteresowany  w  stworzeniu  jednego 
uniwersalnego standardu, maj cego zastosowanie dla wszystkich komputerów – nie tylko 
dla PC. Mimo takich intencji, w opracowanym przez ANSI standardzie pojawiło si  wiele 
rzeczy  maj cych  odniesienie  do  specyficznej  architektury  IBM  PC,  nie  maj cych 
natomiast odniesienia do np. du ych komputerów klasy MAINFRAME. W miar  rozwoju 
standardów  ANSI  C  wi kszo   implementacji  zbli a  si   do  wspólnego  standardu,  
w miar  jak proces standaryzacji post puje coraz gł biej, ale nie obejmuje on np. grafiki 
ekranowej, pozostaje to wi c obszarem, na którym pomi dzy poszczególnymi wersjami 
kompilatorów wyst puj  znaczne rozbie no ci. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Rosn ca  popularno   j zyka  C  spowodowała  powstanie  ogromnej  liczby  programów 
napisanych  w  tym  wła nie  j zyku.  W  miar ,  jak  długo   programów  zacz ła  wyra nie 
wzrasta ,  wiele  osób  doszło  do  wniosku,  e  standardowe  konstrukcje  programów  nie 
nad aj   za  potrzebami  i  staj   si   coraz  bardziej  nieefektywne.  Jedynym  dost pnym 
wyj ciem  było  zastosowanie  funkcji  w  celu  uzyskania  programu  podzielonego  na 
moduły. Przy rosn cej liczbie funkcji, które to funkcje musiały cz sto odwoływa  si  do 
wspólnych  danych  i  wywoływa   si   nawzajem,  coraz  trudniej  było  programistom 
zapanowa  nad t  skomplikowan  kombinacj . W roku 1983 Bjarne Stroustrup opracował 
j zyk C++, który jest w zasadzie bardzo podobny do C, ma jednak kilka bardzo istotnych 
dodatkowych  mo liwo ci.  Najwa niejszym  nowym  wprowadzeniem  stały  si   obiekty. 
Obiekt  jest  to  co   takiego,  co  mo na  by  okre li ,  jako  nowy  rodzaj  struktur  –  z  jedn  
istotn  ró nic : je li programista za yczy sobie tego, zarówno dane, jak i funkcje mog   
w  obiekcie  uzyska   status  prywatny.  Jak  ju   wspomniałem  wcze nie,  przewaga 
obiektowego  stylu  programowania  polega  na  mo liwo ci  uzyskania  skuteczniejszego 
podziału  programu  na  moduły  czyli  na  pewne  jednostki  funkcjonalne  o  zrozumiałym 
przeznaczeniu  i  prostych  zasadach  współdziałania  z  innymi  elementami  programu. 
Chocia  głównym celem przy opracowaniu j zyka C++ było umo liwienie skutecznego 
podziału na moduły programów pisanych w j zyku C, to, nawet je li program jest krótki, 
C++ te  na co  do zaoferowania. W krótkich programach operatorom j zyka C mo emy 
w  C++  nada   nowe  wybrane  przez  siebie  działanie.  W  C++  mo na  równie   robi  
niewyobra alne  w  innym  j zykach  sztuczki  z  funkcjami.  Dla  przykładu,  wykorzystuj c 
mo liwo   rozbudowy  funkcji  mo emy  np.  zmusi   istniej c   ju   w  starym  programie 
napisanym  w  C  funkcj ,  by  dała  si   wywoła   z  argumentami  ró nych  typów.  
W klasycznym C byłby to oczywisty bł d, w C++ natomiast, w zale no ci od wybranego 
przez  nas  typu  argumentów,  zostanie  wybrana  stosowna  wersja  funkcji  i  wszystko 
wykona si  poprawnie. W miar  upływu czasu instytut ANSI wprowadzał kolejne, coraz 
bardziej  rozbudowane  wersje  standardu  ANSI  C.  Np.  standard  wprowadzony  w  1990 
roku  28-go  lutego  o  nazwie  ANSI  C2.1.  I  na  tym  ko cz   krótk   histori   C/C++ 
nast pnym krokiem b dzie krótki opis powy szego j zyka. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
 
2.

 

OPERATORY. 

 
J zyk  C/C++  w  porównaniu  z  innymi  j zykami  oferuje  programi cie  znaczn   liczb  
operatorów ró nego rodzaju. Ró norodno  ta umo liwia bardzo efektywny zapis wielu 
operacji.  Wyra enie  jest  ci giem  operatorów  i  znaków  przestankowych  okre laj cych 
sposób  wykonania  danego  obliczenia.  Kluczow     rol   w  konstrukcji  wyra enia  pełni  
operatory.  To  one  okre laj ,  co,  w  jaki  sposób  i  w  jakiej  kolejno ci  zostanie  obliczone 
wyra enie. 
Operatory mo na podzieli  na nast puj ce grupy: 
 
♦  operatory arytmetyczne: 
•  addytywne 
Do operatorów addytywnych zaliczamy dodawanie (+) i odejmowanie (-) a operandami 
s  wyra enia tego samego typu arytmetycznego lub wska nikami tego samego typu. 
•  multiplikatywne 
Do  operatorów  multiplikatywnych  zaliczamy  mno enie  (*),  dzielenie  (/)  i  reszta  
z dzielenia (%) a operandami  dz  standardowe prawa arytmetyki ponadto w przypadku 
reszty z dzielenia operandy s  typami całkowitymi. 
•  operatory inkrementacji (++) i dekrementacji (--) 
Powy sze  operatory  zaliczane  s   do  operatorów  jedno  argumentowych  operacja 
zwi kszenia (inkrementacja) lub zmniejszania (dekrementacja) o jeden jest wykonywana 
przez wi kszo   procesorów w  jednym rozkazie. Ponadto  mog   one  wyst powa   przed 
(operator przedrostkowy) lub po (operator przyrostkowy) operandzie. 
 
♦  operatory logiczne 
Warto   logiczna  prawda  jest  reprezentowana  jako  liczba  całkowita  ró na  od  zera,  za  
fałsz jako zero typu całkowitego. Umo liwiaj  one nast puj ce operacja na warto ciach 
logicznych: koniunkcja (&&), alternatywa (||), negacja (!), 
 
♦  operatory bitowe 
Za pomoc  operatorów bitowych mo na realizowa  funkcje logiczne : 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

OR – alternatywa (|) 
AND – iloczyn (&) 
EXOR – suma modulo 2 (^) 
NOT – negacja (~) 
Stosowane operandy musz  by  typu całkowitego, 
 
♦  operatory relacyjne 
 Operatory relacyjne pozwalaj  stwierdzi , czy mi dzy operandami zachodzi dana relacja, 
do powy szych operatorów zaliczamy: wi ksze ni  (>), mniejsze ni  (<), mniejsze równe 
(<=), wi ksze równe (>=), równe (==), ró ne od (!=), 
 
♦  operatory przypisania, 
Operatory przypisania daj  mo liwo  zwi złego zapisu wyra e . Mo na podzieli  je na 
dwie  grupy:  prosty  operator  przypisania  (=)  operandowi  przedrostkowemu  zostaje 
przypisana warto  operandu przyrostowego, zło one operatory przypisania (+=, -=, *=, 
/=,  <<=,  >>=,  &=,  ^=,  |=)  maj   one  ogóln   posta   operator=  a  zasada  działania 
przedstawi  na przykładzie: 
Wyra enie_1 = Wyra enie_1 operator Wyra enie_2; 
co mo emy zast pi  wykorzystuj c operator przypisania: 
Wyra enie_1 operator= Wyra enie_2  
 

♦  operator warunkowy 
Wyra enie z operatora warunkowego wygl da nast puj co: 
Wyra enie_1 ? Wyra enie_2 : Wyra enie_3; 
w  pierwszej  kolejno ci  obliczana  jest  warto   Wyra enia_1  je li  jest  ona  niezerowa 
(prawda),  obliczana jest warto   Wyra enia_2,  natomiast  Wyra enie_3 jest  ignorowane, 
w  przeciwnym  razie  (Wyra enie_1  jest  równe  zero  –  fałsz)  obliczana  jest  warto  
Wyra enia_3

, natomiast Wyra enie_2 pomijamy, 

 
♦  operatory wyboru składniowych 
Tych operatorów u ywa si  celem wyboru składowej struktury, unii lub klasy. Operator 
(.)  umo liwia  odwołanie  do  składowej  okre lonej  przez  operand,  operator  (->)  za  
odwołanie do składowej wskazywanej przez operand, 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

♦  operator pobrania adresu zmiennej (&) oraz dost pu do zmiennej wskazywanej (*) 
W przypadku wyra enia pobrania adresu warto  wyra enia stanowi adres operandu a w 
przypadku  zmiennej  wskazywanej  warto   wyra enia  jest  zmienna  wskazywana  przez 
operand, za  jego typ jest zgodny z typem wskazywanym operandu, 
 
♦  operator pobrania rozmiaru(sizeof
Operator mo e by  u ywany w dwóch poni szych sposobach: 
sizeof

(identyfikator_typu) – warto ci  wyra enia jest rozmiar w bajtach typu okre lonego 

przez podany identyfikator, 
sizeof operand

 – warto ci  wyra enia jest rozmiar pami ci zajmowany przez operand

 
♦  operatory dynamicznego przydziału pami ci 
Operator  przydziału  pami ci  new  tworzy  obiekt  danego  typu  przydzielaj c  sizeof  
dany_typ

  w  obszarze  stosu  w  zmiennych  dynamicznych,  operator  zwalniania  pami ci 

delete

 usuwa obiekt wskazywany przez wska nik, 

 
♦  operatory indeksowania ([]) i wywołania funkcji(), 
 
♦  operator konwersji 
Operator konwersji ma posta : (typ)operand – warto ci  wyra enia jest warto  operandu 
po konwersji do typu o podanej nazwie. 
 
 
3.

 

INSTRUKCJE 

 
Jednym  z  najwa niejszych  elementów  ka dego  j zyka  programowania  s   instrukcje. 
Umo liwiaj  one zapis algorytmu, a co za tym idzie – słu  do sterowania przebiegiem 
programu. W j zyku C++ ich lista jest do  krótka, co nie oznacza bynajmniej ubóstwa. 
Instrukcje  te  dzi ki  swej  efektywno ci  w  poł czeniu  z  ró norodno ci   typów  danych  
i  operatorów  umo liwiaj   tworzenie  nawet  najbardziej  zaawansowanego 
oprogramowania. Instrukcje mo na podzieli  na: 
 
♦  instrukcje warunkowe 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

W  zapisie  algorytmów  cz stym  problemem  jest  sprawdzenie,  czy  zachodzi  dana 
zale no   i  w  zale no ci  od tego  wykonanie takich czy  innych czynno ci.  Sprawdzenie 
warunków i przej cie do wykonania odpowiednich operacji umo liwiaj  tzw. instrukcje 
warunkowe.  Do  tej  grupy  instrukcji  zaliczamy  instrukcj   „je eli”  (if)  oraz  instrukcj  
„wyboru” (switch). 
Ogólna posta  instrukcji warunkowej „je eli” przedstawia si  nast puj co: 
if(wyra enie_warunkowe) instuckcja_1 [else instukcja_2]; 
Wyra enie_warunkowe

 musi by  typu skalarnego. Je li warto  wyra enia_warunkowego 

jest ró na od zera (prawda), wówczas wykonywana jest insturkcja_1, w przeciwnym razie 
(fałsz) – instukcja_2.  
Instrukcja wyboru ma nast puj c  posta  ogóln : 
switch( wyra enie_steruj ce)  
{  
  case wyra enie_stałe_typu_całkowitego: instrukcje 
  ... 
  case wyra enie_stałe_typu_całkowitego: instrukcje 
  default: instukcje 
}

 

Na  podstawie  warto ci  wyra enia  steruj cego  pozwala  ona  przenie   wykonywanie 
programu do wskazanego miejsca. Wyra enie_steruj ce musi by  typu całkowitego, za  
instrukcje s  dowoln  instrukcj  j zyka C/C++. Wykonanie instrukcji wyboru polega na 
obliczeniu  warto ci  wyra enia  steruj cego  i  kontynuowaniu  wykonywania  programu 
pocz wszy  od  etykiety  wyboru,  której  wyra enie  stałe  ma  warto   równ   obliczonej 
wcze niej  warto ci  wyra enia steruj cego.  Je li  adne  z wyra e   stałych  nie  spełnia tej 
równo ci,  wówczas  wykonywany  jest  skok  do  miejsca  okre lonego  domy ln   (default
etykiet  wyboru lub je li jej nie ma – wykonywanie instrukcji wyboru ulega zako czeniu. 
 
♦  Instrukcje iteracyjne 
Instrukcje  iteracyjne  umo liwiaj   wielokrotne  wykonywanie  pewnych  sekwencji 
instrukcji,  czyli  p tli,  jak  wiadomo,  s   podstaw   programowania.  Wyró niamy 
nast puj ce instrukcje iteracyjne: 
•  Instrukcja „dla” (for
Jej ogólna posta  przedstawia si  nast puj co: 
for(wyra enie_inicjuj ce ; wyra enie_warunkowe ; wyra enie_zwi kszaj ce) instrukcja; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Wykonywanie  p tli  polega  na  obliczeniu  wyra enia_inicjuj cego,  co  najcz ciej 
powoduje  zainicjowanie  licznika  p tli,  nast pnie  obliczane  jest  wyra enie_warunkowe
je li jest ono niezerowe (prawda) wykonywana jest instrukcja zwi zana z instrukcj  for
Obliczane  jest  wyra enie_zwi kszaj ce,  co  powoduje  zwykle  zwi kszenie  lub 
zmniejszenie liczników p tli i ponownie obliczane jest wyra enie_warunkowe, je li jego 
warto  jest ró na od zera wykonywana jest ponownie instrukcja. 
•  Instrukcja „dopóki”(while
Ogólna posta  instrukcji „dopóki”: 
While(wyra enie_warunkowe) instrukcja; 
Instrukcja jest wykonywana do momentu, kiedy wyra enie_warunkowe osi gnie warto  
0 (fałsz). 
•  Instrukcja „wykonuj dopóki” (do...while
Ogólna posta  instrukcji „wykonuj dopóki” przedstawia si  nast puj co: 
do instrukcja while(wyra enie_warunkowe); 
Instrukcj   do  ...  while  mo na  przetłumaczy   jako:  wykonuj  instrukcj   dopóki  warto  
wyra enia  wyra enia_warunkowego  oznacza  prawd .  Instrukcj   t   stosujemy  zamiast 
instrukcji  while  wówczas,  gdy  zale y  nam,  aby  wykonana  została  przynajmniej  jedna 
iteracja. 
 
♦  Instrukcje steruj ce przebiegiem programu 
Umo liwiaj   one  opuszczenie  p tli,  przeniesienie  wykonywania  programu,  zako czenie 
wykonywania. Wspomniane tu instrukcje to: 
•  Instrukcja „przerwij” (break
Składni  instrukcji „przerwij” przedstawiam poni ej: 
break; 
Powoduje ona opuszczenie aktualnego poziomu p tli lub instrukcji wyboru. 
•  Instrukcja „kontynuuj” (continue
Składnia instrukcji „kontynuuj” wygl da nast puj co: 
continue; 
Omawiana  instrukcja  mo e  by   u ywana  tylko  wewn trz  instrukcji  iteracyjnych.  Jej 
u ycie powoduje w przypadku p tli while – przeniesienie sterowania z wn trza p tli do 
wyra enia  warunkowego,  które  zostaje  obliczone. W  zale no ci od uzyskanego  wyniku 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

wykonywanie  p tli  jest  kontynuowane  lub  ulega  zako czeniu.  W  przypadku  p tli  for  – 
przeniesienie sterowania do wyra enia zwi kszaj cego licznik p tli. 
•  Instrukcja „skoku” (goto
Umo liwia  przekazanie  sterowania  do  okre lonego  miejsca  aktualnie  wykonywanej 
funkcji programu. Instrukcja skoku ma posta : 
goto etykieta; 
etykieta okre la miejsce w programie, do którego ma nast pi  skok. 
  
 
4.

 

FUNKCJE. 

 
W  pierwszej  kolejno ci  zwróc   uwag   na  rozró nienie  poj   deklaracja  i  definicja. 
Deklaracja  funkcji,  w  odró nieniu  od  definicji,  jest  poj ciem  logicznym,  gdy   stanowi 
tylko  informacj   dla  kompilatora,  e  funkcja  o  okre lonej  nazwie,  typie  warto ci  
i  parametrów  mo e  zosta   u yta  gdzie   w  danym  module  programu.  Definicja  funkcji 
okre la natomiast, co funkcja wła ciwie robi. Stanowi wi c ona zapis jakiego  algorytmu 
lub jego cz ci. Definicja funkcji powoduje, w odró nieniu od deklaracji, przydzielenie 
obszaru pami ci, w którym znajdzie si  kod wynikowy funkcji. 
Wywołanie funkcji ma posta : 
Nazwa_funkcji(Lista_paramtrów_wywołania); 
Na  list   parametrów  wywołania  składaj   si   oddzielone  przecinkami  wyra enia  typu 
zgodnego z typem parametru funkcji. 
J zyk  C++  wprowadza  kilka  dodatkowych  mo liwo ci  w  zakresie  deklarowani, 
definiowania i wykorzystania funkcji:  
 Funkcje przeci one zaliczamy co nich funkcje o tej samej nazwie, lecz ró ni cych si  
parametrami i ewentualnie typem warto ci. Dwie funkcje przeci one nie mog  ró ni  si  
wył cznie  typem  zwracanej  warto ci.  O  tym,  która  z  funkcji  przeci onych  zostanie 
wywołana, decyduj  parametry wywołania – ich typy i liczba. 
Domy lne warto ci parametrów funkcji, które podajemy w deklaracji pozwala wywoła  
funkcj  z domy lnymi parametrami. 
Funkcja  mo e  otrzymywa   lub  samodzielnie  pobiera   dane  z  otocznia,  przetwarza   je,  
a  nast pnie  zwraca   rezultaty  przeprowadzonych  działa .  Przekazywanie  parametrów  
i zwracanie warto  s  wi c ze sob  blisko zwi zane. Parametry mog  by  przekazywane 
do funkcji na trzy sposoby: 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
♦  Przez warto  
Przez  dłu szy  czas  jedynym  sposobem  przekazywania  parametrów  funkcji  było  tzw. 
przekazywanie przez warto . W wyniku przekazywania przez warto  funkcja otrzymuje 
kopi   zmiennej  na  stosie  procesora  lub  w  jego  rejestrze.  Przekazany  parametr  jest 
traktowany  tak  samo,  jak  wszystkie  zmienne  automatyczne  zadeklarowane  w  ciele 
definicji funkcji, tj. istnieje tylko podczas jej wykonywania, 
 
♦  Przez wska nik 
Przekazywanie  argumentów  funkcji  przez  wska nik  jest  wła ciwie  tylko  odmian  
przekazywania  przez  warto   –  funkcja  otrzymuje  po  prostu  kopi   wska nika.  Nale y 
zwróci  bowiem uwag  na fakt,  e wska nik przekazany do funkcji mo e identyfikowa  
zmienn   nale c   do  innej  funkcji.  Przypisanie  warto ci  zmiennej  wskazywanej  przez 
parametr  wska nikowy  pozwala  wi c  zmienia   warto   zmiennych  utworzonych  
w  innych  funkcjach  programu.  Przekazywanie  parametrów  przez  wska nik  jest 
zasadniczo  wykorzystywane  w  przekazywaniu  struktur  danych  o  du ych  rozmiarach, 
takich jak tablice czy ła cuchy lub umo liwienia zwrócenia wi cej ni  jednej warto ci, 
 
♦  Przez referencj  
W  j zyku  C++  istnieje  typ  referencyjny,  który  umo liwia  deklarowanie  zmiennych 
reprezentuj cych  inne  zmienne.  Najszerzej  zmienne  referencyjne  s   wykorzystywane 
przy  przekazywaniu  parametrów  do  i  z  funkcji. Tzw.  przekazywanie  parametrów  przez 
referencj   jest  odpowiednikiem  przekazywania  parametrów  przez  zmienn  
(wykorzystywan  w j zyku Turbo Pascal), cho  mo e nie dokładnym, ale za to daj cym 
znaczenie wi ksze mo liwo ci. Operacje s  wi c przeprowadzane albo bezpo rednio na 
zmiennej, której referencj  przekazano do funkcji, albo na zmiennej tymczasowej, co ma 
miejsce w przypadku niezgodno ci typu referencyjnego, i zmiennej, do której referencja 
jest tworzona, 
 
♦  Zwracanie warto ci  
Do  zwracania  warto ci  wykorzystujemy  instrukcj   return.  Powoduje  ona  zako czenie 
wykonywania funkcji i zwrócenie warto ci. Wykonywanie funkcji typu void mo e, lecz 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

nie  musi  ko czy   si   instrukcj   return  z  parametrem  okre laj cym  warto   funkcji,  
w przeciwnym razie warto  ta pozostaje nie okre lona. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
 
5.

 

BUDOWA PROGAMU 

 
Program  napisany  w  j zyku  C++  składa  si   w  ogólnym  przypadku  z  dyrektyw 
preprocesora,  komentarzy,  deklaracji  i  instrukcji.  Dyrektywy  zajmuj   pełne  wiersze  
i  zaczynaj   si   od  znaku  #  (hash).  Komentarze  natomiast  mog   by   dwóch  rodzajów:  
o postaci:  /*tekst*/  w której tekst jest dowolnym, by  mo e wielowierszowym napisem 
nie zawieraj cym dwu znaku */, albo jest napisem o postaci  //tekst  w której niejawnym 
ko cem komentarza jest koniec wiersza. 
Najcz ciej  u ywan   dyrektyw   preprocesora  jest  #include,  zazwyczaj  wyst puj ca  
w  postaci:    #include  <name>    w  której  name  jest  nazw   pliku.  Zinterpretowanie  tej 
dyrektywy powoduje wł czenie w miejscu jej wyst pienia, całej zawarto ci pliku name
Plik  name  jest  nazywany  nagłówkowym  i  zawiera  zazwyczaj  deklaracje  funkcji 
standardowych u ytych w programie. 
Ka dy program musi zawiera  deklaracj  funkcji o nazwie main. Jest to funkcja, od której 
zaczyna si  wykonywanie programu. Funkcja main jest najcz ciej bezparametrowa.  
W  programie  jednostkami  leksykalnymi  s   słowa  kluczowe,  identyfikatory,  literały  
i ograniczniki. Ogranicznikami s  operatory (np.+, -, *). Podział programu na jednostki 
leksykalne odbywa si  w naturalnym porz dku, to jest od lewej do prawej i od góry do 
dołu. Słowa kluczowe s  to słowa wybrane z ustalonego repertuaru i pełni ce w j zyku 
specjalne funkcje, takie jak np. słowo void w li cie parametrów funkcji main. Słowa te s  
zastrze one  i  nie  mog   by   u ywane  do  oznaczania  takich  obiektów  programu,  jak 
zmienne,  funkcje  i  typy.  Literałem  jest  napis  reprezentuj cy  dan ,  z  którego  zapisu  
i w ramach przyj tej interpretacji, wynikaj  wszystkie atrybuty danej, w tym jej warto   
i typ. W j zyku C++ literałami s  liczby (np. 12, 23.7), znaki (np. ‘*’) i ła cuchy (np. „to 
jest ła cuch”). 
 
 
 
6.

 

KLASY I OBIEKTY 

 
Dane  definiuj ce  przedmiot  i  metody  okre laj ce  jego  wła ciwo ci  umieszczamy  we 
wspólnym  miejscu  –  klasie.  W  ten  sposób  nast puje  integracja  danych  i  metod 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

uprawnionych do ich wykorzystania. Nazwa programowanie obiektowe zwraca uwag  na 
fakt,  e  dane  funkcje  z  nich  korzystaj ce  słu   temu  samemu  celowi  –  definiowaniu 
przedmiotów  i  okre laniu  ich  wła ciwo ci.  To  wła nie  przedmioty  –  obiekty  staj   si  
głównym  przedmiotem  zainteresowania  wielu  programistów  i  jednocze nie 
podstawowym  elementem  konstrukcji  programu.  C/C++  nie  jest  j zykiem  ci le 
obiektowym,  gdy   pozwala  równie   na  programowanie  proceduralne.  Takie  poł czenie 
nale y  uzna   za  zalet ,  gdy   nieprawd   jest,  i   wszystkie  problemy  najwygodniej  jest 
rozwi zywa   obiektowo.  W  wielu  przypadkach  wygodnie  jest  zdefiniowa   kilka  klas 
definiuj cych  cz sto  spotykanych  poj ,  natomiast  cały  program  mo na  napisa  
proceduralne  wykorzystuj c  tak  zdefiniowane  klasy.  Podstawowym  poj ciem  j zyka 
C/C++  jest klasa. Z ka d   klas  jest  zwi zany  zbiór  danych  okre lonych  przez jej  pola 
oraz zbiór operacji okre lony przez jej funkcje składowe. Pola i funkcje składowe mog  
by   publiczne,  prywatne  i  zabezpieczone.  Je li  klasa  nie  zawiera  funkcji  składowych,  
a wszystkie jej pola s  publiczne, to jest po prostu struktur . Identyfikatory komponentów 
prywatnych  s   dost pne  jedynie  w  obr bie  funkcji  składowych  klas  oraz  w  obr bie 
funkcji zaprzyja nionych z klas . Identyfikatory komponentów publicznych s  dost pne 
wsz dzie.  Identyfikatory  komponentów  zabezpieczonych  s   traktowane  tak  jakby  były 
prywatne,  ale  ponadto  s   dost pne  tak e  w  obr bie  funkcji  składowych  
i  zaprzyja nionych  z  klas   pochodn   danej  klasy  bazowej.  Deklaracja  funkcji 
zaprzyja nionej z klas  mo e wyst pi  w dowolnym miejscu w obr bie deklaracji klasy, 
ale  musi  by   poprzedzona  słowem  kluczowym  friend.  Wymienione  powy ej  elementy 
rozmieszcza si  w sekcjach definicji klasy, co ilustruje poni szy schemat: 
Class Klasa 

  public: 
 

... (funkcje i dane składowe publiczne) 

  protected: 
 

... (funkcje i dane składowe zabezpieczone) 

  private: 
 

... (funkcje i dane składowe prywaten) 

}; 
Deklarowaniu  obiektów  mo e  towarzyszy   ich  inicjowanie.  Inicjator  obiektu  składa  si   
z listy argumentów inicjacji uj tych w nawiasy okr głe, albo z wyra enia nast puj cego 
po znak „=”. Sposób inicjowania poszczególnych pól obiektu jest okre lony przez funkcje 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

nazywan   konstruktorem.  Funkcja  ta  musi  by   publiczn   składow   obiektu  i  mo na  j  
rozpozna  po tym,  e jej nazwa jest identyczna z nazw  klasy. Najcz ciej funkcja ta jest 
przeci ona.  Umo liwia  to  stosowanie  do  obiektów  danej  klasy  inicjatorów  o  ró nej 
liczbie i ró nych typach argumentów. Ponadto deklaracja konstruktora nie mo e zawiera  
specyfikatora typu, a definicja konstruktora nie mo e zawiera  instrukcji return. Inicjator 
zapisany  po  znaku  „=”  maj cy  posta   nazwy  zmiennej  obiektowej  tej  samej  klasy  co 
inicjowany  obiekt,  stanowi  argument  konstruktora.  Je li  taki  konstruktor  nie  zostanie 
zadeklarowany  jawnie,  to  domniemywa  si   konstruktor  kopiuj cy.  Je li  klasa  zawiera 
jawnie zadeklarowany  konstruktor, to ka da  deklaracja obiektu  tej  klasy  musi  zawiera  
inicjator. Je li nie wyst puje on jawnie, to podczas opracowywania deklaracji obiektu jest 
wywoływany konstruktor nazywany bezparametrowym. 
Podobnie  jak  pozostałe  zmienne,  obiekty  dziel   si   na  statyczne  i  dynamiczne.  Je li 
opracowanie  deklaracji  zmiennej  powoduje  wywołanie  konstruktora,  to  o  miejscu 
przydzielonym  zmiennej  mo na  wnioskowa   na  podstawie  warto ci  danej  przypisanej 
zmiennej  this.  Wywołanie  konstruktora  dla  zmiennej  this  wskazuje  obiekt  dla  którego 
wywołano  konstruktor.  Analogiczn   funkcj   jak   podczas  tworzenia  obiektów  pełni 
konstruktor spełnia podczas ich usuwania destruktor. Podobnie jak konstruktor, destruktor 
jest komponentem klasy do której nale y obiekt. Nazw  destruktora jest napis składaj cy 
si   z  identyfikatora  klasy  poprzedzonego  znakiem  ~  (tylda).  Deklaracja  destruktora  nie 
mo e  zawiera   specyfikacji  typu,  a  jego  definicja  nie  mo e  zawiera   instrukcji  return
Typowe  u ycie  destruktora  sprowadza  si   do  przywrócenia  warunków  pocz tkowych,  
w tym do odzyskania pami ci operacyjnej przydzielonej podczas inicjowania obiektu. 
 
 
7.

 

DZIEDZICZENIE I POLIMORFIZM 

 
Jednym  z  podstawowych  zada   programowania  obiektowego  jest  wspólny  opis  pewnej 
klasy  przedmiotów, zjawisk  czy problemów. Temu  celowi  słu y  maj  dwa najwi ksze 
osi gni cia  programowania  zorientowanego  obiektowo:  dziedziczenie  i  polimorfizm. 
Dziedziczenie  umo liwia  przejmowanie  wła ciwo ci  innych  klas  zwanych  pierwotnymi 
lub  bazowymi,  przez  klasy  zwane  potomnymi  lub  wprowadzonymi.  Poniewa  
wła ciwo ci klasy s  definiowane przez jej składowe, dziedziczenie polega na mo liwo ci 
przył czenia  do  klasy  składowych  klas  bazowych.  Podstawow   korzy ci   płyn c   
z dziedziczenia jest automatyczne wykonywanie konwersji od wska nika klasy potomnej 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

–  do  wska nika  klasy  bazowej,  co  umo liwia  traktowanie  wszystkich  obiektów 
potomnych tak, jakby były abstrakcyjnej klasy bazowej. 
Polimorfizm  jest  wła ciwo ci   kolekcji  funkcji  o  przeci onym  identyfikatorze, 
umo liwiaj c   aktywowanie  jednej  z  nich  na  rzecz  obiektu,  którego  typ  nie  wynika  
z  nazwy  obiektu,  lecz  jest  zapami tany  w  obiekcie.  Ogół  funkcji  polimorficznych 
obranego  typu  składa  si   z  funkcji  zadeklarowanej  ze  specyfikatorem  virtual  oraz  ze 
wszystkich  funkcji  o  takim  samym  identyfikatorze,  zdefiniowanych  w  ci gu  klas 
pochodnych  (ju   bez  specyfikatora  virtual).  Wyst pienie  w  deklaracji  klasy  chocia  
jednej funkcji polimorficznej powoduje uzupełnieni ogółu pól tej klasy, ukrytym polem 
identyfikacyjnym, w którym jest przechowywana informacja o typie obiektu. Niezale nie 
od  liczby  funkcji  polimorficznych  danej  klasy  pole  takie  jest  tylko jedno. W typowych 
implementacjach  jest  ono  umieszczane  bezpo redni  za  wszystkimi  polami  tej  klasy,  
w  której  po  raz  pierwszy  wyst piła  funkcja  polimorficzna.  Aktywowanie  funkcji 
polimorficznej  na  rzecz  obiektu  przebiega  w  nast puj cy  sposób:  najpierw  si ga  si   do 
pola informacyjnego obiektu, w celu okre lenia klasy obiektu, a nast pnie aktywuje si  
funkcj  polimorficzn  tej wła nie klasy na rzecz tego obiektu. 
Funkcje  polimorficzne  pozwalaj   na  wywołanie  funkcji  zgodnie  z  klas   obiektu,  nawet 
gdy  odwołanie  do  tej  funkcji  odbywa  si   przez  wska nik  klasy  pierwotnej,  np.  je li  
w  tablicy  tab  przechowywane  s   wska niki  klasy  podstawowej  hierarchii,  zawieraj cej 
funkcj   polimorficzn ,  to  wywołanie  tab[indeks]->funkcja_plimorficzna  spowoduje 
wywołanie funkcji odpowiadaj cej rzeczywistej klasie wskazywanego obiektu. Aby wi c 
wywołanie  odpowiedniego  destruktora  było  mo liwe  musi  by   on  równie   funkcj  
wirtualn .  Adres  wywoływanej  funkcji  wirtualnej  jest  ustalany  dopiero  w  czasie 
wykonywania programu. Dzi ki temu raz skompilowana funkcja mo e odwoływa  si  do 
funkcji  wirtualnych  klas,  które  w  momencie  jej  kompilacji  jeszcze  nie  istniały.  Wybór 
funkcji,  która  ma  zosta   wywołana,  odbywa  si   za  po rednictwem  tzw.  tablicy  funkcji 
wirtualnych.  W  pewnym  uproszczeniu  mo na  powiedzie ,  e  zawiera  ona  adresy  danej 
funkcji wirtualnej  dla całej  hierarchii  klas.  Po  napotkaniu  wywołania funkcji  wirtualnej 
rozpoczynane jest przeszukiwanie tej tablicy, maj ce na celu odnalezienie adresu funkcji 
nale cej do klasy obiektu, dla którego jest ona wywoływana. 
 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

VI.  PROGRAMOWANIE DLA WINDOWS Z 

WYKORZYSTANIEM  OWL (OBIEKT WINDOW LIBRARY) 

 

 
W tym rozdziale omówi  standardowe klasy potrzebne do tworzenia aplikacji. 
 Biblioteka OWL zawiera definicje klas potrzebnych do tworzenia aplikacji dla Windows. 
Fundamentalne znaczenie dla wi kszo ci typowych aplikacji maj  nast puj ce klasy: 
TModule

 (moduł – program lub biblioteka DLL) 

TApplication

 (program – aplikacja) 

 TWindow (okno) 
 Tworz c  obiekt  klasy  danej  aplikacji  b d   wykorzystywał  dziedziczenie  od    klasy 
bazowej TApplication:  
class Moja_class : public TApplication 
Podstawowym celem zastosowania tej wła nie klasy bazowej jest odziedziczenie gotowej 
funkcji  –  metody  virtual  InitMainWindow()  (zainicjuj  główne  okno  programu). 
Utworzenie obiektu Moja_class nast puje zwykle w czterech etapach: 
•  Windows uruchamiaj  program wywołuj c główn  funkcj  WinMain() lub OwlMain() 

wchodz c  w skład ka dej aplikacji, 

•  Funkcja WinMain() tworzy przy pomocy operatora new nowy obiekt – aplikacj , 
•  Obiekt  –  aplikacja  zaczyna  funkcjonowa .  Konstruktor  obiektu  (własny,  b d  

odziedziczony  po  klasie  TApplication)  wywołuje  funkcj   –  wirtualn   metod  
InitMainWidnow()

Funkcja  przy  pomocy  operatora  new  tworzy  obiekt  –  okno  aplikacji.  Wska nik  do 
utworzonego obiektu zwraca funkcja GetApplication(). Dla zobrazowania mechanizmów 
poni ej przedstawi  uproszczony „wyci g” z dwu opisywanych klas. Nie jest to dokładna 
kopia  kodu  ródłowego  Borlanda,  lecz  skrót  tego  kodu  pozwalaj cy  na  zrozumienie 
metod implementacji okienkowych mechanizmów wewn trz klas biblioteki OWL i tym 
samym  wewn trz  obiektów  obiektowo  –  zdarzeniowych  aplikacji.  A  oto  najwa niejsze 
elementy implementacji klasy TApplication
•  Konstruktor obiektu: 

TApplication::TApplication(const char far* name, 
 

 

 

 

HINSTANCE Instance, 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

 

 

 

HINSTANCE prevInstance, 

 

 

 

 

const char far* CmdLine, 

 

 

 

 

Int CmdShow, 

 

 

 

 

TModule*& gModule) 


  hPrevInstance=prevInstance; 
  nCmdShow = CmdShow; 
  MainWindow = 0; 
  HAccTable = 0; 
  BreakMessageLoop = FALSE; 
  AddApplicationObject(this); 
  gModule = this; 


 
•  Funkcja – metoda „Zainicjuj Instancj ”: 
void TApplication::InitInstance() 

  InitMainWindow(); 
  if(MainWindow) 
  { 
    MainWindow->SetFlag(wfMainWidnow); 
    MainWindow->Create(); 
    MainWindow->Show(nCmdShow); 
  } 
 
•  Metoda „Zainicjuj główne okno aplikacji”: 
void TApplication::InitMainWindow() 

  SetMainWindow(new TFrameWindow(0,GetName())); 

 
•  Metoda Run() – „Uruchom program”: 
int TApplication::Run() 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  int status; 

  if(!hPrevInstance) InitApplication(); 
  InitInstance(); 
  status = MessageLoop(); 

 
•  P tla pobierania komunikatów. 
BOOL TApplication::PumpWaitingMessages() 

  MSG msg; 
  BOOL foundOne = FALSE; 
  while(::PeekMessage(&msg,0,0,0,PM_REMOVE)) 
  { 
    foundOne = TRUE; 
    if(msg.message == WM_QUIT) 
    { 
      BreakMessageLoop = TRUE; 
      MessageLoopResult = msg.wParam; 
      ::PostQuitMessage(msg.wParam); 
      break; 
    } 
    if(!ProcessAppMsg(msg)) 
    { 
      ::TranslateMessage(&msg); 
      ::DispatchMessage(&msg); 
    } 
  } 
  return foundOne; 

int TApplication::MessageLoop() 

  long idleCount = 0; 
  MessageLoopResult = 0; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  while(!BreakMessageLoop) 
  { 
  TRY{ 
    if(!IdleAction(idleCount++))::WaitMessage(); 
    if(PumpWaitingMessage()) idleCount = 0; 
  } 
  if(MessageLoopResult != 0) 
  { 
    ::PostQuitMessage(MessageLoopResult); 
    break; 
  } 
  BreakMessageLoop = FALSE; 
  return MessageLoopREsult; 

else if(::lsWindowEnable(wnd)) 

  *(info->Wnds++) = wnd; 
  ::EnableWidnow(wnd,FALSE); 

return TRUE; 

 
Klasa  TWindow  (Okno)  zawiera  implementacj   wielu  przydatnych  przy  tworzeniu 
aplikacji „cegiełek”. Poni ej przedstawi  fragment pliku  ródłowego: 
... 
extern LRESULT FAR PASCAL _export InitWndProc(HWND,UINT,WPARAM,LPARAM) 
... 
struct TcurrentEvent   

//Struktura Bie ce zdarzenie 


  Twindow* win; 

//Wska nik do okno 

  UINT message; 

//Komunikat 

  WPARAM wParam; 
  LPARAM lParam; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

... 
DEFINE_RESPONSE_TABLE(Twindow) 
//Makro:zdefiniuj tablic  odpowiedzi na zdarzenie 
//EV_WM_SIZE – zdarzenie (Event) – nadszedł komunikat WM_SIZE 
... 
EV_WM_SETCURSOR, 
EV_WM_SIZE, 
EV_WM_MOVE, 
EV_WM_PAINT, 
EV_WM_LBUTTONDOWN, 
EV_WM_KILLFOCUS, 
EV_WM_CREATE, 
EV_WM_CLOSE, 
EV_WM_DESTROY, 
EV_COMMAND(CM_EXIT,CmExit), 
... 
END_RESPONSE_TABLE; 
 
•  Funkcje  –  metody  obsługuj ce  komunikaty  zaimplementowane  wewn trz  klasy 

TWindow 

TWindow::EvCreate(CREATESTRUCT far&) 

  SetupWindow(); 
  return (int)DefaultProcessing(); 

void Twindow::EvSize(UINT size Type, Tsize&) 

  if(Scroller && size Type != SIZE_MINIMIZED) 
  { 
    Scroller->SetPageSize(); 
    Scroller->SetBarRange(); 
  } 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

•  Metoda GetWindowClass() 
void TWindow::GetWindowClass(WNDCLASS& wndClass) 

  wndClass.cbClsExtra = 0; 
  wndClass.cbWndExtra = 0; 
  wndClass.hInstance = *GetModule(); 
  wndClass.hIcon = 0; 
  wndClass.hCursor = ::LoadCursor(0,IDC_ARROW); 
  wndClass.hbrBackground = HBRUSH(COLOR_WINDOW +1); 
  wndClass.lpszMenuName = 0; 
  wndClass.lpszClassName = GetClassName(); 
  wndClass.style = CS_DBLCLKS; 
  wndClass.lpfnWndProc = InitWndProc; 

 
Skoro  te  wszystkie  elementy  zostały  ju   zaimplementowane  wewn trz  definicji  klas, 
program powinien tylko umiej tnie z nich korzysta  a tekst  ródłowy programu powinien 
ulec skróceniu i uproszczeniu. 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

VII.  PRAKTYCZNY  CZ

  TWORZENIA  PROGRAMU  KART 

KONTROLNYCH 

 
 

Zaczyna  prac  nad nowym programem znaczy utworzy  nowy projekt, czyli spis 

wszystkich  modułów.  Tworz c  projekt  musimy  zapozna   si   za  nast puj cymi 
zagadnieniami: 
•  Target Name 

W okienku Target Name wpisuje nazw  finalnego programu. 

•  Target Type 

Target Type wybieram wariant o nazwie Application – czyli zwykły windowsowy  
program.  Platform  to  pytanie  o  sprz t  i  oprogramowanie,  na  jakim  ma  by  
uruchamiany  ostateczny  program.  Wybieram  platform   Win32,  czyli  32-bitowe 
Windows9x.  U ytkowników  posiadaj cych  16-bitowy  system  operacyjny  np. 
Widnows3.11 wybieraj  Windows 3.x(16). 

•  Target Model 

Target Model

 to pytanie sugeruj ce ró ne odpowiedzi, zale nie od wcze niej wybranej 

platformy.  Gdy  platforma  jest  16-bitowa,  mam  do  wyboru  model  Large  i  Medium
Wybieraj c  Large  program  b dzie  zawierał  dalekie  wywołania  (b dzie  obsługiwał 
długie  4-bajtowe  adresy)  dzi ki  czemu  uniknie  si   bł dów  zwi zanych  z  brakiem 
modyfikatorów  far  w  deklarowaniu  zmiennych  i  definiowaniu  funkcji.  Nowoczesna 
platforma  32-bitowa  (czyli  4-bajtowa)  nie  rozró nia  adresów  dalekich  (4-bajtowych)  
i bliskich (2-bajtowych). Cały sprz t i całe oprogramowanie jest 4-bajtowe. Wybieram 
aplikacj  GUI, czyli graficzny interfejs u ytkownika. 

•  Frame work 

Grupa opcji Frame work, co mo na tłumaczy  jako szkielet, pozwoli wybra  dialekt 
j zyka, w którym chcemy programowa . Jest to wybór mi dzy ró nymi bibliotekami 
klas  –  obiektów,  ukrywaj cych  w  sobie  zło one  algorytmy  i  struktury  danych. 
Program nawi zuje do borlandowsiej biblioteki OWL. Mo na wybra  te  alternatyw , 
konkurencyjn   bibliotek   Microsoftu  o  nazwie  MFC,  bibliotek   OCF,  zawieraj ca 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

procedury  do  tworzenia  tzw.  powi za   OLE  i  bibliotek  „gołych  klas”  zwan   Class 
Library

. Nale y tutaj doda ,  e ró ne linie Frame works bardzo  le znosz  mieszanie 

ró nych szkieletów w jednym programie.  

•  Grupa Controls 

W Grupa Controls – typ sterowania programem – wybieramy kształt poszczególnych 
elementów sterowania: przycisków, linii, tekstów, edytorów, list itd. 

Biblioteki  doł czane  dynamicznie  (a  mogłyby  by   jeszcze  wklejone  statycznie) 
zmniejszaj  znacznie rozmiar ostatecznego pliku *.exe. Cały kod biblioteczny b dzie 
znajdował  si   gdzie   na  dysku  w  plikach  o  nazwach  *.dll  (dynamicznie  doł czone 
biblioteki do wspólnego u ytku przez wiele programów). Program odwołuj cy si  do 
bibliotek wł czonych dynamicznie mo e nie działa  na innym komputerze – po prostu 
mo e tam nie by  potrzebnego zbioru procedur *.dll

•  Advanced 

Kilka opcji nowo tworzonego projektu zostało ukryte pod przyciskiem Advanced, pod 
którym  wybieramy  z  jakich  pliki  ma  składa   si   program.  Na  program  windosowy 
pisany  pod  Boralndem  składaj   si   zasadniczo  trzy  typy  plików.  Jest  tam  jeden  lub 
wi cej  plików  o  rozszerzeniu  *.cpp  (tekst  ródłowy),  jeden  lub  wi cej  plików  *.rc 
(opis  map  bitowych,  ikon,  przycisków,  edytorów,  list,  itd.)  i  jeden  krótki  plik  *.def
zawieraj cy  dane  dla  linkera,  czyli  narz dzia  zbieraj cego  wszystkie  cz ci  w  jeden 
ostateczny plik wykonywalny. 

Program windosowy z zało enia jest obszerny. Przyczyn  tego stanu rzeczy jest dialog, 
jaki      program  prowadzi  z  systemem  operacyjnym,  zanim  cokolwiek  pojawi  si   na 
ekranie.  Program  musi  zosta   podł czony  do  wielozadaniowego  rodowiska.  Pokazuje 
wi c  systemowi  stosunkowo  du o  ró nych  parametrów,  które  zło   si   na  dane  cechy 
programu.  Znajduje  si   tam  nazwa  procedury  desygnowanej  do  obsługi  napływaj cych 
komunikatów,  tytuł  okna,  rodzaj  kursora,  opis  elementu  graficznego,  opis  sposobu 
reagowania na inne okna i jeszcze kilka innych rzeczy. Wszystkie te parametry s  uj te  
w struktur , któr  po wypełnieniu nale y przesła  do systemu. Je li system zaakceptuje 

dania, co nazwa si  rejestracj  klasy okna, przyst puje si  do utworzenia okna, te  nie 

bezpo rednio  rysuj c  co   na  ekranie,  a  wywołuj c  specjalnie  przygotowan   funkcj , 
której  argumentami  s   mi dzy  innymi  rozmiary  i  poło enie  ramki.  Po  rejestracji  da  
 i  utworzeniu  okna  nale y  podł czy   si   do  strumienia  komunikatów  o  naci ni tych 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

klawiszach,  ruchach  myszki,  ewentualnie  stanach  innych  urz dze .  Pozostał  jeszcze 
czwarty element  –  cała reszta  programu,  zapisana jako funkcja  (która  oczywi cie  mo e 
operowa   mnóstwem  innych  funkcji)  reprezentuj ca  specyficzne  reakcje  na  ka dy 
konkretny komunikat o zdarzeniach zewn trznych. 
Programowanie obiektowe ma szczególne mo liwo ci ukrywania kodu, składaj cego si  
na  program.  Konstruktor  jakiego   obiektu,  b d cy  zwykł   funkcj   wchodz c   do  gry 
w  momencie  deklarowania  konkretnej  instancji  tego  obiektu,  mógłby  stanowi   wi ksz  
cz

  programu.  Publiczne  funkcje  obiektu,  jak  np.  funkcja  Run()  obiekt  typu 

TApplication

, dopełniaj  reszty cech programowania obiektowego. Wystarczy mie  dobry 

opis konkretnej klasy by móc pisa  skomplikowane programy, wykorzystuj ce przy tym 
prac  innych programistów.  
Filozofia  programowania  w  OWL  opiera  si   na  poznaniu  zasady  modyfikowania 
obiektów bibliotecznych.  
Poni ej przedstawi  cz

 kodu  ródłowego opisuj c wybrane funkcje i klasy: 

#include"kk.h" 

#include <owl\applicat.h> 

#include <owl\inputdia.h> 

#include <owl\opensave.h> 

#include <owl\framewin.h> 

#include <owl\gauge.h> 

#include <owl\listbox.h> 

#include <owl\window.h> 

#include <owl\dialog.h> 

#include <owl\edit.h> 

#include <owl\dc.h> 

#include <owl\combobox.h> 

#include <owl\button.h> 

#include <owl\color.h> 

#include <stdio.h> 

#include <string.h> 

#include <math.h> 

#include <dos.h> 

#include <dir.h> 

 

struct czas_utworzenia_pliku 

//Tworzymy struktury usprawniaj c i czyni c prac  czytelniejsz  

 unsigned sec:5; 

 unsigned min:6; 

 unsigned hrs:5; 

}; 

 

struct _DANE_PARAMETROW_ 

 char pdwd[10];   

//przedział danych wejsciowych dolni 

 char pdwg[10];    //przedział danych wejsciowych górny 

 char lkd[10]; 

 

//linia kontrolna  dolnia 

 char lkg[10];     //linia kontrolna górna 

 char alk[10];     //wylicz automatycznie linie kontrolne po zadanym okresie 

 char apdw[10];    //automatyczny przedział danych po zadanym okresie 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

}; 

 

class _DIALOG_PARAMETROW_ : public TDialog 

//Tworzymy  klas ,  która  dziedziczy  zasoby 

po  

//klasie bazowej TDialog  

 public: 

  

_DIALOG_PARAMETROW_(TWindow  *parent,_DANE_PARAMETROW_  *daneparam,int 

resId);  //definiujemy konstruktor klasy 

}; 

 

_DIALOG_PARAMETROW_::_DIALOG_PARAMETROW_(TWindow 

*parent,_DANE_PARAMETROW_ *daneparam,int resId) : TDialog(parent,resId) 

 new TEdit(this,IDC_PDWD,10); 

 new TEdit(this,IDC_PDWG,10); 

 new TEdit(this,IDC_LKD,10); 

 new TEdit(this,IDC_LKG,10); 

 new TEdit(this,IDC_ALK,10); 

 new TEdit(this,IDC_APDW,10); 

 SetTransferBuffer(daneparam); 

 

 

struct _DANE_WEJSCIOWE_ 

 char sd[180]; 

 

// cie ka dost pu do pliku wej ciowego 

 char cod[10]; 

 

//czas odczytu danych 

}; 

 

class _DIALOG_DANE_WEJSCIOWE_ : public TDialog 

 public: 

 

_DIALOG_DANE_WEJSCIOWE_(TWindow 

*parent,_DANE_WEJSCIOWE_ 

*danewe,int 

resId); 

}; 

 

_DIALOG_DANE_WEJSCIOWE_::_DIALOG_DANE_WEJSCIOWE_(TWindow 

*parent,_DANE_WEJSCIOWE_ *danewe,int resId) : TDialog(parent,resId) 

 new TEdit(this,IDC_SCIEZKADOSTEPU,180); 

 new TEdit(this,IDC_CZESTOTLIWOSC,10); 

 SetTransferBuffer(danewe); 

 

 

class _WYKRES_ 

//Tworzymy  klas  do rysowania wykresów,  której  mo liwo ci  wykraczaj   poza 

//wymagania programu 

 public: 

 

_WYKRES_(TDC &dc,char *tytul,double xl,double yl,double xr,double yr, 

 

 

 

 

int xel,int yel,int xer,int yer,int il_skala_x,int il_skala_y, 

 

 

 

 

bool linia,bool skala_x,bool skala_y,bool siatka, 

 

 

 

 

TColor kolor_punktu,TColor kolor_skali,TColor kolor_siatki); 

 

~_WYKRES_() 

 

 

 _dc_->RestorePen(); 

 

 

void Plot(double x,double y); 

  

float _x0_,_y0_; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 private: 

 

TDC *_dc_; 

 

TColor _kolor_punktu_; 

 

double _a_,_b_,_c_,_d_; 

 

bool _linia_,_pierwszy_punkt_; 

}; 

 

_WYKRES_::_WYKRES_(TDC  &dc,  char  *tytul=NULL,  double  xl=-10,  double  yl=-8,  double  xr=10, 

double yr=8, 

 

 

 

 

 

 

 int  xel=30,  int  yel=30,  int  xer=90,  int  yer=90,  int 

il_skala_x=3, int il_skala_y=3, 

 

 

 

 

 

 

 bool 

linia=false, 

bool 

skala_x=true, 

bool 

skala_y=true, bool siatka=true, 

                   TColor kolor_punktu=0, 

TColor kolor_skali=0, TColor kolor_siatki=0) 

 _dc_=&dc; 

 _kolor_punktu_=kolor_punktu; 

 _a_=(double)(xer-xel)/(xr-xl); 

 _b_=(double)xel-_a_*xl; 

 _c_=(double)(yer-yel)/(yr-yl); 

 _d_=(double)yel-_c_*yl; 

 

 if(tytul) 

 { 

  TSize rozmiar; 

  TFont mss("MS Sans Serif",10); 

  dc.SelectObject(mss); 

  rozmiar=dc.GetTextExtent(tytul,strlen(tytul)); 

  dc.TextOut(xel+(xer-xel-rozmiar.cx)/2,250,tytul); 

  dc.RestoreFont(); 

 } 

 

 if(linia) 

 { 

  _pierwszy_punkt_=true; 

 } 

 

 if(siatka) 

 { 

  dc.SelectObject(TPen(kolor_siatki)); 

  int dx=(xer-xel)/il_skala_x; 

  for(int x=xel;x<=xer;x+=dx) 

  { 

 

dc.MoveTo(x,yer); 

 

dc.LineTo(x,yel); 

  } 

  int dy=(yer-yel)/il_skala_y; 

  for(int y=yel;y<=yer;y+=dy) 

  { 

 

dc.MoveTo(xel,y); 

 

dc.LineTo(xer,y); 

  } 

 } 

 

 if(skala_x) 

 { 

  dc.SelectObject(TPen(kolor_skali)); 

  int dx=(xer-xel)/il_skala_x; 

  dc.MoveTo(xel,yer); 

  dc.LineTo(xer,yer); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  for(int x=xel;x<=xer;x+=dx) 

  { 

 

dc.MoveTo(x,yer-3); 

 

dc.LineTo(x,yer+3); 

  } 

  dc.MoveTo(xel,yer); 

  dc.LineTo(xer,yer); 

  dc.MoveTo(xer+10,yer); 

  dc.LineTo(xer,yer-3); 

  dc.LineTo(xer,yer+3); 

  dc.LineTo(xer+10,yer); 

 } 

 

 if(skala_y) 

 { 

  dc.SelectObject(TPen(kolor_skali)); 

  int dy=(yer-yel)/il_skala_y; 

  for(int y=yel;y<=yer;y+=dy) 

  { 

 

dc.MoveTo(xel-3,y); 

 

dc.LineTo(xel+3,y); 

  } 

  dc.MoveTo(xel,yer); 

  dc.LineTo(xel,yel); 

  dc.MoveTo(xel,yel-10); 

  dc.LineTo(xel-3,yel); 

  dc.LineTo(xel+3,yel); 

  dc.LineTo(xel,yel-10); 

 } 

 

 

void _WYKRES_::Plot(double x,double y) 

 int xe,ye; 

 xe=_a_*x+_b_; 

 ye=_c_*y+_d_; 

 

 if(_linia_) 

 { 

  if(_pierwszy_punkt_) 

  { 

 

_x0_=xe; 

 

_y0_=ye; 

 

_pierwszy_punkt_=false; 

  } 

  _dc_->SelectObject(TPen(_kolor_punktu_)); 

  _dc_->MoveTo(_x0_,_y0_); 

  _dc_->LineTo(_x0_=xe,_y0_=ye); 

 } 

 else 

 

_dc_->SetPixel(xe,ye,_kolor_punktu_); 

 

 

Nast pn  z najwa niejszych i najbardziej efektownych klas w OWL jest klasa TWindow
Daje  ona  pocz tek  wszystkim  typom  okien  –  w  szczególno ci  TFrameWindow.  Nawet 
zwykły przycisk jest potomkiem TWindow, co znaczy,  e zwi zana z nim klasa powstała 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 w  wyniku  zastosowania  składni  dziedziczenia.  Oczywi cie  obiekt  TWindow  ma  swoje 
konstruktory, swoje publiczne i prywatne dane, swoje funkcje, z których kluczowa cz

 

jest wirtualna:

 

class _OKNO_ : public TWindow 

 public: 

 

_OKNO_(TWindow* parent=0); 

 

~_OKNO_(); 

 

   int i,cmwapdw,cmwalk; 

   int xx; 

   TStatic* xi[10]; 

   TStatic *odchylenies, *liniac; 

   TStatic *przedzialdanychgorny, *przedzialdanychdolni; 

   TStatic *sredniaruchoma, *dopuszczalneodchyl, *gornaliniakontrolna, *dolnialiniakontrolna; 

   

TGauge *miernik; 

   char sd[180],cod[10]; 

   char pdwd[10];  

//przedział danych wejsciowych dolni 

   char pdwg[10];    //przedział danych wejsciowych górny 

   char lkd[10];   

//linia kontrolna  dolnia 

   char lkg[10];     //linia kontrolna górna 

   char alk[10];     //wylicz automatycznie linie kontrolne po zadanym okresie 

   char apdw[10];    //automatyczny przedział danych po zadanym okresie 

   char xip[10][5]; 

   

float x_0,y_0; 

   float ppdgp, ppddp; 

   float ppd[9],lc; 

   float ppdsrxx; 

   float ppddpt;      //pomocniczy przedział danych dolnich tymczasowy 

   float ppdgpt;   

 //pomocniczy przedział danych górnych tymczasowy 

   float ppdsrk[10001]; 

 //pomocniczy przedział danych  rednich ruchomych kroki 

   double x; 

   long opoznij,lcif; 

   float wylicz_srednia_ruchoma(float[]); 

   float przedzial_danych_gorny(float[]); 

   float przedzial_danych_dolni(float[]); 

   float linia_centralna(float[]); 

   float odchylenie_stand(float[]); 

   float lcp[10];       //linia centralalna pomocnicza 

   bool IdleAction(long); 

 

void SetupWindow(void); 

   void CmOprogramie(void); 

   void CmParametryObliczeniowe(void); 

   void CmDaneWejsciowe(void); 

   void Cmwapdw(void); 

   void Cmwalk(void); 

   void CmHelp(void); 

 

bool CanClose(void); 

   float linia_kontrolna_dolnia(void); 

 

float linia_kontrolna_gorna(void); 

   void CmStart(void){i=1;}; 

   void CmStop(void){i=0;}; 

   

void Paint(TDC &dc,bool erase,TRect &r); 

   

_DANE_WEJSCIOWE_ danewe; 

   _DANE_PARAMETROW_ daneparam; 

 private: 

 DECLARE_RESPONSE_TABLE(_OKNO_); 

}; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

Jednym  z  najwa niejszych  w  programowaniu  pod  Windows  terminem  jest  zdarzenie, 
wiadomo , REAPONSE TABLE (tabela odzewów). Tabela ta okre la zdarzenie, którymi 
interesuje  si   okno  i  z  ka dym  zdarzeniem  wi e  odpowiedni   funkcj   ze  zbioru 
procedur.

 

DEFINE_RESPONSE_TABLE1(_OKNO_,TWindow) 

 

EV_WM_SIZE, 

 

EV_COMMAND(IDM_OPROGRAMIE,CmOprogramie), 

   EV_COMMAND(IDM_PARAMETRYOBLICZENIOWE,CmParametryObliczeniowe), 

   EV_COMMAND(IDM_DANEWEJSCIOWE,CmDaneWejsciowe), 

   EV_COMMAND(ID_PRZYCISK_OPCJE,CmParametryObliczeniowe), 

   EV_COMMAND(ID_PRZYCISK_DANE,CmDaneWejsciowe), 

   EV_COMMAND(IDC_WAPDW,Cmwapdw), 

   EV_COMMAND(IDC_WALK,Cmwalk), 

   EV_COMMAND(IDHELP1,CmHelp), 

   EV_COMMAND(ID_PRZYCISK_START,CmStart), 

   EV_COMMAND(ID_PRZYCISK_STOP,CmStop), 

END_RESPONSE_TABLE; 

 

_OKNO_::_OKNO_(TWindow* parent) : TWindow(parent) 

  strcpy(sd,".//DANE//kk.txt"); 

  strcpy(cod,"500"); 

  strcpy(pdwd,"13"); 

  strcpy(pdwg,"14"); 

  strcpy(alk,"6"); 

  strcpy(apdw,"6"); 

  i=1; 

  TStatic *ramka1, *ramka2, *ramka3, *ramka4; 

  ramka1=new TStatic(this,-1,"",20,10,110,230); 

  ramka1->Attr.Style|=SS_ETCHEDFRAME; 

  ramka2=new TStatic(this,-1,"",20,245,600,240); 

  ramka2->Attr.Style|=SS_ETCHEDFRAME; 

  ramka3=new TStatic(this,-1,"",505,10,110,230); 

  ramka3->Attr.Style|=SS_ETCHEDFRAME; 

  ramka4=new TStatic(this,-1,"",140,10,355,205); 

  ramka4->Attr.Style|=SS_ETCHEDFRAME; 

  miernik=new TGauge(this,ID_MIERNIK,135,225,365,15); 

  SetBkgndColor(TColor::Sys3dFace); 

  for(int xii=0;xii<5;xii++) 

  { 

  new TStatic(this, -1,"xi=",30,20+(20*xii),40,18,18); 

  xi[xii]=new TStatic(this, -1," ",80,20+(20*xii),40,18,18); 

  }; 

  new TStatic(this, -1,"Linia centralna:",170,20,100,18,18); 

  liniac=new TStatic(this,-1," ",280,20,60,20,18); 

  new TStatic(this, -1,"Odchylenie standardowe:",170,40,170,18,18); 

  odchylenies=new TStatic(this, -1," ",345,40,60,20,18); 

  new TStatic(this, -1,"Przedział dolni danych:",170,60,170,18,18); 

  przedzialdanychdolni=new TStatic(this, -1," ",345,60,60,20,18); 

  new TStatic(this, -1,"Przedział górny danych:",170,80,170,18,18); 

  przedzialdanychgorny=new TStatic(this, -1," ",345,80,60,20,18); 

  new TStatic(this, -1,"Górna linia kontrolna:",170,100,170,18,18); 

  gornaliniakontrolna=new TStatic(this, -1," ",345,100,60,20,218); 

  new TStatic(this, -1,"Dolnia linia kontrolna:",170,120,170,18,18); 

  dolnialiniakontrolna=new TStatic(this, -1," ",345,120,60,20,218); 

  new TStatic(this, -1,"Dopuszczalne odchylenie:",170,140,180,18,18); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  dopuszczalneodchyl=new TStatic(this, -1," ",345,140,60,20,218); 

  new TStatic(this, -1," rednia ruchoma:",170,160,140,18,18); 

  sredniaruchoma=new TStatic(this, -1," ",315,160,60,20,18); 

  new TButton(this,ID_PRZYCISK_START,"START",515,30,90,25); 

  new TButton(this,ID_PRZYCISK_STOP,"STOP",515,70,90,25); 

  new TButton(this,ID_PRZYCISK_OPCJE,"OPCJE",515,110,90,25); 

  new TButton(this,ID_PRZYCISK_DANE,"DANE",515,150,90,25); 

  new TButton(this,IDHELP1,"HELP",515,190,90,25); 

}; 

 

_OKNO_::~_OKNO_() 

}; 

 

Klasa  TWindow,  jak  przystało  na  okienkowy  system  operacyjny,  jest  niezwykle  bogata 
w  szczegóły.  Zawiera  blisko  dwie cie  danych i funkcji.  Przytocz   tutaj  tylko  jedn , ale 
chyba najwa niejsz  funkcj  klasy TWindow – Paint() (maluj): 
virtual void Paint (TDC& dc, bool erase, TRect& rect); 
Funkcja  Paint()  jest  podporz dkowana  systemowi.  Wywoła  j   system,  gdy  nasze  okno 
znajdzie  si   na  widocznym  miejscu  ekranu.  Funkcja  Paint()  to  danie  na  pokazanie 
tre ci  okna.  Funkcja  Paint()  ma  trzy  argumenty.  Pierwsza  z  nich  jest  powi zaniem 
(referencj ) do obiektu typu TDC – urz dzenia graficznego (Device Context), które tutaj 
jest  pewnym  kawałkiem  ekranu.  Drugi argument,  o  nazwie erase  (skasuj)  poinformuje, 
czy  odbudowie  podlega  cała  zawarto   okienka.  Trzeci  argument  jest  referencj   do 
zaskakuj co  bogatego  obiektu,  który definiuje  obszar  wymagaj cy od wie enia.  S   tam 
zdefiniowane  mi dzy  innymi  współrz dne  prostok ta,  które  okre l ,  jaki  obszar  okna 
powinien by  odbudowany: 

void _OKNO_::Paint(TDC& dc,bool,TRect&) 

 TMemoryDC memDC; 

 double minx=0,maxx=100; 

 TRect r=GetClientRect(); 

 _WYKRES_  w(dc,"Diagram  karty  kontrolnej  rednich  ruchomych",minx,(ppdgp+0.5),maxx,(ppddp-

0.5),r.left+30,r.top+270,r.right-30,r.bottom-30, 

  

 

 

   10,10,true,true,true,false,TColor(0,100,0),TColor(0,0,0),TColor(255,255,255)); 

 

 if(i==100) 

 { 

  i=5; 

  Invalidate(true); 

 } 

 if(i<=atoi(apdw)+2) 

 { 

  y_0=lc; 

  i++; 

  if(i==atoi(apdw)+2) 

  { 

   w.Plot(0,13.5); 

   w.Plot(100,13.5); 

   w.Plot(0,13.5); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

   w.Plot(0,atof(lkg)+0.4); 

   w.Plot(100,atof(lkg)+0.4); 

   w.Plot(0,atof(lkg)+0.4); 

   w.Plot(0,atof(lkd)-0.4); 

   w.Plot(100,atof(lkd)-0.4); 

  } 

 } 

 else 

 { 

  w.Plot(x_0,y_0); 

  w.Plot(i++,ppdsrxx); 

  x_0=i-1; 

  y_0=ppdsrxx; 

 } 

 

 

Poni ej  zastosowałem  funkcj ,  która  symuluje  wielozadaniowo   w  ramach  programu, 
pozwalaj c  wykonywa   pewne  czasochłonne  operacje  poza  normalnym  okresem 
aktywno ci programu i systemu: 

bool _OKNO_::IdleAction(long) 

 if(i==0) return true; 

 FILE *plik_kk; 

 char ppdane[9]; 

 unsigned g=0; 

 unsigned m=0; 

 unsigned s=0; 

 struct ffblk f_info; 

 czas_utworzenia_pliku cup; 

 int stat,index_modyfikacji=0; 

 while(index_modyfikacji<20) 

 { 

  stat=findfirst(sd,&f_info,FA_ARCH); 

  if(stat) 

  { 

   MessageBox("Brak zbioru wej ciowego   ","Uwaga...",MB_OK|MB_ICONSTOP); 

   break; 

  } 

  else 

  { 

   memcpy(&cup,&f_info.ff_ftime, sizeof(czas_utworzenia_pliku)); 

   if(!((cup.hrs==g)&(cup.min==m)&(cup.sec==s))) 

   { 

   plik_kk=fopen(sd,"r"); 

   int ppdi=0; 

   while(!feof(plik_kk)) 

   { 

    fgets(ppdane,sizeof(ppdane),plik_kk); 

    ppd[ppdi]=atof(ppdane); 

    ppdi++; 

   }; 

   fclose(plik_kk); 

  }; 

  g=cup.hrs; 

  m=cup.min; 

  s=cup.sec; 

  index_modyfikacji++; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  char s[8][8],liniacentralna[8],odchyleniestand[8],przedzialgorny[8],przedzialdolni[8]; 

  char sredniaruch[8],liniakontrolnadolnia[8], liniakontrolnagornia[8],dop[8]; 

  if(++opoznij<(atoi(cod)*6)) return true; //p tla opu niaj ca wy wietlanie. 

  else   opoznij=0; 

  for(int xii=0;xii<5;xii++) 

  { 

   gcvt(ppd[xii],4,s[xii]); 

   xi[xii]->SetText(s[xii]); 

  } 

 

   gcvt(linia_centralna(ppd),8,liniacentralna); 

   liniac->SetText(liniacentralna); 

   gcvt(odchylenie_stand(ppd),8,odchyleniestand); 

   odchylenies->SetText(odchyleniestand); 

   miernik->SetValue(100*odchylenie_stand(ppd)); 

   gcvt(przedzial_danych_gorny(ppd),8,przedzialgorny); 

   przedzialdanychgorny->SetText(przedzialgorny); 

   gcvt(przedzial_danych_dolni(ppd),8,przedzialdolni); 

   przedzialdanychdolni->SetText(przedzialdolni); 

   gcvt(wylicz_srednia_ruchoma(ppd),8,sredniaruch); 

   sredniaruchoma->SetText(sredniaruch); 

   gcvt(linia_kontrolna_dolnia(),8,liniakontrolnadolnia); 

   dolnialiniakontrolna->SetText(liniakontrolnadolnia); 

   strcpy(lkd,liniakontrolnadolnia); 

   gcvt(linia_kontrolna_gorna(),8,liniakontrolnagornia); 

   gornaliniakontrolna->SetText(liniakontrolnagornia); 

   strcpy(lkg,liniakontrolnagornia); 

   gcvt((13.5-linia_kontrolna_dolnia()),8,dop); 

   dopuszczalneodchyl->SetText(dop); 

   lcif++; 

   Invalidate(false); 

   }; 

 } 

 return true; 

}; 

 

 

Dalsza cz

  to funkcje klasy _OKNO_ zdefiniowane na potrzeby programu: 

float _OKNO_::wylicz_srednia_ruchoma(float ppdsr[9]) 

 float ppdsrx=0; 

 if(lcif<atoi(apdw)) 

 { 

  for(int lcifi=0;lcifi<5;lcifi++) ppdsrx+=ppdsr[lcifi]; 

  ppdsrk[lcif]=ppdsrx/5; 

  return 0; 

 } 

 else 

 { 

  for(int lcifi=0;lcifi<5;lcifi++) ppdsrx+=ppdsr[lcifi]; 

  ppdsrk[lcif]=ppdsrx/5; 

  ppdsrxx=(ppdsrk[lcif-2]+ppdsrk[lcif-1]+ppdsrk[lcif])/3; 

  return ppdsrxx; 

 } 

}; 

 

 

float _OKNO_::linia_kontrolna_dolnia(void) 

 return (13.5-((2.576)*0.20)/(sqrt(15))); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

}; 

 

float _OKNO_::linia_kontrolna_gorna(void) 

 return (13.5+((2.576)*0.20)/(sqrt(15))); 

}; 

 

 

float _OKNO_::przedzial_danych_gorny(float ppdg[9]) 

 if(lcif>atoi(apdw)) return ppdgpt; 

 ppdgp=(-1000);   

//pomocniczny przedział danych górny(pom) 

 if(lcif>0) ppdgp=ppdgpt; 

 for(int ppdgi=0;ppdgi<5;ppdgi++) if(ppdgp<ppdg[ppdgi]) ppdgp=ppdg[ppdgi]; 

 ppdgpt=ppdgp; 

 return ppdgp; 

}; 

 

float _OKNO_::przedzial_danych_dolni(float ppdd[9]) 

 if(lcif>atoi(apdw)) return ppddpt; 

 ppddp=1000; 

 

//pomocniczny przedział danych dolnich(pom) 

 if (lcif>0) ppddp=ppddpt; 

 for(int ppddi=0;ppddi<5;ppddi++) if(ppddp>ppdd[ppddi]) ppddp=ppdd[ppddi]; 

 ppddpt=ppddp; 

 return ppddp; 

 

 

 

float _OKNO_::linia_centralna(float ppdc[9]) 

 

//metoda  stabilizacyjna  -  bez  uwzgl dnienia 

warto ci normatywnych 

 if(lcif>=(atoi(apdw))) return 13.5; 

 float lc1=0;   //linia centralna 

 for(int lci=0;lci<5;lci++) lc1+=ppdc[lci]; 

 if (lcif==0) lcp[lcif]=(lc1/5); 

  

else lcp[lcif]=lcp[lcif-1]+(lc/5); 

 lc=(lc1/5); 

 return lc; 

}; 

 

float  _OKNO_::odchylenie_stand(float  ppdo[9])        //wyliczenie  odchylenia  standardowego  na  podstawie 

danych wej. 

 float oss=0; 

 for(int osi=0;osi<5;osi++) oss+=pow(ppdo[osi]-linia_centralna(ppd),2); 

 return sqrt(oss/4); 

}; 

 

bool _OKNO_::CanClose(void)   

 

 

 

 

 

//funkcja 

wywyolywana przy  daniu zamkni cia programu. 

 return (MessageBox("Koniec ?","Karty kontrolne",MB_YESNO|MB_ICONQUESTION)==IDYES); 

 

void _OKNO_::CmOprogramie(void) 

 

 

 

 

 

//funkcja wywołana 

z menu - uruchamiaj ca okno dialogowe. 

 TDialog(this,IDD_OPROGRAMIE).Execute(); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

}; 

 

void _OKNO_::CmParametryObliczeniowe(void)         //funkcja wywołuj ca parametry systemowe 

 _DIALOG_PARAMETROW_ dialogparam(this,&daneparam,IDD_PARAMETRYOBLICZENIOWE); 

 strcpy(daneparam.pdwd,pdwd); 

 strcpy(daneparam.pdwg,pdwg); 

 strcpy(daneparam.apdw,apdw); 

 strcpy(daneparam.lkd,lkd); 

 strcpy(daneparam.lkg,lkg); 

 strcpy(daneparam.alk,alk); 

 if(dialogparam.Execute()==IDOK) 

  { 

   strcpy(pdwd,daneparam.pdwd); 

 

strcpy(pdwg,daneparam.pdwg); 

   strcpy(apdw,daneparam.apdw); 

   strcpy(lkd,daneparam.lkd); 

   strcpy(lkg,daneparam.lkg); 

   strcpy(alk,daneparam.alk); 

  } 

}; 

 

void _OKNO_::CmDaneWejsciowe(void)               //funkcja wywyołuj ca parametry danych wej ciowych 

 

  _DIALOG_DANE_WEJSCIOWE_ dialogdw(this,&danewe,IDD_DANEWEJSCIOWE); 

  strcpy(danewe.sd,sd); 

  strcpy(danewe.cod,cod); 

  if(dialogdw.Execute()==IDOK) 

  { 

   strcpy(cod,danewe.cod); 

  } 

}; 

 

void _OKNO_::Cmwapdw(void) 

 cmwapdw=1; 

}; 

 

void _OKNO_::Cmwalk(void) 

 cmwalk=1; 

}; 

 

void _OKNO_::CmHelp(void) 

 TDialog(this,IDD_DIALOGHELP).Execute(); 

 

 

void _OKNO_::SetupWindow() 

 TWindow::SetupWindow(); 

 

Deklarujemy  tutaj  klas   PROGRAM_,  która  dziedziczy  po  TApplication.  Klasa 
TApplication 

zawiera kilka konstruktorów, ró ni cych si  liczb  parametrów:

 

class _PROGRAM_ : public TApplication 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 public: 

 

void InitMainWindow() 

 

 

 TFrameWindow*    ramka=new  TFrameWindow(0,"Karta  kontrolna  redniej  ruchomej",new 

_OKNO_); 

 

 ramka->Attr.H=540; 

 

 ramka->Attr.W=640; 

    ramka->Attr.X=10; 

    ramka->Attr.Y=10; 

    ramka->Attr.Style=WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX; 

 

 SetMainWindow(ramka); 

    MainWindow->SetIcon(this,"IKONA"); 

 

 GetMainWindow()->AssignMenu(IDM_MENU); 

 

}; 

 

TApplication

  obsługuje  kilkana cie  funkcji.  Jedn   z  nich  jest  –  Run(),  która  tworzy 

ekranow  posta  okienka i podł cza je do systemowej kolejki zdarze : 

int OwlMain(int,char*[]) 

 return _PROGRAM_().Run(); 

 

 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Nat pnym  plikiem  z  kodem  ródłowym  programu  jest  jeden  lub  wi cej  plików  *.rc 

opisuj cy map bitowe, ikony, przyciski, edytory, list, itd.: 

 

#include "kk.h" 

#include<owl/inputdia.rc> 

IKONA ICON "icona.ico" 

 

IDM_MENU MENU 

 

 POPUP "&Ustawienia" 

 { 

  MENUITEM "&Parametry obliczeniowe...",IDM_PARAMETRYOBLICZENIOWE 

  MENUITEM "&Dane wejsciowe",IDM_DANEWEJSCIOWE 

 } 

 MENUITEM "0 programi&e",IDM_OPROGRAMIE 

 

IDD_OPROGRAMIE DIALOG 40,60,240,120 

EXSTYLE WS_EX_DLGMODALFRAME 

STYLE DS_MODALFRAME|DS_3DLOOK|WS_POPUP|WS_VISIBLE|WS_CAPTION 

CAPTION "Karty kontrolne  redniej ruchomej" 

FONT 8, "MS Sans Serif" 

 CTEXT "Politechnika Cz stochowska                                 Cz stochowa 2001",-1,12,80,220,9 

 CTEXT "Praca Dyplomowa", -1,12,15,220,9 

 CTEXT "Tomasz Bylica", -1,12,35,220,9 

 CTEXT "Promotor: prof. dr. hab. in . Paweł Sewastianow",-1,12,50,220,9 

 PUSHBUTTON "OK",IDOK,96,100,48,14, WS_CHILD | WS_VISIBLE | WS_TABSTOP 

 CONTROL "Frame",-1,"static",SS_ETCHEDFRAME|WS_CHILD|WS_VISIBLE,6,6,228,86,0 

 

IDD_PARAMETRYOBLICZENIOWE DIALOG 0, 0, 246, 206 

 CONTROL  "PRZEDZIAŁ  DANYCH  WEJ CIOWYCH",  IDC_GROUPBOX1PO,  "button", 

BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 12, 220, 30 

 CONTROL "LINIE KONTROLNE", IDC_GROUPBOX2PO, "button", BS_GROUPBOX | WS_CHILD | 

WS_VISIBLE | WS_GROUP, 12, 52, 220, 30 

 CONTROL "AUTOMATYCZNE PRZEDZIAŁY DANYCH WEJ CIOWYCH", IDC_GROUPBOX3PO, 

"button", BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 92, 220, 30 

 CONTROL  "AUTOMATYCZNE  LINIE  KONTROLNE",  IDC_GROUPBOX4PO,  "button", 

BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 132, 220, 30 

 CONTROL  "DOLNI:",  IDC_STATICTEXT1PO,  "static",  SS_LEFT  |  WS_CHILD  |  WS_VISIBLE,  27, 

27, 24, 9 

 CONTROL "GÓRNY:", IDC_STATICTEXT2PO, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 132, 

27, 29, 9 

 CONTROL "DOLNIA:", IDC_STATICTEXT3PO, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 24, 

67, 28, 9 

 CONTROL "GÓRNA:", IDC_STATICTEXT4PO, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 132, 

67, 28, 9 

 CONTROL "OK", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE 

| WS_TABSTOP, 16, 180, 50, 14 

 CONTROL  "Cancel",  IDCANCEL,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 92, 180, 50, 14 

 CONTROL  "Help",  IDHELP1,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 172, 180, 50, 14 

 CONTROL  "",  IDC_LKD,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 64, 65, 40, 10 

 CONTROL  "",  IDC_PDWG,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 176, 25, 36, 10 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 CONTROL  "",  IDC_PDWD,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 64, 25, 40, 10 

 CONTROL  "",  IDC_LKG,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 176, 65, 36, 10 

 CONTROL  "",  IDC_APDW,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 184, 106, 36, 10 

 CONTROL  "",  IDC_ALK,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 184, 146, 36, 10 

 CONTROL 

"Oblicz 

automatycznie 

po 

zadanym 

okresie:", 

IDC_WAPDW, 

"button", 

BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 23, 107, 161, 11 

 CONTROL 

"Oblicz 

automatycznie 

po 

zadanym 

okresie:", 

IDC_WALK, 

"button", 

BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 23, 147, 158, 11 

 

 

 

IDD_DANEWEJSCIOWE DIALOG 0, 0, 235, 110 

STYLE  DS_MODALFRAME  |  DS_3DLOOK  |  DS_CONTEXTHELP  |  WS_POPUP  |  WS_VISIBLE  | 

WS_CAPTION | WS_SYSMENU 

CAPTION "DANE  WEJ CIOWE" 

FONT 8, "Times New Roman CE" 

 CONTROL "OK", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE 

| WS_TABSTOP, 12, 84, 50, 14 

 CONTROL  "Cancel",  IDCANCEL,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 92, 84, 50, 14 

 CONTROL  "Help",  IDHELP,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 172, 84, 50, 14 

 CONTROL " CIE KA DOST PU DO PLIKU WEJ CIOWEGO", IDC_SCIEZKADOPLIKU, "button", 

BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 8, 208, 28 

 CONTROL  "",  IDC_SCIEZKADOSTEPU,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  | 

WS_BORDER | WS_TABSTOP, 24, 20, 180, 10 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 CONTROL 

"CZ STOTLIWO

 

POBIERANIA 

DANYCH", 

IDC_CZESTOTLIWOSCODCZYTUPLIKU,  "button",  BS_GROUPBOX  |  WS_CHILD  |  WS_VISIBLE  | 

WS_GROUP, 12, 44, 208, 28 

 CONTROL  "",  IDC_CZESTOTLIWOSC,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  | 

WS_BORDER | WS_TABSTOP, 24, 56, 40, 10 

 CONTROL  "milisekund",  IDC_STATICTEXT1DW,  "static",  SS_LEFT  |  WS_CHILD  |  WS_VISIBLE, 

68, 56, 48, 8 

 

 

IDD_DIALOGHELP DIALOG 0, 0, 217, 63 

STYLE  DS_MODALFRAME  |  DS_3DLOOK  |  DS_CONTEXTHELP  |  WS_POPUP  |  WS_VISIBLE  | 

WS_CAPTION | WS_SYSMENU 

CAPTION "" 

FONT 8, "MS Sans Serif" 

 CONTROL "OK", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE 

| WS_TABSTOP, 80, 40, 50, 14 

 CONTROL "Program do analizy procesu kart kontrolnych  redniej ruchomej. W etapie testowym nale y 

uruchomi   program  ./DANE/demon.exe  w  celu  symulacji  pobierania  danych  on-line.",  IDC_HELP, 

"static", SS_CENTER | WS_CHILD | WS_VISIBLE, 8, 4, 204, 28 

 

 

Na tym ko cz  opis teorii i niektórych przykładów z   wiata programowania w  C++  pod 
systemem Windows. 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

VIII.  BIBLIOGRAFIA 

 

 

1.

  Andrzej  Zalewski  „Programowanie  w  j zykach  C  i  C++  z  wykorzystaniem  pakietu 

Borland C++”

, Wydawnictwo Nakom, Pozna  1997. 

2.

  Adam Majczak „C++ w 48 godzin”

3.

  Steve Holzner „Programowanie w Microsoft C/C++”, Intersoftland, Warszawa 1993. 

4.

  Stanley B. Lippman „Podstawy j zyka C++”, Wydawnictwo Naukowo-Techniczne, 

Warszawa 1994. 

5.

  Jan Bielecki „Od C do C++ programowanie obiektowe w j zyku C”. 

6.

   Piotr  Wróblewski  „Programowanie  w  Windows  dla  praktyków”,  Wydawnictwo 

Helion, Gliwice 1997. 

7.

  Andrzej Stasiewicz „C++ całkiem inny  wiat”,  Wydawnictwo Helion, Gliwice 1998. 

8.

  Jesse Liberty „C++ Ksi ga Eksperta”, Wydawnictwo Helion, Gliwice 1999. 

9.

  Sławomir Osiak „Programowanie w Windows”, ZNI „MIKOM”, Warszawa stycze  

1997. 

10.

 Jens J. Dahlgaard, Kai Kristensen, Gopal K. Kanji „Podstawy zarz dzania jako ci ”, 

Wydawnictwo Naukowe PWN, Warszawa 2000. 

11.

 Andrzej  Iwasiewicz  „Zarz dzanie  Jako ci ”,  Wydawnictwo  Naukowe  PWN, 

Warszawa-Kraków 1999. 

12.

 Henryk  Bieniok  i  zespół  „Metody  sprawnego  zarz dzania”,  Agencja  Wydawnicza 

„Placet”, Warszawa 1999. 

13.

 Ireneusz Durlik „In ynieria zarz dzania”, Agencja Wydawnicza „Placet”, Warszawa 

1998. 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
 
 

 

 

 

SPIS TRE CI 

 

IX.

  WST P……………………………………………………………………….........

 2 

X.

  METODY KOMPLEKSOWEGO ZARZ DZANIA JAKO CI ………………. 4 

1.

 

Metody planowania……………………………………………………  4 

2.

 

Metody i techniki organizowania pracy………………………………  5 

3.

 

Metody motywowania…………………………………………………  7 

4.

 

Techniki kontroli mened erskiej……………………………………….. 11 

XI.

  STATYSTYCZNA ANALIZA WYDOLNO CI PROCESU…………………… 14 

1.

 

Badanie wydolno ci procesu przy alternatywnej ocenie wła ciwo ci 

produktu………………………………………………………………..  15 

2.

 

Badanie wydolno ci procesu przy liczbowej ocenie wła ciwo ci 

produktu………………………………………………………………..  15 

XII.

  STEROWANIA PROCESAMI ZA POMOC  KART KONTROLNYCH…….  17 

XIII.

  WST P DO PROGRAMOWANIA W J ZYKU C/C++…………………………

 21 

8.

 

Wprowadzenie......................................................................................... 21 

9.

 

Operatory.................................................................................................. 23 

10.

  Instrukcje................................................................................................. 25 

11.

  Funkcje.................................................................................................... 28 

12.

  Budowa programu. ................................................................................. 31 

13.

  Klasy i obiekty......................................................................................... 31 

14.

  Dziedziczenie i polimorfizm................................................................... 33 

XIV.

  PROGRAMOWANIE DLA WINDOWS Z WYKORZYSTANIEM 

OWL(OBIEKT WINDOW LIBRARY) ..................................................................

 35 

XV.

  PRAKTYCZNY CZ

 TWORZENIA PROGRAMU KART 

KONTROLNYCH.................................................................................................. 41 

XVI.

  BIBIOGRAFIA....................................................................................................... 58 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
 
 
 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

IX.  WST P 

 
U  podstaw  wszelkich  działa   człowieka  le y  ch   zaspokojenia  odczuwanych  potrzeb. 
Pierwotne potrzeby człowieka pozostaj  niemal niezmienione w całej historii cywilizacji. 
Od pocz tku swych dziejów człowiek odczuwa: 

  potrzeb  od ywiania si  w celu utrzymania procesów  yciowych 
  potrzeb   posiadania  ubrania  w  celu  ochrony  przed  oddziaływaniem 

czynników atmosferycznych 

  potrzeb   posiadania  mieszkania  jako  wydzielonej  przestrzeni  chroni cej 

przed bezpo rednim oddziaływaniem otoczenia 

  potrzeb  komunikowania si  w celu wymiany informacji 
  potrzeb  przemieszczania si . 

Poziom  wa no ci  tych  potrzeb  jest  okre lony  przez  rodowisko  naturalne,  a  tak e 
uwarunkowania społeczne i kulturalne.  
Zbiór  pierwotnych  potrzeb  człowieka,  zaliczanych  do  tak  zwanych  potrzeb  niedoboru, 
pozostaje niemal stały, o tyle technologie ich zaspokajania podlegaj  ci głym zmianom,  
a technologia zaspokajania potrzeb jest pewn  koncepcj  zwi zan  zwykle z praktycznym 
wykorzystaniem  wynalazku  lub  odkrycia  naukowego,  konkretny  wyrób  lub  usługa  jest 
natomiast realizacj  owej ogólnej koncepcji. 
W  systemach  społeczno-ekonomicznych  proces  zaspokajania  potrzeb  rozwija  si   pod 
wpływem  bod ców  emitowanych  przez  rynek.  Pierwotnym  ródłem  tych  bod ców  s  
rozbie no ci  mi dzy  istniej cym  i  oczekiwanym  poziomem  zaspokojenia  odczuwanych 
potrzeb.  Im  wyra niejsze  s  te  rozbie no ci oraz  im  zamo niejsza jest  popytowa strona 
rynku,  tym  silniejszy  jest  nacisk  na  doskonalenie  jako ci  oferowanych  na  tym  rynku 
produktów.  Produktów  takiej  sytuacji,  zwłaszcza  w  przypadku  owych  zamo niejszych 
rynków, jako  oferowanego produktu staje si  podstawowym i najbardziej efektywnym 
instrumentem  konkurencji  handlowej.  W  coraz  wi kszym  stopniu  pozycja 
przedsi biorstwa na rynku zale y od jako ci produkowanych wyrobów lub  wiadczonych 
usług. Wynika st d bezpo rednio,  e wszelkie problemy zwi zane z procesami kreowania 
i ochrony jako ci produktów nale y postrzega  w kontek cie uwarunkowa  rynkowych.  
Z punktu widzenia celów i potrzeb zarz dzania jako ci  rynek jest systemem relacyjnym, 
w  którym  kształtuj   si  zarówno  decyzje  konsumentów,  dotycz ce zakupu  konkretnych 
produktów,  jak  i  decyzje  konsumentów,  dotycz ce  zakupu  konkretnych  produktów,  jak  

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

i  decyzje  producentów  odniesieniu  do  jako ci  wytwarzanych  wyrobów  albo 

wiadczonych usług.  

 
 
 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

X.  METODY KOMPLEKSOWEGO ZARZ DZANIA JAKO CI  

 

5.  Metody planowania 

Ostatnie  dziesi ciolecie  cechuje  rosn ca  zmienno   i  zło ono   warunków  działania 
podmiotów  gospodarczych.  Powoduje  to,  e  nieustannie  poszukuje  si   sposobów 
rozpoznawania  i  ograniczania  niepewno ci  oraz minimalizacji  ryzyka,  jakie  towarzyszy 
podejmowanym  decyzjom,  zwłaszcza  strategicznym.  Rozpoznawaniu  przyszło ci  słu  
metody prognozowania i planowania, w ród których wyró niamy: 

a.

  Metody scenariuszowe 

Metoda scenariuszowa polega na budowie kilku wariantów scenariuszy przyszło ci, 
czyli  konstruowaniu  logicznego,  przypuszczalnego  opisu  zdarze ,  jakie  mog  
wyst pi  w przedsi biorstwie jego otoczeniu w przyszło ci, aby okre li  wła ciwe 
cele i przygotowa  odpowiednie strategie działania. 

 

b.

  Metody symulacyjne 

Termin  „symulacja”  w  nauce  oznacza  odwzorowanie  oraz  sztuczne  odtwarzanie  
i  na ladowanie  procesów  realnych  z  zastosowaniem  ró norodnych  modeli 
fizycznych, analogowych i matematycznych. 

 

c.

  Wykresy Gantta 

Za  pomoc   wykresu  Gantta  mo na  nie  tylko  planowa   i  kontrolowa   wykonanie 
planu,  ale  tak e  –  poprzez  zastosowanie  odpowiedniego  systemu  oznacze   – 
uwzgl dnia  zmienno  przebiegu wykonania zadania. 

 

d.

  Planowanie sieciowe 

Technik   planowania  sieciowego  stosuje  si   do  planowania  i  kontroli  realizacji 
zło onych  przedsi wzi   gospodarczych,  technicznych  organizacyjnych  przy 
zało eniu  racjonalnego  wykorzystania  zasobów.  Przykładem  zastosowania  tej 
techniki  mo e  by   planowanie  realizacji  du ych  inwestycji  lub  remontów 
kapitalnych,  uruchomienie  produkcji  nowego  wyrobu,  zorganizowanie  du ej 
imprezy itp. 

 

e.

  Metody analizy portfelowej 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Metody analizy portfela umo liwiaj  porównywanie, według jednolitych kryteriów 
ró nych  dziedzin  działalno ci  przedsi biorstwa  i  zarz dzanie  „portfelem”  tych 
działalno ci w celu uzyskania mo liwie najlepszej pozycji konkurencyjnej.  

 

f.

  Metodyka budowy biznes planu przedsi biorstwa 

Biznes  plan  to  przygotowywany  dla  celów  wewn trznych  lub  zewn trznych 
dokument  stanowi cy  zbiór  analiz,  prognoz  i  planów  opisuj cych  całe 
przedsi biorstwo  lub  pojedyncze  przedsi wzi cie  (np.  wprowadzanie  nowego 
produktu  na  rynek)  od  strony  celu,  przedmiotu,  zewn trznych  i  wewn trznych 
uwarunkowa  działalno ci, koniecznych do zaanga owania zasobów finansowych, 
osobowych  i  rzeczowych,  spodziewanych  efektów  finansowych,  osobowych  
i rzeczowych, spodziewanych efektów finansowych i czynników ryzyka.

3

 

 

6.  Metody i techniki organizowania pracy 

Analizuj c  pogl dy  ró nych  autorów  na  temat  metodologii  badania  i  projektowania 
organizatorskiego  a  nawet  technicznego  mo na  zauwa y ,  e  w  praktyce  istniej   dwie 
podstawowe metody projektowania i doskonalenia organizacji a mianowicie: 

  Metoda diagnostyczna. 
  Metoda prognostyczna. 

W  obu  metodach,  a  tak e  w  doskonaleniu  ka dego  ludzkiego  działania  nale y 
post powa   według  z  góry  okre lonej  procedury  organizacyjnej  zapewniaj cej  wysok  
sprawno  i efektywno . 
Metoda  diagnostyczna  bazuje  na  przekonaniu, 

e  organizacj   dotychczas 

funkcjonuj cego  systemu  mo na  usprawni   tylko  w  drodze  identyfikacji,  diagnozy  
i  oceny  stanu  istniej cego,  wykryciu  wszelkich  nieprawidłowo ci  oraz  zaprojektowaniu  
i  wdro eniu  niezb dnych  usprawnie .  Rozpoczynaj c  analiz   diagnostyczn   nale y 
precyzyjnie  ustali   cele  badawcze.  Ogólnym  celem  badania  jest  zawsze  poprawa 
organizacji lub zarz dzania a przez to sprawno ci funkcjonowania przedsi biorstwa jako 
cało ci,  natomiast  celem  szczegółowym  udoskonalenia  struktury  lub  organizacji 
przebiegu  działa   na  konkretnym  odcinku  działalno ci  przedsi biorstwa.  Badanie  
i  usprawnienie  organizacji  w  całym  systemie  jest  zazwyczaj  trudne,  dlatego  te  

                                                 

3

 „Metody sprawnego zarz dzania” Henryk Bieniok i zespół, Agencja Wydawnicza „Placet” Warszawa 

1999, str. 11-54 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

przedmiotem badania s  tylko niektóre starannie wybrane podsystemy przedsi biorstwa. 
W procesie wyboru przedmiotu badania nale y bra  pod uwag  kryteria: 

•  Ekonomiczne, uwzgl dniaj ce konieczno  likwidacji w skich ogniw, popraw  
indywidualnej  wydajno ci  pracy,  obni k   kosztów  własnych,  popraw  
efektywno ci, rentowno ci itp. 
•  Techniczne,  takie  jak  np.  konieczno   doprowadzenia  nowo  uruchomionej 
instalacji  do  pełnej  zdolno ci  produkcyjnej,  uruchomienie  produkcji  nowego 
wyboru, skróceniu cyklu produkcyjnego itp. 
•  Fizjologiczno-psychologiczne,  uwzgl dniaj ce  zmniejszeniu  zm czenia 
fizycznego  i  psychicznego  ludzi,  popraw   warunków  bhp,  zwi kszenie  komfortu 
pracy itp. 
•  rodowiskowe, 

uwzgl dniaj ce 

reakcj  

otoczenia 

oraz 

samych 

zainteresowanych. 

Podstaw  

metody prognostycznej jest przekonanie,  e dokonanie istotnego usprawnienia 

organizacji jest mo liwe jedynie w oderwaniu od istniej cych rozwi za , które obci aj  
psychicznie organizatora, a przez to rzutuj  ograniczaj co na projektowany system i nie 
pozwalaj  na nowatorskie spojrzenie.  
Główn   metod   prognostyczn   stworzon   przez  G.  Nadlera  jest  synteza  tzw.  systemu 
idealnego.  System  idealny  jest  pod  ka dym  wzgl dem  najdoskonalszy,  działaj cy  bez 
jakichkolwiek ogranicze  i realizuj cy swoje zadania w idealnych warunkach. Przy jego 
konstrukcji  przyjmuje  si   nierzeczywiste  zało enie  istnienia  doskonałych  warunków 
działania, w których system wypełnia w sposób idealny wyznaczone funkcje. Taki system 
ma oczywi cie charakter czysto teoretyczny, w praktyce nieosi galny, jednak operowanie 
tego typu wzorcem okazuje si  wysoce przydatne, gdy  uzyskany w ten sposób pó niej 
system  realny  charakteryzuje  si   wy szym  poziomem  rozwi za   ani eli  system 
otrzymany  w  drodze  mozolnej  analizy  i  doskonalenia  stanu  istniej cego  (zastosowanie 
metody diagnostycznej).  
System  Nadlera  udawania,  e  racjonalne  ukształtowanie  organizacji  nie  jest  wynikiem 
syntezy  usprawnionych  elementów,  lecz  odwrotnie,  pochodn   cało ciowej  koncepcji 
idealnej.  Kieruj c  si   dalej  musimy  poszuka   rozwi zania  realnego  (kompromisowego) 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

wychodz cego  od  koncepcji  idealnej  i  zbli aj c  j   stopniowo  do  koncepcji  spełniaj cej 
warunki ograniczaj ce istniej ce w realnej rzeczywisto ci.

4

 

 

7.  Metody motywowania 

Poprzez metody motywowania mo emy wyró ni : 

q.

  Zarz dzanie przez cele 

Idea  przewodnia  i  swoista filozofia  Zarz dzani  przez  cele  skoncentrowana jest na 
wspólnym  (przeło eni  i  podwładni)  okre laniu  negocjowaniu  celów,  wspólnym 
ustalaniu  mierników  po danych  wyników  ko cowych  oraz  na  wspólnych 
okresowych przegl dach i ocenie uzyskanych rezultatów. Wprowadzaj c powy sz  
ide  powinni my pami ta ,  e: 

•  Im  wi kszy  udział  kierowników  i  podwładnych  we  wspólnym 
precyzowaniu celów, tym wy sze prawdopodobie stwo ich realizowania, 
•  Podwładni, którzy sami okre laj  własne cele, albo współuczestnicz  w ich 
ustalaniu  uzyskuj   lepsze  wyniki  od  tych,  którym  cele  te  s   narzucane. 
Pracownicy, którzy postawili przed sob  konkretny cel osi gaj  lepsze wyniki 
od tych, którzy staraj  si  robi  tylko to, co do nich nale y. 
 

r.

  Zarz dzanie prze delegowanie uprawnie  

Naczeln   zasad   le c   u  podstaw  zarz dzania  przez  delegowanie  uprawnie   jest 
przekazywanie innej osobie, ni szym szczeblu zarz dzania cz ci formalnej władzy 
i odpowiedzialno ci za wykonanie okre lonych zada . 
 
s.

  Zarz dzanie przez wyj tki (odchylenia) 

Istot  systemu zarz dzanie przez wyj tki jest identyfikacja „wyj tków” (odchyle ), 
czyli wła nie tego, co odbiega od obowi zuj cych standardów, planów, wzorców, 
norm  i  rutynowych  zachowa   organizacyjnych  oraz  oparty  na  wyj tkach  systemu 
informacji i decyzji w organizacji. W praktycznym rozumowaniu i zgodnie z zasad  
wyj tków,  kierownik  powinien  otrzymywa   tylko  skondensowane,  streszczone  
i porównywalne informacje, które powinny ujmowa  najwa niejsze dla zarz dzania 
elementy stanu rzeczywistego i wszystkie wyj tki w stosunku do dotychczasowych 
warto ci  przeci tnych  lub  standardowych  zarówno  te  szczególnie  dobre,  jak  

                                                 

4

 „Metody sprawnego zarz dzania” Henryk Bieniok i zespół, Agencja Wydawnicza „Placet” Warszawa 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

i  szczególnie  złe.  Dzi ki  nim  kierownik  mo e  w  ci gu  kilku  minut  mie   pełny 
obraz, jak du y osi gni to post p. 
 
t.

  Zarz dzanie przez wyniki (rezultaty) 

Zarz dzenie  przez  wyniki  zakłada  formułowanie  konkretnych  celów  i  zada   dla 
poszczególnych  komórek  organizacyjnych,  z  nast pnie  rozliczanie  ich  
z  uzyskanych  wyników,  które  w  naukach  ekonomicznych,  a  zwłaszcza  
w  rachunkowo ci  i  finansach  s   definiowane  jako  ró nica  mi dzy  dochodami  
a nakładami, czyli zysk. 
 
u.

  Zarz dzanie przez zadania 

Zarz dzanie  przez  zadania  polega  najogólniej  mówi c  na  formułowaniu  przez 
kierownika, konkretnych mobilizuj cych zada  rzeczowych oraz na zlecaniu ich do 
wykonania  podwładnym  wraz  z  okre leniem  terminów  ich  realizacji.  Ka demu 
zadaniu  ustala  si   na  ogół  norm   (granic )  czas,  w  którym  zadanie  ma  by  
wykonane. 
 
v.

  Zarz dzanie przez innowacje 

Zarz dzanie  przez  innowacje  zmierza  do  rozwoju  przedsi biorstwa  przez 
wprowadzanie  szeroko  poj tych  zmian  (usprawnie ,  udoskonale ,  innowacji) 
przede 

wszystkim 

przełomowych 

obszarach 

działalno ci 

firmy.  

W przedsi biorstwach ukierunkowanych na rozwój innowacje s  niekwestionowan  
konieczno ci  generuj c  pozytywne tendencje efektywno ciowe. Aby si  rozwija  
trzeba  odrzuci   wygodnictwo,  bierno   i  postawy  zachowawcze,  przyjmuj c 
ofensywny  styl  działania,  wymagaj cy  stałego  wysiłku  i  gotowo ci  do  reakcji  na 
obserwowane zachowania klientów i konkurentów. 
 
w.

 Zarz dzanie przez partycypacj  

Celem  zarz dzania  przez  partycypacj   jest  wzrost  aktywno ci  podwładnych  oraz 
zaspokojenie ich potrzeb wy szego rz du (samorealizacji, uznania, przynale no ci) 
w  drodze  dopuszczenia  ich  do  procesu  podejmowania  decyzji.  Akceptuj c  model 
partycypacji  pracowniczej  kierownictwo  ma  nadziej ,  e  mo e  skutecznie 

                                                                                                                                               

1999, str. 56-82 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

realizowa   cele  organizacji  wyci gaj c  pracowników  do  aktywnego 
współuczestnictwa  w  procesy  zarz dzania,  organizowania  pracy,  kreowania  
i  wdra ania  innowacji  oraz  do  współdecydowania  o  wszystkich  najwa niejszych 
sprawach przedsi biorstwa. Nic tak nie szkodzi przedsi biorstwu, jak przekonanie 
kierownictwa,  e wie lepiej od pracowników, jakie s  przyczyny niepowodze  i  e 
ma wył czn  m dro  jak im zaradzi . 
 
x.

  Zarz dzanie przez komunikowanie si  

Bezpo rednim  celem  zarz dzania  przez  komunikowanie  si   jest  doinformowanie  
i dowarto ciowanie załogi, w nadziei,  e przyczyni si  ona do stworzenia klimatu 
wzajemnego  zaufania pomi dzy  kierownictwem a  podwładnym,  a  dzi ki  temu  do 
lepszej  motywacji  i  pozytywnych  zachowa   pracowników  na  rzecz  organizacji.  
W  przedsi biorstwie  komunikowanie  si   jest  głównym  procesem  organizacyjnym 
polegaj cym  na  wymianie  informacji  mi dzy  ró nymi  uczestnikami  procesów 
społeczno-gospodarczych. Komunikowanie si  kierownictwa z pracownikami słu y 
dwom celom: 

•  Tłumaczy  abstrakcyjne  cele  i  plany  kierownictwa  na  j zyk  wyzwalaj cy 
aktywne działania pracowników, 
•  Ł czy działania ludzi całej organizacji we wspólnym kierunku. 

 
y.

  Zarz dzanie przez konflikt 

Zarz dzenie  przez  konflikt  w  przedsi biorstwie  polega  na  mo liwie  wczesnym 
wykrywaniu potencjalnych  ródeł sporów nieporozumie , aby podj  odpowiednie 

rodki  zapobiegawcze.  Zadaniem  kierowników  jest  zapanowanie  nad  konfliktami  

w  sensie  sterowania  tymi  procesami,  w  kierunku  ich  „skanalizowania”  
i  wykorzystania  dla  dobra  przedsi biorstwa.  Korzenie  konfliktu  tkwi   przede 
wszystkim  w  sferze  emocjonalnej  człowieka,  a  nie  w  obiektywnie  istniej cej 
rzeczywisto ci. 

 

z.

  Zarz dzanie przez motywacj  

Motywowanie  polega  na  wpływaniu  na  postawy  i  zachowania  człowieka  za 
po rednictwem okre lonych bod ców, które przekształcaj  si  w motywy (pobudki) 
działania  uruchamiaj ce  jego  aktywno .  Motywowanie  do  pracy  polega  na 
stosowaniu  szeregu  zró nicowanych  indywidualnie  narz dzi  i  instrumentów 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

oddziaływania  na  człowieka.  Sterowanie  zachowaniami  pracowników  w  kierunku 
skłonienia ich do ofiarnej i efektywnej pracy na rzecz firmy polega na bezustannym 
i systematycznym stwarzaniu ró nych sytuacji oddziałuj cych na ich indywidualne 
i bardzo zró nicowane potrzeby. W szczególno ci pobudzanie do pracy sprowadza 
si  zasadniczo do: 

•  Stwarzania  okre lonych  zach t  (sytuacji  n c cych)  b d   to  materialnych 
(płaca, premia, nagroda, udział w zyskach itp.) b d  niematerialnych (pro ba, 
namowa, pochwała, wyrazy uznania itp.), 
•  Stwarzanie  sytuacji  przymusowej  poprzez  stosowanie  nakazów,  gró b  
i ró nego rodzaju kar. 

 

aa.

 Zarz dzania przez grupy autonomiczne 

Zarz dzania  przez  grupy  autonomiczne  polega  na  tworzeniu,  głównie  na 
najni szych  szczeblach  wykonawczych  (np.  na  szczeblu  brygady  roboczej) 
samodzielnych grup  roboczych, pozbawionych formalnego kierownika, w  których 
funkcj  t  spełnia demokratycznie wybrany lider (przywódca). 
 
bb.

 

Zarz dzanie przez inspirowanie 

Zarz dzanie przez inspirowanie zmierza do poprawy motywacji oraz podniesienia 
ch ci  działania  podwładnych  poprzez  skłonienie  do  współpracy  z  oficjalnym 
kierownictwem nieformalnego przywódcy grupy, w sytuacji, kiedy mało skuteczne 
s  inicjatywy, zamierzenia i polecenia kierownictwa formalnego. 
 
cc.

 Zarz dzanie przez zespoły twórcze 

Zarz dzanie przez zespoły twórcze polega na tworzeniu kilkuosobowych zespołów 
innowacyjnych, zło onych ze specjalnie wyselekcjonowanych ludzi celu  ledzenia 
literaturze  bli szym  i  dalszym  otoczeniu  najnowszych  trendów  rozwoju  techniki, 
technologii, ekonomii, organizacji i zarz dzania oraz wykorzystaniu ich literaturze 
drodze  adaptacji  do  budowy  i  doskonalenia  strategii  funkcjonowania  i  rozwoju 
własnego przedsi biorstwa 

 

dd.

 

Zarz dzanie przez doskonalenie i rozwój pracowników 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Zarz dzanie  przez  doskonalenie  i  rozwój  pracowników  polega  na  inwestowaniu 
literaturze  ludzi,  aby  zapewni   sobie  zdolnych  i  efektywnych  współpracowników 
oraz kompetentnych nast pców. 
 
ee.

 Zarz dzanie przez formalizacj   

Zarz dzanie  przez  formalizacj   polega  na  kierowaniu  lud mi  i  instytucjami  za 
pomoc  szczegółowo okre lonych przepisów organizacyjnych w postaci zarz dze , 
okólników,  regulaminów,  instrukcji,  kart  stanowisk  pracy,  itp.  Jego  celem  jest 
ograniczenie  dowolno ci  (samowoli,  woluntaryzmu)  działania  pracowników  oraz 
skłonienie ich do wzorcowego wykonywania pracy okre lonego przepisami. 
 
ff.

 Zarz dzanie przez ryzyko 

Zarz dzanie  przez  ryzyko  polega  na  identyfikacji  i  analizowaniu  sytuacji 
ryzykownych wynikaj cych literaturze zagro e  oraz szans i okazji pojawiaj cych 
si  literaturze otoczeniu w celu optymalizacji decyzji oraz opracowaniu strategii ich 
wprowadzania w  ycie, przy jednoczesnej minimalizacji niepewno ci. 
 
W literaturze i praktyce mo na spotka  bardzo wiele metod i technik, których celem 
jest  motywacja  do  pracy  i  wyzwalanie  aktywno ci  pracowniczej.  Mo na  wr cz 
powiedzie ,  e  cał   filozofia  efektywno ci  przedsi biorstwa  sprowadza  si  
bezpo rednio, albo po redni do pobudzania ludzi w kierunku ofiarnej pracy na rzecz 
swojej firmy.  

 
 

8.  Techniki kontroli mened erskiej 

a.

  Zarz dzanie przez stosowanie zasad nadzoru i kontroli 

Kontrola  kierownicza  polega  na  porównaniu  uzyskanego  wyniku  działania  
z  zaplanowanym  oraz  w  razie  stwierdzenia  odchyle ,  na  doprowadzeniu  stanu 
rzeczywistego do po danego (pierwotnie zamierzonego). Proces kontroli obejmuje 
nadzór bie cy nad przebiegiem działa , jak i kontrol  ko cow . 
 
b.

  Zarz dzanie przez kontrol  na zasadzie sprz enia zwrotnego 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Podstaw   techniki  kontroli  jest  cybernetyczny  model  sprz enia  zwrotnego 
zakładaj cy  konieczno   ka dorazowego  dopływu  od  obiektu  sterowanego 
(regulowanego)  do  obiektu  steruj cego  (reguluj cego)  informacji  zwrotnej 
(wynikowej)  o  sposobie  realizacji  norm  pierwotnie  zadanych  obiektowi 
sterowanemu.  
W modelu sterowania wyst puj  w uproszczeniu dwa typy obiektów: 

•  Obiekt  steruj cy  (reguluj cy  –  regulator)  generuj cy  impulsy  w  postaci 
pewnych norm i zada  (jest to obiekt kieruj cy, czyli kierownik) 
•  Obiekt sterowany (regulowany) – (wykonawca) 

Ł cznikiem mi dzy obu obiektami jest proces kontroli, w którym oceniamy osi gi 
wyniki  z  punktu  widzenia  stopnia  realizacji  pierwotnie  okre lonych  celów  
i  wyznaczonych  na  tej  podstawie  zada   (norm  zadaniowych).  Kierownicy  s   tym 
ogniwem  w  procesach  zarz dzania,  którzy  powinni  ci le  wi za   planowanie  
i kontrolowanie. Planowanie jest pierwsz  funkcj  planowania, a kontrolowanie jest 
funkcj   ostatni ,  weryfikuj c  rzeczywisto   z  pierwotnymi  zamierzeniami  
i oczekiwaniami. 

 

c.

  Zarz dzanie przez obchód 

Zało eniem  tej  prostej,  ale  bardzo  skutecznej  techniki  zarz dzania  jest  codzienny 
kontakt  ze  wszystkimi  pracownikami  w  celu  okazania  im  swojego  szczerego 
zainteresowania tym co i jak robi . Stosowanie techniki zarz dzania przez obchód 
wymagana  jest  nawet  kilkakrotnych,  ale  krótkich  obecno ci  kierownika  w ród 
podwładnych.  Obecno   ta  wyra a  si   w  formie  najlepiej  nieregularnych,  ale 
codziennych obchodów stanowisk pracy w czasie, których istnieje mo liwo : 

•  Osobistego przywitania si  i rozmowy z pracownikami (nawet w sprawach 
rodzinnych), w celu ich lepszego poznania, 
•  Dokonanie obserwacji i rejestracji zarówno pozytywów, jak i negatywów 
w przebiegu pracy, 
•  Wyra enia natychmiastowej pochwały i uznania za dobr  prac , tam, gdzie 
to jest uzasadnione, 
•  Wydania  stosownych  dyspozycji  w  celu  usuni cia  ewentualnych 
nieprawidłowo ci, 
•  Zach cenia do lepszej pracy i dodania otuchy. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
d.

  Zarz dzanie przez inwigilacj  

Inwigilacja polega na dyskretnej, ale systematycznej obserwacji pracy podwładnych 
lub  maszyny  po  to,  aby  tok  zdarze   przebiegał  zgodnie  z  zamierzeniami 
kierownika. Inwigilacji winna towarzyszy  minimalizacja interwencji kierownika – 
przybiera  ona  wówczas  posta   tzw.  Inwigilacji  czystej.  Wyra a  si   ona  w  tym 
przypadku  jedynie  pilnowaniem  i  zabezpieczaniem  samoczynnie  przebiegaj cego 
procesu,  ewentualnie  wprowadzaniem  (ale  w  ostateczno ci)  poprawek,  ilekro  
procesy  pracy  przebiegaj   nie  tak,  jak  nale y.  Wynika  z  tego,  e  kierownik 
pozostaje w ci głej gotowo ci do interwencji, je li zajdzie taka potrzeba. 
 
e.

  Zarz dzanie przez kontrol  strategiczn  

Celem  kontroli strategicznej jest zapewnienie  skutecznego dostosowania firmy  do 
otoczenia  i jej  działania  w  kierunku  realizacji  celów  strategicznych.  Za  kluczowe 
obszary kontroli uwa a si  istotne czynniki ograniczaj ce lub punkty newralgiczne 
decyduj ce o przetrwaniu i dalszym rozwoju firmy.  
 
f.

  Zarz dzanie przez controlling 

Controlling  jest  to  kompleksowy  i  ponadfunkcyjny  system  sterowania  
i  nadzorowania  przedsi biorstwem,  wspieraj cy  dyrekcj   i  kierowników  ni szych 
szczebli  przy  podejmowaniu  decyzji.  Controlling  musi  obejmowa   całe 
przedsi biorstwo  w  system  kompleksowego  planowania  zada   rzeczowych, 
finansowych  i  kosztów  oraz  sterowania  jego  działalno ci   i  dostarczania 
niezb dnych informacji, a tak e nadzorowania i rozliczania centrów gospodarczych 
z  realizacji  uzgodnionych  zada .  Jego  zadaniem  dodatkowym  jest  wspieranie 
naczelnego  kierownictwa  nowymi  wersjami  strategii  rozwoju  przedsi biorstwa, 
uwzgl dniaj cymi  przy  tym  nie  tylko  ju   zaobserwowane,  ale  tak e  spodziewane 
zmiany w otoczeniu. 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

XI.  STATYSTYCZNA ANALIZA WYDOLNO CI PROCESU 

Decyzja  o  podj ciu  produkcji  wyrobu  b d   o  rozpocz ciu  wiadczenia  dowolnej  usługi 
powinna  by   poprzedzona  analiz   wydolno ci  procesu,  a  istot   analizy  jest  badanie 
zgodno ci  mi dzy  wymaganiami  wynikaj cymi  z  projektu  produktu  a  mo liwo ciami 
procesu technologicznego, w którym ten produkt (wyrób lub usługa) ma by  wytwarzany. 
Podstaw  oceny owej zgodno ci jest oczekiwany poziom jako ci wykonania. Je li mo na 
oczekiwa  wysokiej jako ci wykonania, a wi c je li proces ma zdolno  do odtwarzania 
projektu  w  praktycznie  ka dym  akcie  produkcji,  albo  praktycznie  ka dym  akcie 

wiadczenia  usługi,  to  proces  taki jest  oceniany  jako  wydolny.  I  odwrotnie,  proces  jest 

oceniany jako niewydolny, je li przeprowadzona analiza nie pozwala oczekiwa  wysokiej 
jako ci wykonania produktu. Celem statystycznej analizy wydolno ci procesu jest zawsze 
rozstrzygni cie, czy konkretnym przypadku spełniona jest nierówno : 

0

)

;

(

Q

Z

A

Q

 

w której 

)

;

Z

A

Q

 oznacz poziom jako ci wykonania, jakiego mo na oczekiwa  realizuj c 

projekt  produktu  A  w  procesie  technologicznym  Z,  natomiast 

0

Q

  jest  najni szym, 

mo liwym do zaakceptowania poziomem jako ci konkretnego produktu. Je li wi c proces 
nie  ma  dostatecznej  wydolno ci,  to  konieczne  s   zmiany  w  projekcie,  modyfikacje 
procesu  technologicznego  albo  działania  zmierzaj ce  w  obu  tych  kierunkach 
jednocze nie. Je li działania te nie prowadz  do celu, to pozostaj  poszukiwania innego, 
mniej wymagaj cego odbiorcy produktu lub rezygnacja z jego wytwarzania.  

Ogólna  nierówno  

0

)

;

(

Q

Z

A

Q

  nie  wystarcza  do  rozwi zywania  praktycznych 

problemów w zakresie badania wydolno ci procesów. W takiej sytuacji nale y posłu y  
si  odpowiedni  miar  jako ci wykonania. Nale y tu wymieni  przede wszystkim: 

•  Wadliwo , 
•  Przeci tn  liczb  wad w jednostce produktu. 

Dodatkowo z ka d  z tych miar mo na wykorzysta  dwojako. Mo na mianowicie ocenia  
jako  wykonania albo ze wzgl du na pojedyncz  cech  u ytkow  lub techniczn , albo ze 
wzgl du na pewien zbiór tych cech. 
Je li zgodno  mi dzy wymaganiami projektu i mo liwo ciami procesu jest oceniana na 
podstawie  oczekiwanej  cz stkowej  wadliwo ci  strumienia  produktu,  to  ogólna 

nierówno  

0

)

;

(

Q

Z

A

Q

 zast pujemy warunkiem: 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

)

(

)

(

0

X

p

X

P

 

gdzie 

)

(

0

X

p

  jest  najwi ksz   dopuszczaln   wadliwo ci   produktu  generowanego  przez 

badany proces ze wzgl du na zmienn  diagnostyczn  X. 
Wyró niamy dwie mo liwo ci badania wydolno ci procesu: 
 

1.  Badanie  wydolno ci  procesu  przy  alternatywnej  ocenie 

wła ciwo ci produktu. 

W  tym  przypadku  liczbowym  obrazem  badanej  cechy  jest  zero  -  jedynkowa  zmienna 
losowa X, o realizacjach (x) generowanych według procedury: 

=

,

1

,

0

X

 

Miar   poziomu  jako ci  jest  w  takiej  sytuacji  wadliwo  

)

(X

p

,  interpretowana  jako 

prawdopodobie stwo  wygenerowania  wadliwej  jednostki  produktu.  Z  tego  wynika,  e 
wadliwo ci 

)

(X

p

 zale y od tego, w jaki sposób zostanie okre lona reguła, według której 

rozstrzyga si , czy badana jednostka produktu spełnia wymagania jako ciowe, czy te  nie 
pełnia. Je li reguła ta zostanie okre lona bardzo liberalnie, to nawet bardzo lichy produkt 
mo na  uzna   za  dobry.  I  odwrotnie,  je li  owa  reguła  zostanie  okre lona  bardzo 
rygorystycznie, to nawet najlepszy produkt mo na zdyskwalifikowa .  
 

2.  Badanie  wydolno ci  procesu  przy  liczbowej  ocenie 

wła ciwo ci produktu. 

W tej sytuacji załó my,  e liczbowym obrazem pojedynczej (u ytkowej lub technicznej) 
cechy  produktu  jest  ci gła  zmienna  losowa  X,  któr   traktujemy  jako  zmienn  

diagnostyczn   na  podzbiór  warto ci  po danych 

0

X

,  w  którym  wyró niamy  warto  

docelow   (najbardziej  po dan ,  nominaln )  oznaczan   symbolem 

0

x

.  Przedział 

tolerancji 

0

X

 mo e by  ograniczony obustronnie albo jednostronnie. W przypadku, gdy 

zmienna  ta  ma  rozkład  normalny 

)

;

(

σ

M

N

X

,  gdzie  odchylenie  standardowe 

σ

  jest 

miar   precyzji  procesu,  M.  natomiast  jest  zbiorem  mo liwych  do  uzyskania  warto ci. 
Mo na  zało y ,  e  precyzja  procesu  jest  ustalona,  natomiast  na  poprawno   procesu  
w pewnych granicach oddziałuje si  poprzez wybór odpowiednich parametrów procesu. 
W  wietle  przedstawionych  powy ej  zale no ci  mi dzy  projektem  i  procesem 
technologicznym zachodzi zgodno , gdy: 

gdy jednostka produktu spełnia wymagania jako ciowe 
gdy jednostka produktu nie spełnia wymagania jako ciowych 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

)

(

)

(

)

Pr(

0

0

X

p

X

p

X

x

=

 

albo 

)

(

1

)

(

1

)

Pr(

0

0

X

p

X

p

X

x

=

 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

XII.  STEROWANIA 

PROCESAMI 

ZA 

POMOC  

KART 

KONTROLNYCH 

Statystyczna analiza wydolno ci procesu zamyka etap sterowania jako ci  w trybie off-
line. Je li wynik tej analizy jest pozytywny, to mo na uruchomi  proces produkcji albo 
proces  wiadczenia  usługi.  Przyst puje  si   jednocze nie  do  monitorowania  przebiegu 
uruchomionego  procesu,  a  tak e  do  sterowania  operacyjnego  w  trybie  on-line. 
Wykorzystuje si  do tego celu metody i narz dzia SPC (statistical process control): 

1.

 

Diagram przebiegu procesu 

 
 
 
 
 

Diagram  przebiegu  procesu  obrazuje  powi zania  mi dzy  operacjami  technologicznymi. 
Jest  on  wykorzystywany  przede  wszystkim  podczas  projektowania  systemu  sterowania 
jako ci .  Pozwala  on  racjonalnie  zlokalizowa   punkty  monitorowani  procesu.  Przy 
lokalizowaniu  tych  punktów  nale y  bra   pod  uwag   tempo  przyrostu  jednostkowego 
kosztu produktu, a tak e intensywno  powstawania wad, zwłaszcza nienaprawialnych. 

 
2.

 

Karta kontrolna 

 
 
 
 

 
 
 
 
 

Karty  kontrolne  s   instalowane  w  blokach  analizuj cych  systemy  sterowania  jako ci   
i  słu   do  analizy  strumieni  informacji  numerycznych  generowanych  przez  bloki 
pomiarowe  tych  systemów.  Ze  wzgl du  na  to,  e  ka dy  proces  technologiczny  jest 

B

B

C

C

X(t) 

Górna lina kontrolna 

Lina centralna 

Dolna lina kontrolna 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

zjawiskiem dynamicznym, nie całkiem zdeterminowanym przez zadane parametry, przeto 
karty  kontrolne  konstruowane  s   na  podstawie  aparatu  formalnego  statystyki 
matematycznej.  Najcz ciej  s   to  albo  odpowiednio  zorganizowane  sekwencje 
klasycznych  testów  istotno ci  (karty  kontrolne  typu  Shewharta),  albo  procedury 
wykorzystuj ce testy sekwencyjne (karty kontrolne sum skumulowanych). W przypadku 
wykrycia  systematycznego  zakłócenia  obserwowanego  procesu  karta  kontrolna  emituje 
odpowiedni sygnał, który uruchamia ci g skoordynowanych działa  nazywanych cyklem 
Shewharta, zmierzaj cych do wykrycia i wyeliminowania przyczyny tego zakłócenia. 

 
3.

 

Arkusz analityczny 

 

Kontrola dostaw 

Rodzaj wady 

 

Ogólna 

ilo  wad 

Ilo  wad 

15 

12 

14 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

 

Arkusz analityczny słu y do wykrycia, wyeliminowania przyczyn zakłóce . 
 

4.

 

Diagram Ishikawy 

 
 
 
 
 
 
 
 
 
 

przyczyny 

przyczyny 

skutek 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Diagram  Ishikowy  słu y  równie   do  realizacji  wykrycia,  wyeliminowania  przyczyn 
zakłócenia. 
 

5.

 

Diagram Pareto 

 

 
 
 
 
 
 

 
 
 

 
Diagramy  Pareto  słu   do  badania  cz sto ci  wyst powania  wad  produktu  lub  procesu. 
Pozwalaj  one identyfikowa  te problemy, które powinny by  rozwi zywane w pierwszej 
kolejno ci. Ten sam cel mo na osi gn  za pomoc  diagramu Lorenza.  

 
6.

 

Histogram 

 
 
 
 
 
 
 
 

 
 
 

Histogram  jest  prostym  i  wygodnym  narz dziem  badania  rozkładu  obserwowanej 
zmiennej  diagnostycznej.  Ma  to  znaczenie  szczególnie  podczas  badania  wydolno ci 

f(x) 

Przedział tolerancji 

n(x) 

Rodzaje wady 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

procesu  technologicznego,  a  tak e  podczas  poszukiwania  przyczyn  zakłóce   tego 
procesu. 

 
7.

 

Punktowy diagram korelacji 

 
 
 
 
 
 
 
 
 
Punktowy  diagram  korelacji  jest  bardzo  prostym,  graficznym  narz dziem  badania 
współzale no ci  mi dzy  obserwowanymi  zmiennymi  diagnostycznymi.  Podobnie  jak  w 
przypadku  histogramu,  jest  to  tylko  pocz tkowy  etap  pogł bionej  analizy  problemu  za 
pomoc  narz dzi i metod, jakich dostarcza teoria regresji i korelacji. 

 

Podstawow   rol   w  tych  działaniach  odgrywaj   karty  kontrolne.  S   to  podstawowe  
i  najwcze niejsze  historycznie  narz dzia  statystycznego  sterowania  procesami.  Pomysł 
karty  kontrolnej  zawdzi czamy  Shewhartowi,  a  pierwsze  praktyczne  zastosowania  tego 
pomysłu nast piło w 1924 roku. W owym czasie  rodki obliczeniowe, jakimi dysponował 
przemysł,  były  nader  skromne  i  ograniczały  si   do  liczydła,  suwaka  logarytmicznego 
 i  arytmometru  mechanicznego.  Dlatego  te   zaproponowana  przez  Shewharta  metoda 
monitowania i regulacji pomy lana była jako procedura graficzna, w której główn  rol  
odgrywa  odpowiednio  zorganizowany  diagram  przegl dowy,  minimalizuj cy  liczb  
niezb dnych  operacji  numerycznych,  numerycznych  jednocze nie  pozwalaj cy 
obserwowa  w  sposób  usystematyzowany  przebieg  kontrolowanego  procesu.  Ta  ogólna 
idea  karty  kontrolnej  pozostała  niezmieniona  do  chwili  obecnej.  Decyzje  podejmowane 
przy  u yciu  karty  kontrolnej  oparte  s   na  analizie  informacji  dostarczanej  przez  próbki 
losowe pobierane ze strumienia produktu. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

XIII.   WST P DO PROGRAMOWANIA W J ZYKU C/C++ 

 

 

8.

 

WPROWADZENIE. 

 
Nazwa j zyka C wywodzi si  od j zyka o d wi cznej nazwie B, który został opracowany 
w  1970  roku  przez  Kena  Thompsona  dla  minikomputerów  PDP.  Poniewa   j zyk  
B  zawiera  pewne  istotne  ograniczenia,  w  roku1972  Dennis  Ritchie  i  Ken  Thompson 
stworzyli  j zyk  C.  Jednak  nie  od  razu  stał  on  si   popularny  przez  pierwsze  sze   lat 
stosowała  go  jedynie  w ska  grupa  programistów.  Dla  C  i  C++  nadszedł  historyczny 
przełom  w  roku  1978,  gdy  Brian  Kernighan  i  Dennis  Ritchie  napisali  i  opublikowali 
ksi k   „The  C  programming  language”,  która  została  wydana  równie   przez 
wydawnictwo  polskie  WNT  w  1987  roku  pod  tytułem:  „J zyk  C”.  Pierwotnie  j zyk  
C  został  zaimplementowany  na  komputerach  8-bitowych  pracuj cych  pod  systemem 
operacyjnym  CP/M.  Kiedy  w  roku  1981  pojawił  si   IBM  PC  i  rozpocz ła  si  
komputerowa  rewolucja,  j zyka  C  stał  si   jednym  z  najlepszych  kandydatów  do 
zawładni cia  spor   cz ci   rynku.  Liczba  komputerów  PC  i  u ytkowników  C  szybko 
wzrastała.  Dzi ki  popularno ci  i  wysokiemu  zainteresowaniu  C  wiele  firm  rozpocz ło 
prac   nad  stworzeniem  kompilatorów  j zyka  C  –  ka da  z  nich  rozpocz ła  tworzenie 
własnej wersji i ka da z nich rozpocz ła prac  w zupełnie innym kierunku. 
Rewolucja  komputerowa  i  kariera  j zyka  została  zagro ona  powstaniem  wielu 
niekompatybilnych wersji kompilatorów. Z tego powodu w Ameryka skim Narodowym 
Instytucie  Standardów  (ANSI)  został  utworzony  specjalny  komitet  X3J11  maj cy  za 
zadanie utworzenie standardowej wersji j zyka C – co przyczyniło si  do uratowanie jej 
kariery.  Nale y  jednak  zauwa y ,  e  ANSI  był  zainteresowany  w  stworzeniu  jednego 
uniwersalnego standardu, maj cego zastosowanie dla wszystkich komputerów – nie tylko 
dla PC. Mimo takich intencji, w opracowanym przez ANSI standardzie pojawiło si  wiele 
rzeczy  maj cych  odniesienie  do  specyficznej  architektury  IBM  PC,  nie  maj cych 
natomiast odniesienia do np. du ych komputerów klasy MAINFRAME. W miar  rozwoju 
standardów  ANSI  C  wi kszo   implementacji  zbli a  si   do  wspólnego  standardu,  
w miar  jak proces standaryzacji post puje coraz gł biej, ale nie obejmuje on np. grafiki 
ekranowej, pozostaje to wi c obszarem, na którym pomi dzy poszczególnymi wersjami 
kompilatorów wyst puj  znaczne rozbie no ci. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Rosn ca  popularno   j zyka  C  spowodowała  powstanie  ogromnej  liczby  programów 
napisanych  w  tym  wła nie  j zyku.  W  miar ,  jak  długo   programów  zacz ła  wyra nie 
wzrasta ,  wiele  osób  doszło  do  wniosku,  e  standardowe  konstrukcje  programów  nie 
nad aj   za  potrzebami  i  staj   si   coraz  bardziej  nieefektywne.  Jedynym  dost pnym 
wyj ciem  było  zastosowanie  funkcji  w  celu  uzyskania  programu  podzielonego  na 
moduły. Przy rosn cej liczbie funkcji, które to funkcje musiały cz sto odwoływa  si  do 
wspólnych  danych  i  wywoływa   si   nawzajem,  coraz  trudniej  było  programistom 
zapanowa  nad t  skomplikowan  kombinacj . W roku 1983 Bjarne Stroustrup opracował 
j zyk C++, który jest w zasadzie bardzo podobny do C, ma jednak kilka bardzo istotnych 
dodatkowych  mo liwo ci.  Najwa niejszym  nowym  wprowadzeniem  stały  si   obiekty. 
Obiekt  jest  to  co   takiego,  co  mo na  by  okre li ,  jako  nowy  rodzaj  struktur  –  z  jedn  
istotn  ró nic : je li programista za yczy sobie tego, zarówno dane, jak i funkcje mog   
w  obiekcie  uzyska   status  prywatny.  Jak  ju   wspomniałem  wcze nie,  przewaga 
obiektowego  stylu  programowania  polega  na  mo liwo ci  uzyskania  skuteczniejszego 
podziału  programu  na  moduły  czyli  na  pewne  jednostki  funkcjonalne  o  zrozumiałym 
przeznaczeniu  i  prostych  zasadach  współdziałania  z  innymi  elementami  programu. 
Chocia  głównym celem przy opracowaniu j zyka C++ było umo liwienie skutecznego 
podziału na moduły programów pisanych w j zyku C, to, nawet je li program jest krótki, 
C++ te  na co  do zaoferowania. W krótkich programach operatorom j zyka C mo emy 
w  C++  nada   nowe  wybrane  przez  siebie  działanie.  W  C++  mo na  równie   robi  
niewyobra alne  w  innym  j zykach  sztuczki  z  funkcjami.  Dla  przykładu,  wykorzystuj c 
mo liwo   rozbudowy  funkcji  mo emy  np.  zmusi   istniej c   ju   w  starym  programie 
napisanym  w  C  funkcj ,  by  dała  si   wywoła   z  argumentami  ró nych  typów.  
W klasycznym C byłby to oczywisty bł d, w C++ natomiast, w zale no ci od wybranego 
przez  nas  typu  argumentów,  zostanie  wybrana  stosowna  wersja  funkcji  i  wszystko 
wykona si  poprawnie. W miar  upływu czasu instytut ANSI wprowadzał kolejne, coraz 
bardziej  rozbudowane  wersje  standardu  ANSI  C.  Np.  standard  wprowadzony  w  1990 
roku  28-go  lutego  o  nazwie  ANSI  C2.1.  I  na  tym  ko cz   krótk   histori   C/C++ 
nast pnym krokiem b dzie krótki opis powy szego j zyka. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
 
9.

 

OPERATORY. 

 
J zyk  C/C++  w  porównaniu  z  innymi  j zykami  oferuje  programi cie  znaczn   liczb  
operatorów ró nego rodzaju. Ró norodno  ta umo liwia bardzo efektywny zapis wielu 
operacji.  Wyra enie  jest  ci giem  operatorów  i  znaków  przestankowych  okre laj cych 
sposób  wykonania  danego  obliczenia.  Kluczow     rol   w  konstrukcji  wyra enia  pełni  
operatory.  To  one  okre laj ,  co,  w  jaki  sposób  i  w  jakiej  kolejno ci  zostanie  obliczone 
wyra enie. 
Operatory mo na podzieli  na nast puj ce grupy: 
 
♦  operatory arytmetyczne: 
•  addytywne 
Do operatorów addytywnych zaliczamy dodawanie (+) i odejmowanie (-) a operandami 
s  wyra enia tego samego typu arytmetycznego lub wska nikami tego samego typu. 
•  multiplikatywne 
Do  operatorów  multiplikatywnych  zaliczamy  mno enie  (*),  dzielenie  (/)  i  reszta  
z dzielenia (%) a operandami  dz  standardowe prawa arytmetyki ponadto w przypadku 
reszty z dzielenia operandy s  typami całkowitymi. 
•  operatory inkrementacji (++) i dekrementacji (--) 
Powy sze  operatory  zaliczane  s   do  operatorów  jedno  argumentowych  operacja 
zwi kszenia (inkrementacja) lub zmniejszania (dekrementacja) o jeden jest wykonywana 
przez wi kszo   procesorów w  jednym rozkazie. Ponadto  mog   one  wyst powa   przed 
(operator przedrostkowy) lub po (operator przyrostkowy) operandzie. 
 
♦  operatory logiczne 
Warto   logiczna  prawda  jest  reprezentowana  jako  liczba  całkowita  ró na  od  zera,  za  
fałsz jako zero typu całkowitego. Umo liwiaj  one nast puj ce operacja na warto ciach 
logicznych: koniunkcja (&&), alternatywa (||), negacja (!), 
 
♦  operatory bitowe 
Za pomoc  operatorów bitowych mo na realizowa  funkcje logiczne : 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

OR – alternatywa (|) 
AND – iloczyn (&) 
EXOR – suma modulo 2 (^) 
NOT – negacja (~) 
Stosowane operandy musz  by  typu całkowitego, 
 
♦  operatory relacyjne 
 Operatory relacyjne pozwalaj  stwierdzi , czy mi dzy operandami zachodzi dana relacja, 
do powy szych operatorów zaliczamy: wi ksze ni  (>), mniejsze ni  (<), mniejsze równe 
(<=), wi ksze równe (>=), równe (==), ró ne od (!=), 
 
♦  operatory przypisania, 
Operatory przypisania daj  mo liwo  zwi złego zapisu wyra e . Mo na podzieli  je na 
dwie  grupy:  prosty  operator  przypisania  (=)  operandowi  przedrostkowemu  zostaje 
przypisana warto  operandu przyrostowego, zło one operatory przypisania (+=, -=, *=, 
/=,  <<=,  >>=,  &=,  ^=,  |=)  maj   one  ogóln   posta   operator=  a  zasada  działania 
przedstawi  na przykładzie: 
Wyra enie_1 = Wyra enie_1 operator Wyra enie_2; 
co mo emy zast pi  wykorzystuj c operator przypisania: 
Wyra enie_1 operator= Wyra enie_2  
 

♦  operator warunkowy 
Wyra enie z operatora warunkowego wygl da nast puj co: 
Wyra enie_1 ? Wyra enie_2 : Wyra enie_3; 
w  pierwszej  kolejno ci  obliczana  jest  warto   Wyra enia_1  je li  jest  ona  niezerowa 
(prawda),  obliczana jest warto   Wyra enia_2,  natomiast  Wyra enie_3 jest  ignorowane, 
w  przeciwnym  razie  (Wyra enie_1  jest  równe  zero  –  fałsz)  obliczana  jest  warto  
Wyra enia_3

, natomiast Wyra enie_2 pomijamy, 

 
♦  operatory wyboru składniowych 
Tych operatorów u ywa si  celem wyboru składowej struktury, unii lub klasy. Operator 
(.)  umo liwia  odwołanie  do  składowej  okre lonej  przez  operand,  operator  (->)  za  
odwołanie do składowej wskazywanej przez operand, 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

♦  operator pobrania adresu zmiennej (&) oraz dost pu do zmiennej wskazywanej (*) 
W przypadku wyra enia pobrania adresu warto  wyra enia stanowi adres operandu a w 
przypadku  zmiennej  wskazywanej  warto   wyra enia  jest  zmienna  wskazywana  przez 
operand, za  jego typ jest zgodny z typem wskazywanym operandu, 
 
♦  operator pobrania rozmiaru(sizeof
Operator mo e by  u ywany w dwóch poni szych sposobach: 
sizeof

(identyfikator_typu) – warto ci  wyra enia jest rozmiar w bajtach typu okre lonego 

przez podany identyfikator, 
sizeof operand

 – warto ci  wyra enia jest rozmiar pami ci zajmowany przez operand

 
♦  operatory dynamicznego przydziału pami ci 
Operator  przydziału  pami ci  new  tworzy  obiekt  danego  typu  przydzielaj c  sizeof  
dany_typ

  w  obszarze  stosu  w  zmiennych  dynamicznych,  operator  zwalniania  pami ci 

delete

 usuwa obiekt wskazywany przez wska nik, 

 
♦  operatory indeksowania ([]) i wywołania funkcji(), 
 
♦  operator konwersji 
Operator konwersji ma posta : (typ)operand – warto ci  wyra enia jest warto  operandu 
po konwersji do typu o podanej nazwie. 
 
 
10.

 

INSTRUKCJE 

 
Jednym  z  najwa niejszych  elementów  ka dego  j zyka  programowania  s   instrukcje. 
Umo liwiaj  one zapis algorytmu, a co za tym idzie – słu  do sterowania przebiegiem 
programu. W j zyku C++ ich lista jest do  krótka, co nie oznacza bynajmniej ubóstwa. 
Instrukcje  te  dzi ki  swej  efektywno ci  w  poł czeniu  z  ró norodno ci   typów  danych  
i  operatorów  umo liwiaj   tworzenie  nawet  najbardziej  zaawansowanego 
oprogramowania. Instrukcje mo na podzieli  na: 
 
♦  instrukcje warunkowe 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

W  zapisie  algorytmów  cz stym  problemem  jest  sprawdzenie,  czy  zachodzi  dana 
zale no   i w  zale no ci  od tego  wykonanie takich czy  innych czynno ci.  Sprawdzenie 
warunków i przej cie do wykonania odpowiednich operacji umo liwiaj  tzw. instrukcje 
warunkowe.  Do  tej  grupy  instrukcji  zaliczamy  instrukcj   „je eli”  (if)  oraz  instrukcj  
„wyboru” (switch). 
Ogólna posta  instrukcji warunkowej „je eli” przedstawia si  nast puj co: 
if(wyra enie_warunkowe) instuckcja_1 [else instukcja_2]; 
Wyra enie_warunkowe

 musi by  typu skalarnego. Je li warto  wyra enia_warunkowego 

jest ró na od zera (prawda), wówczas wykonywana jest insturkcja_1, w przeciwnym razie 
(fałsz) – instukcja_2.  
Instrukcja wyboru ma nast puj c  posta  ogóln : 
switch( wyra enie_steruj ce)  
{  
  case wyra enie_stałe_typu_całkowitego: instrukcje 
  ... 
  case wyra enie_stałe_typu_całkowitego: instrukcje 
  default: instukcje 
}

 

Na  podstawie  warto ci  wyra enia  steruj cego  pozwala  ona  przenie   wykonywanie 
programu do wskazanego miejsca. Wyra enie_steruj ce musi by  typu całkowitego, za  
instrukcje s  dowoln  instrukcj  j zyka C/C++. Wykonanie instrukcji wyboru polega na 
obliczeniu  warto ci  wyra enia  steruj cego  i  kontynuowaniu  wykonywania  programu 
pocz wszy  od  etykiety  wyboru,  której  wyra enie  stałe  ma  warto   równ   obliczonej 
wcze niej  warto ci  wyra enia steruj cego.  Je li  adne  z wyra e   stałych  nie  spełnia tej 
równo ci,  wówczas  wykonywany  jest  skok  do  miejsca  okre lonego  domy ln   (default
etykiet  wyboru lub je li jej nie ma – wykonywanie instrukcji wyboru ulega zako czeniu. 
 
♦  Instrukcje iteracyjne 
Instrukcje  iteracyjne  umo liwiaj   wielokrotne  wykonywanie  pewnych  sekwencji 
instrukcji,  czyli  p tli,  jak  wiadomo,  s   podstaw   programowania.  Wyró niamy 
nast puj ce instrukcje iteracyjne: 
•  Instrukcja „dla” (for
Jej ogólna posta  przedstawia si  nast puj co: 
for(wyra enie_inicjuj ce ; wyra enie_warunkowe ; wyra enie_zwi kszaj ce) instrukcja; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Wykonywanie  p tli  polega  na  obliczeniu  wyra enia_inicjuj cego,  co  najcz ciej 
powoduje  zainicjowanie  licznika  p tli,  nast pnie  obliczane  jest  wyra enie_warunkowe
je li jest ono niezerowe (prawda) wykonywana jest instrukcja zwi zana z instrukcj  for
Obliczane  jest  wyra enie_zwi kszaj ce,  co  powoduje  zwykle  zwi kszenie  lub 
zmniejszenie liczników p tli i ponownie obliczane jest wyra enie_warunkowe, je li jego 
warto  jest ró na od zera wykonywana jest ponownie instrukcja. 
•  Instrukcja „dopóki”(while
Ogólna posta  instrukcji „dopóki”: 
While(wyra enie_warunkowe) instrukcja; 
Instrukcja jest wykonywana do momentu, kiedy wyra enie_warunkowe osi gnie warto  
0 (fałsz). 
•  Instrukcja „wykonuj dopóki” (do...while
Ogólna posta  instrukcji „wykonuj dopóki” przedstawia si  nast puj co: 
do instrukcja while(wyra enie_warunkowe); 
Instrukcj   do  ...  while  mo na  przetłumaczy   jako:  wykonuj  instrukcj   dopóki  warto  
wyra enia  wyra enia_warunkowego  oznacza  prawd .  Instrukcj   t   stosujemy  zamiast 
instrukcji  while  wówczas,  gdy  zale y  nam,  aby  wykonana  została  przynajmniej  jedna 
iteracja. 
 
♦  Instrukcje steruj ce przebiegiem programu 
Umo liwiaj   one  opuszczenie  p tli,  przeniesienie  wykonywania  programu,  zako czenie 
wykonywania. Wspomniane tu instrukcje to: 
•  Instrukcja „przerwij” (break
Składni  instrukcji „przerwij” przedstawiam poni ej: 
break; 
Powoduje ona opuszczenie aktualnego poziomu p tli lub instrukcji wyboru. 
•  Instrukcja „kontynuuj” (continue
Składnia instrukcji „kontynuuj” wygl da nast puj co: 
continue; 
Omawiana  instrukcja  mo e  by   u ywana  tylko  wewn trz  instrukcji  iteracyjnych.  Jej 
u ycie powoduje w przypadku p tli while – przeniesienie sterowania z wn trza p tli do 
wyra enia  warunkowego,  które  zostaje  obliczone. W  zale no ci od uzyskanego  wyniku 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

wykonywanie  p tli  jest  kontynuowane  lub  ulega  zako czeniu.  W  przypadku  p tli  for  – 
przeniesienie sterowania do wyra enia zwi kszaj cego licznik p tli. 
•  Instrukcja „skoku” (goto
Umo liwia  przekazanie  sterowania  do  okre lonego  miejsca  aktualnie  wykonywanej 
funkcji programu. Instrukcja skoku ma posta : 
goto etykieta; 
etykieta okre la miejsce w programie, do którego ma nast pi  skok. 
  
 
11.

 

FUNKCJE. 

 
W  pierwszej  kolejno ci  zwróc   uwag   na  rozró nienie  poj   deklaracja  i  definicja. 
Deklaracja  funkcji,  w  odró nieniu  od  definicji,  jest  poj ciem  logicznym,  gdy   stanowi 
tylko  informacj   dla  kompilatora,  e  funkcja  o  okre lonej  nazwie,  typie  warto ci  
i  parametrów  mo e  zosta   u yta  gdzie   w  danym  module  programu.  Definicja  funkcji 
okre la natomiast, co funkcja wła ciwie robi. Stanowi wi c ona zapis jakiego  algorytmu 
lub jego cz ci. Definicja funkcji powoduje, w odró nieniu od deklaracji, przydzielenie 
obszaru pami ci, w którym znajdzie si  kod wynikowy funkcji. 
Wywołanie funkcji ma posta : 
Nazwa_funkcji(Lista_paramtrów_wywołania); 
Na  list   parametrów  wywołania  składaj   si   oddzielone  przecinkami  wyra enia  typu 
zgodnego z typem parametru funkcji. 
J zyk  C++  wprowadza  kilka  dodatkowych  mo liwo ci  w  zakresie  deklarowani, 
definiowania i wykorzystania funkcji:  
 Funkcje przeci one zaliczamy co nich funkcje o tej samej nazwie, lecz ró ni cych si  
parametrami i ewentualnie typem warto ci. Dwie funkcje przeci one nie mog  ró ni  si  
wył cznie  typem  zwracanej  warto ci.  O  tym,  która  z  funkcji  przeci onych  zostanie 
wywołana, decyduj  parametry wywołania – ich typy i liczba. 
Domy lne warto ci parametrów funkcji, które podajemy w deklaracji pozwala wywoła  
funkcj  z domy lnymi parametrami. 
Funkcja  mo e  otrzymywa   lub  samodzielnie  pobiera   dane  z  otocznia,  przetwarza   je,  
a  nast pnie  zwraca   rezultaty  przeprowadzonych  działa .  Przekazywanie  parametrów  
i zwracanie warto  s  wi c ze sob  blisko zwi zane. Parametry mog  by  przekazywane 
do funkcji na trzy sposoby: 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
♦  Przez warto  
Przez  dłu szy  czas  jedynym  sposobem  przekazywania  parametrów  funkcji  było  tzw. 
przekazywanie przez warto . W wyniku przekazywania przez warto  funkcja otrzymuje 
kopi   zmiennej  na  stosie  procesora  lub  w  jego  rejestrze.  Przekazany  parametr  jest 
traktowany  tak  samo,  jak  wszystkie  zmienne  automatyczne  zadeklarowane  w  ciele 
definicji funkcji, tj. istnieje tylko podczas jej wykonywania, 
 
♦  Przez wska nik 
Przekazywanie  argumentów  funkcji  przez  wska nik  jest  wła ciwie  tylko  odmian  
przekazywania  przez  warto   –  funkcja  otrzymuje  po  prostu  kopi   wska nika.  Nale y 
zwróci  bowiem uwag  na fakt,  e wska nik przekazany do funkcji mo e identyfikowa  
zmienn   nale c   do  innej  funkcji.  Przypisanie  warto ci  zmiennej  wskazywanej  przez 
parametr  wska nikowy  pozwala  wi c  zmienia   warto   zmiennych  utworzonych  
w  innych  funkcjach  programu.  Przekazywanie  parametrów  przez  wska nik  jest 
zasadniczo  wykorzystywane  w  przekazywaniu  struktur  danych  o  du ych  rozmiarach, 
takich jak tablice czy ła cuchy lub umo liwienia zwrócenia wi cej ni  jednej warto ci, 
 
♦  Przez referencj  
W  j zyku  C++  istnieje  typ  referencyjny,  który  umo liwia  deklarowanie  zmiennych 
reprezentuj cych  inne  zmienne.  Najszerzej  zmienne  referencyjne  s   wykorzystywane 
przy  przekazywaniu  parametrów  do  i  z  funkcji. Tzw.  przekazywanie  parametrów  przez 
referencj   jest  odpowiednikiem  przekazywania  parametrów  przez  zmienn  
(wykorzystywan  w j zyku Turbo Pascal), cho  mo e nie dokładnym, ale za to daj cym 
znaczenie wi ksze mo liwo ci. Operacje s  wi c przeprowadzane albo bezpo rednio na 
zmiennej, której referencj  przekazano do funkcji, albo na zmiennej tymczasowej, co ma 
miejsce w przypadku niezgodno ci typu referencyjnego, i zmiennej, do której referencja 
jest tworzona, 
 
♦  Zwracanie warto ci  
Do  zwracania  warto ci  wykorzystujemy  instrukcj   return.  Powoduje  ona  zako czenie 
wykonywania funkcji i zwrócenie warto ci. Wykonywanie funkcji typu void mo e, lecz 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

nie  musi  ko czy   si   instrukcj   return  z  parametrem  okre laj cym  warto   funkcji,  
w przeciwnym razie warto  ta pozostaje nie okre lona. 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 
 
12.

 

BUDOWA PROGAMU 

 
Program  napisany  w  j zyku  C++  składa  si   w  ogólnym  przypadku  z  dyrektyw 
preprocesora,  komentarzy,  deklaracji  i  instrukcji.  Dyrektywy  zajmuj   pełne  wiersze  
i  zaczynaj   si   od  znaku  #  (hash).  Komentarze  natomiast  mog   by   dwóch  rodzajów:  
o postaci:  /*tekst*/  w której tekst jest dowolnym, by  mo e wielowierszowym napisem 
nie zawieraj cym dwu znaku */, albo jest napisem o postaci  //tekst  w której niejawnym 
ko cem komentarza jest koniec wiersza. 
Najcz ciej  u ywan   dyrektyw   preprocesora  jest  #include,  zazwyczaj  wyst puj ca  
w  postaci:    #include  <name>    w  której  name  jest  nazw   pliku.  Zinterpretowanie  tej 
dyrektywy powoduje wł czenie w miejscu jej wyst pienia, całej zawarto ci pliku name
Plik  name  jest  nazywany  nagłówkowym  i  zawiera  zazwyczaj  deklaracje  funkcji 
standardowych u ytych w programie. 
Ka dy program musi zawiera  deklaracj  funkcji o nazwie main. Jest to funkcja, od której 
zaczyna si  wykonywanie programu. Funkcja main jest najcz ciej bezparametrowa.  
W  programie  jednostkami  leksykalnymi  s   słowa  kluczowe,  identyfikatory,  literały  
i ograniczniki. Ogranicznikami s  operatory (np.+, -, *). Podział programu na jednostki 
leksykalne odbywa si  w naturalnym porz dku, to jest od lewej do prawej i od góry do 
dołu. Słowa kluczowe s  to słowa wybrane z ustalonego repertuaru i pełni ce w j zyku 
specjalne funkcje, takie jak np. słowo void w li cie parametrów funkcji main. Słowa te s  
zastrze one  i  nie  mog   by   u ywane  do  oznaczania  takich  obiektów  programu,  jak 
zmienne,  funkcje  i  typy.  Literałem  jest  napis  reprezentuj cy  dan ,  z  którego  zapisu  
i w ramach przyj tej interpretacji, wynikaj  wszystkie atrybuty danej, w tym jej warto   
i typ. W j zyku C++ literałami s  liczby (np. 12, 23.7), znaki (np. ‘*’) i ła cuchy (np. „to 
jest ła cuch”). 
 
 
 
13.

 

KLASY I OBIEKTY 

 
Dane  definiuj ce  przedmiot  i  metody  okre laj ce  jego  wła ciwo ci  umieszczamy  we 
wspólnym  miejscu  –  klasie.  W  ten  sposób  nast puje  integracja  danych  i  metod 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

uprawnionych do ich wykorzystania. Nazwa programowanie obiektowe zwraca uwag  na 
fakt,  e  dane  funkcje  z  nich  korzystaj ce  słu   temu  samemu  celowi  –  definiowaniu 
przedmiotów  i  okre laniu  ich  wła ciwo ci.  To  wła nie  przedmioty  –  obiekty  staj   si  
głównym  przedmiotem  zainteresowania  wielu  programistów  i  jednocze nie 
podstawowym  elementem  konstrukcji  programu.  C/C++  nie  jest  j zykiem  ci le 
obiektowym,  gdy   pozwala  równie   na  programowanie  proceduralne.  Takie  poł czenie 
nale y  uzna   za  zalet ,  gdy   nieprawd   jest,  i   wszystkie  problemy  najwygodniej  jest 
rozwi zywa   obiektowo.  W  wielu  przypadkach  wygodnie  jest  zdefiniowa   kilka  klas 
definiuj cych  cz sto  spotykanych  poj ,  natomiast  cały  program  mo na  napisa  
proceduralne  wykorzystuj c  tak  zdefiniowane  klasy.  Podstawowym  poj ciem  j zyka 
C/C++  jest klasa. Z ka d   klas  jest  zwi zany  zbiór  danych  okre lonych  przez jej  pola 
oraz zbiór operacji okre lony przez jej funkcje składowe. Pola i funkcje składowe mog  
by   publiczne,  prywatne  i  zabezpieczone.  Je li  klasa  nie  zawiera  funkcji  składowych,  
a wszystkie jej pola s  publiczne, to jest po prostu struktur . Identyfikatory komponentów 
prywatnych  s   dost pne  jedynie  w  obr bie  funkcji  składowych  klas  oraz  w  obr bie 
funkcji zaprzyja nionych z klas . Identyfikatory komponentów publicznych s  dost pne 
wsz dzie.  Identyfikatory  komponentów  zabezpieczonych  s   traktowane  tak  jakby  były 
prywatne,  ale  ponadto  s   dost pne  tak e  w  obr bie  funkcji  składowych  
i  zaprzyja nionych  z  klas   pochodn   danej  klasy  bazowej.  Deklaracja  funkcji 
zaprzyja nionej z klas  mo e wyst pi  w dowolnym miejscu w obr bie deklaracji klasy, 
ale  musi  by   poprzedzona  słowem  kluczowym  friend.  Wymienione  powy ej  elementy 
rozmieszcza si  w sekcjach definicji klasy, co ilustruje poni szy schemat: 
Class Klasa 

  public: 
 

... (funkcje i dane składowe publiczne) 

  protected: 
 

... (funkcje i dane składowe zabezpieczone) 

  private: 
 

... (funkcje i dane składowe prywaten) 

}; 
Deklarowaniu  obiektów  mo e  towarzyszy   ich  inicjowanie.  Inicjator  obiektu  składa  si   
z listy argumentów inicjacji uj tych w nawiasy okr głe, albo z wyra enia nast puj cego 
po znak „=”. Sposób inicjowania poszczególnych pól obiektu jest okre lony przez funkcje 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

nazywan   konstruktorem.  Funkcja  ta  musi  by   publiczn   składow   obiektu  i  mo na  j  
rozpozna  po tym,  e jej nazwa jest identyczna z nazw  klasy. Najcz ciej funkcja ta jest 
przeci ona.  Umo liwia  to  stosowanie  do  obiektów  danej  klasy  inicjatorów  o  ró nej 
liczbie i ró nych typach argumentów. Ponadto deklaracja konstruktora nie mo e zawiera  
specyfikatora typu, a definicja konstruktora nie mo e zawiera  instrukcji return. Inicjator 
zapisany  po  znaku  „=”  maj cy  posta   nazwy  zmiennej  obiektowej  tej  samej  klasy  co 
inicjowany  obiekt,  stanowi  argument  konstruktora.  Je li  taki  konstruktor  nie  zostanie 
zadeklarowany  jawnie,  to  domniemywa  si   konstruktor  kopiuj cy.  Je li  klasa  zawiera 
jawnie zadeklarowany  konstruktor, to ka da  deklaracja obiektu  tej  klasy  musi  zawiera  
inicjator. Je li nie wyst puje on jawnie, to podczas opracowywania deklaracji obiektu jest 
wywoływany konstruktor nazywany bezparametrowym. 
Podobnie  jak  pozostałe  zmienne,  obiekty  dziel   si   na  statyczne  i  dynamiczne.  Je li 
opracowanie  deklaracji  zmiennej  powoduje  wywołanie  konstruktora,  to  o  miejscu 
przydzielonym  zmiennej  mo na  wnioskowa   na  podstawie  warto ci  danej  przypisanej 
zmiennej  this.  Wywołanie  konstruktora  dla  zmiennej  this  wskazuje  obiekt  dla  którego 
wywołano  konstruktor.  Analogiczn   funkcj   jak   podczas  tworzenia  obiektów  pełni 
konstruktor spełnia podczas ich usuwania destruktor. Podobnie jak konstruktor, destruktor 
jest komponentem klasy do której nale y obiekt. Nazw  destruktora jest napis składaj cy 
si   z  identyfikatora  klasy  poprzedzonego  znakiem  ~  (tylda).  Deklaracja  destruktora  nie 
mo e  zawiera   specyfikacji  typu,  a  jego  definicja  nie  mo e  zawiera   instrukcji  return
Typowe  u ycie  destruktora  sprowadza  si   do  przywrócenia  warunków  pocz tkowych,  
w tym do odzyskania pami ci operacyjnej przydzielonej podczas inicjowania obiektu. 
 
 
14.

 

DZIEDZICZENIE I POLIMORFIZM 

 
Jednym  z  podstawowych  zada   programowania  obiektowego  jest  wspólny  opis  pewnej 
klasy  przedmiotów, zjawisk  czy problemów. Temu  celowi  słu y  maj  dwa najwi ksze 
osi gni cia  programowania  zorientowanego  obiektowo:  dziedziczenie  i  polimorfizm. 
Dziedziczenie  umo liwia  przejmowanie  wła ciwo ci  innych  klas  zwanych  pierwotnymi 
lub  bazowymi,  przez  klasy  zwane  potomnymi  lub  wprowadzonymi.  Poniewa  
wła ciwo ci klasy s  definiowane przez jej składowe, dziedziczenie polega na mo liwo ci 
przył czenia  do  klasy  składowych  klas  bazowych.  Podstawow   korzy ci   płyn c   
z dziedziczenia jest automatyczne wykonywanie konwersji od wska nika klasy potomnej 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

–  do  wska nika  klasy  bazowej,  co  umo liwia  traktowanie  wszystkich  obiektów 
potomnych tak, jakby były abstrakcyjnej klasy bazowej. 
Polimorfizm  jest  wła ciwo ci   kolekcji  funkcji  o  przeci onym  identyfikatorze, 
umo liwiaj c   aktywowanie  jednej  z  nich  na  rzecz  obiektu,  którego  typ  nie  wynika  
z  nazwy  obiektu,  lecz  jest  zapami tany  w  obiekcie.  Ogół  funkcji  polimorficznych 
obranego  typu  składa  si   z  funkcji  zadeklarowanej  ze  specyfikatorem  virtual  oraz  ze 
wszystkich  funkcji  o  takim  samym  identyfikatorze,  zdefiniowanych  w  ci gu  klas 
pochodnych  (ju   bez  specyfikatora  virtual).  Wyst pienie  w  deklaracji  klasy  chocia  
jednej funkcji polimorficznej powoduje uzupełnieni ogółu pól tej klasy, ukrytym polem 
identyfikacyjnym, w którym jest przechowywana informacja o typie obiektu. Niezale nie 
od  liczby  funkcji  polimorficznych  danej  klasy  pole  takie  jest  tylko  jedno. W typowych 
implementacjach  jest  ono  umieszczane  bezpo redni  za  wszystkimi  polami  tej  klasy,  
w  której  po  raz  pierwszy  wyst piła  funkcja  polimorficzna.  Aktywowanie  funkcji 
polimorficznej  na  rzecz  obiektu  przebiega  w  nast puj cy  sposób:  najpierw  si ga  si   do 
pola informacyjnego obiektu, w celu okre lenia klasy obiektu, a nast pnie aktywuje si  
funkcj  polimorficzn  tej wła nie klasy na rzecz tego obiektu. 
Funkcje  polimorficzne  pozwalaj   na  wywołanie  funkcji  zgodnie  z  klas   obiektu,  nawet 
gdy  odwołanie  do  tej  funkcji  odbywa  si   przez  wska nik  klasy  pierwotnej,  np.  je li  
w  tablicy  tab  przechowywane  s   wska niki  klasy  podstawowej  hierarchii,  zawieraj cej 
funkcj   polimorficzn ,  to  wywołanie  tab[indeks]->funkcja_plimorficzna  spowoduje 
wywołanie funkcji odpowiadaj cej rzeczywistej klasie wskazywanego obiektu. Aby wi c 
wywołanie  odpowiedniego  destruktora  było  mo liwe  musi  by   on  równie   funkcj  
wirtualn .  Adres  wywoływanej  funkcji  wirtualnej  jest  ustalany  dopiero  w  czasie 
wykonywania programu. Dzi ki temu raz skompilowana funkcja mo e odwoływa  si  do 
funkcji  wirtualnych  klas,  które  w  momencie  jej  kompilacji  jeszcze  nie  istniały.  Wybór 
funkcji,  która  ma  zosta   wywołana,  odbywa  si   za  po rednictwem  tzw.  tablicy  funkcji 
wirtualnych.  W  pewnym  uproszczeniu  mo na  powiedzie ,  e  zawiera  ona  adresy  danej 
funkcji wirtualnej  dla całej  hierarchii  klas.  Po  napotkaniu  wywołania funkcji  wirtualnej 
rozpoczynane jest przeszukiwanie tej tablicy, maj ce na celu odnalezienie adresu funkcji 
nale cej do klasy obiektu, dla którego jest ona wywoływana. 
 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

XIV.  PROGRAMOWANIE DLA WINDOWS Z 

WYKORZYSTANIEM  OWL (OBIEKT WINDOW LIBRARY) 

 

 
W tym rozdziale omówi  standardowe klasy potrzebne do tworzenia aplikacji. 
 Biblioteka OWL zawiera definicje klas potrzebnych do tworzenia aplikacji dla Windows. 
Fundamentalne znaczenie dla wi kszo ci typowych aplikacji maj  nast puj ce klasy: 
TModule

 (moduł – program lub biblioteka DLL) 

TApplication

 (program – aplikacja) 

 TWindow (okno) 
 Tworz c  obiekt  klasy  danej  aplikacji  b d   wykorzystywał  dziedziczenie  od    klasy 
bazowej TApplication:  
class Moja_class : public TApplication 
Podstawowym celem zastosowania tej wła nie klasy bazowej jest odziedziczenie gotowej 
funkcji  –  metody  virtual  InitMainWindow()  (zainicjuj  główne  okno  programu). 
Utworzenie obiektu Moja_class nast puje zwykle w czterech etapach: 
•  Windows uruchamiaj  program wywołuj c główn  funkcj  WinMain() lub OwlMain() 

wchodz c  w skład ka dej aplikacji, 

•  Funkcja WinMain() tworzy przy pomocy operatora new nowy obiekt – aplikacj , 
•  Obiekt  –  aplikacja  zaczyna  funkcjonowa .  Konstruktor  obiektu  (własny,  b d  

odziedziczony  po  klasie  TApplication)  wywołuje  funkcj   –  wirtualn   metod  
InitMainWidnow()

Funkcja  przy  pomocy  operatora  new  tworzy  obiekt  –  okno  aplikacji.  Wska nik  do 
utworzonego obiektu zwraca funkcja GetApplication(). Dla zobrazowania mechanizmów 
poni ej przedstawi  uproszczony „wyci g” z dwu opisywanych klas. Nie jest to dokładna 
kopia  kodu  ródłowego  Borlanda,  lecz  skrót  tego  kodu  pozwalaj cy  na  zrozumienie 
metod implementacji okienkowych mechanizmów wewn trz klas biblioteki OWL i tym 
samym  wewn trz  obiektów  obiektowo  –  zdarzeniowych  aplikacji.  A  oto  najwa niejsze 
elementy implementacji klasy TApplication
•  Konstruktor obiektu: 

TApplication::TApplication(const char far* name, 
 

 

 

 

HINSTANCE Instance, 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

 

 

 

HINSTANCE prevInstance, 

 

 

 

 

const char far* CmdLine, 

 

 

 

 

Int CmdShow, 

 

 

 

 

TModule*& gModule) 


  hPrevInstance=prevInstance; 
  nCmdShow = CmdShow; 
  MainWindow = 0; 
  HAccTable = 0; 
  BreakMessageLoop = FALSE; 
  AddApplicationObject(this); 
  gModule = this; 


 
•  Funkcja – metoda „Zainicjuj Instancj ”: 
void TApplication::InitInstance() 

  InitMainWindow(); 
  if(MainWindow) 
  { 
    MainWindow->SetFlag(wfMainWidnow); 
    MainWindow->Create(); 
    MainWindow->Show(nCmdShow); 
  } 
 
•  Metoda „Zainicjuj główne okno aplikacji”: 
void TApplication::InitMainWindow() 

  SetMainWindow(new TFrameWindow(0,GetName())); 

 
•  Metoda Run() – „Uruchom program”: 
int TApplication::Run() 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  int status; 

  if(!hPrevInstance) InitApplication(); 
  InitInstance(); 
  status = MessageLoop(); 

 
•  P tla pobierania komunikatów. 
BOOL TApplication::PumpWaitingMessages() 

  MSG msg; 
  BOOL foundOne = FALSE; 
  while(::PeekMessage(&msg,0,0,0,PM_REMOVE)) 
  { 
    foundOne = TRUE; 
    if(msg.message == WM_QUIT) 
    { 
      BreakMessageLoop = TRUE; 
      MessageLoopResult = msg.wParam; 
      ::PostQuitMessage(msg.wParam); 
      break; 
    } 
    if(!ProcessAppMsg(msg)) 
    { 
      ::TranslateMessage(&msg); 
      ::DispatchMessage(&msg); 
    } 
  } 
  return foundOne; 

int TApplication::MessageLoop() 

  long idleCount = 0; 
  MessageLoopResult = 0; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  while(!BreakMessageLoop) 
  { 
  TRY{ 
    if(!IdleAction(idleCount++))::WaitMessage(); 
    if(PumpWaitingMessage()) idleCount = 0; 
  } 
  if(MessageLoopResult != 0) 
  { 
    ::PostQuitMessage(MessageLoopResult); 
    break; 
  } 
  BreakMessageLoop = FALSE; 
  return MessageLoopREsult; 

else if(::lsWindowEnable(wnd)) 

  *(info->Wnds++) = wnd; 
  ::EnableWidnow(wnd,FALSE); 

return TRUE; 

 
Klasa  TWindow  (Okno)  zawiera  implementacj   wielu  przydatnych  przy  tworzeniu 
aplikacji „cegiełek”. Poni ej przedstawi  fragment pliku  ródłowego: 
... 
extern LRESULT FAR PASCAL _export InitWndProc(HWND,UINT,WPARAM,LPARAM) 
... 
struct TcurrentEvent   

//Struktura Bie ce zdarzenie 


  Twindow* win; 

//Wska nik do okno 

  UINT message; 

//Komunikat 

  WPARAM wParam; 
  LPARAM lParam; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

... 
DEFINE_RESPONSE_TABLE(Twindow) 
//Makro:zdefiniuj tablic  odpowiedzi na zdarzenie 
//EV_WM_SIZE – zdarzenie (Event) – nadszedł komunikat WM_SIZE 
... 
EV_WM_SETCURSOR, 
EV_WM_SIZE, 
EV_WM_MOVE, 
EV_WM_PAINT, 
EV_WM_LBUTTONDOWN, 
EV_WM_KILLFOCUS, 
EV_WM_CREATE, 
EV_WM_CLOSE, 
EV_WM_DESTROY, 
EV_COMMAND(CM_EXIT,CmExit), 
... 
END_RESPONSE_TABLE; 
 
•  Funkcje  –  metody  obsługuj ce  komunikaty  zaimplementowane  wewn trz  klasy 

TWindow 

TWindow::EvCreate(CREATESTRUCT far&) 

  SetupWindow(); 
  return (int)DefaultProcessing(); 

void Twindow::EvSize(UINT size Type, Tsize&) 

  if(Scroller && size Type != SIZE_MINIMIZED) 
  { 
    Scroller->SetPageSize(); 
    Scroller->SetBarRange(); 
  } 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

•  Metoda GetWindowClass() 
void TWindow::GetWindowClass(WNDCLASS& wndClass) 

  wndClass.cbClsExtra = 0; 
  wndClass.cbWndExtra = 0; 
  wndClass.hInstance = *GetModule(); 
  wndClass.hIcon = 0; 
  wndClass.hCursor = ::LoadCursor(0,IDC_ARROW); 
  wndClass.hbrBackground = HBRUSH(COLOR_WINDOW +1); 
  wndClass.lpszMenuName = 0; 
  wndClass.lpszClassName = GetClassName(); 
  wndClass.style = CS_DBLCLKS; 
  wndClass.lpfnWndProc = InitWndProc; 

 
Skoro  te  wszystkie  elementy  zostały  ju   zaimplementowane  wewn trz  definicji  klas, 
program powinien tylko umiej tnie z nich korzysta  a tekst  ródłowy programu powinien 
ulec skróceniu i uproszczeniu. 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

XV.  PRAKTYCZNY  CZ

  TWORZENIA  PROGRAMU  KART 

KONTROLNYCH 

 
 

Zaczyna  prac  nad nowym programem znaczy utworzy  nowy projekt, czyli spis 

wszystkich  modułów.  Tworz c  projekt  musimy  zapozna   si   za  nast puj cymi 
zagadnieniami: 
•  Target Name 

W okienku Target Name wpisuje nazw  finalnego programu. 

•  Target Type 

Target Type wybieram wariant o nazwie Application – czyli zwykły windowsowy  
program.  Platform  to  pytanie  o  sprz t  i  oprogramowanie,  na  jakim  ma  by  
uruchamiany  ostateczny  program.  Wybieram  platform   Win32,  czyli  32-bitowe 
Windows9x.  U ytkowników  posiadaj cych  16-bitowy  system  operacyjny  np. 
Widnows3.11 wybieraj  Windows 3.x(16). 

•  Target Model 

Target Model

 to pytanie sugeruj ce ró ne odpowiedzi, zale nie od wcze niej wybranej 

platformy.  Gdy  platforma  jest  16-bitowa,  mam  do  wyboru  model  Large  i  Medium
Wybieraj c  Large  program  b dzie  zawierał  dalekie  wywołania  (b dzie  obsługiwał 
długie  4-bajtowe  adresy)  dzi ki  czemu  uniknie  si   bł dów  zwi zanych  z  brakiem 
modyfikatorów  far  w  deklarowaniu  zmiennych  i  definiowaniu  funkcji.  Nowoczesna 
platforma  32-bitowa  (czyli  4-bajtowa)  nie  rozró nia  adresów  dalekich  (4-bajtowych)  
i bliskich (2-bajtowych). Cały sprz t i całe oprogramowanie jest 4-bajtowe. Wybieram 
aplikacj  GUI, czyli graficzny interfejs u ytkownika. 

•  Frame work 

Grupa opcji Frame work, co mo na tłumaczy  jako szkielet, pozwoli wybra  dialekt 
j zyka, w którym chcemy programowa . Jest to wybór mi dzy ró nymi bibliotekami 
klas  –  obiektów,  ukrywaj cych  w  sobie  zło one  algorytmy  i  struktury  danych. 
Program nawi zuje do borlandowsiej biblioteki OWL. Mo na wybra  te  alternatyw , 
konkurencyjn   bibliotek   Microsoftu  o  nazwie  MFC,  bibliotek   OCF,  zawieraj ca 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

procedury  do  tworzenia  tzw.  powi za   OLE  i  bibliotek  „gołych  klas”  zwan   Class 
Library

. Nale y tutaj doda ,  e ró ne linie Frame works bardzo  le znosz  mieszanie 

ró nych szkieletów w jednym programie.  

•  Grupa Controls 

W Grupa Controls – typ sterowania programem – wybieramy kształt poszczególnych 
elementów sterowania: przycisków, linii, tekstów, edytorów, list itd. 

Biblioteki  doł czane  dynamicznie  (a  mogłyby  by   jeszcze  wklejone  statycznie) 
zmniejszaj  znacznie rozmiar ostatecznego pliku *.exe. Cały kod biblioteczny b dzie 
znajdował  si   gdzie   na  dysku  w  plikach  o  nazwach  *.dll  (dynamicznie  doł czone 
biblioteki do wspólnego u ytku przez wiele programów). Program odwołuj cy si  do 
bibliotek wł czonych dynamicznie mo e nie działa  na innym komputerze – po prostu 
mo e tam nie by  potrzebnego zbioru procedur *.dll

•  Advanced 

Kilka opcji nowo tworzonego projektu zostało ukryte pod przyciskiem Advanced, pod 
którym  wybieramy  z  jakich  pliki  ma  składa   si   program.  Na  program  windosowy 
pisany  pod  Boralndem  składaj   si   zasadniczo  trzy  typy  plików.  Jest  tam  jeden  lub 
wi cej  plików  o  rozszerzeniu  *.cpp  (tekst  ródłowy),  jeden  lub  wi cej  plików  *.rc 
(opis  map  bitowych,  ikon,  przycisków,  edytorów,  list,  itd.)  i  jeden  krótki  plik  *.def
zawieraj cy  dane  dla  linkera,  czyli  narz dzia  zbieraj cego  wszystkie  cz ci  w  jeden 
ostateczny plik wykonywalny. 

Program windosowy z zało enia jest obszerny. Przyczyn  tego stanu rzeczy jest dialog, 
jaki      program  prowadzi  z  systemem  operacyjnym,  zanim  cokolwiek  pojawi  si   na 
ekranie.  Program  musi  zosta   podł czony  do  wielozadaniowego  rodowiska.  Pokazuje 
wi c  systemowi  stosunkowo  du o  ró nych  parametrów,  które  zło   si   na  dane  cechy 
programu.  Znajduje  si   tam  nazwa  procedury  desygnowanej  do  obsługi  napływaj cych 
komunikatów,  tytuł  okna,  rodzaj  kursora,  opis  elementu  graficznego,  opis  sposobu 
reagowania na inne okna i jeszcze kilka innych rzeczy. Wszystkie te parametry s  uj te  
w struktur , któr  po wypełnieniu nale y przesła  do systemu. Je li system zaakceptuje 

dania, co nazwa si  rejestracj  klasy okna, przyst puje si  do utworzenia okna, te  nie 

bezpo rednio  rysuj c  co   na  ekranie,  a  wywołuj c  specjalnie  przygotowan   funkcj , 
której  argumentami  s   mi dzy  innymi  rozmiary  i  poło enie  ramki.  Po  rejestracji  da  
 i  utworzeniu  okna  nale y  podł czy   si   do  strumienia  komunikatów  o  naci ni tych 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

klawiszach,  ruchach  myszki,  ewentualnie  stanach  innych  urz dze .  Pozostał  jeszcze 
czwarty element  –  cała reszta  programu,  zapisana jako funkcja  (która  oczywi cie  mo e 
operowa   mnóstwem  innych  funkcji)  reprezentuj ca  specyficzne  reakcje  na  ka dy 
konkretny komunikat o zdarzeniach zewn trznych. 
Programowanie obiektowe ma szczególne mo liwo ci ukrywania kodu, składaj cego si  
na  program.  Konstruktor  jakiego   obiektu,  b d cy  zwykł   funkcj   wchodz c   do  gry 
w  momencie  deklarowania  konkretnej  instancji  tego  obiektu,  mógłby  stanowi   wi ksz  
cz

  programu.  Publiczne  funkcje  obiektu,  jak  np.  funkcja  Run()  obiekt  typu 

TApplication

, dopełniaj  reszty cech programowania obiektowego. Wystarczy mie  dobry 

opis konkretnej klasy by móc pisa  skomplikowane programy, wykorzystuj ce przy tym 
prac  innych programistów.  
Filozofia  programowania  w  OWL  opiera  si   na  poznaniu  zasady  modyfikowania 
obiektów bibliotecznych.  
Poni ej przedstawi  cz

 kodu  ródłowego opisuj c wybrane funkcje i klasy: 

#include"kk.h" 

#include <owl\applicat.h> 

#include <owl\inputdia.h> 

#include <owl\opensave.h> 

#include <owl\framewin.h> 

#include <owl\gauge.h> 

#include <owl\listbox.h> 

#include <owl\window.h> 

#include <owl\dialog.h> 

#include <owl\edit.h> 

#include <owl\dc.h> 

#include <owl\combobox.h> 

#include <owl\button.h> 

#include <owl\color.h> 

#include <stdio.h> 

#include <string.h> 

#include <math.h> 

#include <dos.h> 

#include <dir.h> 

 

struct czas_utworzenia_pliku 

//Tworzymy struktury usprawniaj c i czyni c prac  czytelniejsz  

 unsigned sec:5; 

 unsigned min:6; 

 unsigned hrs:5; 

}; 

 

struct _DANE_PARAMETROW_ 

 char pdwd[10];   

//przedział danych wejsciowych dolni 

 char pdwg[10];    //przedział danych wejsciowych górny 

 char lkd[10]; 

 

//linia kontrolna  dolnia 

 char lkg[10];     //linia kontrolna górna 

 char alk[10];     //wylicz automatycznie linie kontrolne po zadanym okresie 

 char apdw[10];    //automatyczny przedział danych po zadanym okresie 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

}; 

 

class _DIALOG_PARAMETROW_ : public TDialog 

//Tworzymy  klas ,  która  dziedziczy  zasoby 

po  

//klasie bazowej TDialog  

 public: 

  

_DIALOG_PARAMETROW_(TWindow  *parent,_DANE_PARAMETROW_  *daneparam,int 

resId);  //definiujemy konstruktor klasy 

}; 

 

_DIALOG_PARAMETROW_::_DIALOG_PARAMETROW_(TWindow 

*parent,_DANE_PARAMETROW_ *daneparam,int resId) : TDialog(parent,resId) 

 new TEdit(this,IDC_PDWD,10); 

 new TEdit(this,IDC_PDWG,10); 

 new TEdit(this,IDC_LKD,10); 

 new TEdit(this,IDC_LKG,10); 

 new TEdit(this,IDC_ALK,10); 

 new TEdit(this,IDC_APDW,10); 

 SetTransferBuffer(daneparam); 

 

 

struct _DANE_WEJSCIOWE_ 

 char sd[180]; 

 

// cie ka dost pu do pliku wej ciowego 

 char cod[10]; 

 

//czas odczytu danych 

}; 

 

class _DIALOG_DANE_WEJSCIOWE_ : public TDialog 

 public: 

 

_DIALOG_DANE_WEJSCIOWE_(TWindow 

*parent,_DANE_WEJSCIOWE_ 

*danewe,int 

resId); 

}; 

 

_DIALOG_DANE_WEJSCIOWE_::_DIALOG_DANE_WEJSCIOWE_(TWindow 

*parent,_DANE_WEJSCIOWE_ *danewe,int resId) : TDialog(parent,resId) 

 new TEdit(this,IDC_SCIEZKADOSTEPU,180); 

 new TEdit(this,IDC_CZESTOTLIWOSC,10); 

 SetTransferBuffer(danewe); 

 

 

class _WYKRES_ 

//Tworzymy  klas  do rysowania wykresów,  której  mo liwo ci  wykraczaj   poza 

//wymagania programu 

 public: 

 

_WYKRES_(TDC &dc,char *tytul,double xl,double yl,double xr,double yr, 

 

 

 

 

int xel,int yel,int xer,int yer,int il_skala_x,int il_skala_y, 

 

 

 

 

bool linia,bool skala_x,bool skala_y,bool siatka, 

 

 

 

 

TColor kolor_punktu,TColor kolor_skali,TColor kolor_siatki); 

 

~_WYKRES_() 

 

 

 _dc_->RestorePen(); 

 

 

void Plot(double x,double y); 

  

float _x0_,_y0_; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 private: 

 

TDC *_dc_; 

 

TColor _kolor_punktu_; 

 

double _a_,_b_,_c_,_d_; 

 

bool _linia_,_pierwszy_punkt_; 

}; 

 

_WYKRES_::_WYKRES_(TDC  &dc,  char  *tytul=NULL,  double  xl=-10,  double  yl=-8,  double  xr=10, 

double yr=8, 

 

 

 

 

 

 

 int  xel=30,  int  yel=30,  int  xer=90,  int  yer=90,  int 

il_skala_x=3, int il_skala_y=3, 

 

 

 

 

 

 

 bool 

linia=false, 

bool 

skala_x=true, 

bool 

skala_y=true, bool siatka=true, 

                   TColor kolor_punktu=0, 

TColor kolor_skali=0, TColor kolor_siatki=0) 

 _dc_=&dc; 

 _kolor_punktu_=kolor_punktu; 

 _a_=(double)(xer-xel)/(xr-xl); 

 _b_=(double)xel-_a_*xl; 

 _c_=(double)(yer-yel)/(yr-yl); 

 _d_=(double)yel-_c_*yl; 

 

 if(tytul) 

 { 

  TSize rozmiar; 

  TFont mss("MS Sans Serif",10); 

  dc.SelectObject(mss); 

  rozmiar=dc.GetTextExtent(tytul,strlen(tytul)); 

  dc.TextOut(xel+(xer-xel-rozmiar.cx)/2,250,tytul); 

  dc.RestoreFont(); 

 } 

 

 if(linia) 

 { 

  _pierwszy_punkt_=true; 

 } 

 

 if(siatka) 

 { 

  dc.SelectObject(TPen(kolor_siatki)); 

  int dx=(xer-xel)/il_skala_x; 

  for(int x=xel;x<=xer;x+=dx) 

  { 

 

dc.MoveTo(x,yer); 

 

dc.LineTo(x,yel); 

  } 

  int dy=(yer-yel)/il_skala_y; 

  for(int y=yel;y<=yer;y+=dy) 

  { 

 

dc.MoveTo(xel,y); 

 

dc.LineTo(xer,y); 

  } 

 } 

 

 if(skala_x) 

 { 

  dc.SelectObject(TPen(kolor_skali)); 

  int dx=(xer-xel)/il_skala_x; 

  dc.MoveTo(xel,yer); 

  dc.LineTo(xer,yer); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  for(int x=xel;x<=xer;x+=dx) 

  { 

 

dc.MoveTo(x,yer-3); 

 

dc.LineTo(x,yer+3); 

  } 

  dc.MoveTo(xel,yer); 

  dc.LineTo(xer,yer); 

  dc.MoveTo(xer+10,yer); 

  dc.LineTo(xer,yer-3); 

  dc.LineTo(xer,yer+3); 

  dc.LineTo(xer+10,yer); 

 } 

 

 if(skala_y) 

 { 

  dc.SelectObject(TPen(kolor_skali)); 

  int dy=(yer-yel)/il_skala_y; 

  for(int y=yel;y<=yer;y+=dy) 

  { 

 

dc.MoveTo(xel-3,y); 

 

dc.LineTo(xel+3,y); 

  } 

  dc.MoveTo(xel,yer); 

  dc.LineTo(xel,yel); 

  dc.MoveTo(xel,yel-10); 

  dc.LineTo(xel-3,yel); 

  dc.LineTo(xel+3,yel); 

  dc.LineTo(xel,yel-10); 

 } 

 

 

void _WYKRES_::Plot(double x,double y) 

 int xe,ye; 

 xe=_a_*x+_b_; 

 ye=_c_*y+_d_; 

 

 if(_linia_) 

 { 

  if(_pierwszy_punkt_) 

  { 

 

_x0_=xe; 

 

_y0_=ye; 

 

_pierwszy_punkt_=false; 

  } 

  _dc_->SelectObject(TPen(_kolor_punktu_)); 

  _dc_->MoveTo(_x0_,_y0_); 

  _dc_->LineTo(_x0_=xe,_y0_=ye); 

 } 

 else 

 

_dc_->SetPixel(xe,ye,_kolor_punktu_); 

 

 

Nast pn  z najwa niejszych i najbardziej efektownych klas w OWL jest klasa TWindow
Daje  ona  pocz tek  wszystkim  typom  okien  –  w  szczególno ci  TFrameWindow.  Nawet 
zwykły przycisk jest potomkiem TWindow, co znaczy,  e zwi zana z nim klasa powstała 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 w  wyniku  zastosowania  składni  dziedziczenia.  Oczywi cie  obiekt  TWindow  ma  swoje 
konstruktory, swoje publiczne i prywatne dane, swoje funkcje, z których kluczowa cz

 

jest wirtualna:

 

class _OKNO_ : public TWindow 

 public: 

 

_OKNO_(TWindow* parent=0); 

 

~_OKNO_(); 

 

   int i,cmwapdw,cmwalk; 

   int xx; 

   TStatic* xi[10]; 

   TStatic *odchylenies, *liniac; 

   TStatic *przedzialdanychgorny, *przedzialdanychdolni; 

   TStatic *sredniaruchoma, *dopuszczalneodchyl, *gornaliniakontrolna, *dolnialiniakontrolna; 

   

TGauge *miernik; 

   char sd[180],cod[10]; 

   char pdwd[10];  

//przedział danych wejsciowych dolni 

   char pdwg[10];    //przedział danych wejsciowych górny 

   char lkd[10];   

//linia kontrolna  dolnia 

   char lkg[10];     //linia kontrolna górna 

   char alk[10];     //wylicz automatycznie linie kontrolne po zadanym okresie 

   char apdw[10];    //automatyczny przedział danych po zadanym okresie 

   char xip[10][5]; 

   

float x_0,y_0; 

   float ppdgp, ppddp; 

   float ppd[9],lc; 

   float ppdsrxx; 

   float ppddpt;      //pomocniczy przedział danych dolnich tymczasowy 

   float ppdgpt;   

 //pomocniczy przedział danych górnych tymczasowy 

   float ppdsrk[10001]; 

 //pomocniczy przedział danych  rednich ruchomych kroki 

   double x; 

   long opoznij,lcif; 

   float wylicz_srednia_ruchoma(float[]); 

   float przedzial_danych_gorny(float[]); 

   float przedzial_danych_dolni(float[]); 

   float linia_centralna(float[]); 

   float odchylenie_stand(float[]); 

   float lcp[10];       //linia centralalna pomocnicza 

   bool IdleAction(long); 

 

void SetupWindow(void); 

   void CmOprogramie(void); 

   void CmParametryObliczeniowe(void); 

   void CmDaneWejsciowe(void); 

   void Cmwapdw(void); 

   void Cmwalk(void); 

   void CmHelp(void); 

 

bool CanClose(void); 

   float linia_kontrolna_dolnia(void); 

 

float linia_kontrolna_gorna(void); 

   void CmStart(void){i=1;}; 

   void CmStop(void){i=0;}; 

   

void Paint(TDC &dc,bool erase,TRect &r); 

   

_DANE_WEJSCIOWE_ danewe; 

   _DANE_PARAMETROW_ daneparam; 

 private: 

 DECLARE_RESPONSE_TABLE(_OKNO_); 

}; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

Jednym  z  najwa niejszych  w  programowaniu  pod  Windows  terminem  jest  zdarzenie, 
wiadomo , REAPONSE TABLE (tabela odzewów). Tabela ta okre la zdarzenie, którymi 
interesuje  si   okno  i  z  ka dym  zdarzeniem  wi e  odpowiedni   funkcj   ze  zbioru 
procedur.

 

DEFINE_RESPONSE_TABLE1(_OKNO_,TWindow) 

 

EV_WM_SIZE, 

 

EV_COMMAND(IDM_OPROGRAMIE,CmOprogramie), 

   EV_COMMAND(IDM_PARAMETRYOBLICZENIOWE,CmParametryObliczeniowe), 

   EV_COMMAND(IDM_DANEWEJSCIOWE,CmDaneWejsciowe), 

   EV_COMMAND(ID_PRZYCISK_OPCJE,CmParametryObliczeniowe), 

   EV_COMMAND(ID_PRZYCISK_DANE,CmDaneWejsciowe), 

   EV_COMMAND(IDC_WAPDW,Cmwapdw), 

   EV_COMMAND(IDC_WALK,Cmwalk), 

   EV_COMMAND(IDHELP1,CmHelp), 

   EV_COMMAND(ID_PRZYCISK_START,CmStart), 

   EV_COMMAND(ID_PRZYCISK_STOP,CmStop), 

END_RESPONSE_TABLE; 

 

_OKNO_::_OKNO_(TWindow* parent) : TWindow(parent) 

  strcpy(sd,".//DANE//kk.txt"); 

  strcpy(cod,"500"); 

  strcpy(pdwd,"13"); 

  strcpy(pdwg,"14"); 

  strcpy(alk,"6"); 

  strcpy(apdw,"6"); 

  i=1; 

  TStatic *ramka1, *ramka2, *ramka3, *ramka4; 

  ramka1=new TStatic(this,-1,"",20,10,110,230); 

  ramka1->Attr.Style|=SS_ETCHEDFRAME; 

  ramka2=new TStatic(this,-1,"",20,245,600,240); 

  ramka2->Attr.Style|=SS_ETCHEDFRAME; 

  ramka3=new TStatic(this,-1,"",505,10,110,230); 

  ramka3->Attr.Style|=SS_ETCHEDFRAME; 

  ramka4=new TStatic(this,-1,"",140,10,355,205); 

  ramka4->Attr.Style|=SS_ETCHEDFRAME; 

  miernik=new TGauge(this,ID_MIERNIK,135,225,365,15); 

  SetBkgndColor(TColor::Sys3dFace); 

  for(int xii=0;xii<5;xii++) 

  { 

  new TStatic(this, -1,"xi=",30,20+(20*xii),40,18,18); 

  xi[xii]=new TStatic(this, -1," ",80,20+(20*xii),40,18,18); 

  }; 

  new TStatic(this, -1,"Linia centralna:",170,20,100,18,18); 

  liniac=new TStatic(this,-1," ",280,20,60,20,18); 

  new TStatic(this, -1,"Odchylenie standardowe:",170,40,170,18,18); 

  odchylenies=new TStatic(this, -1," ",345,40,60,20,18); 

  new TStatic(this, -1,"Przedział dolni danych:",170,60,170,18,18); 

  przedzialdanychdolni=new TStatic(this, -1," ",345,60,60,20,18); 

  new TStatic(this, -1,"Przedział górny danych:",170,80,170,18,18); 

  przedzialdanychgorny=new TStatic(this, -1," ",345,80,60,20,18); 

  new TStatic(this, -1,"Górna linia kontrolna:",170,100,170,18,18); 

  gornaliniakontrolna=new TStatic(this, -1," ",345,100,60,20,218); 

  new TStatic(this, -1,"Dolnia linia kontrolna:",170,120,170,18,18); 

  dolnialiniakontrolna=new TStatic(this, -1," ",345,120,60,20,218); 

  new TStatic(this, -1,"Dopuszczalne odchylenie:",170,140,180,18,18); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  dopuszczalneodchyl=new TStatic(this, -1," ",345,140,60,20,218); 

  new TStatic(this, -1," rednia ruchoma:",170,160,140,18,18); 

  sredniaruchoma=new TStatic(this, -1," ",315,160,60,20,18); 

  new TButton(this,ID_PRZYCISK_START,"START",515,30,90,25); 

  new TButton(this,ID_PRZYCISK_STOP,"STOP",515,70,90,25); 

  new TButton(this,ID_PRZYCISK_OPCJE,"OPCJE",515,110,90,25); 

  new TButton(this,ID_PRZYCISK_DANE,"DANE",515,150,90,25); 

  new TButton(this,IDHELP1,"HELP",515,190,90,25); 

}; 

 

_OKNO_::~_OKNO_() 

}; 

 

Klasa  TWindow,  jak  przystało  na  okienkowy  system  operacyjny,  jest  niezwykle  bogata 
w  szczegóły.  Zawiera  blisko  dwie cie  danych  i funkcji.  Przytocz   tutaj  tylko  jedn , ale 
chyba najwa niejsz  funkcj  klasy TWindow – Paint() (maluj): 
virtual void Paint (TDC& dc, bool erase, TRect& rect); 
Funkcja  Paint()  jest  podporz dkowana  systemowi.  Wywoła  j   system,  gdy  nasze  okno 
znajdzie  si   na  widocznym  miejscu  ekranu.  Funkcja  Paint()  to  danie  na  pokazanie 
tre ci  okna.  Funkcja  Paint()  ma  trzy  argumenty.  Pierwsza  z  nich  jest  powi zaniem 
(referencj ) do obiektu typu TDC – urz dzenia graficznego (Device Context), które tutaj 
jest  pewnym  kawałkiem  ekranu.  Drugi argument,  o  nazwie erase  (skasuj)  poinformuje, 
czy  odbudowie  podlega  cała  zawarto   okienka.  Trzeci  argument  jest  referencj   do 
zaskakuj co  bogatego  obiektu,  który definiuje  obszar  wymagaj cy od wie enia.  S   tam 
zdefiniowane  mi dzy  innymi  współrz dne  prostok ta,  które  okre l ,  jaki  obszar  okna 
powinien by  odbudowany: 

void _OKNO_::Paint(TDC& dc,bool,TRect&) 

 TMemoryDC memDC; 

 double minx=0,maxx=100; 

 TRect r=GetClientRect(); 

 _WYKRES_  w(dc,"Diagram  karty  kontrolnej  rednich  ruchomych",minx,(ppdgp+0.5),maxx,(ppddp-

0.5),r.left+30,r.top+270,r.right-30,r.bottom-30, 

  

 

 

   10,10,true,true,true,false,TColor(0,100,0),TColor(0,0,0),TColor(255,255,255)); 

 

 if(i==100) 

 { 

  i=5; 

  Invalidate(true); 

 } 

 if(i<=atoi(apdw)+2) 

 { 

  y_0=lc; 

  i++; 

  if(i==atoi(apdw)+2) 

  { 

   w.Plot(0,13.5); 

   w.Plot(100,13.5); 

   w.Plot(0,13.5); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

   w.Plot(0,atof(lkg)+0.4); 

   w.Plot(100,atof(lkg)+0.4); 

   w.Plot(0,atof(lkg)+0.4); 

   w.Plot(0,atof(lkd)-0.4); 

   w.Plot(100,atof(lkd)-0.4); 

  } 

 } 

 else 

 { 

  w.Plot(x_0,y_0); 

  w.Plot(i++,ppdsrxx); 

  x_0=i-1; 

  y_0=ppdsrxx; 

 } 

 

 

Poni ej  zastosowałem  funkcj ,  która  symuluje  wielozadaniowo   w  ramach  programu, 
pozwalaj c  wykonywa   pewne  czasochłonne  operacje  poza  normalnym  okresem 
aktywno ci programu i systemu: 

bool _OKNO_::IdleAction(long) 

 if(i==0) return true; 

 FILE *plik_kk; 

 char ppdane[9]; 

 unsigned g=0; 

 unsigned m=0; 

 unsigned s=0; 

 struct ffblk f_info; 

 czas_utworzenia_pliku cup; 

 int stat,index_modyfikacji=0; 

 while(index_modyfikacji<20) 

 { 

  stat=findfirst(sd,&f_info,FA_ARCH); 

  if(stat) 

  { 

   MessageBox("Brak zbioru wej ciowego   ","Uwaga...",MB_OK|MB_ICONSTOP); 

   break; 

  } 

  else 

  { 

   memcpy(&cup,&f_info.ff_ftime, sizeof(czas_utworzenia_pliku)); 

   if(!((cup.hrs==g)&(cup.min==m)&(cup.sec==s))) 

   { 

   plik_kk=fopen(sd,"r"); 

   int ppdi=0; 

   while(!feof(plik_kk)) 

   { 

    fgets(ppdane,sizeof(ppdane),plik_kk); 

    ppd[ppdi]=atof(ppdane); 

    ppdi++; 

   }; 

   fclose(plik_kk); 

  }; 

  g=cup.hrs; 

  m=cup.min; 

  s=cup.sec; 

  index_modyfikacji++; 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

  char s[8][8],liniacentralna[8],odchyleniestand[8],przedzialgorny[8],przedzialdolni[8]; 

  char sredniaruch[8],liniakontrolnadolnia[8], liniakontrolnagornia[8],dop[8]; 

  if(++opoznij<(atoi(cod)*6)) return true; //p tla opu niaj ca wy wietlanie. 

  else   opoznij=0; 

  for(int xii=0;xii<5;xii++) 

  { 

   gcvt(ppd[xii],4,s[xii]); 

   xi[xii]->SetText(s[xii]); 

  } 

 

   gcvt(linia_centralna(ppd),8,liniacentralna); 

   liniac->SetText(liniacentralna); 

   gcvt(odchylenie_stand(ppd),8,odchyleniestand); 

   odchylenies->SetText(odchyleniestand); 

   miernik->SetValue(100*odchylenie_stand(ppd)); 

   gcvt(przedzial_danych_gorny(ppd),8,przedzialgorny); 

   przedzialdanychgorny->SetText(przedzialgorny); 

   gcvt(przedzial_danych_dolni(ppd),8,przedzialdolni); 

   przedzialdanychdolni->SetText(przedzialdolni); 

   gcvt(wylicz_srednia_ruchoma(ppd),8,sredniaruch); 

   sredniaruchoma->SetText(sredniaruch); 

   gcvt(linia_kontrolna_dolnia(),8,liniakontrolnadolnia); 

   dolnialiniakontrolna->SetText(liniakontrolnadolnia); 

   strcpy(lkd,liniakontrolnadolnia); 

   gcvt(linia_kontrolna_gorna(),8,liniakontrolnagornia); 

   gornaliniakontrolna->SetText(liniakontrolnagornia); 

   strcpy(lkg,liniakontrolnagornia); 

   gcvt((13.5-linia_kontrolna_dolnia()),8,dop); 

   dopuszczalneodchyl->SetText(dop); 

   lcif++; 

   Invalidate(false); 

   }; 

 } 

 return true; 

}; 

 

 

Dalsza cz

  to funkcje klasy _OKNO_ zdefiniowane na potrzeby programu: 

float _OKNO_::wylicz_srednia_ruchoma(float ppdsr[9]) 

 float ppdsrx=0; 

 if(lcif<atoi(apdw)) 

 { 

  for(int lcifi=0;lcifi<5;lcifi++) ppdsrx+=ppdsr[lcifi]; 

  ppdsrk[lcif]=ppdsrx/5; 

  return 0; 

 } 

 else 

 { 

  for(int lcifi=0;lcifi<5;lcifi++) ppdsrx+=ppdsr[lcifi]; 

  ppdsrk[lcif]=ppdsrx/5; 

  ppdsrxx=(ppdsrk[lcif-2]+ppdsrk[lcif-1]+ppdsrk[lcif])/3; 

  return ppdsrxx; 

 } 

}; 

 

 

float _OKNO_::linia_kontrolna_dolnia(void) 

 return (13.5-((2.576)*0.20)/(sqrt(15))); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

}; 

 

float _OKNO_::linia_kontrolna_gorna(void) 

 return (13.5+((2.576)*0.20)/(sqrt(15))); 

}; 

 

 

float _OKNO_::przedzial_danych_gorny(float ppdg[9]) 

 if(lcif>atoi(apdw)) return ppdgpt; 

 ppdgp=(-1000);   

//pomocniczny przedział danych górny(pom) 

 if(lcif>0) ppdgp=ppdgpt; 

 for(int ppdgi=0;ppdgi<5;ppdgi++) if(ppdgp<ppdg[ppdgi]) ppdgp=ppdg[ppdgi]; 

 ppdgpt=ppdgp; 

 return ppdgp; 

}; 

 

float _OKNO_::przedzial_danych_dolni(float ppdd[9]) 

 if(lcif>atoi(apdw)) return ppddpt; 

 ppddp=1000; 

 

//pomocniczny przedział danych dolnich(pom) 

 if (lcif>0) ppddp=ppddpt; 

 for(int ppddi=0;ppddi<5;ppddi++) if(ppddp>ppdd[ppddi]) ppddp=ppdd[ppddi]; 

 ppddpt=ppddp; 

 return ppddp; 

 

 

 

float _OKNO_::linia_centralna(float ppdc[9]) 

 

//metoda  stabilizacyjna  -  bez  uwzgl dnienia 

warto ci normatywnych 

 if(lcif>=(atoi(apdw))) return 13.5; 

 float lc1=0;   //linia centralna 

 for(int lci=0;lci<5;lci++) lc1+=ppdc[lci]; 

 if (lcif==0) lcp[lcif]=(lc1/5); 

  

else lcp[lcif]=lcp[lcif-1]+(lc/5); 

 lc=(lc1/5); 

 return lc; 

}; 

 

float  _OKNO_::odchylenie_stand(float  ppdo[9])        //wyliczenie  odchylenia  standardowego  na  podstawie 

danych wej. 

 float oss=0; 

 for(int osi=0;osi<5;osi++) oss+=pow(ppdo[osi]-linia_centralna(ppd),2); 

 return sqrt(oss/4); 

}; 

 

bool _OKNO_::CanClose(void)   

 

 

 

 

 

//funkcja 

wywyolywana przy  daniu zamkni cia programu. 

 return (MessageBox("Koniec ?","Karty kontrolne",MB_YESNO|MB_ICONQUESTION)==IDYES); 

 

void _OKNO_::CmOprogramie(void) 

 

 

 

 

 

//funkcja wywołana 

z menu - uruchamiaj ca okno dialogowe. 

 TDialog(this,IDD_OPROGRAMIE).Execute(); 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

}; 

 

void _OKNO_::CmParametryObliczeniowe(void)         //funkcja wywołuj ca parametry systemowe 

 _DIALOG_PARAMETROW_ dialogparam(this,&daneparam,IDD_PARAMETRYOBLICZENIOWE); 

 strcpy(daneparam.pdwd,pdwd); 

 strcpy(daneparam.pdwg,pdwg); 

 strcpy(daneparam.apdw,apdw); 

 strcpy(daneparam.lkd,lkd); 

 strcpy(daneparam.lkg,lkg); 

 strcpy(daneparam.alk,alk); 

 if(dialogparam.Execute()==IDOK) 

  { 

   strcpy(pdwd,daneparam.pdwd); 

 

strcpy(pdwg,daneparam.pdwg); 

   strcpy(apdw,daneparam.apdw); 

   strcpy(lkd,daneparam.lkd); 

   strcpy(lkg,daneparam.lkg); 

   strcpy(alk,daneparam.alk); 

  } 

}; 

 

void _OKNO_::CmDaneWejsciowe(void)               //funkcja wywyołuj ca parametry danych wej ciowych 

 

  _DIALOG_DANE_WEJSCIOWE_ dialogdw(this,&danewe,IDD_DANEWEJSCIOWE); 

  strcpy(danewe.sd,sd); 

  strcpy(danewe.cod,cod); 

  if(dialogdw.Execute()==IDOK) 

  { 

   strcpy(cod,danewe.cod); 

  } 

}; 

 

void _OKNO_::Cmwapdw(void) 

 cmwapdw=1; 

}; 

 

void _OKNO_::Cmwalk(void) 

 cmwalk=1; 

}; 

 

void _OKNO_::CmHelp(void) 

 TDialog(this,IDD_DIALOGHELP).Execute(); 

 

 

void _OKNO_::SetupWindow() 

 TWindow::SetupWindow(); 

 

Deklarujemy  tutaj  klas   PROGRAM_,  która  dziedziczy  po  TApplication.  Klasa 
TApplication 

zawiera kilka konstruktorów, ró ni cych si  liczb  parametrów:

 

class _PROGRAM_ : public TApplication 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 public: 

 

void InitMainWindow() 

 

 

 TFrameWindow*    ramka=new  TFrameWindow(0,"Karta  kontrolna  redniej  ruchomej",new 

_OKNO_); 

 

 ramka->Attr.H=540; 

 

 ramka->Attr.W=640; 

    ramka->Attr.X=10; 

    ramka->Attr.Y=10; 

    ramka->Attr.Style=WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX; 

 

 SetMainWindow(ramka); 

    MainWindow->SetIcon(this,"IKONA"); 

 

 GetMainWindow()->AssignMenu(IDM_MENU); 

 

}; 

 

TApplication

  obsługuje  kilkana cie  funkcji.  Jedn   z  nich  jest  –  Run(),  która  tworzy 

ekranow  posta  okienka i podł cza je do systemowej kolejki zdarze : 

int OwlMain(int,char*[]) 

 return _PROGRAM_().Run(); 

 

 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

Nat pnym  plikiem  z  kodem  ródłowym  programu  jest  jeden  lub  wi cej  plików  *.rc 

opisuj cy map bitowe, ikony, przyciski, edytory, list, itd.: 

 

#include "kk.h" 

#include<owl/inputdia.rc> 

IKONA ICON "icona.ico" 

 

IDM_MENU MENU 

 

 POPUP "&Ustawienia" 

 { 

  MENUITEM "&Parametry obliczeniowe...",IDM_PARAMETRYOBLICZENIOWE 

  MENUITEM "&Dane wejsciowe",IDM_DANEWEJSCIOWE 

 } 

 MENUITEM "0 programi&e",IDM_OPROGRAMIE 

 

IDD_OPROGRAMIE DIALOG 40,60,240,120 

EXSTYLE WS_EX_DLGMODALFRAME 

STYLE DS_MODALFRAME|DS_3DLOOK|WS_POPUP|WS_VISIBLE|WS_CAPTION 

CAPTION "Karty kontrolne  redniej ruchomej" 

FONT 8, "MS Sans Serif" 

 CTEXT "Politechnika Cz stochowska                                 Cz stochowa 2001",-1,12,80,220,9 

 CTEXT "Praca Dyplomowa", -1,12,15,220,9 

 CTEXT "Tomasz Bylica", -1,12,35,220,9 

 CTEXT "Promotor: prof. dr. hab. in . Paweł Sewastianow",-1,12,50,220,9 

 PUSHBUTTON "OK",IDOK,96,100,48,14, WS_CHILD | WS_VISIBLE | WS_TABSTOP 

 CONTROL "Frame",-1,"static",SS_ETCHEDFRAME|WS_CHILD|WS_VISIBLE,6,6,228,86,0 

 

IDD_PARAMETRYOBLICZENIOWE DIALOG 0, 0, 246, 206 

 CONTROL  "PRZEDZIAŁ  DANYCH  WEJ CIOWYCH",  IDC_GROUPBOX1PO,  "button", 

BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 12, 220, 30 

 CONTROL "LINIE KONTROLNE", IDC_GROUPBOX2PO, "button", BS_GROUPBOX | WS_CHILD | 

WS_VISIBLE | WS_GROUP, 12, 52, 220, 30 

 CONTROL "AUTOMATYCZNE PRZEDZIAŁY DANYCH WEJ CIOWYCH", IDC_GROUPBOX3PO, 

"button", BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 92, 220, 30 

 CONTROL  "AUTOMATYCZNE  LINIE  KONTROLNE",  IDC_GROUPBOX4PO,  "button", 

BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 132, 220, 30 

 CONTROL  "DOLNI:",  IDC_STATICTEXT1PO,  "static",  SS_LEFT  |  WS_CHILD  |  WS_VISIBLE,  27, 

27, 24, 9 

 CONTROL "GÓRNY:", IDC_STATICTEXT2PO, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 132, 

27, 29, 9 

 CONTROL "DOLNIA:", IDC_STATICTEXT3PO, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 24, 

67, 28, 9 

 CONTROL "GÓRNA:", IDC_STATICTEXT4PO, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 132, 

67, 28, 9 

 CONTROL "OK", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE 

| WS_TABSTOP, 16, 180, 50, 14 

 CONTROL  "Cancel",  IDCANCEL,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 92, 180, 50, 14 

 CONTROL  "Help",  IDHELP1,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 172, 180, 50, 14 

 CONTROL  "",  IDC_LKD,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 64, 65, 40, 10 

 CONTROL  "",  IDC_PDWG,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 176, 25, 36, 10 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 CONTROL  "",  IDC_PDWD,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 64, 25, 40, 10 

 CONTROL  "",  IDC_LKG,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 176, 65, 36, 10 

 CONTROL  "",  IDC_APDW,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 184, 106, 36, 10 

 CONTROL  "",  IDC_ALK,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  |  WS_BORDER  | 

WS_TABSTOP, 184, 146, 36, 10 

 CONTROL 

"Oblicz 

automatycznie 

po 

zadanym 

okresie:", 

IDC_WAPDW, 

"button", 

BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 23, 107, 161, 11 

 CONTROL 

"Oblicz 

automatycznie 

po 

zadanym 

okresie:", 

IDC_WALK, 

"button", 

BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 23, 147, 158, 11 

 

 

 

IDD_DANEWEJSCIOWE DIALOG 0, 0, 235, 110 

STYLE  DS_MODALFRAME  |  DS_3DLOOK  |  DS_CONTEXTHELP  |  WS_POPUP  |  WS_VISIBLE  | 

WS_CAPTION | WS_SYSMENU 

CAPTION "DANE  WEJ CIOWE" 

FONT 8, "Times New Roman CE" 

 CONTROL "OK", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE 

| WS_TABSTOP, 12, 84, 50, 14 

 CONTROL  "Cancel",  IDCANCEL,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 92, 84, 50, 14 

 CONTROL  "Help",  IDHELP,  "BUTTON",  BS_PUSHBUTTON  |  BS_CENTER  |  WS_CHILD  | 

WS_VISIBLE | WS_TABSTOP, 172, 84, 50, 14 

 CONTROL " CIE KA DOST PU DO PLIKU WEJ CIOWEGO", IDC_SCIEZKADOPLIKU, "button", 

BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 12, 8, 208, 28 

 CONTROL  "",  IDC_SCIEZKADOSTEPU,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  | 

WS_BORDER | WS_TABSTOP, 24, 20, 180, 10 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 CONTROL 

"CZ STOTLIWO

 

POBIERANIA 

DANYCH", 

IDC_CZESTOTLIWOSCODCZYTUPLIKU,  "button",  BS_GROUPBOX  |  WS_CHILD  |  WS_VISIBLE  | 

WS_GROUP, 12, 44, 208, 28 

 CONTROL  "",  IDC_CZESTOTLIWOSC,  "edit",  ES_LEFT  |  WS_CHILD  |  WS_VISIBLE  | 

WS_BORDER | WS_TABSTOP, 24, 56, 40, 10 

 CONTROL  "milisekund",  IDC_STATICTEXT1DW,  "static",  SS_LEFT  |  WS_CHILD  |  WS_VISIBLE, 

68, 56, 48, 8 

 

 

IDD_DIALOGHELP DIALOG 0, 0, 217, 63 

STYLE  DS_MODALFRAME  |  DS_3DLOOK  |  DS_CONTEXTHELP  |  WS_POPUP  |  WS_VISIBLE  | 

WS_CAPTION | WS_SYSMENU 

CAPTION "" 

FONT 8, "MS Sans Serif" 

 CONTROL "OK", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE 

| WS_TABSTOP, 80, 40, 50, 14 

 CONTROL "Program do analizy procesu kart kontrolnych  redniej ruchomej. W etapie testowym nale y 

uruchomi   program  ./DANE/demon.exe  w  celu  symulacji  pobierania  danych  on-line.",  IDC_HELP, 

"static", SS_CENTER | WS_CHILD | WS_VISIBLE, 8, 4, 204, 28 

 

 

Na tym ko cz  opis teorii i niektórych przykładów z   wiata programowania w  C++  pod 
systemem Windows. 
 
 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________ 

 

 

XVI.  BIBLIOGRAFIA 

 

 

14.

 Andrzej  Zalewski  „Programowanie  w  j zykach  C  i  C++  z  wykorzystaniem  pakietu 

Borland C++”

, Wydawnictwo Nakom, Pozna  1997. 

15.

 Adam Majczak „C++ w 48 godzin”

16.

 Steve Holzner „Programowanie w Microsoft C/C++”, Intersoftland, Warszawa 1993. 

17.

 Stanley B. Lippman „Podstawy j zyka C++”, Wydawnictwo Naukowo-Techniczne, 

Warszawa 1994. 

18.

 Jan Bielecki „Od C do C++ programowanie obiektowe w j zyku C”. 

19.

  Piotr  Wróblewski  „Programowanie  w  Windows  dla  praktyków”,  Wydawnictwo 

Helion, Gliwice 1997. 

20.

 Andrzej Stasiewicz „C++ całkiem inny  wiat”,  Wydawnictwo Helion, Gliwice 1998. 

21.

 Jesse Liberty „C++ Ksi ga Eksperta”, Wydawnictwo Helion, Gliwice 1999. 

22.

 Sławomir Osiak „Programowanie w Windows”, ZNI „MIKOM”, Warszawa stycze  

1997. 

23.

 Jens J. Dahlgaard, Kai Kristensen, Gopal K. Kanji „Podstawy zarz dzania jako ci ”, 

Wydawnictwo Naukowe PWN, Warszawa 2000. 

24.

 Andrzej  Iwasiewicz  „Zarz dzanie  Jako ci ”,  Wydawnictwo  Naukowe  PWN, 

Warszawa-Kraków 1999. 

25.

 Henryk  Bieniok  i  zespół  „Metody  sprawnego  zarz dzania”,  Agencja  Wydawnicza 

„Placet”, Warszawa 1999. 

26.

 Ireneusz Durlik „In ynieria zarz dzania”, Agencja Wydawnicza „Placet”, Warszawa 

1998. 

 

background image

Politechnika  Cz stochowska                                                                                               Cz stochowa  2001            

________________________________________________________________________________________________________________________________________________________________________________________________________________________