background image

 

 

UNIWERSYTET TECHNOLOGICZNO-PRZYRODNICZY 

w Bydgoszczy 

 

ZAKŁAD ELEKTROENERGETYKI 

 

 

 

 

 

 

LABORATORIUM INFORMATYKI 

 

 

INSTRUKCJA DO ĆWICZENIA II 

 

Zmienne, wprowadzanie danych do programu i wyprowadzanie na ekran 

Instrukcje warunkowe 

 
 

 

 

 

 

 

 

 

Opracował:   dr inż. Marcin Drechny 

 

 

 

 
 
 

Luty 2010r. 

 

background image

 

 

2

1. Cel ćwiczenia 

Celem  tego  ćwiczenia  jest  poznanie  sposobu  deklaracji  i  stosowania  zmiennych  oraz 

wyprowadzanie  i  wprowadzanie  danych  z  i  do  programu.  Ponadto  ćwiczenie  umożliwia 

zapoznanie się ze sposobami korzystania z instrukcji warunkowych występujących w języku 

C++. 

  

2. Wprowadzenie  

2.1. Zmienne 

Tworząc  programy  złożone,  zmuszeni  jesteśmy  przechowywać  różne  wartości 

(liczbowe  lub  tekstowe).  Programy  przechowują  te  dane  w  konkretnych  miejscach  pamięci 

komputera. Aby korzystać z tych danych należy używać zmiennych. 

Zmienna jest nazwą miejsca w pamięci, które może przechowywać konkretną wartość. 

Każda zmienna ma swój typ i swoją nazwę, np. 

 

 

 

Long Pole; 

 

 

 

Long Obwod; 

 gdzie, typ zmiennych to long a ich nazwa to Pole oraz Obwod

Typ  zmiennej  określa  typ  wartości  jakie  może  ona  przechowywać  (liczba  całkowita, 

rzeczywista, ciąg znaków), 

Do przypisywania zmiennym wartości służy operator przypisania, czyli znak równości np. 

 

 

 

Promien = 3; 

Deklarując  nazwy  zmiennych  (ich  identyfikatory),  należy  pamiętać  o  regułach  nadawania 

nazw  (identyfikatorów)  czyli  m.  in.  nie  używania  słów  kluczowych.  A  nazwy  zmiennych 

należy nadawać tak aby program był bardziej zrozumiały i czytelny. 

Słowa kluczowe określające typy zmiennych całkowitych: 

•  char - typ znakowy, 

•  int  - typ całkowity, 

•  long - typ długich liczb całkowitych, 

•  signed - liczby ze znakiem, 

•  short - typ krótkich liczb całkowitych, 

•  unsigned - liczby bez znaku. 

 

Słów kluczowych wymienionych wcześniej używa się zwykle w połączeniu np. signed char,  

unsigned short int

signed long int.  

background image

 

 

3

Obecność niektórych słów jest przyjmowana domyślnie np. int - oznacza liczbę całkowitą ze 

znakiem  czyli  signed  short  int,  unsigned  long  jest  równoważne  unsigned  long  int.  Dlatego 

często  deklarujemy  zmienne  w  skrócie  określając  typ  zmiennych:  int,  long,  char,  unsigned 

long

unsigned int. 

Słowa kluczowe określające typy zmiennych rzeczywistych: 

•  float - liczby rzeczywiste pojedynczej precyzji, 

•  double - liczby rzeczywiste podwójnej precyzji, 

•  long double - liczby rzeczywiste wysokiej precyzji. 

 

Zakresy zmiennych: 

Typ zmiennej 

Rozmiar w 

bitach 

Min 

Max 

unsigned char 

255 

signed char 

-128 

127 

short int 

16 

-32768 

32767 

unsigned int 

32 

4 294 967 295 

int 

32 

-2 147 483 648 

2 147 483 647 

unsigned long 

32 

4 294 967 295 

long 

32  

-2 147 483 648 

2 147 483 647 

float 

32 

1,18*10

-38

 

