[ Pobierz całość w formacie PDF ]
.Temat:TabliceTablica jest to zbiór elementów tego samego typu, które zajmuj cigy obszarwpamici.Korzy jest taka, e zamiast nazywania kadej ze zmiennych osobno,wystarczy odwoa do i-tego elementu tablicy.Tablice s typem pochodnym, tzn.buduje si z elementów jakiego typunazywanego typem skadowym, przykadowo:int A[50];jest definicj rezerwujc miejsce dla 50 liczb typu int.Rozmiar tablicy musi by sta, znan ju w trakcie kompilacji, kompilatorbowiem musi wiedzie ile miejsca ma zarezerwowa na dan tablic.Rozmiar tennie moe by ustalany dopiero w trakcie pracy programu.Przykadowo:cout > n;int A[n]; // bd!!!Przykady poprawnych definicji tablic:char tekst[80]; // tekst jest tablic 80 elementów typu charfloat X[20]; // X jest tablic 20 elementów typu floatunsigned long Nr[200]; // N jest tablic 200 elementów typu unsigned longTablice mona tworzy z:typów fundamentalnych (z wyjtkiem void);typów wyliczeniowych (enum);innych tablic;wskaników;z obiektów typu zdefiniowanego przez uytkownika (czyli klas);ze wskaników do pokazywania na skadniki klasy.1.Elementy tablicyJeli zdefiniowana jest tablica:int A[5];to zawiera ona 5 elementów typu int.Poszczególne elementy tablicy to:A[0] A[1] A[2] A[3] A[4]wic numeracja elementów tablicy zaczyna si od zera.Element A[5] nieistnieje.Próba wpisania jakiej wartoci do A[5] nie bdzie sygnalizowana jakobd, gdy w jzyku C++ nie jest to sprawdzane.Wpisanie wartoci do nieistniejcego elementu A[5] spowoduje zniszczeniewobszarze pamici czego, co nastpuje bezporednio za tablic.Przykad:int A[5];int x;Próba zapisu:A[5] = 100;spowoduje zniszczenie wartoci zmiennej x, która zostaa umieszczona wpamicibezporednio za tablic A.2.Inicjalizacja tablicInnym sposobem nadawania wartoci elementom tablicy ni za pomoc instrukcjiprzypisania jest jej inicjalizacja - nadanie wartoci pocztkowych wmomenciedefinicji tablicy.Przykadowo:int A[5] = { 21, 4, 45, 38, 17 };Wynikiem zainicjalizowania tablicy A poszczególnym elementom tej tablicyzostan nadane wartoci:A[0] = 21A[1] = 4A[2] = 45A[3] = 38A[4] = 17Jeeli w momencie inicjalizacji umiecimy na licie wicej elementów, niwynika z definicji ( w naszym przykadzie bdzie to 6 lub wicej wartoci), tokompilator zasygnalizuje bd.Podczas inicjalizacji sprawdza si, czy rozmiartablicy nie jest przypadkiem przekroczony.Moliwa jest taka inicjalizacja tablicy:int A[5] = {21, 4};Inicjalizacja taka spowoduje, e wymienione wartoci zostana nadane tylko dwómpierwszym elementom tablicy.Pozostae elementy bd inicjalizowane zerami.Dla wygody istnieje te taki sposób inicjalizowania tablicy:int A[] = { 21, 4, 45, 38, 17 };Kompilator w takim przypadku przelicza, ile liczb podano w klamrach iwefekcierezerwowana jest pami na te elementy.3.Przekazywanie tablicy do funkcjiTablice w C++ nie s przesyane do funkcji przez warto.W ten sposób monaprzesya tylko pojedyncze elementy tablicy, ale nie cao.Tablice przesyasi podajc do funkcji tylko adres pocztku tablicyPrzykad:Jeli mamy definicje:float X[ ] = {21, 4, 45, 38, 17 };void Sort ( float X[ ] );to funkcj wywoujemy w sposób nastpujcy:Sort ( X );W jzyku C++ nazwa tablicy jest jednoczenie adresem elementu zerowego.Ponadtowyraenie:X + 3jest adresem tego miejsca w pamici, gdzie znajduje si element o indeksie 3,czyli X[3].W naszym przykadzie jest to element o wartoci 38.Adres takiego elementu to:&X [3]Znak & jest jednoargumentowym operatorem oznaczajcym uzyskiwanie adresu danegoobiektu.Zatem ponisze dwa wyraenia s równowane:X + 3 &X [3]Przykad:// program ELMIN.CPP/*---------------------------------------------------------------------------------*//* Program umoliwia: *//* 1.Wczytanie aktualnego rozmiaru wektora liczb cak.*//* 2.Wczytanie elementów wektora liczb cakowitych; *//* 3.Okrelenie elementu maksymalnego oraz numeru *//* tego elementu; *//* 4.Wywietlenie wartoci i numeru elementu maks.*//*----------------------------------------------------------------------------------*/#include#includeconst int n_Max = 50; // max rozmiar tablicyint X[n_Max]; // definicja tablicyint n, // aktualny rozmiar tablicyEl_Max, // element maksymalnyInd_Max; // indeks elementu maks.void Czyt_Dane ( int &n, int X[ ] );void Max_Element (int n, int X[ ], int &El_Max, int &Ind_Max);void Pisz_Wynik (int El_Max, int Ind_Max)/*------------------------------------------------------------------------------*/void main () // blok gówny{clrscr ();Czyt_Dane (n, X);Max_Element (n, X, El_Max, Ind_Max);Pisz_Wynik (El_Max, Ind_Max);} // koniec bloku gównego/*------------------------------------------------------------------------------*/void Czyt_Dane ( int &n, int X[ ] )/*------------------------------------------------------------------------------*//* Wczytanie rozmiaru i kolejnych elementów tablicy *//*-----------------------------------------------------------------------------*/{ int i;cout > n;cout [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • orla.opx.pl