Wykład 02
METODY I JĘZYKI PROGRAMOWANIA
PROGRAMOWANIE STRUKTURALNE
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
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)
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
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
komentarza wielowierszowego */
– jednowierszowe „od - do końca linii”
// To jest komentarz wprowadzony w języku C++
Deklaracje/Definicje
• Dwa rodzaje
– obiektów
• stałych
– dosłownych: 10 10L 15.0 „ALA MA KOTA”
– nazwanych: #define PI 3.14
• zmiennych
int x, zmienna;
char nazwisko[10];
struct osoba { char nazwisko[10]; imie[10]};
osoba KOWALSKI;
– funkcji
• deklaracja: int tosamo(int x);
• definicja: int tosamo(int x){return x;}
UWAGA NA ŚREDNIKI !!!!
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
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()
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
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
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
• wartość
Wszystkie zmienne przed użyciem muszą być zadeklarowane. Deklaracja polega na
podaniu nazwy, typu i ewentualnie dodatkowych atrybutów, w tym wartości początkowej.
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
Typy proste
• znakowe
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)
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