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);