3,40*10

38

 

double 

64 

2,23*10

-308

 

1,79*10

308

 

long double 

80 

3,37*10

-4932 

1,18*10

4932

 

 

 

Deklaracja zmiennych w języku C++ odbywa się w następujący sposób: 

•  na początku podajemy typ zmiennej deklarowanej, 

•  następnie  podajemy  nazwę  zmiennej  deklarowanej  pamiętając  o  zasadach  nadawania     

identyfikatorów, 

•  za koniec dodajemy znak średnika. 

 

Przykład: 

int liczba1; 

long int zmienna; 

 

Język  C++  dopuszcza  deklarowanie  w  jednym  wierszu  wielu  zmiennych  tego  samego  typu 

np. 

int liczba1, liczba2, liczba3, wartosc, dana; 

Istnieje możliwość nadania wartości początkowej zmiennej w czasie jej deklaracji np. 

double liczba = 3.56754;

 

background image

 

 

4

Deklaracja  zmiennej  tekstowej  odbywa  się  za  pomocą  deklarowania  tablicy  zmiennych 

znakowych char np. 

 

  char imie[10] = "Jan"; 

  char nazwisko[20] = "Kowalski"; 

 

Cyfry 10 i 20 w nawiasach kwadratowych oznaczają rozmiar tablicy (ilość znaków tablicy). 

Przypisanie zmiennej tekstowej wartości może odbywać się na kilka sposobów np. za pomocą 

wprowadzenia  tekstu  z  klawiatury  instrukcją  cin  czy  przypisanie  tekstu  podczas  inicjacji 

zmiennej (co zostało pokazane powyżej). 

 

W języku  C++  rozróżniamy  zmienne  lokalne i  globalne.  Zmienne  lokalne  to  takie  zmienne, 

których  widoczność  (zasięg  działania)  ogranicza  się  do  bloku  programu  ujętego  w  nawiasy 

klamrowe. Np. 

 

void  main(void) 

 int dana; 

 ..... 

 ..... 

 

 ..... 

 

W  powyższym  przykładzie  zmienna  dana  jest  widoczna  dla  funkcji  main.  Deklaracja 

zmiennych  może  odbywać  się  w  dowolnym  miejscu  w  bloku  programu,  lecz  najlepiej 

(najbardziej przejrzyście) zapisywać deklaracje za znakiem {

 

Zmienna dana i wynik będzie także widoczna w pętli for umieszczonej w funkcji main

 

#include <vcl.h> 

#include <conio.h> 

#include <iostream.h> 

 

background image

 

 

5

void main(void) 

        int dana = 8; 

        int wynik = 1; 

 

        for (int i = 1; i <= dana; i++) 

        { 

                wynik *= i; 

                printf("Iloczyn = %d\n",wynik); 

        } 

 

        getch(); 

 

}

 

Zmienne  globalne  są  to  zmienne,  które  są  widoczne  w  całym  pliku  kodu  źródłowego  od 

miejsca deklaracji.  

 

Przykład: 

 

#include <vcl.h> 

#include <conio.h> 

#include <iostream.h> 

 

int liczba = 100; 

void zamiana(void) 

  liczba++; 

  cout << "Wartosc zmiennej w funkcji zmiana jest rowna: "  << liczba << endl; 

background image

 

 

6

void main(void) 

  liczba++; 

  cout << "Wartosc zmiennej w funkcji main jest rowna: " << liczba << endl; 

  zamiana(); 

  getch(); 

 

 

 

Wynikiem działania programu jest wyświetlanie wartości zmiennej liczba która wynosi: 

101  a  następnie  102.  Czyli  deklaracja  i  działanie  zmiennych  globalnych  jest  podobne  do 

działania i deklaracji zmiennych lokalnych 

 

Język  C++  dopuszcza  nadawanie  takich  samych  nazw  dla  zmiennej  lokalnej  i  globalnej.  W 

takim  przypadku  trzeba  znać  reguły  postępowania  aby  poprawnie  korzystać  z  tych 

