You are on page 1of 8

Rafa Sulley Programowanie

Str 1-3. Str 3-5. Str 5-7

1.Program komputerowy
Programowanie jest procesem tworzenia programw (wzgldnie: oprogramowania). Jest to cykliczny proces polegajcy na:

edycji kodu rdowego, uruchamianiu programu, analizie dziaania, powrocie do edycji kodu rdowego w celu poprawienia bdw lub dalszego poszerzania funkcjonalnoci.

Osob zajmujc si programowaniem nazywa si programist. W inynierii oprogramowania programowanie jest take przedstawiane jako jeden z etapw powstawania i rozwoju oprogramowania. W dziedzinie programowania wyrnia si pewne modele dziaania takie, jak programowanie zespoowe czy programowanie parami. W dobie spadku cen sprztu komputerowego, dostpnoci oprogramowania i literatury programowanie moe mie rwnie charakter hobbymetody numeryczne, programowanie obiektowe, kryptografia i wiele innych. Program komputerowy (ang. computer program) sekwencja symbol opisujca obliczenia zgodnie z pewnymi reguami zwanymi jzykiem programowania. Program jest zazwyczaj wykonywany przez komputer (np. wywietlenie strony internetowej), czasami bezporednio jeli wyraony jest w jzyku zrozumiaym dla danej maszyny lub porednio gdy jest interpretowany przez inny program (interpreter). Program moe by cigiem instrukcji opisujcych modyfikacje stanu maszyny ale moe rwnie opisywa obliczenia w inny sposb (np. rachunek lambda,). Formalne wyraenie metody obliczeniowej w postaci jzyka zrozumiaego dla czowieka nazywane jest kodem rdowym, podczas gdy program wyraony w postaci zrozumiaej dla maszyny (to jest za pomoc cigu liczb, a bardziej precyzyjnie zer i jedynek) nazywany jest kodem maszynowym bd postaci binarn (wykonywaln).

Programy komputerowe mona zaklasyfikowa wedug ich zastosowa. Wyrnia si zatem aplikacje uytkowe, systemy operacyjne, gry wideo, kompilatory i inne. Programy wbudowane wewntrz urzdze okrela si jako firmware. Okrelenie "program komputerowy" jest czsto uywane zamiennie z okreleniami "oprogramowanie" (ang. software) i "aplikacja". Pierwszy z tych terminw podkrela rynkowy charakter programw - programy (lub ich zespoy) czsto w poczeniu z bibliotekami, dodatkowymi danymi, wyrniajc si nazw i wsparciem producenta (dostawcy) stanowi produkt handlowy. styczny. W cigu lat programowanie stao si rozleg dziedzin o silnych podstawach teoretycznych. Zwizane s z nim pojcia takie jak: algorytm, struktury danych, Poprzez aplikacj natomiast czsto rozumie si oprogramowanie bliskie uytkownikowi, to znaczy takie, z ktrym komunikuje si (czsto za porednictwem przyjaznego interfejsu uytkownika) by wykona okrelone zadania (np. zredagowa dokument). Podprogram (inaczej funkcja lub procedura) - termin zwizany z programowaniem proceduralnym. Podprogram to wydzielona cz programu wykonujca jakie operacje. Podprogramy stosuje si, aby uproci program gwny i zwikszy czytelno kodu.

W pewnych jzykach programowania dzieli si podprogramy na funkcje i procedury:

Funkcja ma wykonywa obliczenia i zwraca jak warto, nie powinna natomiast mie adnego innego wpywu na dziaanie programu (np. funkcja obliczajca pierwiastek kwadratowy) Procedura natomiast nie zwraca adnej wartoci, zamiast tego wykonuje pewne dziaania (np. procedura czyszczca ekran)

