8. Typy zmiennych i biblioteki

Transkrypt

8. Typy zmiennych i biblioteki
8. Typy zmiennych i biblioteki
Zadanie 1. Napisz program, który po wpisaniu liczby wypisuje jej przedstawienie w systemie
dwójkowym.
Zadanie 2. Napisz program, który przelicza z systemu dwójkowego na dziesiętny.
Zadanie 3. Uzupełnij tabelę
1 bit = binary digit = 0 lub 1, podstawowa jednostka informacji
1 bajt = 8 bitów, najmniejsza adresowalna jednostka informacji
nazwa typu
rodzaj
bool
logiczny
1
char
znak/liczba
string
ciąg znaków
short
wielkość
(w bitach)
1
8
całkowite
long long
zakres
od
do
false lub true
1
-128
127
nie dotyczy
2
int
16
-32768
32767
4
8
float
double
long double
unsigned
wielkość
(w bajtach)
zmiennoprzecinkowe
(rzeczywiste)
short
int
long long
całkowite
nieujemne
32
precyzja 7-8 cyfr
64
precyzja 15 cyfr
10 (12)
80 (96)
precyzja 20 cyfr
2
16
0
65535
4
8
Zadanie 4. Napisz program, który wczytuje liczbę i wypisuje jej odpowiedni znak ASCII.
Zadanie 5. Napisz program, który wypisuje tablicę kodów ASCII w zakresie char.
Zadanie 6. Co robi ten program? Spróbuj go naprawić.
#include<iostream>
using namespace std;
int main()
{
short z;
z=32767+1;
cout << z;
return 0;
}
1 tablica znaków ASCII na przykład tu: http://guidecpp.cal.pl/extra,ascii . Porównaj Zadania 4 i 5.
Zadanie 7. Napisz program, który wczytuje hasło a następnie prosi o wpisanie go ponownie. Jeśli
poda się błędne, prosi o podanie ponownie - powtarza prośbę do skutku.
* powtarza prośbę 3 razy, potem wypisuje komunikat "Odmowa dostępu" i kończy pracę.
Zadanie 8. Wczytaj dwie liczby całkowite i podaj ich średnią arytmetyczną.
* Wczytaj n liczb całkowitych i podaj ich średnią arytmetyczna.
Zadanie 9. Kolejne dzielenia F[n+1]/F[n] dla ciągu Fibonacciego F[n] dają coraz lepsze
przybliżenia złotego podziału. Podaj dobre przybliżenie na podstawie proporcji setnego oraz sto
pierwszego wyrazu ciągu Fibonacciego.
Zadanie 10. Podaj wyrazy ciągu Fibonacciego używając wzoru Bineta.
Zadanie 11. Podaj dwie liczby a i b w postaci dwójkowej. Program ma wyświetlić wynik działania
a XOR b w postaci dwójkowej. (Wiemy, że 1 XOR 1= 0 XOR 0 = 0 oraz 0 XOR 1 = 1 XOR 0 = 1)
Zadanie 12. Co robi poniższy program?
#include<iostream>
using namespace std;
int main()
{
float x;
cin>>x;
cout.precision(2);
cout<<fixed<<x<<endl;
cout.precision(4);
cout<<x<<endl;
cout.precision(6);
cout<<x<<endl;
cout.precision(8);
cout<<x<<endl;
cout.precision(10);
cout<<x<<endl;
return 0;
}
Co się dzieje, jeśli poda się liczbę 3.66?
Zadanie 13. Co robi ten program? Co się stanie jeśli użytkownik poda 6, a co jeśli z? Spróbuj to
wytłumaczyć.
#include<iostream>
using namespace std;
int main()
{
char c;
cin>>c;
cout<<c+c;
return 0;
}
Zadanie 14. Co robi poniższy program?
#include<iostream>
using namespace std;
int main()
{
int a=1,b=2;
float c=1,d=2;
cout << a/b << " " << c/d;
return 0;
}
Zadanie 15. Ile razy powinna działać poniższa pętla?
#include<iostream>
using namespace std;
int main()
{
for (short z=32767; z<=32768; z++) cout << "Znowu ";
}
Biblioteki to zbiory funkcji. W języku C++ bibliotekę deklaruje się instrukcją
#include<nazwa_biblioteki>
Przykładowe biblioteki to:
iostream
tej biblioteki używamy zwykle
cmath
pozwala użyć funkcji sqrt() oraz pow(,)2
cstdlib
pozwala użyć funkcji rand()
cstdio
printf() , scanf() zamiast cout<< , cin >>
2 Wszystkie funkcje biblioteki opisane są na stronie http://www.cplusplus.com/reference/cmath/
dotyczy to również pozostałych bibliotek
Zadanie 16. Co robi poniższy program? Napisz jego odpowiednik używając biblioteki iostream.
#include <cstdio>
int main()
{
int a1, b1;
scanf("%d%d", &a1, &b1);
printf("%d / %d = %d z reszta %d", a1, b1, a1/b1, a1%b1);
return 0;
}
Zadanie 17. Program losuje liczbę od 1 do 10, użytkownik musi ją zgadnąć. Jeśli zgadnie w 3
próbach, to wygrywa. W przeciwnym wypadku przegrywa.
Zadanie 18. Napisz program, który losuje liczbę od 1 do 20 i prosi użytkownika o jej zgadnięcie. Za
każdym razem, gdy użytkownik podaje niepoprawną odpowiedź program podpowiada, czy
szukana liczba jest mniejsza czy większa. Program kończy pracę, gdy użytkownik zgadnie liczbę.
* zastanów się jaka jest najlepsza strategia zgadywania. Ile maksymalnie należy wtedy zadać
pytań?
Zadanie 19. Napisz program, który wczytuje n i wyświetla na ekranie
log x
0
1
1.58
2
2.32
2.58
2.81
3
3.17
x
1
2
3
4
5
6
7
8
9
x^n
1
2^x
2
...........................odpowiednie wartości...........................
4
8
16
32
64
128
256
512
* Ciąg argumentów x jest wpisywany przez użytkownika i sortowany rosnąco.
** Która spośród tych czterech funkcji jest najmniejsza? Przypomnij sobie granice logx/x oraz
x/expx przy x zbiegającym do nieskończoności.
Zadanie 20*. Nie używając żadnej dodatkowej biblioteki przybliż liczbę e z dokładnością do 2
miejsc po przecinku. Wskazówka: użyj na przykład rozwinięcia w szereg Taylora.
Zadanie 21. Napisz program, który dodaje i mnoży dwa wielomiany. Dokładniej: program wczytuje
stopień wielomianu, następnie kolejno jego współczynniki, robi tak samo z drugim. Następnie
wyświetla wynik działania.
Przykładowo (kursywą są dane podawane przez użytkownika):
Podaj stopień pierwszego wielomianu: 1
Podaj współczynnik przy x: 2
Podaj wyraz wolny: 3
Podaj stopień drugiego wielomianu: 1
Podaj współczynnik przy x: 3
Podaj wyraz wolny: 3
Wynik dodawania to: 5 x + 6
Wynik mnożenia to: 6 x^2 + 15 x + 9