Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.
6. Struktury.
Struktura w przeciwieństwie do tablicy pozwala na przechowywanie zmiennych różnych
typów w jednym bloku. Dostęp do pól struktury uzyskujemy w taki sam sposób jak do pól
obiektów podając nazwę zmiennej reprezentującej strukturę oraz nazwę pola rozdzielone kropką.
Kod programu:
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
Podstawy informatyki
9
#pragma argsused
struct miasto
{
char kraj[60];
long ludnosc;
};
struct miasto lodz = {"Polska", 800000};
void main()
{
clrscr();
cout << "Dane dla miasta Lodz:";
cout << "\n\nLodz dane: ";
cout << "\n\nkraj: " << lodz.kraj;
cout << "\n\nludnosc: " << lodz.ludnosc;
getch();
}
Na ekranie zobaczymy:
Dane dla miasta Lodz:
Lodz dane:
kraj: Polska
ludnosc: 800000
2.7. Inkrementacja.
Kod programu:
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
#pragma argsused
int i =0;
void main()
{
cout << i++ <<", ";
cout << i <<", ";
cout << (i += 1) <<", ";
cout << (i -= 1) <<", ";
cout << (++i) <<", ";
cout << i;
Podstawy informatyki
10
getch();
}
Na ekranie zobaczymy:
0, 1, 2, 1, 2, 2
Można zauważyć, że chwila zwiększenia wartości indeksu zależy od położenia znaków ++
w stosunku do zmiennej indeksowanej. Mówimy o postinkrementacji, w której najpierw zostanie
wykonana instrukcja przy wykorzystaniu aktualnej wartości indeksu a potem jego zwiększenie
lub preinkrementacji, w przypadku której najpierw zostanie zwiększona wartość indeksu
a następnie wykonana instrukcja go zawierająca.
2.8. Prosty kalkulator - instrukcja sterująca Switch.
Kod programu:
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
#pragma argsused
void main()
{
char str;
float x, y;
cout << "wprowadz dwie liczby i znak operacji +,-,*,/ \n";
cin >> x >> y >> str;
switch (str)
{
case '+':
cout << (x+y);
break;
case '-':
cout << (x-y);
break;
case '*':
cout << (x*y);
break;
case '/':
cout << (x/y);
break;
default:
cout << " Nieprawidlowe dzialanie ";
}
cout << endl << "Nacisnij klawisz...";
getch();
}
Podstawy informatyki
11
Na ekranie zobaczymy:
wprowadz dwie liczby i znak operacji +,-,*,/
234
345
/
0.678261
Nacisnij klawisz...
Należy pamiętać, że parametrem instrukcji switch może być dowolna zmienna
reprezentowana przez liczbę całkowitą np.: integer, char, enum.
2.9. If i While - sprawdzenie parzystości liczby.
W języku C przyjmuje się, że każda wartość liczby z wyjątkiem 0 w warunku instrukcji
logicznej if odpowiada prawdzie. Ta właściwość języka wykorzystana została w przykładzie do
stwierdzenia, czy liczba od której wielokrotnie odejmowano liczbę 2 (do momentu w którym
wynik nie był większy od jedności) jest liczbą parzystą czy też nie.
Kod programu:
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
#pragma argsused
void main()
{
int liczba, druga;
cout << "wprowadz liczbe \n";
cin >> liczba;
druga = liczba;
while (druga>1) druga = druga-2;
{
if (druga) cout << "liczba1 " <<liczba << " jest nieparzysta";
else cout << "liczba2 " <<liczba << " jest parzysta";
}
getch();
}
Na ekranie zobaczymy:
wprowadz liczbe
377
liczba1 377 jest nieparzysta
Podstawy informatyki
12
2.10. While - wyznaczanie silni wykorzystanie zmiennej lokalnej
i globalnej.
W przykładzie tym należy zwrócić uwagę na wykorzystanie zmiennej globalnej i lokalnej
przesłaniającej w bloku funkcyjnym zmienną globalną. Zmienna lokalna „licz” przechowuje
w bloku funkcyjnym wartość chwilową silni w pętli while i jednocześnie po odsłonięciu wartości
zmiennej globalnej o tej samej nazwie wykorzystana zostaje w instrukcji warunkowej
przerywającej pętle.
Kod programu:
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
#pragma argsused
long int licz;
void main()
{
int i = 1;
cout <<"Program oblicza silnie liczby. Wprowadz liczbe > 1: ";
cin >> licz;
{
long int licz = 1;
while (i<=::licz) licz = licz * i, i++;
cout <<"\nSilnia liczby " <<::licz <<" wynosi: " <<licz;
}
getch();
}
Na ekranie zobaczymy:
Program oblicza silnie liczby. Wprowadz liczbe > 1: 14
Silnia liczby 14 wynosi: 1278945280
2.11. Funkcja.
Kod programu:
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
#pragma argsused
int pole_kw(int bok);
void main()
Podstawy informatyki
13
{
int bok;
cout <<"Podaj dlugosc boku kwadratu: ";
cin >> bok;
cout <<"\nPole kwadratu o boku " << bok << " wynosi: " <<pole_kw(bok); getch();
}
int pole_kw(int bok)
{
return bok *= bok;
}
Po wykonaniu na ekranie zobaczymy:
Podaj dlugosc boku kwadratu:
Pole kwadratu o boku 23 wynosi: 529
2.12. Funkcja w pliku zewnętrznym.
W przykładzie tym funkcja t() zdefiniowana jest poza plikiem głównym programu
i dołączona za pomocą deklaracji zawartej w pliku nagłówkowym, jest to prosty przykład
programu składającego się z wielu plików bibliotecznych. W takim przypadku biblioteka zostaje
dołączona do programu wykonywalnego na etapie kompilacji i nie jest potem potrzebna jako
samodzielny plik.