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;