Laboratorium 8
1. Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z obsługą C++.
2. Przykłady
Zad1
Napisać program przedstawiający tablicę o dziesięciu elementach i wypisujący zawartość każdego z nich.
#include <iostream.h>
int main ()
{
int t[10] ;
for( int i = 0 ; i < 10 ; i++)
t[i] = 15 * i ;
cout << "Wykaz zawartosci tablicy : \n" ;
for ( int k = 0 ; k < 10 ; k++)
{
cout << "Element tablicy o numerze : " << k
<< " ma wartosc " << t[k] << "\n" << endl ;
}
return 0 ;
}
Zad2
Wskaźniki. Ze wskaźnikami i adresami związane są dwa operatory:
operator referencji & zwracający adres zmiennej podanej po prawej stronie tego operatora.
operator dereferencji ∗ identyfikujący obszar wskazywany przez wskaźnik podany po prawej stronie tego operatora.
Np.:
int liczba ;
int ∗wskaźnik ;
wskaznik = &liczba; // przypisanie zmiennej wskaźnik
// adresu zmiennej liczba
∗wskaźnik = 10; // przypisanie 10 zawartości zmiennej
// wskazywanej przez wskaźnik
// tutaj równoważne liczba = 10
Przykładowy program wykorzystujący wskaźniki.
#include <iostream.h>
using namespace std ;
int main()
{
int obiekt_pierwszy = 2 ;
int obiekt_drugi = 5000 ;
int *wskaznik ; // wskaznik na obiekty typu int
wskaznik = &obiekt_pierwszy ;
// prosty wypis na ekran ;
cout << "obiekt_pierwszy = " << obiekt_pierwszy
<< "\n Wskaznik natomiast odczytal nastepujaca wartosc = "
<< *wskaznik << endl ;
obiekt_pierwszy = 20 ; // następuje zmiana wartości obiektu pierwszego
cout << "obiekt_pierwszy = "<< obiekt_pierwszy
<< "\n Wskaznik natomiast odczytal nastepujaca wartosc = "
<< *wskaznik << endl ;
*wskaznik = 55 ; // do tego na co pokazuje wskaznik wpisz 55
cout << "obiekt_pierwszy = " << obiekt_pierwszy
<< "\n Wskaznik natomiast odczytal nastepujaca wartosc = "
<< *wskaznik << endl ;
wskaznik = &obiekt_drugi ; //przestawienie wskaznika na obiekt drugi
cout << "obiekt_pierwszy = "<< obiekt_pierwszy
<< "\n Wskaznik natomiast odczytal nastepujaca wartosc = "
<< *wskaznik << endl ;
}
3. Program ćwiczenia
Zad3
Należy napisać program, który będzie przekazywał tablicę do funkcji (należy pamiętać, że tablice przesyła się podając funkcji tylko adres początku tej tablicy).
Np.:
Jeśli mamy funkcję, która spodziewa się jako argumentu tablicy liczb typu float:
void funkcja (float tablica_przykladowa [ ] ) ;
to taką funkcję można wywołać na przykład tak:
float tablica[ ] = { 8 , 4.2 , 7.25 , 9 } ;
funkcja (tablica) - następuje wywołanie funkcji.
Tablica ma posiadać 1500 elementów W programie należy umieścić funkcję, która treść każdego elementu tablicy będzie mnożyć przez 5, następnie należy wyświetlić 10 pierwszych elementów tablicy przed i po wykonaniu mnożenia.
Zad4
Należy napisać program wykorzystujący dwa wskaźniki: mały i duży. Na 10 elementowej tablicy należy ustawić wskaźnik mały w ustalonej pozycji (np. na 5 elemencie). Następnie program ma poprosić o ustawienie wskaźnika dużego (na dowolnym elemencie tablicy, czyli od 0-9). W kolejnym kroku następuje porównanie ustawień wskaźnika dużego względem małego. Należy sprawdzić czy:
Wskaźnik duży pokazuje na element bliżej początku tablicy.
Wskaźnik duży pokazuje element o wyższym indeksie.
Wskaźniki pokazują ten sam element.
Po dokonaniu porównania należy wyświetlić komunikat informujący o zaistniałym przypadku.
Np. Po ustawieniu wskaźnika małego na 5 element tablicy, a dużego na 3, powinien wyświetlić się komunikat nr. 1.
Zad5
Należy napisać program, który będzie używał wskaźników w pracy z tablicami. Należy zdefiniować dwie tablice, jedna dla typu int, a drugą dla typu double. Następnie ustawić wskaźnik na początkowym elemencie tablicy double. Zapełnić ją wartościami początkowymi (przy użyciu instrukcji for). Wypisać na ekran otrzymane wartości. W kolejnym kroku należy zmienić ustawienie wskaźników: jeden wskaźnik ustawić na piątym elemencie tablicy typu int, drugi wskaźnik ustawić na trzecim elemencie tablicy double. W nowym ustawieniu wskaźników należy dodać do tablic nowe wartości. Następnie należy wypisać treść tablic po zastosowaniu zmian.
1
Podstawy Informatyki