Typy danych i formatowanie

Transkrypt

Typy danych i formatowanie
Typy danych i formatowanie
Elwira Wachowicz
[email protected]
28 marca 2013
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
1 / 16
Sªowa kluczowe typów danych
Pierwotne sªowa C
int
long
short
unsigned
char
float
double
Elwira Wachowicz ([email protected])
ANSI C
signed
void
const
Typy danych i formatowanie
28 marca 2013
2 / 16
Korzystanie ze znaków: typ char
Do przechowywania znaków sªu»y typ
ASCII. (Np. liter¦
A
reprezentuje kod
Deklarowanie zmiennych typu
char.
65.)
To typ caªkowity: przechowuje kody
char:
char t;
char akter, yzma;
Inicjalizacja:
char kot;
kot = 'T'
kot = T
kot = "T"
/*
/*
/*
/*
Elwira Wachowicz ([email protected])
deklarujemy zmienn¡ typu char
OK!
NIE! Uznaje T za zmienn¡
NIE! Uznaje T za ªa«cuch
Typy danych i formatowanie
*/
*/
*/
*/
28 marca 2013
3 / 16
Sekwencje steruj¡ce
Sekwencja
\a
\b
\f
\n
\r
\t
\v
\\
\'
\
Znaczenie
Alarm np. d¹wi¦k.
Znak cofania: kursor o jeden znak w lewo.
Wysuni¦cie strony: kursor na pocz¡tek nast¦pnej strony.
Nowa linia.
Powrót karetki: kursor na pocz¡tek tej samej linii.
Tabulator poziomy.
Tabulator pionowy
Lewy uko±nik \.
Apostrof '.
Cudzysªów .
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
4 / 16
Wy±wietlanie znaków
/* znakkod.c -- wy±wietla znak i odpowiadaj¡cy mu kod */
#include <stdio.h>
int main(void)
{
char ch;
}
printf("Wpisz jaki± znak.\n");
scanf("%c", &ch);
/* u»ytkownik podaje znak */
printf("Kod znaku %c to to %d.\n", ch, ch);
return 0
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
5 / 16
Liczby zmiennoprzecinkowe
Liczba
Notacja naukowa
Notacja wykªadnicza
1000000000
= 1.0 × 109
= 1.23 × 105
= 3.2256 × 102
= 5.6 × 10−5
= 10e9
= 1.23e5
= 3.2256e2
= 5.6e−5
123000
322.56
0.000056
Wedªug ANSI C:
float: co najmniej 6 cyfr znacz¡cych i zakres co najmniej od
10+37 .
typu double: co najmniej 10 cyfr znacz¡cych i ten sam zakres co float.
Zmienna typu
10−37
do
Zmienna
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
6 / 16
Deklarowanie zmiennych zmiennoprzecinkowych
i ten sam zakres co
float
float pawel, gawel;
double trouble;
float planck = 6.63e-34;
Staªe zmiennoprzecinkowe:
-1.56E+12
2.87e-3
3.14159
.2
4e16
.8E-5
100.
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
7 / 16
Wy±wietlanie warto±ci zmiennoprzecinkowych
/* pokaz_fl.c -- wyswietla warto±¢ typu float na dwa sposoby */
#include <stdio.h>
int main(void)
{
float wartosc = 32000.0;
}
printf("%f mo»na tak»e zapisa¢ %e\n", wartosc, wartosc);
return 0;
Wynik dziaªania programu:
32000.0 mo»na tak»e zapisa¢ 3.200000e+004
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
8 / 16
Ša«cuchy znakowe i formatowanie wej±cie/wyj±cie
/* rozmowa.c -- wscibski, ale i pouczaj¡cy program
#include <stdio.h>
#include <string.h>
/* potrzebne do prototypu strlen()
#define GESTOSC 998.5
/* g¦sto±¢ czªowieka w kg/m3
int main(void)
{
float waga, objetosc;
int rozmiar, litery;
char imie[40];
/* imi¦ jest tablic¡ 40 znaków
}
*/
*/
*/
*/
printf("Cze±¢, jak masz na imi¦? \n");
scanf("%s", imie)
printf("%s, ile wynosi Twoja waga w kilogramach? \n", imie);
scanf("%f", &waga);
rozmiar = sizeof imie;
litery = strlen(imie);
objetosc = waga / GESTOSC;
printf("A wi¦c, %s, Twoja obj¦to±¢ to %4.4f m^3.\n", imie, objetosc);
printf("Poza tym, Twoje imi¦ skªada si¦ z %d liter.\n", litery);
printf("i mam %d bajtów, aby je przechowa¢.\n", rozmiar);
return 0;
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
9 / 16
Ša«cuchy znakowe i tablice
Ša«cuch znakowy:
ci¡g skªadaj¡cy si¦ z jednego lub wi¦cej znaków. Przykªad:
"Czuªem si¦ jak pies na ªa«cuchu."
Znak zerowy: znak o kodzie ASCII równym 0, oznacza koniec ªa«cucha.
Tablica:
uporz¡dkowany ci¡g danych jednego typu.
char imie[40];
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
10 / 16
Korzystanie z ªa«cuchów
/* chwal_1.c -- wykorzystuje ªa«cuchy */
#include <stdio.h>
#define POCHWALA "Ach, jakie wspaniaªe imi¦!"
int main(void)
{
char imie[40];
}
printf("Jak masz na imi¦?\n");
scanf("%s", imie);
printf("Witaj, %s, %s\n", imie, POCHWALA);
return 0;
Przebieg dziaªania:
Jak masz na imi¦?
Janek Scalak
Witaj, Janek. Ach, jakie wspaniaªe imi¦!
Uwaga: scanf()
dziaªa, dopóki nie napotka znaku niedrukowanego typu spacja,
tabulator lub znak nowej linii.
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
11 / 16
Funkcja strlen()
/* chwal_2.c -- wykorzystuje ªa«cuchy */
#include <stdio.h>
#include <string.h>
/* potrzebne do prototypu strlen() */
#define POCHWALA "Ach, jakie wspaniaªe imi¦!"
int main(void)
{
char imie[40];
}
printf("Jak masz na imi¦?\n");
scanf("%s", imie);
printf("Witaj, %s, %s\n", imie, POCHWALA);
printf("Twoje imi¦ skªadaj¡ce si¦ z %d liter, zajmuje %d komórek pami¦ci.\n",
strlen(imie), sizeof imie);
printf("Pochwaªa skªada si¦ z %d liter ", strlen(POCHWALA));
printf("i zajmuje %d komórek pami¦ci.\n", sizeof POCHWALA);
return 0;
Przebieg dziaªania:
Jak masz na imi¦?
Elwira
Witaj, Elwira, Ach, jakie wspaniaªe imi¦!
Twoje imi¦ skªadaj¡ce si¦ z 6 liter, zajmuje 40 komórek pami¦ci.
Pochwaªa skªada si¦ z 28 liter i zajmuje 29 komórek pami¦ci.
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
12 / 16
Staªe
Staªe symboliczne:
W wyra»eniach wygodniej korzysta¢ z nazwy ni» liczb (np.: pi zamiast
3.14159).
Šatwiej zmieni¢ warto±¢ staªej w jednym miejscu w programie.
Gdy zdeniowana w nagªówku, w czasie kompilacji jest podstawiana warto±¢.
#define NAZWA wartosc
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
13 / 16
Staªe standardowe
Pliki nagªówkowe
limits.h i float.h
zawieraj¡ denicje zakresów liczb typów
caªkowitych i zmiennoprzecinkowych.
printf("Maksymalna warto±¢ typu int w tym systemie = %d", INT_MAX);
Staªa
CHAR_BIT
SHRT_MAX
SHRT_MIN
USHRT_MAX
INT_MAX
INT_MIN
UINT_MAX
LONG_MAX
ULONG_MAX
FLT_MANT_DIG
FLT_DIG
FLT_MIN_10_EXP
FLT_MAX
FLT_EPSILON
Znaczenie
Rozmiar typu char w bitach
Maksymalna warto±¢ typu short
Minimalna warto±¢ typu short
Maksymalna warto±¢ typu unsigned short
Maksymalna warto±¢ typu int
Minimalna warto±¢ typu int
Maksymalna warto±¢ typu unsigned int
Maksymalna warto±¢ typu long
Maksymalna warto±¢ typu unsigned long
Rozmiar mantysy typu float
Minimalna liczba dziei¦tnych cyfr znacz¡cych dla typu float
Minimalny ujemny wykªadnik typu float (podstaw¡ jest 10)
Maksymalna dodatnia warto±¢ typu float
Ró»nica mi¦dzy 1.00 a najmniejsz¡ warto±ci¡ typu float wi¦ksz¡ od
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
1.00
28 marca 2013
14 / 16
Funkcja printf()
Ogólna posta¢ instrukcji
printf():
printf(ªa«cuch-steruj¡cy, element1, element2, ....)
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
15 / 16
Ša«cuch steruj¡cy
Specykator
%c
%d
%e
%E
%f
%g
%E
%o
%p
%s
%u
%x
%X
%%
Dane wyj±ciowe
Pojedynczy znak
Dziesi¦tna liczba caªkowita ze znakiem
Liczba zmiennoprzecinkowa w notacji z liter¡ e
Liczba zmiennoprzecinkowa w notacji z liter¡ E
Liczba zmiennoprzecinkowa w zapisie dziesi¦tnym
Równowa»ny %e, gdy wykªadnik mniejszy ni» −4
lub wi¦kszy/równy dokªadno±ci, inaczej %f
Jak wy»ej, tyle »e z E
Ósemkowa liczba caªkowita bez znaku
wska¹nik
Ša«cuch znakowy
Dziesi¦tna liczba caªkowita bez znaku
Szesnastkowa liczba caªkowita, cyfry szesnastkowe maª¡ liter¡ (0f)
Szesnastkowa liczba caªkowita, cyfry szesnastkowe du»¡ liter¡ (0F)
Wy±wietla znak procentu
Elwira Wachowicz ([email protected])
Typy danych i formatowanie
28 marca 2013
16 / 16

Podobne dokumenty