Przez zwracanie wartoci naley rozumie moliwo uycia wywoania funkcji wewntrz wyraenia. Procedury czsto te zwracaj wartoci, ale poprzez odpowiednie parametry. Podzia ten wystpuje w jzykach takich jak Pascal[1][2] i Ada. W pozostaych jzykach (m. in. w C[3][4][5] i C++[5]) nie ma ju takiego rozrnienia i funkcj jest kady podprogram, niezalenie od tego czy zwraca jakie wartoci i czy ma wpyw na program. Oprcz powyszego podziau, wyrni take naley podprogram gwny, tj. taki od ktrego rozpoczyna si wykonywanie skompilowanego programu. W jzykach programowania zastosowano zasadniczo kilka rnych rozwiza. Albo zdefiniowana jest w skadni odrbna jednostka (np. program w Pascalu[1][2]), albo stosuje si specjaln fraz, dyrektyw jzyka, informujc aby program czcy dany podprogram wybra jako podprogram gwny (np. OPTIONS(MAIN) w jzyku

PL/1[6][7]). W jzyku C[3][4][5] i pokrewnych definiuje si zwyk funkcj lecz o specjalnym identyfikatorze main.

2.Procedury
Gdyby jaki tyran zabroni stosowania procedur i funkcji, wwczas caa informatyka by pada. S one tak wanym narzdziem, e trudno sobie wyobrazi programowanie bez stosowania procedur i funkcji. Procedury i funkcje stanowi podstawow konstrukcj programistyczn umoliwiajc modularyzacj programu. Wiemy, e programy komputerowe mog mie dziesitki czy setki tysicy wierszy kodu, wic zapanowanie nad tak potnymi tekstami graniczyoby z cudem. Konieczne staje si wyodrbnianie fragme ntw kodu stanowicych logiczn cao oraz poprzez odpowiednie nazywanie ich doprowadzenie do tego, e czytajc tekst programu nie bdziemy wchodzili od razu w szczegy implementacji, a poprzez nazw sugerujc rol ukrytego fragmentu kodu bdziemy si mogli zorientowa, co spowoduje jego wykonanie. Poza t fundamentaln cech procedur, nie mniej wan jest moliwo jednokrotnego zapisania cigu rozkazw, ktry moe by wielokrotnie uywany. Korzystalimy z tej moliwoci np. ju przy zadaniach o flaga ch: polskiej i holenderskiej. Napis Z(i,j) traktowalimy jako skrt sekwencji zamieniajcej zawartoci pl i-tego i j-tego. Zauwamy, e nie tylko nazywamy pewne sekwencje rozkazw, ale umoliwiamy te parametryzacj niektrych zmiennych. W tym przypadku kod zamiany dwch elementw jest bardzo podobny, niezalenie od tego, dla jakich indeksw dokonujemy zamiany. Dodatkowo jeszcze zyskujemy moliwo rekurencyjnego definiowania kodu, gdy potrafimy wyrazi rozwizanie w zalenoci od innych wartoci zmiennych, ktre s parametrami. Przykadowo w zadaniach o najwikszym wsplnym dzielniku mielimy moliwo zdefiniowania wartoci (a,b) w zalenoci od mniejszych wartoci argumentw.

