1 ELEMENTARZ
fahr = lower;
while (fahr <= upper) {
celsius = 5 * (fahr-32) / 9; printf(,,%d\t%d\n,,ł fahr, celsius); fahr = fahr + step;
Dwa wiersze programu
/* wypisz zestawienie temperatur Fahrenheita-Celsjusza dla f = 0, 20, .... 300 */
są komentarzem, który w tym przypadku zwięźle opisuje działanie programu. Kompilator ignoruje wszystkie znaki zawarte między ogranicznikami / * i */. Komentarze mogą| pojawić się wszędzie tam, gdzie może wystąpić odstęp, znak tabulacji i znak nowego wiersza. Odpowiednio stosowane sprawiają, że programy stają się bardziej zrozumiałe.
W języku C wszystkie zmienne muszą być zadeklarowane przed ich użyciem, zwykle na początku funkcji przed pierwszą wykonywalną instrukcją. Deklaracja zapowiada właściwości zmiennych. Słada się ona z nazwy typu i z listy zmiennych, jak w naszym| przykładzie
int fahr, celsius; int lower, upper, step;
Typ int oznacza, że wymienione zmienne są liczbami całkowitymi, w przeciwieństwu do float, wprowadzającego liczby zmiennopozycyjne, czyli liczby z częścią ułamkt wą. Zakres obu typów (int i float) zależy od maszyny, z którą pracujesz; 16-bitowt obiekty typu int o wartościach z przedziału od -32768 do +32 767) są równie p< wszechne, jak obiekty 32-bitowe. Obiekt typu float zwykle zajmuje 32 bity, co daj< w przybliżeniu co najmniej 6 cyfr znaczących dla wartości z zakresu od 10"3S do 10+?g|
Oprócz int i float w języku C występuje także kilka innych podstawowych typów di nych:
char znak - jeden bajt, short liczba całkowita krótka,
long liczba całkowita długa,
double liczba zmiennopozycyjna podwójnej precyzji.
Rozmiary tych obiektów również zależą od maszyny. W języku C występują t< tablice, struktury i unie zbudowane z obiektów o typach podstawowych, wskaźniki tych obiektów oraz funkcje zwracające ich wartości. Z nimi wszystkimi zapoznasz w odpowiednim czasie.
powered oy
1.2 ZMIENNE I WYRAŻENIA ARYTMETYCZNE_I-„-□ -i
Faktyczne działanie programu przekształcania temperatur rozpoczynapJ^łfflTHJcc/^^^ przypisania
lower = 0; upper = 300; step = 20; fahr = lower;
w których zmiennym nadaje się wartości początkowe. Poszczególne instrukcje są zakończone średnikami.
Wszystkie wiersze zestawienia tworzy się w ten sam sposób, w programie użyliśmy więc pętli, której wykonanie jest powtarzane kolejno dla każdego wiersza. Zadanie to realizuje pętla while (dopóki)
while (fahr <= upper) {
• • •
Działanie pętli while jest następujące: Najpierw sprawdza się warunek ujęty w nawiasy okrągłe. Jeśli jest prawdziwy (tzn. fahr jest mniejsze lub równe upper), to wykonuje się treść pętli (trzy instrukcje zawarte w nawiasach klamrowych). Potem znów jest sprawdzany warunek i, jeśli będzie prawdziwy, ponownie wykona się treść pętli.
W chwili, gdy warunek stanie się fałszywy (fahr przekroczy upper), nastąpi koniec pętli, a kolejną wykonywaną instrukcją będzie pierwsza instrukcja po pętli. Ponieważ w tym programie nie ma więcej instrukcji, więc program zakończy działanie.
Treść pętli while może składać się z jednej lub kilku instrukcji zawartych w nawiasach klamrowych (tak jak w programie przekształcania temperatur) lub z jednej instrukcji bez tych nawiasów, np.
while (i < j) i = 2 * i;
W obu przypadkach instrukcje wykonywane przez pętlę while zawsze umieszczamy w wierszach programu źródłowego z wcięciem o wielkości jednego znaku tabulacji (w przykładach pokazany jako stały odstęp). Na pierwszy rzut oka widać więc instrukcje występujące wewnątrz pętli. Wcięcia podkreślają logiczną strukturę programu. Choć dla kompilatorów języka C wygląd zewnętrzny programów nie ma znaczenia, to jednak odpowiednie stosowanie wcięć i odstępów ma istotne znaczenie dla czytelnika-człowieka. My zalecamy pisanie tylko jednej instrukcji w wierszu i otaczanie operatorów znakami odstępu dla uwypuklenia grupowania argumentów operacji. Położenie nawiasów klamrowych jest mniej istotne, chociaż istnieją żarliwi wyznawcy różnych koncepcji. My wybraliśmy jeden z wielu popularnych stylów. Wybierz styl, który Ci najbardziej odpowiada, i stosuj go konsekwentnie we wszystkich programach.
29