Program 2 Program pobiera liczby do tablicy o długości 10, a
Transkrypt
Program 2 Program pobiera liczby do tablicy o długości 10, a
Program 2 Program pobiera liczby do tablicy o długości 10, a następnie dokonuje przesunięcia zawartości tej tablicy cyklicznie o jedną pozycję (pierwszy element na miejsce drugiego, drugi na miejsce trzeciego,..., dziesiąty na miejsce pierwszego). #include <iostream> using namespace std; int main() { int a[10]; int i,temp; cout<<"Wprowadz 10 liczb\n"; for(i=0;i<10;i++) cin>>a[i]; cout<<"Tablica wyjsciowa \n"; for(i=0;i<10;i++) cout<<a[i]<<endl; temp=a[9]; for(i=9;i>0;i--) a[i]=a[i-1]; a[0]=temp; cout<<"Tablica z przesunieta zawartoscia \n"; for(i=0;i<10;i++) cout<<a[i]<<endl; system("PAUSE"); } Omówienie programu Deklaracja 10-cio elementowej tablicy typu całkowitego: int a[10]; (Przypomnienie: w tablicy takiej moŜemy zapisać 10 liczb całkowitych. Pierwszy element tablicy to a[0], drugi - a[1], trzeci – a[2],…, dziesiąty – a[9]) Deklaracja dwóch zmiennych typu całkowitego o nazwach i oraz temp: int i,temp; Program wypisuje na ekranie komunikat Wprowadz 10 liczb (\n – przejście do nowej linii): cout<<"Wprowadz 10 liczb\n"; Pętla for umoŜliwiająca wprowadzenie 10 liczb do tablicy a: for(i=0;i<10;i++) cin>>a[i]; (Przypomnienie: wartość i zmienia się od 0 (wartość początkowa) do 9 (musi być spełniony warunek i<10). Instrukcja i++ odpowiada za zwiększanie wartości i o jeden przy kaŜdym przejściu pętli) Następnie pojawia się komunikat Tablica wyjsciowa: cout<<"Tablica wyjsciowa \n"; oraz zostają wypisane liczby wprowadzone do tablicy: for(i=0;i<10;i++) cout<<a[i]<<endl; Zmiennej temp zostaje przypisana wartość ostatniego elementu tablicy a: temp=a[9]; Następnie przy pomocy pętli 10-temu elementowi (a[9]) tablicy przypisujemy wartość elementu 9 (a[8]) 9-temu elementowi (a[8]) tablicy przypisujemy wartość elementu 8 (a[7]) 8 elementowi (a[7]) tablicy przypisujemy wartość elementu 7 (a[6]) …. 2 elementowi (a[1]) tablicy przypisujemy wartość elementu 1 (a[0]) Pętla wygląda następująco: for(i=9;i>0;i--) a[i]=a[i-1]; ZauwaŜmy, Ŝe pętla rozpoczyna się od wartości i=9 i kończy przy wartości i=1 (musi być spełniony warunek i>0). Po kaŜdym przejściu pętli wartość zmiennej i jest zmniejszana o 1 (instrukcja i--). ZauwaŜmy, Ŝe zmieniliśmy juŜ element 10 tablicy (a[9]) nadając mu wartość elementu 9 (a[8]), ale jeszcze nie przypisaliśmy elementowi pierwszemu tablicy (a[0]) wartości elementu 10 (a[9]) z tablicy wejściowej. Czy moŜemy to zrobić skoro element 10 (a[9]) juŜ jest inny niŜ na początku?? MoŜemy, poniewaŜ początkową wartość elementu 10 mamy zapisaną w zmiennej temp. A zatem poniewaŜ wartość 10-tego elementu tablicy zapisaliśmy w zmiennej temp przypisanie pierwszemu elementowi tablicy (a[0]) wartości elementu dziesiątego (a[9]) z tablicy wyjściowej wygląda następująco: a[0]=temp; W efekcie elementy tablicy są przesunięte cyklicznie o jedną pozycję o czym przekonujemy się po wykonaniu instrukcji wypisującej zawartość tablicy: for(i=0;i<10;i++) cout<<a[i]<<endl;