Procedury zatem s mechanizmem 'abstrakcji', umoliwiajcym wyodrbnienie fragmentw kodu i uycie ich na zasadzie 'czarnych skrzynek'. Funkcja to procedura, ktra poza wykonaniem kodu oblicza pewn warto - wynik funkcji - nadawany w trakcie wykonania jej identyfikatorowi, tak jak zmiennej. Najprostsze uycie procedury, to po prostu nazwanie fragmentu kodu i uycie tej nazwy do pniejszego wykonania tego fragmentu. Powiedzmy, e chcemy wypisa rzd gwiazdek. Normalnie robimy to za pomoc ptli PRZYKAD for i:=1 to n do Write('*') Jeli chcielibymy uj t instrukcj w procedur, to moemy zrobi to w nastpujcy sposb. W czci deklaracyjnej programu, a wic tak, gdzie definiuje si stae, typy i zmienne umieszczamy deklaracj procedury. PRZYKAD procedure Gwiazdki; begin for i:=1 to n do Write('*') end; Od tej chwili uycie gdziekolwiek identyfikatora Gwiazdki bdzie oznaczao wykonanie zaszytego pod t nazw kodu powodujcego wypisanie n gwiazdek. W momencie deklaracji procedury musi by jasne, o jakie zmienne chodzi. W naszym przypadku mamy do czynienia ze zmiennymi i oraz n. Musz one by zadeklarowane zanim przystpimy do pisania kodu procedury lub ich deklaracje powinny wystpi w jej wntrzu. Zmienna i jest tutaj zdecydowanie zmienn pomocnicz - jej zadaniem jest jedynie sterowanie liczb obrotw ptli. Ze wzgldu jednak na to, e w momencie wykonywania procedury jej warto ulegnie zmianie (zgodnie z nasz semantyk po wykonaniu ptli bdzie nieokrelona), nie chcielibymy, aby taka ingerencja pozostawaa nieodnotowana. Programista widzc taki fragment kodu: PRZYKAD i:=5; Gwiazdki; Write(i) mgby si spodziewa wypisania wartoci 5, a tego nie powinnimy si spodziewa. Mamy tu do czynienia z tzw. efektem ubocznym , czyli zmian wartoci zmiennej nieuwidocznion bezporednio w kodzie. Wystpowanie efektw ubocznych jest uwaane za wad i przykad zego stylu programistycznego. Utrudnia zrozumienie tekstu i jego analiz poprawnociow. Aby temu zapobiec, wszelkie pomocnicze zmienne bdziemy deklarowali wewntrz procedury. PRZYKAD

procedure Gwiazdki; var i: Integer; {deklaracja lokalnej zmiennej i} begin for i:=1 to n do Write('*') end; Zmienna i jest teraz zadeklarowana lokalnie i nawet jeliby wystpowaa inna zmienna i na zewntrz procedury, to ta deklaracja przesoni tamt, wskutek czego uycie procedury Gwiazdki nie bdzie ingerowa w warto tej zewntrznej zmiennej. Za chwil o mechanizmie przesaniania opowiemy dokadniej, gdy jest to sprawa waniejsza i bardziej skomplikowana, ni mogoby si to na pozr wydawa. Wywoanie naszej nowej procedury wyglda tak samo. Na przykad, gdyby nam zaleao na wypisaniu najpierw w pierwszym wierszu 5 gwiazdek, a potem w kolejnym wierszu 6 gwiazdek, to moglibymy to zrobi nastpujco:
n:=5; Gwiazdki; Writeln; n:=6; Gwiazdki

3.Algorytm
Tradycyjny i najczciej spotykany sposb realizowania przez komputer postawionych mu zada to - dziaanie wedug napisanego przez ludzi programu. Program to algorytm zapisany w jzyku programowania komputerw. W powyszym zdaniu trzeba wyjani pojcia algorytm oraz jzyk programowania. ALGORYTM to precyzyjny opis: - danych na ktrych bd wykonywane operacje, oraz - operacji jakie maj by wykonywane krok po kroku (w kolejnoci okrelonej w opisie), dla uzyskania konkretnych rezultatw. Jzyk programowania to - potocznie i obrazowo mwic - jzyk "akceptowany przez komputer" czy inaczej "zrozumiay dla komputera" . ak wiemy, jednym z najwaniejszych ukadw komputera jest procesor, ktry zawiera t.zw. arytmometr (ALU - arithmetic-logic unit - jednostk arytmetyczno-logiczn) zdoln do wykonywania opeacji arytmetycznych i logicznych oraz ukad sterowania (control unit) pobierajcy z pamici operacyjnej poszczeglne rozkazy aktualnie wykonywanego programu (zaadowanego z dysku do pamici RAM) i zgodnie z treci tych rozkazw sterujcy ukadami komputera.

