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