zmiennych.  W  sytuacjach  konfliktowych  kompilator  daje  priorytet  zmiennej  lokalnej.  Jest 

możliwość odwołania się z dowolnej funkcji do zmiennej globalnej w przypadku gdy istnieje 

w tym bloku programu zmienna lokalna o takiej samej nazwie. Odwołanie to odbywa się przy 

użyciu operatora widoczności ::.  

Przykład:           

 

 

 

::dana = 1; 

Jedną z zasad programowania w C++ jest zasada unikania zmiennych globalnych. 

 

Nadając nazwy zmiennym należy: 

•  nadawać nazwy które kojarzą się z daną zmienną,  

•  nie nadawać nazw słów kluczowych, 

•  pisać komentarze obok zmiennych, opisując cel ich stosowania, 

•  pamiętać o regułach nadawania nazw (identyfikatorów) w języku C++. 

 

 

background image

 

 

7

2.2. Przypisywanie wartości zmiennym 

Zmiennym  w  C++  możemy  przypisać  wartości  na  dwa  sposoby  (używamy  operatora 

przypisania =): 

 

•  podczas deklaracji zmiennej np. 

 

 

int zmienna = 20; 

 

 

float liczba = 123.78; 

 

•  w dowolnym miejscu w programie (po uprzedniej deklaracji typów zmiennych) np. 

 

 

int zmienna; 

 

 

float liczba; 

 

 

................ 

 

 

................ 

 

 

zmienna = 20; 

 

 

liczba = 123.78; 

 

Przypisując wartość zmiennym należy pamiętać o typie zmiennej. 

 

2.3. Operacje wejścia wyjścia 

Używając  standardowego  strumienia  wyjściowego  cout  (umieszczonego  w  bibliotece    

iostream.h) 

można wyświetlać na ekranie monitora liczby i znaki,   

 

cout << ”tekst”; 

cout << zmienna;

 

 

Przykład: 

#include <vcl.h> 

#include <iostream.h> 

#include <conio.h> 

 

void main (void) 

  int  dana = 34; 

  cout << "To jest komunikat "; 

background image

 

 

8

  cout << 123 << " "; 

  cout << "Wartosc zmiennej dana wynosi: " << dana; 

  cout << endl << "Przejscie do nastepnej linii"; 

  getch(); 

 

 

 

Wczytywanie  danych  z  klawiatury  i  przypisanie  ich  do  zmiennych  można  wykonać  za 

pomocą instrukcji strumieniowej cin 

   

cin >> zmienna [ >> zmienna] 

 

Przykład: 

 

#include <vcl.h> 

#include <iostream.h> 

#include <conio.h> 

 

void main (void) 

        int zmienna1, zmienna2, zmienna3; 

        cout << "Podaj jedna liczbe calkowita i nacisnij enter "; 

        cin >> zmienna1; 

        cout << endl << "Podaj dwie liczby calkowite oddzielone spacja "; 

        cin >> zmienna2 >> zmienna3; 

        cout << endl << "Wpisane liczby to: " << zmienna1 << " i " << zmienna2 << " oraz "   

  

 

 

 

 

 

 

 

 

 

<< zmienna3; 

        getch();                                                                                                                            

zmienna3; 

 

background image

 

 

9

 

 

Korzystając z tej instrukcji wprowadzania danych należy pamiętać o możliwości wystąpienia 

błędów nadmiaru jak i błędy typów. Powstanie tego typu błędów wiąże się z wprowadzeniem 

przez użytkownika niepoprawnej liczby czy tekstu. 

Język C/C++ pozwala korzystać z kilku metod wejścia - wyjścia. Oprócz podanych wcześniej 

cin

 oraz cout istnieje biblioteka zawierająca wiele różnych operacji wejścia - wyjścia - stdio.h 

 

Przykładowe operacje: 

•  otwieranie i zamykanie strumieni: fclose, fopen, freopen, 

•  podstawowe funkcje wyjścia: fputc, fputs, fwrite, puts, putc,  