Kady typ procesora ma okrelon list rozkazw, ktre jest w stanie wykonywa i ma specyficzny kod wyraania tych rozkazw przy pomocy zer i jedynek (czyli w postaci binarnej) Tak wic jedynym "naturalnym" czy "ojczystym" jzykiem jest dla kadego komputera lista i kod rozkazw jego procesora. Inne jzyki programowania musz by poddawane tumaczeniu czyli translacji na kod procesora. Pierwsze w historii komputery "rozumiay" tylko rozkazy kodu procesora wyraane cigami cyfr lub przy pomocy kodu asemblera akceptujcego kilkuliterowe skrty zamiast numerw rozkazw i tumaczcego je na numery rozkazw procesora. Asembler jest wic najprostszym translatorem a jego kod najprostszym jzykiem nieco wyszego rzdu ni kod procesora. Obecnie istniej setki rnych jzykw programowania, rnicych si obszarem zastosowa oraz poziomem - im wyszy poziom jzyka tym jest on dogodniejszy dla czowieka. Wszystkie te jzyki s jzykami formalnymi to znaczy maj cile (formalnie) okrelone elementy (czyli alfabet jzyka), reguygramatyczne tworzenia z nich poprawnych wyrae oraz znaczenie tych wyrae (semantyk - ang.: semantics) czyli sposb ich interpretowania i realizowania przez komputer. Jako przykady mona wymieni: Algol, Basic, Fortran, Cobol, C, C++, Pascal, Java, Perl, Prolog, CSSL, Visual Basic, Clipper, Delphi (odmiana obiektowego Pascal'a). Jak ju powiedziano, procesor komputera nie potrafi realizowa bezporednio komend programw zrozumiaych dla czowieka bo napisanych w jzykach wysokiego poziomu (rzdu). Wymagaj one translacji czyli przetumaczenia przy pomocy odpowiedniego programu zwanego translatorem - na sekwencje rozkazw dla procesora wyraonych w jego kodzie. Translatory dziel si na kompilatory tumaczce cay program przed jego wykonaniem oraz na interpretatory (interpretery) od razu wykonujace kad przetumaczon instrukcj. Po przetumaczeniu programu przez kompilator nastpuje zazwyczaj jeszcze tzw. konsolidacja zwana te linkowaniem. Jest to operacja doczania podprogramw standardowych (tzw. bibliotecznych) i porzdkowania caoci realizowana przez konsolidator (linker). W wyniku tych operacji powstaje binarnaposta wykonywalna programu zapisywana w pliku z rozszerzeniem ".exe" lub ".com". Gdy uruchamiamy program (np.: otwieramy jego ikon) wwczas posta wykonywalna adowana jest do pamici operacyjnej RAM i nastpuje wykonywanie poszczeglnych rozkazw przez procesor, przy czym bardzo wana jest ich kolejno. Jeli dla konkretnego typu komputera (a w szczeglnoci jego procesora) opracowano translatory pewnego jzyka programowania to mwi si, e zaimplementowano jzyk na ten komputer albo e istnieje implementacja tego jzyka dla tego typu komputera.

Jak ju wspomniano, ALGORYTM to opis obiektw (struktur danych) i poszczeglnych dziaa na nich niezbdnych do realizacji okrelonych celw. Pogldowo mona za przykady algorytmw uzna takie instrukcje jak przepis na pieczenie placka lub opis diagnozowania uszkodzenia telewizora. Kady algorytm (i program) powinien dziaa dla dowolnych danych a w szczeglnoci take przewidywa zapobieganie lub wywietlanie odpowiednich komunikatw gdy dane s nieprawidowe lub dziaania na nich niewykonalne. Dla algorytmu wane jest precyzyjne zdefiniowanie danych oraz operacji i kolejno tych operacji a nie jzyk w jakim wyraamy algorytm. Mona wic ten sam algorytm zapisa w rnych jzykach czy postaciach na przykad jako:

opis w jzyku polskim schemat blokowy program w jzyku programowania (jak BASIC czy PASCAL)

4 Jzyki komputerowe
Jzyk Programowania Wyszego rzdu, Zamy, e zwyky uytkownik komputera chce zosta programist. Nie jest on jednak po szkole informatycznej lub odpowiednich studiach i wszystko chce robi sam. Pierwsze co musi tak naprawd zrobi to zdecydowa si jaki jzyk programowania chce wybra. Istniej dwie gwne kategorie takich jzykw, a mianowicie jzyki wysokopoziomowe i jzyki niskopoziomowe. Czym one si rni? Rni si przede wszystkim oddziaywaniem na komponenty komputera. Jzyk wysokopoziomowy to jzyk normalny, po skompilowaniu kodu, ju jako gotowy program trafia przez procesor do RAMu gdzie zostaje wykonywany. Jzyk niskiego rzdu natomiast oddziauje bezporednio na elektronik, a konkretniej na procesor. W jzykach wysokopoziomowych tworzymy program w oparciu o przygotowany algorytm, a nastpnie zapisujemy ten algorytm w wybranym przez nas jzyku. Algorytm ten (ju pod postaci aplikacji) konwertowany jest na jzyk binarny i w zalenoci od polece jakie wykorzystalimy przy tworzeniu programu procesor przy odczytywaniu danej aplikacji uruchamia bdzie odpowiednie ukady elektroniczne i wykonywa odpowiednie rozkazy. Kady jzyk jednak nadaje si do czego zupenie innego. Trzeba wic zastanowi si co tak naprawd chcemy tworzy. Gdy stawiamy na programy uytkowe, ktre korzysta bd z dbr starych komputerw i systemw operacyjnych DOS polecam zapozna si z Pascalem oraz Turbo Pascalem, ktre pozwalaj tworzy programy w trybie tekstowym. Ci z was jednak, ktrzy bd korzystali ze swoich programw na nowszych maszynach z zainstalowanym systemem 2000, XP lub nowszymi niech zagldn do sieci i poszukaj informacji na temat Delphi. Delphi jest to jzyk programowania wykorzystywany przede wszystkim do tworzenia aplikacji uytkowych, bazuje on na okienkach (formach), z ktrych stworzona jest aplikacja. Delphi ma zarwno pene wsparcie dla DirectX jak i dla OpenGL dlatego aplikacje moemy tworzy zarwno dla systemw firmy Microsoft jak i dla systemw z rodziny Linux. Trzecim najbardziej popularnym i z pewnoci najbardziej optymalnym w zastosowaniach jest jzyk C++ bdcy prawdziwym

kombajnem. Do wanie w nim pisane s najpopularniejsze aplikacje, a take nasze ulubione gry komputerowe. Jest to jzyk wsppracujcy przede wszystkim z systemami Windows. Za jego pomoc przy odpowiednich umiejtnociach stworzy moemy na prawd zaawansowane aplikacje. Nie zapominajmy jednak, e tworzenie programw to rzecz jedna, a pisanie zaawansowanych gier komputerowych to rzecz cakiem odmienna, albowiem w przypadku gier musimy si zaopatrzy w co wicej ni w sam znajomo jzyka programowania. Nie mwi tu oczywicie o tytuach takich jak saper czy kko i krzyyk poniewa to mona zrobi nawet w starym, dobrym Pascalu. Mwi tu o tytuach rozbudowanych, ktre korzystaj z masy oddzielnych bibliotek, w ktre nie tylko trzeba si zaopatrzy, ale nastpnie je skonfigurowa odpowiednio. Potem zostaje najtrudniejsza rzecz, czyli sprawa grafiki i fizyki. Musimy znale zadowalajcy nas silnik graficzny i wple go do programu. Nastpnie przy tworzeniu animacji i innych podobnych rzeczy musimy pamita o prawach fizyki, ktre rwnie powinnimy w takiej grze zamieci. Jak widzicie wic pisanie gier to ciki kawa chleba. Nie dziwota zatem, e nad jedn gr pracuje dzie w dzie nawet przez kilka lat studio profesjonalnych programistw.

Programowanie niszego rzdu, zwane inaczej niskopoziomowym to rzecz cakiem odmienna od zwykego programowania w Delphi czy C++. Rni si przede wszystkim tym, e w odrnieniu od programowania wysokopoziomowego (gdzie to procesor decyduje o wykorzystywanych rozkazach na podstawie zawartego kodu) to my decydujemy co jak i kiedy. Co to oznacza? Oznacza to mniej wicej to, e budujemy aplikacj cegieka po cegiece z tym wyjtkiem, e programujemy bezporednio na elektronice

You might also like