METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02
NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się chce - to komentarz*/ #include <stdio.h> /* znaczek # - polecenie(dyrektywa) translatora*/ void main (void) { /* poczatek definicji funkcji głównej programu */ char x[100]; /* deklaracja zmiennej tekstowej - na Twoja odpowiedz na pozdrowienie komputera */ printf("witaj!\r\n"); /*komputer wypisuje pozdrawienie */ scanf("%s",x); /* i czeka na Twoja odpowiedz z klawiatury */ } /* koniec instrukcji zlozonej */ Repertuar zdań tekstu programu w języku C: KOMENTARZE, DYREKTYWY TRANSLATORA, DEKLARACJE (DEFINICJE) OBIEKTÓW, INSTRUKCJE "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 2
Rodzaje zdań tekstu programu w C Program źródłowy w języku C można traktować jako tekst składający się z następujących rodzajów zdań: Polecenia translatora Zdania (instrukcje) języka C komentarze deklaracje (definicje) obiektów instrukcje (zapis czynności) "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 3
Polecenia translatora Są to linie zaczynające się od znaku # translator polecenia w tych linii wykonuje PRZED tłumaczeniem programu UWAGA! - te linie nie mogą kończyć się średnikiem INACZEJ SĄ TO TZW DYREKTYWY TRANSLATORA (PREPROCESORA) PRZYKŁADY #include <stdio.h> #include mojefun.c #define MAX 10 "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 4
Komentarze Translator tekstu komentarzy NIE TŁUMACZY. Ideą komentarzy jest przechowywanie objaśnień programu przeznaczonych DLA CZŁOWIEKA (PROGRAMISTY) Dwa rodzaje komentarzy: wielowierszowe od - do /* to jest przykład jednowierszowe od - do końca linii komentarza wielowierszowego */ // To jest komentarz wprowadzony w języku C++ "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 5
Dwa rodzaje obiektów stałych Deklaracje/Definicje dosłownych: 10 10L 15.0 ALA MA KOTA nazwanych: #define PI 3.14 zmiennych funkcji int x, zmienna; char nazwisko[10]; struct osoba { char nazwisko[10]; imie[10]}; osoba KOWALSKI; deklaracja: int tosamo(int x); definicja: int tosamo(int x){return x;} UWAGA NA ŚREDNIKI!!!! "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 6
Instrukcje INSTRUKCJE zawierają opis czynności jakie wykonawca programu ma wykonać. Podstawowe rodzaje instrukcja we/wy (komunikacji wykonawcy z otoczeniem: pamięć operacyjna - urządzenia zewnętrzne) instrukcje przetwarzania - zapis wyrażeń określonego typu instrukcja podstawienia (przesłania wewnętrznego: pamięć operacyjna - pamięć operacyjna) instrukcja inicjalizacji (wartości początkowej zmiennej) instrukcje sterujące: skoku, wywołania podprogramu(funkcji instrukcje strukturalne "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 7
Podstawowa struktura programu /* Komentarze początkowe objaśniające zawartość pliku z programem */ #include <plik nagłówkowy biblioteki systemowej> #include "plik nagłówkowy biblioteki użytkownika" //tutaj ewentualne deklaracje funkcji użytkownika //tutaj definicje obiektów globalnych void main() { // <-nawias otwierający początek programu (funkcji) // tutaj deklaracje lokalne i instrukcje programu } //<- nawias kończący zakres definicji programu (funkcji) //tutaj definicje funkcji zadeklarowanych przed funkcja main() "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 8
Identyfikatory /nazwy Służą one do nazywania obiektów programu (typów, stałych, zmiennych, funkcji, itp.). Są one ciągiem liter, cyfr i znaków podkreślenia, zaczynającym się od litery lub znaku podkreślenia. Nie należy używać dwu znaków podkreślenia na początku, ze względu na możliwość kolizji z nazwami użytymi przez twórców kompilatora (w bibliotekach, makrodefinicjach, itp.). Duże i małe litery są rozróżniane "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 9
Słowa zastrzeżone języka C Wybrane identyfikatory zostały zastrzeżone przez twórców języka. Służą one do zapisu konstrukcji jakie są dopuszczalne w języku C. Dlatego nazywa się je słowami kluczowymi. Słowa kluczowe nie mogą być użyte jako nazwy zmiennych, typów lub funkcji i nie są poprawnymi identyfikatorami w sensie składni języka C. W języku ANSI C występują następujące zastrzeżone słowa kluczowe: break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 10
Zmienne Stałe to obiekty programu, których wartość w trakcjie realizacji programu NIE MOŻE ulec zmianie Zmienne - wartość może ulec zmianie Zmienna reprezentuje daną określonego typu, jest przechowywana w pamięci operacyjnej i identyfikowana poprzez nazwę. Zmienna posiada następujące podstawowe cechy: nazwę (identyfikator) typ, który wiąże się ze zbiorem dopuszczalnych wartości danej i zbiorem dopuszczalnych operacji wykonywanych na niej, a także z rozmiarem pamięci potrzebnym do przechowania zmiennej Wszystkie zmienne przed użyciem muszą być zadeklarowane. Deklaracja polega na podaniu wartość nazwy, typu i ewentualnie dodatkowych atrybutów, w tym wartości początkowej. W momencie deklaracji wartość zmiennej lokalnej, czyli zadeklarowanej wewnątrz funkcji, jest nieokreślona (przypadkowa), natomiast zmienne globalne (deklarowane poza funkcjami) są inicjowane na zero. "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 11
Typy danych Typ danych to zbiór stałych o identycznej charakterystyce i dopuszczalnych operatorach: typy proste (wbudowane, fundamentalne): typy pochodne tworzone z typów prostych za pośrednictwem operatorów: * - wskaźnik [] - tablica () - funkcja typy definiowane przez użytkownika "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 12
znakowe Typy proste char napisy (tylko stałe - tzw. stałe tekstowe ala ma kota ) liczbowe int - liczby całkowite float - liczby rzeczywiste Typy liczbowe mogą występować w wariantach: liczby ze znakiem lub bez ( unsigned) liczby ze zwiększoną dokładnością (long, double) "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 13
Deklaracja typu wartości Zmienne - deklaracja typu int x; float zarobki; double odleglosc_od_ksiezyca; Stałe - sposób zapisu (stałe dosłowne) A c \t \\ 1 100 200L 0755 0xa2 1.5 2e17 3.5e-2 to jest stała tekstowa Stałe nazwane - w C tylko przez dyrektywę #define #define PI 3.14 "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 14