•  wyjście sformatowane: printf, sprintf,  

•  podstawowe funkcje wejścia: getc, gets, fgets, fread, getchar,  

•  wejście sformatowane: fscanf, scanf, vscanf, 

•  sterowanie wskaźnikiem pozycji strumienia: fgetpos, fseek,  

 

2.4. Instrukcje warunkowe 

Instrukcja warunkowa if sprawdza czy badana zależność (wyrażenie warunkowe) zachodzi  

czy nie. Jeśli tak to wykonywana jest Instrukcja1, jeśli nie to nic nie jest wykonywane lub 

możliwe jest wykonanie Instrukcji2. 

 

if (wyrażenie warunkowe) instrukcja1 [else instrukcja2] 

 

Przykłady: 

•  instrukcja prosta I:    

 

 

if (a<= b) 

 

 

   c = 2; 

•  instrukcja prosta II:  

 

 

if (a <= b) 

 

 

   c = 2; 

background image

 

 

10

 

 

else 

 

 

   c = 1; 

 

 

•  instrukcja złożona (grupowanie instrukcji):  

 

if (a <= b) 

 

{   

 

   c = 2; 

 

  d = 3; 

 

 

else 

 

 

   c = 1; 

 

   d += c; 

 

 

•  instrukcja złożona (zagnieżdżanie  instrukcji I):  

 

if (a <= b) 

 

{   

 

  if (i == 0) 

 

   

 c = 2; 

 

  d = 3; 

 

 

else 

 

 

   c = 1; 

 

   d += c; 

 

 

}

 

 

•  instrukcja złożona (zagnieżdżanie  instrukcji II):  

 

if (a > b) 

 

{   

 

  c = 1; 

 

  d = 2; 

 

background image

 

 

11

 

else  

 

 if (a == b) 

 

 { 

 

   c = 2; 

 

   d = 3; 

 

 

}  

 

else 

 

 { 

  

   c = 3; 

 

   d = 4; 

 

 } 

 

Instrukcja  switch  pozwala  przenieść  wykonywanie  programu  (poprzez  wybór  odpowiedniej 

opcji) do wskazanego miejsca. Postać ogólna instrukcji sterującej:  

 

switch (wyrażenie sterujące) 

  { 

    etykieta-wyboru 

instrukcje; 

    ..........................................; 

    etykieta-wyboru 

instrukcje; 

  } 

 

Przykład: 

#include <vcl.h> 

#include <iostream.h> 

#include <conio.h> 

 

void main (void) 

cout << "Nacisnij klawisz z zakresu: 0-9 i a-z" << endl; 

char klawisz = getch(); 

switch (klawisz) 

  

case '1': 

cout << "Wybrales klawisz 1"; 

background image

 

 

12

 

 

break; 

 

case 'a': 

cout << "Wybrales klawisz a"; 

 

 

break; 

 

default: 

cout << "Wybrales klawisz rozny od 1 i a"; 

 

        getch(); 

 

 

 

Opcja  default  jest  etykietą  domyślną  wyboru.  Program  przechodzi  w  to  miejsce  gdy  nie 

znajdzie  odpowiedniej  etykiety  po  wyrażeniu  case.  Instrukcja  break  wymusza  zakończenie  

wykonywania instrukcji wyboru. 

 

2.5. Błędy podczas programowania 

Najczęściej popełniane błędy w trakcie programowania to: 

 

Błędy syntaktyczne 

Każdy  język  ma  swój  zbiór  reguł.  Ma  go  też  C/C++.  Zdania  w  języku  polskim  kończą  się    

zwykle kropką, wykrzyknikiem lub znakiem zapytania. Analogicznie na początku zdania jest 

duża  litera.  Język  C++  w  swojej  składni  używa  nawiasów,  nawiasów  klamrowych, 

cudzysłowów  oraz  wielu  innych  symboli.  Używając  ich  w  nieprawidłowy  sposób    

uniemożliwiamy  kompilatorowi  utworzenie  pliku  wykonywalnego.  Kompilator  w  trakcie 

kompilacji  zasygnalizuje  w  którym  wierszu  wystąpił  błąd  (błędy).  Po  ich  usunięciu 

kompilator utworzy plik wykonywalny.  

 

Błędy nadmiaru 

Błędy  tego  typu  są  niezwykle  trudne  do  wykrycia  i  poprawienia.  W  momencie  ich  

wystąpienia  kompilator  nie  sygnalizuje  ich.  Błędy  te  powstają  na  skutek  przypisania 

zmiennym wartości wykraczające poza pojemność przydzielonego miejsca w pamięci.  

background image

 

 

13

Przykład błędu nadmiaru:  

 

 

 

 

int liczba1 = 2147483647; 

 

 

 

int liczba2 = 1; 

 

 

 

int wynik = 0; 

 

 

 

wynik = liczba1 + liczba2; 

 

W  wyniku  wykonania  tej  operacji  otrzymamy  wynik  =  -2147483648.  Zakres  typu  int:  

-2147483648 do 2147483647. Operując na zmiennych trzeba zawsze mieć na uwadze zakres 

wartości jaki może przechowywać dana zmienna czy dane zmienne. 

 

Błędy typów 

Występujące  często  przy  wprowadzaniu  z  klawiatury  danych  do  programu.  Jeżeli  do 

programu  wprowadzimy  dane  typu  niezgodnego  z  oczekiwanym  przez  program,  wystąpią 

błędy  powodujące  zakończenie  pracy  programu  lub  błędne  wprowadzenie  danych  do 

zmiennej  (zmiennych).  Dlatego  trzeba  pamiętać,  aby  program  został  prawidłowo 

zabezpieczony przed takimi błędami. 

 

2.6. Operatory 

Operatory arytmetyczne 

Operatory arytmetyczne dzielimy na operatory: inkrementacji, dekrementacji, addytywne  

oraz multiplikatywne. 

•  Operatory addytywne: +, - 

 

 

operand1 + operand2

  

- dodawanie operandów 

 

 

                       operand 1 - opreand2  

- odejmowanie operandów 

 

•  Operatory multiplikatywne: *, /, % 

 

 

operand1 * operand2 

 

- mnożenie operandów 

 

 

operand1 / operand2

   

- dzielenie operandów 

 

 

operand1 % operand2

 

- reszta z dzielenia 

 

•  Operator inkrementacji i dekrementacji: ++, -- 

 

 

++operand

 

 

- przedrostkowy operator inkrementacji 

 

 

operand++

 

 

- przyrostkowy operator inkrementacji 

background image

 

 

14

 

 

--operand

 

 

- przedrostkowy operator dekrementacji 

 

 

operand-- 

 

- przyrostkowy operator dekrementacji 

 
Wyjaśnienie działania operatorów de - i inkrementacji: 

Operator  inkrementacji  ++  powoduje,  że  operand  zwiększa  swoją  wartość  o  1,  natomiast 

operator  dekrementacji  --  powoduje  zmniejszenie  się  wartości  operandu  o  1.  Istotne  jest 

umieszczenie  operatora  --  lub  ++.  Jeśli  operator  zostanie  umieszczony  przed  operandem, 

najpierw zostanie powiększona (pomniejszona) wartość operandu a potem zostanie obliczone 

wyrażenie, w którym znajduje się taki operand. Inna sytuacja jest wtedy, gdy operator został 

umieszczony  po  operandzie.  W  tym  przypadku  najpierw  zostaje  obliczone  wyrażenie  w 

którym  znajduje  się  operand  a  następnie  operand  zwiększa  (zmniejsza)  swoja  wartość  o  1. 

Działanie tych operatorów zostanie pokazane na przykładzie. 

Przykład:  

 

 

int liczba1 = 2, liczba2 = 7, wynik; 

 

 

wynik = (liczba2--) - (++liczba1); 

 

Obliczenie  wyniku  przebiega  w  następujący  sposób:  od  wartości  zmiennej  liczba2  odjęta 

zostaje  wartość  zmiennej  liczba1  zwiększona  o  1.  Czyli  zmienna  wynik  =  4.  Następnie 

wartość  zmiennej  liczba2  zostaje  zmniejszona  o  1.  W  ten  sposób  końcowe  wartości 

zmiennych liczba1 = 3 a liczba2 = 6. 

 

Operatory bitowe 

Za  pomocą  operatorów  bitowych  można  realizować  funkcje  logiczne  takie  jak:  OR,  AND, 

EXOR, NOT. 

Operatory funkcji binarnych: 

•  operand1 & operand2  

- iloczyn (AND)  

•  operand1 ^ operand2  

- suma modulo 2 (EXOR) 

•  opreand1 operand2   

- alternatywa (OR) 

•  ~operand1 – negacja 

 

Korzystając  z  tych  operatorów  należy  zdawać  sobie  sprawę,  że  działają  one  na  bitach  oraz 

znać  zasady  działania  tychże  operatorów.  Korzystnie jest  wtedy  zapisywać  liczby  w  postaci 

binarnej (dwójkowej) lub szesnastkowej.  

 

background image

 

 

15

Przykład: 

int liczba1 = 0x01; 

int liczba2 = 0x02; 

int wynik; 

wynik = (liczba1 & liczba2); 

Wynikiem działania tego programu jest wartość 0. 

 
Operatory logiczne 
Operatory logiczne działają na wartościach logicznych: prawda oraz fałsz. 

Reprezentacja wartości logicznych:  

•  Prawda  

liczba całkowita większa od zera, 

•  Fałsz    

- zero (całkowite), 

 

Operandy i wyrażenia logiczne: 

•  operand1 && operand2  

- koniunkcja 

•  operand1 II operand2  

- alternatywa 

•  !operand1 – negacja 

 

Przykład: 

Dane jest równanie ax^2 + by = 0 

 

if (a != 0 && b == 0) 

   cout << ”Rownanie ma jeden podwojny pierwiastek w zerze”;

 

 

Operatory przesunięcia

 

Operatory przesunięcia w prawo >> i w lewo <<. Operatory te działają na bitach. Wyrażenia z 

operatorami przesunięcia: 

•  operand1 << operand2  

- przesuń operand1 w lewo o operand2 bitów 

•  operand1 >> operand2 

- przesuń operand1 w prawo o operand2 bitów 

 

Operandy musza być typów całkowitych.  

Przy  przesuwaniu  liczb  bez  znaku  w  lewo,  młodsze  bity  są  uzupełniane  zerami.  Przy 

przesuwaniu liczb bez znaku w prawo, wszystko zależy od operandu1. Jeśli jest on liczbą bez 

background image

 

 

16

znaku  to  najstarsze  bity  są  uzupełniane  zerami,  w  przeciwnym  razie  są  uzupełniane  bitami 

znaku. 

 

Przykład: 

a = 6 

c = a << 2; 

 

W tym przykładzie c będzie miało wartość 24, ponieważ a = 00000110, przesuwamy w lewo 

o  2  czyli  c  =  00011000  a  to  jest  liczba  24.  Przy  przesuwaniu  liczby  ze  znakiem,  należy 

uważać  aby  nie  zmienić  bitu  znaku  na  przeciwny.  Taka  zmiana  jest  spowodowana 

kodowaniem liczby w kodzie uzupełnień do 2. 

 
Operatory przypisania 

 

Prosty operator przypisania:     = 

Złożone operatory przypisania: +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= 

Prosty operator: 

•  operand1 = operand2  

- przypisanie wartości operandu2 operandowi1 

 

 

 

Przykład 

int a, b, c, d; 

a = 12; 

b = c = d = 5;  

 

Złożone operatory: 

Konstrukcja  tych  operatorów  składa  się  z  operatorów  wcześniej  poznanych  i  operatora 

przypisania.  Sposób  korzystania  z  tych  operatorów  został  przedstawiony  na  przykładzie 

poniżej. 

a += b + c

 zastępuje zapis a = a + b + c 

a *= b

 zastępuje zapis  a = a * b 

 

background image

 

 

17

Operatory porównania 
Zachodzące relacje pomiędzy operandami określają operatory relacyjne. Operatory relacyjne i 

relacje w języku C++: 

•  operand1 > operand2 

- operand1 większy niż operand2 

•  operand1 < operand2 

- operand1 mniejszy niż operand2 

•  operand1 <= operand2 

- operand1 mniejszy równy od operandu2 

•  operand1 >= operand2 

- operand1 większy równy operandu2 

•  operand1 == operand2 

- operand1 równy operandu2 

•  operand1 != operand2 

- operand1 różny od operandu2 

 

Przykłady: 

•  if (a == b) 

•  if (a != b) 

•  if ((a > b) && (c <= d))  

 

background image

 

 

18

3. Przebieg ćwiczenia – zadania do wykonania 

Wymagana znajomość zagadnień z ćwiczenia 1. 

 

3.1. Przepisać przykład z ćwiczenia Inf_2_1 (punkt 2.4) (Pole i obwód koła) i uruchomić go.  

 

3.2. Zmodyfikować  program  z  zadania  3.1.  tak,  aby  wartość  zmiennej  Promien  była 

wczytywana z klawiatury. 

 

3.3. Zadeklarować dwie zmienne liczbowe, przypisać im wartości i wyświetlić wynik operacji    

 dodawania, odejmowania, mnożenia i dzielenia (z opisem co to za operacja). 

 

3.4. Zmodyfikować  zadanie  z  ćwiczenia  3.3  w  taki  sposób,  aby  liczby  wczytywane  były  

z klawiatury. 

 

3.5. Sprawdzić błędy przepełnienia np. dla zmiennych typu int (dla kompilatora Borland C++ 

Builder 6). 

 

3.6. Napisz  program,  który  wczytuje  z  klawiatury  liczbę  i  podaje  jej  kwadrat,  sześcian  i 

pierwiastek (użyć funkcji pow). 

 

3.7.Napisz program, który sprawdza czy wprowadzona z klawiatury liczba jest z określonego 

zakresu np. <-5, 10>. Wyświetlić odpowiedni komunikat. 

 

3.8. Napisz  program,  który  wyznacza  największą  i  najmniejszą  liczbę  spośród  trzech 

podanych przez użytkownika wartości a, b, c

 

3.9. Napisz  program,  który  wyświetli  trzy  podane  przez  użytkownika  wartości:  a,  b,  c  

 w kolejności rosnącej (malejącej). 

 

3.10. Napisać  program  do  obliczania  równania  kwadratowego.  Dane  wczytywane  są  

   z klawiatury. 

 

background image

 

 

19

3.11.  Napisz  program,  który  automatycznie  wystawia  ocenę  w  zależności  od  ilości 

wpisanych  z  klawiatury  punktów.  Przykładowa  zależność  oceny  od  ilości  zdobytych 

punktów: 

 

Zakres punktów 

Ocena 

<0, 60) 

<60, 73) 

