JĘZYK PROGRAMOWANIA
DR. INZ. Dominik Spińczyk pok. 749
pierwsza połowa semestru Wojciech Więcławek pok. 744
Zakres materiału:
-podstawy algorytmów
-struktury danych
-projektowanie algorytmów w programie Raptor
-programowanie w języku C# (Visual Studio)
Literatura:
M. Wirth Algorytmy+struktury danych
M.M. Syslo "Algorytmy
Piotr Wróblewski "Algorytmy struktury danych..."
Banachowski "algorytmy i struktury danych"
A.V. Aho Hopcroft "Projektowanie i analiza algorytmów internetowych"
Jesse Liberty "Programowanie C#"
Marcin Lis "C# Praktyczny kurs"
Algorytm- to ściśle określona procedura obliczeniowa, która na podstawie dostarczonych danych zwraca dane wynikowe, inaczej wynik działania algorytmów
Prawidłowo działający algorytm powinien być:
-poprawny- dla każdego poprawnego zestawu informacji wejściowych prowadzić do poprawnych rezultatów
-jednoznaczny- każdorazowo dla każdego poprawnego zestawu informacji wejściowych, prowadzić do tych samych rezultatów
-szczegółowy- aby ktoś albo coś wykonujący algorytm rozumiał dokładnie opisane operacje i potrafił je wykonać
-uniwersalny- pozwalał na rozwiązanie dowolnego problemu z określonej klasy, a nie dotyczył pewnych przypadków
Możliwość opisu algorytmów:
-słowny
-lista kolejnych kroków postępowania
-schemat blokowy
-pseudokod
-wybrany język programowania
Różnice pomiędzy nimi najlepiej ilustruje prosty przykład, celem którego jest zsumowanie dwóch całkowitych wartości liczbowych
Opis słowny:
km-> mile
W tym celu najpierw pobierz od użytkownika odległość wyrażoną w km, wiedząc, że 1 mila lądowa to ok. 1600m (1,6 km) przelicz pobraną od użytkownika wartość. Otrzymamy wynik zaprezentowany użytkownikowi
Lista kolejnych kroków postępowania:
Krok 1: rozpocznij pracę
Krok 2: Pobierz od użytkownika wartość odległości w km
Krok 3: Korzystając z przelicznika oblicz odległość w milach
Krok 4: Podaj wynik
Krok 5 : Zakończ pracę
Schemat blokowych (patrz Raptor)
RAPTOR
Blok operacji wejścia wyjścia- występuje dowolną liczbę razy, służy do wprowadzania danych oraz wyświetlania wyników operacji
Blok wykonawczy- występuje dowolną liczbę razy. Służy do realizacji elementarnych operacji arytmetycznych lub funkcji elementarnych
Blok decyzyjny- występuje dowolną liczbę razy, służy do sprawdzenia warunku. Dostarcza odpowiedzi twierdzącej lub przeczącej na zadane pytanie, pytanie musi być jednoznaczne, odpowiedzią, na które jest TAK lub NIE, blok posiada jedno wejście i dwa wyjścia
Blok procedury/funkcji- występuje dowolną ilość razy, stanowi blok operacji(najczęściej ciągu operacji), wykonywanej poza rozważanym algorytmem, posiada pojedyńcze wejście i wyjście
Łączniki stronnicowe- stosowane w przypadku rozbudowanych algorytmów rozmieszczonych na jednej stronie, składających się z wielu fragmentów
Łączniki międzystronnicowe- stosowane w przypadku rozbudowanych algorytmów , rozmieszczonych na kilku stronach, składających się z wielu fragmentów
Poziom szczegółowości- algorytm powinien być zbudowany
Dane- obiekty przetwarzane przez algorytm, obiekty którymi manipuluje algorytm
Typy danych:
-całkowitoliczbowe
-zmiennoprzecinkowe
-znakowe
-łańcuchowe
-logiczne
Rodzaje danych:
-zmienna
-stała
-zmienna statyczna
Złożone typy danych:
-tablice
-struktury
-unie itp.
Instrukcja w programowaniu jest to najmniejszy samodzielny element, imperatywnego języka programowania. Instrukcja może być niskiego poziomu napisana w asemblerze, która po przetlumaczeniu na kod binarny nadaje się do uruchomienia przez procesor lub instrukcja wysokiego poziomu napisana w języku np C#, która zostanie przetłumaczona na kilka instrukcji niskiego poziomu
Instrukcje proste:
-pusta
-przypisana
Instrukcje złożone:
-blokowa
Instrukcje sterujące:
-warunkowe
-skoku
-powrotu
-wywołanie
-opuszczenia
-kontynuacji
-pętle: iteracyjna, repetycyjna
Struktury sterujące:
-bezpośrednie następstwo
-wybór warunkowy: prosty, złożony
Operatory arytmetyczna
-dodawania
-odejmowania
-mnożenia
-dzielenia
-modulu
Podstawowe funkcje:
-trygonometryczne
-wykładnicze
-logarytmiczne
-statystyczne itp.
Operatory logiczne:
!) Związane z algebrą Boola
-negacja