ANSI C 5

ANSI C 5



1 ELEMENTARZ

Program wygląda prawie tak samo jak poprzednio, przy czym teraz zmienne fahr i celsius są zadeklarowane jako float, a specyfikacje przekształceń wyniku mają bardziej naturalną postać. W poprzedniej wersji nie mogliśmy użyć wyrażenia 5/9, ponieważ dzielenie całkowite odrzuca część ułamkową wyniku. Kropka dziesiętna w stałej informuje o tym, że jest to liczba zmiennopozycyjna, toteż wynik dzielenia 5.0/9.0 nie zostanie zaokrąglony, wyraża bowiem proporcję między dwiema liczbami zmiennopozycyjnymi.

W przypadku, gdy oba argumenty operatora arytmetycznego są całkowite, wykonujel się operację całkowitą. Jeśli jednak jeden z nich jest całkowity, a drugi zmiennopozy-1 cyjny, to liczbę całkowitą przekształca się do typu zmiennopozycyjnego przed wyko-l naniem operacji. Gdyby w programie było wyrażenie fahr-32, to i tak liczba 32 byłaby automatycznie przekształcona na zmiennopozycyjną. Niemniej jednak zapisywanie stałych zmiennopozycyjnych z kropką dziesiętną nawet wtedy, gdy ich wartości są całkowite, podkreśla dla czytelnika ich zmiennopozycyjną naturę.

Szczegółowe zasady przekształcania liczb całkowitych na zmiennopozycyjne podano w rozdz. 2. Na razie zapamiętaj, że    zarówno przypisanie    I

fahr = lower;    I

jak i sprawdzenie warunku    1

while (fahr <= upper)    I

zachowują się naturalnie - typ int jest przekształcany do float przed wykonaniem I operacji.    I

Specyfikacja przekształcenia %3.0f w funkcji printf rezerwuje dla liczby zmiennopo-l zycyjnej (tutaj fahr) co najmniej trzy znaki, przy czym należy ją wypisać bez części! ułamkowej i bez kropki dziesiętnej. Specyfikacja %6.1f opisuje format następnej liczj by (celsius): ma ona zająć co najmniej sześć znaków i zawierać jedną cyfrę po kropccl dziesiętnej. Wynikowe zestawienie    wygląda    więc    tak:    I

0    -17.8    I

20    -6.7    I

40    4.4    I

• » #

Szerokość pola i precyzję wyniku można w specyfikacji przekształcenia liczby pormj nąć. Na przykład %6f przeznacza na liczbę co najmniej sześć znaków, %.2f wymuszaj dwa miejsca po kropce dziesiętnej, lecz nie określa sztywnego rozmiaru pola, a %f (*! prostu zleca wypisanie liczby w postaci zmiennopozycyjnej.    J

W wyniku następujących specyfikacji przekształcenia argument zostanie wypisaifl jako:

%d    liczba dziesiętna;

%6d    liczba dziesiętna, zajmująca    co najmniej    6    znaków;

%f    liczba zmiennopozycyjna;

%6f    liczba zmiennopozycyjna,    zajmująca    co najmniej    6 znaków;

%.2f    liczba zmiennopozycyjna z 2 miejscami po kropce dziesiętnej;

%6.2f    liczba zmiennopozycyjna z 2 miejscami po kropce, zajmująca co naj

mniej 6 znaków.

Funkcja printf rozpoznaje także specyfikacje: %o - powodującą wypisanie liczby w postaci ósemkowej, %x - liczby w postaci szesnastkowej, %c - jednego znaku, %s - ciągu znaków oraz %% jako żądanie wypisania znaku %.

Ćwiczenie 13. Zmień program przekształcania temperatur tak, aby wypisywał również nagłówek zestawienia.

Ćwiczenie 1.4. Napisz program wypisujący zestawienie temperatur w skali Celsjusza i ich odpowiedników w skali Fahrenheita.


Instrukcja for

Każdy program realizujący konkretne zadanie można napisać na wiele sposobów. Spróbujmy więc napisać inny wariant programu przekształcania temperatur.

#include <stdio.h>

/* zestawienie temperatur Fahrenheita-Celsjusza */ main()

{

int fahr;

for (fahr = 0; fahr <= 300; fahr = fahr + 20)

printf(”%3d %6.1f\n”, fahr, (5.0/9.0)*(fahr-32));

}

Ten program produkuje identyczne wyniki, ale w istotny sposób różni się od poprzedniego. Główną zmianą jest eliminacja większości zmiennych; pozostała tylko zmienna fahr, znów jako obiekt typu int. Dolna i górna granica oraz rozmiar kroku występują jedynie jako stałe w nowej instrukcji for, natomiast wyrażenie obliczające temperaturę w skali Celsjusza jest teraz trzecim argumentem wywołania funkcji printf, a nie osobną instrukcją przypisania.

3 - Język ANS1 C 33


Wyszukiwarka

Podobne podstrony:
X Prawie tak samo jak rok temu lubimy roztaczać wizje,... \ WIG20
FILOZOFIA A SZTUKA Sztuka, tak samo jak religia i filozofia, pełni trzy podstawowe funkcje, którymi
Zadanie 96. Tak samo jak w poprzednim zadaniu, tylko odpowiedni fragment brzmi: ”Maszyna działa tak,
58 (125) I. Pokoloruj kwiaty, aby wyglądały tak samo, jak te po ich lewej stronie.sasanki  &nbs
new 47 (3) Fragment starych fortyfikacji w Cartagenie. Wyglądały one zupełnie tak samo jak te, które
ANSI C 5 1 ELEMENTARZ odpowiedni parametr jako wskaźnik i za jego pomocą pośrednio odwoływać się d
94295201 236 N. CYBULSKI dnocześnie powstają ziarenka obok jądra, barwiące się tak samo jak w jądr
CCF20090129000 Początki i rozwój refleksji socjologicznej Refleksja o życiu społecznym jest prawie
99nica, wystawiona tak samo jak kościół w stylu romańskim, również jest jego dziełem. Oprócz zabrane

więcej podobnych podstron