<73, 86) 

<86, 100> 

 

           Punkty mogą przyjmować wartości za zbioru liczb rzeczywistych. 

 

3.12.  Napisz  program,  który  wykonuje  operacje  bitowe  AND  i  OR  na  dwóch 

wprowadzonych z klawiatury liczbach (z zakresu od 0 do 255) (deklaracja typu liczb 

unsigned  int).  Utworzyć  menu  wyboru  operacji  tz.  naciśnięcie  klawisza  1  powoduje 

obliczenie i wyświetlenie wyniku operacji AND, 2 – OR. Do tworzenia menu należy 

użyć instrukcji switch. 

 

3.13.  Napisz  program,  który  wykonuje  bitową  operację  przesunięcia  na  liczbie 

wprowadzonej z klawiatury  (z zakresu od 0 do 255) (deklaracja typu liczb unsigned 

int). Program pobiera dwie dane: liczbę i wartość przesunięcia (w lewo lub w prawo). 

 

 

 

 

background image

 

 

20

4.

  Proponowana literatura: 

-  Robert Sedgewick, Algorytmy w C++, Wydawnictwo RM, Warszawa 1999, 

-  Harvey  M.  Dietel,  Paul  J.  Dietel,  Arkana  C++:  programowanie,  Wydawnictwo  RM,  

