WYKŁAD 1. PODSTAWY 1_1. Typy zmiennych Proste typy

Transkrypt

WYKŁAD 1. PODSTAWY 1_1. Typy zmiennych Proste typy
WYKŁAD 1. PODSTAWY
1_1. Typy zmiennych
Proste typy zmiennych języka C++
Nazwa typu
Rozmiar
Rodzaj danych
(nazwa skrócona)
(bajtów)
zakres wartości
unsigned char
signed char
(char)
unsigned short int
(unsigned)
signed short int
(int)
(short)
unsigned long int
(unsigned long)
signed long int
(long)
float
*)
Znaki kodu ASCII
0 do 255
Znaki kodu ASCII
–128 do +127
Liczby całkowite bez znaku
0 do 65 535
1
1
2
Liczby całkowite ze znakiem
– 32 768 do + 32 767
2
4
4
4
double *)
8
long double *)
10
Długie liczby całkowite bez znaku
0 do 4 294 967 295
Długie liczby całkowite ze znakiem
–2 147 483 648 do + 2 147 483 647
Liczby rzeczywiste
± ( 3.4 e–38 do 3.4 e+38 )
Liczby rzeczywiste podwójnej precyzji
± ( 1.7 e–308 do 1.7 e+308 )
Długie liczby rzeczywiste podwójnej precyzji
± ( 3.4 e–4932 do 1.1 e+4932 )
*) Zapis 3.4 e-38 jest równoważny zapisowi 3,4•10-38 .
1_2. Deklarowanie zmiennych:
int x;
double suma;
char znak;
long s,wyraz_1,wyraz_2;
//deklaracja z przypisaniem wartości
double suma=0.0;
int licznik1=0, licznik2=1;
1_3. Blok programu. Zakres deklaracji
{ int x;
------{ float x;
---------}
------{ double x;
---------}
---------}
Zakres zmiennej
int x
Zakres zmiennej
float x
Zakres zmiennej
double x
Tutaj zmienna int x
jest przesłonięta
przez zmienną
float x
Zakres zmiennej
int x
Tutaj zmienna int x
jest przesłonięta
przez zmienną
double x
Zakres zmiennej
int x
Ilustracja zasięgu zmiennych lokalnych w blokach zagnieżdżonych
1_4. Definiowanie stałych:
const
const
const
const
int MASA=40;
double EPS=1e-6;
float R=2.0F;
unsigned long DISTANCE=3000UL;
Przyrostki określające format zapisu stałej liczbowej
Przyrostek *)
Format liczby
całkowitej
Format liczby
rzeczywistej
U, u
UL , ul
L,l
F, f
unsigned short int
unsigned long int
signed long int
−−−
−−−
−−−
long double
float
*) Przyrostki
można pisać małymi lub dużymi literami
1_5. Wyprowadzanie danych na ekran – funkcja printf
printf(”k1k2.
. .kn”,
a1,a2,...an);
ki –
kody formatujące dla danych, zależne od ich typu
i żądanej postaci wydruku
ai –
dane(zmienne, stałe, wyrażenia, wywołania funkcji)
Uwaga: W łańcuchu formatującym może się znajdować tekst,
który chcemy wyprowadzić na ekran.
Kody formatujące dla argumentów funkcji printf
Rodzaj argumentu
i kod formatujący
Postać wydruku
a/ liczby całkowite
%d
%i
%o
%u
%x
%X
dziesiętna ze znakiem
dziesiętna ze znakiem
ósemkowa bez znaku
dziesiętna bez znaku
szesnastkowa bez znaku, małe a..f
szesnastkowa bez znaku, duże A..F
b/ liczby rzeczywiste
%e
%E
%f
%g
%G
[-]d . ddd…e [+/-] dd…
[-]d . ddd…E [+/-] dd...
[-]ddd . ddd...
postać e lub f, zależnie od wartości
postać E lub f, zależnie od wartości
c/ znaki i łańcuchy
%c
%s
%%
pojedynczy znak
łańcuch znaków
drukuje znak %
Modyfikator rozmiaru l lub L
Kody dla długich typów całkowitych long, unsigned long po znaku % zawierają
modyfikator l.
• dla typu long: ”% ld”,
• dla typu unsigned long: ”% lu”
Podobnie, dla długich typów rzeczywistych double, long double, napiszemy:
• dla typu double: ”% luf”
• dla typu long double: ”% Lf”
1_6. Pierwszy program. Funkcja główna main
Przykład
Program piszący na ekranie wartości swoich zmiennych
//Dyrektywy włączające zbiory nagłówkowe
#nicuje <conio.h>
#include <stdio.h>
//dla funkcji getch()
//dla funkcji printf()
//Główna funkcja main()musi być w każdym programie.
//Steruje ona wykonaniem programu.
int main()
{
int licz=100;
printf(”\nZmienna \”licz\”
double x=0.005;
printf(”\nZmienna \”x\” to
unsigned waga=15000;
printf(”\nZmienna \”waga\”
printf(”\n%d, %lf, %u to
to %d”, licz);
%lE”, x);
to %u”, waga);
kolejne zmienne.”,licz,x,waga);
getch();
return 0;
}
Po wykonaniu programu na ekranie ukaże się następujący wydruk:
Zmienna ”licz”
Zmienna ”x” to
Zmienna ”waga”
100, 0.005000,
to 100
5.000000E-03
to 15000
15000 to kolejne zmienne.
1_7. Modyfikatory szerokości i precyzji
Przykłady modyfikatorów kodów formatujących
Np. ”%.3lf”
– trzy miejsca po kropce dziesiętnej
”%8.2lf” – liczba rzeczywista na polu długości 8 znaków, 2 miejsca po kropce
”%8d”
– liczba całkowita na polu długości 8 znaków
”%08d”
– liczba całkowita na polu długości 8 znaków, wolne miejsca
przed liczbą wypełnione zerami
Przykład
//program z modyfikatorami kodów formatujących
#include<conio.h>
#include<stdio.h>
int main()
{
double r=2.0/3.0;
long x=-42580;
printf("\n(1): %lf",r);
printf("\n(2): %06.1lf",r);
printf("\n(3): %6.2lf",r);
printf("\n(4): %6.3lf",r);
printf("\n(5): %6.4lf",r);
printf("\n(6): %6.8lf",r);
printf("\n(7): %08ld",x);
printf("\n(8): %8ld",x);
printf("\n(9): %.7ld",x);
printf("\n(10): %8ld",x*x);
printf("\n\n(11): To jest koniec wydruku.");
return 0;
}
Wydruk na ekranie po wykonaniu programu:
(1):
(2):
(3):
(4):
(5):
(6):
(7):
(8):
(9):
(10):
0.666667
0000.7
0.67
0.667
0.6667
0.66666667
-0042580
-42580
-0042580
1813056400
(11): To jest koniec wydruku.
Przykład
//piszpi.cpp
//pisanie liczby typu
#include<conio.h>
#include<stdio.h>
#include<math.h>
double
//dla getch()
//dla printf()
//dla M_PI
int main()
{
printf("\nOto rozne postacie wydruku liczby pi:\n");
printf("\n%le",M_PI);
printf("\n%lE",M_PI);
printf("\n%.2lE",M_PI);
printf("\n%lf",M_PI);
printf("\n%.8lf",M_PI);
printf("\n%12.8lf",M_PI);
printf("\n%14.8lf",M_PI);
printf("\n%16.8lf",M_PI);
getch();
return 0;
}
1.8. Wprowadzanie (czytanie) danych z klawiatury – funkcja scanf
scanf(”k1k2.
. .kn”,&z1,&z2,...&zn);
ki – kody formatujące dla zmiennych, zależne od ich typu
zi – zmienne, których wartości kolejno wprowadzamy
& - operator adresu zmiennej (nie wolno go pominąć!)
Kody formatujące dla argumentów funkcji scanf
Rodzaj argumentu
i kod formatujący
Format wartości wczytywanej
a/ liczby całkowite
%d
%u
%o
%x
dziesiętna ze znakiem
dziesiętna bez znaku
ósemkowa bez znaku
szesnastkowa bez znaku
b/ liczby rzeczywiste
%e lub %f
rzeczywista w dowolnej notacji
c/ znaki i łańcuchy
%c
%s
pojedynczy znak
łańcuch znaków
Przykład
Dialog z użytkownikiem, wykorzystujący funkcje printf oraz scanf.
Wyniki działań na operandach a, b są tutaj argumentami kolejnych funkcji printf.
#include <conio.h>
#include <stdio.h>
int main()
{
double a,b;
printf("\nPodaj a, b: ");
scanf("%lf%lf",&a,&b);
printf("\nWyniki obliczen:");
printf("\n================");
printf("\n a+b=%10.3lE",a+b);
printf("\n a-b=%10.3lE",a-b);
printf("\n b-a=%10.3lE",b-a);
printf("\n a*b=%10.3lE",a*b);
printf("\n a/b=%10.3lE",a/b);
getch();
return 0;
}
Po wprowadzeniu z klawiatury wartości 387.15 oraz 193.25 uzyskamy następującą postać
wydruku:
Podaj a, b: 387.15
Wyniki obliczen:
================
a+b= 5.804E+02
a-b= 1.939E+02
b-a=-1.939E+02
a*b= 7.482E+04
a/b= 2.003E+00
193.25

Podobne dokumenty