Laboratorium 2:

 

Kompilacja warunkowa, pobieranie danych w C++, generowanie liczb losowych, tablice jednowymiarowe, operacje poprzednikowe i następnikowe, pętle (for, while i do..while). Proste funkcje.

 

 

Przykład 1. Kompilacja warunkowa

 

#include <iostream.h>

#define English 1

 

int main(void)

{

    int one, two;

    cin >> one >> two;

#ifdef English

    cout << "Sum  = ";

#else

    cout << "Suma = ";

#endif

    cout << one + two << endl;

 

    return 0;

}

 

Program wyprowadza sumę dwóch danych wejściowych, poprzedzając ją napisem Sum =. Jeśli w dyrektywie #if zmieni się 1, na 0, to powstanie program, który takiego napisu nie wyprowadzi.

 

 

Przykład 2. Wyznaczanie pierwiastka

 

#include <math.h>

#include <iostream.h>

 

int main(void)

{

    int val = 16;

    double res;

    res = sqrt(val);

    cout << res << endl;

    return 0;

}

 

 

Przykład 3. Wyznaczanie sumy dwóch liczb typu double

 

#include <iostream.h>

 

int main(void)

{

    double dana1, dana2;

    cin >> dana1 >> dana2;

 

    cout << "Suma liczb " << dana1 <<

            " oraz " << dana2 <<

            " wynosi " << dana1 + dana2 << endl;

 

    return 0;

}

 

 

Przykład 4. Generowanie liczb losowych

 

#include <stdlib.h>

#include <iostream.h>

#include <time.h>

 

int main(void)

{

   int i;

   time_t t;

 

   srand((unsigned) time(&t));

   cout << "Ten random numbers from 0 to 99\n" << endl;

 

   for(i=0; i<10; i++)

       cout << (rand() % 100) << endl;

 

   return 0;

  }

 

 

Przykład 5. Suma elementów tablicy  (znajdź błąd w poniższym programie)

 

#include <iostream.h>

 

int tab[] = { 10, 20, 30 };  //delaracja tablicy jednowymiarowej 3 elementowej

 

int main(void)

{

    int size = sizeof(tab) / sizeof(int); //wyznaczenie rozmiaru tablicy

    int suma;

 

    for(int i = 0; i < size ; i++)

        suma += tab[i];

 

    cout << "Suma = " << suma << endl;

    return 0;

}

 

 

Zadanie 1. Napisz program, który wyznaczy pierwiastek kwadratowy z liczby wprowadzonej z klawiatury (UWAGA: zwróć uwagę na obsługę błedów).

 

Zadanie 2. Co będzie wynikiem działania ponizszego programu

 

// Operacje poprzednikowe i następnikowe

 

#include <iostream.h>

 

int main(void)

{

    int f1 = 10,

        f2 = 20;

 

    cout << “Linia 1  ” << f1++ + f2++ << endl;

    cout << “Linia 2  ” << ++f1 + ++f2 << endl;

 

    return 0;

}

 

Zadanie 3. Napisz program wyznaczający sumę kwadratów liczb z zakresu od 0 do n, gdzie n jest całkowite i większe od zera (zwróć uwagę na obsługę błędów). Napisz program w kilku wersjach: dla pętli for, while, do..while zliczanych od początku i od końca. Uwaga: wartość n jest podawana przez uzytkownika.

 

Zadanie 4.  Napisz program wyznaczający sumę dodatnich elementów tablicy jednowymiarowej. Tablica jest wypełniona elementami losowymi z zakresu od –10 do 20.

 

Zadanie 5.  Napisz program wyznaczający sumę elementów poprzedzających pierwszy element ujemny.

 

Zadanie 6.  Napisz funkcje, która w jednowymiarowej tablicy liczb calkowitych znajduje element drugi co do wielkości. Zatosuj pętlę for jak poniżej

 

      for( ; ; ) {

       Tu szukamy naszego elementu drugiego co do wielkości

      ....

      }

 

             Przykładowa deklaracja funkcji:    int Find2Max( int tab1[ ], int size);

 

Zadanie 7.  Napisz funkcje, która porówna zawartość dwóch tablic jednowymiarowych – zwróci wartość 0, jeżeli są równe, 1 jeżeli elementy pierwszej tablicy są większe i –1 jeżeli elementy drugiej tablicy są większe. Deklaracja funkcji znajduje się poniżej:

 

      int TabCompare( int tab1[ ], int tab2[ ], int size);