Warszawa, 1998, 

-  Nabajyoti Bakarati, Biblia Turbo C++, LT & P, Warszawa, 1993, 

-  P. J. Plauger, Biblioteka standardowa C++, WNT, Warszawa, 1997, 

-  Namir  C.  Shammas,  Borland  C++  4  kurs  na  zderzenie:  [najszybszy  sposób  nauki 

programowania !]

, Intersoftland, Warszawa, 1995, 

-  Piotr Metzger, C++: pierwsze kroki, Helion, Gliwice, 1994, 

-  Jesse Liberty, C++: ksiega eksperta, Helion, Gliwice 1999, 

-  Tony L. Hansen, C++: zadania i odpowiedzi, WNT, Warszwa, 1994, 

-  Davis Stephen R., C++ dla opornych, Oficyna wydawnicza Read Me, Warszawa, 1995, 

-  Paul Snaith, C++ nie tylko dla orłów, Intersoftland, Warszawa, 2000, 

-  Adam Majczak, C++ w 48 godzin, Intersoftland, Warszawa, 1993, 

-  Tomasz  Kopacz,  Język  C  w  praktyce:  Turbo  C  i  C++,  Zakład  Nauczania  Informatyki 

Mikom, Warszawa, 1993, 

-  Kisielewicz Jerzy, Język C w środowisku Borland C++, Oficyna wydawnicza Politechniki  

