Wprowadzenie do programowania Lekcja 1
PROGRAMOWANIE Programowanie to modyfikowanie, rozszerzanie, naprawianie, ale przede wszystkim tworzenie oprogramowania. Paradygmaty programowania : programowanie ekstremalne programowanie funkcyjne programowanie intencyjne programowanie obiektowe programowanie proceduralne programowanie strukturalne programowanie wieloparadygmatowe programowanie zdarzeniowe programowanie agentowe programowanie logiczne programowanie aspektowe
PROGRAM Program = zbiór poleceń wybranych zgodnie z dopuszczalnymi przez dany język regułami. Oprogramowanie (ang. software) to zestaw instrukcji przeznaczonych do wykonania dla komputera. Celem oprogramowania jest przetwarzanie danych w określonym przez twórcę zakresie. Oprogramowanie to dział Informatyki. Oprogramowanie tworzą programiści w procesie programowania.
ROZKAZ Elementarna operacja języka maszynowego wykonywana w cyklu rozkazowym procesora Rozkaz zajmuje jedno lub więcej słów maszynowych i dzieli się na kilka pól: część operacyjną, adresową oraz bity modyfikacji adresu. W zależności od typu procesora rozkazy mogą być jedno- dwu- lub trzyadresowe.
ALGORYTM Algorytm w matematyce oraz informatyce to skończony, uporządkowany zbiór jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania, w skończonej liczbie kroków. Algorytm często porównuje się do przepisu kulinarnego. Dla przykładu, aby zrobić bigos należy w określonej kolejności oraz odstępach czasowych (imperatyw czasowy) dodawać właściwe rodzaje kapusty i innych składników. Może istnieć kilka różnych przepisów dających na końcu bardzo podobną potrawę. Główna różnica między algorytmem kulinarnym i jego komputerową realizacją tkwi w zdolności jego wykonawcy do zrozumienia języka przepisu. Kucharz, w przeciwieństwie do komputera jest w stanie zrozumieć określenie dopraw do smaku, ponieważ dysponuje umiejętnością pewnej abstrakcji, tj. mniej lub bardziej świadomie wie, że określenie dopraw do smaku oznacza: "na x kilogramów bigosu dodaj y gram soli", komputer dysponuje tylko skończonym zakresem operacji elementarnych w których muszą być wyrażone bardziej złożone akcje.
WŁASNOŚCI ALGORYTMU Każdy algorytm powinien charakteryzować się następującymi właściwościami: poprawność - oznacza to, że algorytm zawsze pozwala uzyskać prawidłowe rozwiązanie wszystkich problemów (zadań) należących do określonej grupy, skuteczność - wynik jest uzyskiwany w skończonej liczbie działań (kroków), efektywność - algorytm jest lepszy jeśli pozwala na szybsze lub bardziej ekonomiczne uzyskanie wyniku.
ELEMENTY DIAGRAMU ALGORYTMU
TYPY ALGORYTMÓW Oba typy algorytmów rozwiązują pierwiastki równania kwadratowego. Algorytm równoległy (a), w tym samym momencie czasu zaczyna obliczanie obydwu pierwiastków i po zakończeniu obu niezależnych obliczeń drukuje wyniki; Algorytm sekwencyjny (b), najpierw obliczy x1, a następnie x2, po czym wydrukuje obliczone wartości. Algorytmy iteracyjne - rodzaj algorytmu i programu, w których wielokrotnie wykonuje się pewne instrukcje, dopóki nie zostanie spełniony określony warunek, Algorytmy rekurencyjne - takie procedury, które w swojej definicji posiadają wywołanie samej siebie.
TYPY ALGORYTMÓW
JĘZYK PROGRAMOWANIA Język programowania to usystematyzowany sposób przekazywania komputerowi poleceń do wykonania. Język programowania pozwala programiście na precyzyjne przekazanie maszynie, jakie dane mają ulec obróbce i jakie czynności należy podjąć w określonych warunkach. Język programowania zapewnia łączność (dialog) między programistą, a komputerem. Na początku program ma postać kodu źródłowego, następnie jest tłumaczony przez kompilator lub interpreter.
PRZYKŁADY JĘZYKÓW PROGRAMOWANIA Forth - ciekawy język, opracowany przez Charlesa Moore około 1970 roku do sterowania radioteleskopem, początkowo realizacje na 8-bitowych komputerach, 1994 - standard ANSI Forth. Pascal - zaprojektował go w 1971 roku N. Wirth z Politechniki w Zurychu. Popularność zdobył dzięki implementacji Turbo Pascal (1983) firmy Borland.
PRZYKŁADY JĘZYKÓW PROGRAMOWANIA Logo - stworzone zostało w latach 60-tych przez Daniela Bobrowa i Wallace'a Feurzeiga z firmy Bolt, Beranek and Newman, Inc.oraz Seymura Paperta, profesora informatyki z MIT. Język C - na PC najczęściej obecnie używany język.
JĘZYKI WYŻSZEGO RZĘDU Do języków wysokiego rzędu, czyli takich, gdzie wpisując jedną instrukcję program najczęściej wykonuje kilka (-naście, -dziesiąt, -set) operacji. Zdecydowanie ułatwia to programowanie i skraca ilość kodu, jaką trzeba wklepać, ale mamy nieco mniejszą kontrolę nad komputerem. Nieco - ponieważ nie dość że C++ posiada bardzo dużo funkcji bibliotecznych, to jeszcze wewnątrz kodu napisanego w języku C++ można wstawiać kod Assemblera (a także innych języków)! Dlatego C++ ma opinię tak użytecznego i potężnego - kwestią czasu było przystosowanie go do niemal wszelkich gałęzi przemysłu.
JĘZYK UNIWERSALNY Uniwersalia językowe (ang. language universals) to cechy wspólne wszystkich (uniwersalia absolutne) lub zdecydowanej większości (tzw. uniwersalne tendencje) języków naturalnych. Język problemowy jest przeznaczony do określonych zadań. Do tworzenia programów powiązanych czymś ze sobą. Jego przeciwieństwo to język uniwersalny, taki jak np. C++, który może być zastosowany praktycznie do wszystkiego.
JĘZYK UNIWERSALNY Pascal - dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego poziomu, ogólnego zastosowania, oparty na języku Algol. Został opracowany przez Niklausa Wirtha w 1971 roku. Pierwszy opis języka Wirth zawarł w The programming language Pascal, Acta Informatica 1/1971, a kolejny, poprawiony w The programming language Pascal (Revised Report), Bericht der Fachrgruppe Computer – Wissenschaften 5/1972. Pierwszym podręcznikiem języka Pascal była pozycja Jensen, Wirth, Pascal, User Manual and Report 1974.
JĘZYK SPECJALIZOWANY Specjalizowany język programowania umożliwia obsługę prostych zadań reformatowania danych za pomocą zaledwie kilku linii kodu. Innymi słowy język specjalizowany to zbiór instrukcji, które mają na celu np. zmianę formatu danych
KOMPILATOR Kompilator (ang. compiler) to program służący do automatycznego tłumaczenia kodów źródłowych na język maszynowy. Stosowanie kompilatorów ułatwia programowanie (programista nie musi znać języka maszynowego) i pozwala na większą przenośność kodu pomiędzy platformami. Prawdopodobnie pierwszym kompilatorem był Autocoder, napisany w roku 1952. Popularnym zestawem kompilatorów jest GCC.
PROGRAM W C++ Program obliczający sumę dwóch podanych liczb. Przedstawimy treść programu, algorytm oraz efekt działania programu w postaci zrzutu na ekran wykonanego przy pomocy programu MW Snap.
TREŚĆ PROGRAMU I ALGORYTM #include <iostream.h> int main() { double suma[3]; // Tablica 3 liczb typu double cout <<"Podaj pierwsza liczbe: "; cin >>suma[0]; //pobieramy pierwszy element do tablicy cin.ignore(); cout <<"Podaj druga liczbe (rozna od zera): "; cin >>suma[1]; //pobieramy drugi element do tablicy //do pozostalych elementow tablicy przypiszemy wyniki dzialania na elementach suma[2]=suma[0]+suma[1]; cout <<"Podane liczby to: "<<suma[0]<<' '<<suma[1]<<'\n' <<"Ich suma wynosi: "<<suma[2]<<'\n'; cout <<"\nNacisnij ENTER aby zakonczyc\n"; getchar(); return 0; } START wprowadź a wprowadź b B różne od 0 STOP x1=a+b Drukuj x1 T N
EFEKT DZIAŁANIA PROGRAMU Efekt działania programu przedstawiony w postaci zrzutu na ekran.