Wrocławskiej, Wrocław, 1998, 

-  David Vandevoorde, Język C++; ćwiczenia i rozwiązania, WNT, Warszawa, 2001, 

-  Bjarne Stroustrup, Język C++, WNT, Warszawa 1994, 1995, 2000, 

-  Alan  Neibauer,  Języki  C  i  C++:  twój  pierwszy  program,  Komputerowa  Oficyna 

Wydawnicza Help, Warszawa, 1995, 

-  Clovis L. Tondo, Bruce P. Lenug, Podstawy języka C++: ćwiczenia i rozwiązania, WNT, 

Warszawa, 2001, 

-  Stanley B. Lippman, Podstawy języka C++, WNT, Warszawa, 1994, 1996, 2001, 

-  Adam Majczak, Praktyczne programowanie w C++, Intersoftland, Warszawa, 1996, 

-  Steven Holzner, Programowanie w Borland C++, Intersoftland, Warszawa, 1993, 

-  Andrzej  Zalewski,  Programowanie  w  językach  C  i  C++  z  wykorzystaniem  pakietu 

Borland C++, Wydawnictwo Nakom, Poznań, 1994, 1997, 1998, 

-  Paweł Chomicz, Robert Ulijasz, Programowanie w jezyku C i C++, Wydawnictwo PLJ,  

Warszawa, 1992, 

-  Kris Jamsa, Wygraj z C++, Zakład Nauczania Informatyki Mikom, Warszawa, 1996, 

-  Conor Sexton, Język C++ to proste, Wydawnictwo RM, Warszawa, 2001, 

background image

 

 

21

-  Alan  R.  Neibauer,  Języki  C  i  C++.  Twój  pierwszy  program,  Komputerowa  Oficyna 

Wydawnicza HELP, Warszawa, 1995, 

-  Wiesław  Porębski,  Programowanie  w  języku  C++,  Komputerowa  Oficyna  Wydawnicza 

HELP, Warszawa, 2001, 

Adam  Majczak,  C++  dla  licealistów  i  studentów,  Wydawnictwo  Translator  S.C., 

Warszawa, 2003.