Да се напише програма, която позволява да се въведат N на брой числа и после пита за число и отпечатва „казвано е вече“, ако вече е въвеждано преди това.
По желание:
- Ако числото не е въвеждано дотогава, да изведе „ново число“
- Да позволи проверката да се прави за повече от едно числа (тоест например да въвеждаме числа до въвеждане на 0 и за всяко от тях да казваме имало ли го е в опашката или не).


#include <iostream> #include <iomanip> #include <windows.h> using namespace std; // максимален брой елементи в опашката const int N=5; class Queue { private: // указател към върха на опашката int head; // указател към края на опашката int tail; // масив за съхранение на елементите на опашката int s[N]; // инициализиране на опашката void init(); public: Queue(); // проверка дали опашката е празна bool isEmpty(); // проверка дали опашката е пълна bool isFull(); // запис на стойност в опашката bool push(int X); // извличане на стойност от опашката bool pop(int &X); // печат на опашката void print(); }; Queue::Queue() { init(); } // инициализиране на опашката void Queue::init() { head=0; tail=0; for(int i=0;i<=N;i++) s[i]=0; } // проверка дали опашката е празна bool Queue::isEmpty() { return head==tail; } // проверка дали опашката е пълна bool Queue ::isFull() { return ((tail+1)%N)==head; } // запис на стойност в опашката bool Queue::push(int X) { bool ok = !isFull(); if (ok){ s[tail] = X; tail++; tail%=N; } return ok; } // извличане на стойност от опашката bool Queue::pop(int &X) { bool ok = !isEmpty(); if (ok) { X = s[head]; head++; head%=N; } return ok; } // печат на опашката void Queue::print() { cout<<endl<<"head : "<<head<<" tail: "<<tail<<"\nqueue: | "; if(!isEmpty()) if (head<=tail) for(int i=head;i<tail;i++) cout<<setw(3)<<s[i]<<" | "; else { for(int i=head;i<N;i++) cout<<setw(3)<<s[i]<<" | "; for(int i=0;i<tail;i++) cout<<setw(3)<<s[i]<<" | "; } cout<<endl<<"array: | "; for(int i=0;i<N;i++) cout<<setw(3)<<s[i]<<" | "; cout<<endl<<"index: | "; for(int i=0;i<N;i++) cout<<setw(3)<<i<<" | "; cout<<endl<<endl; } int main ( ) { int n, x; Queue chisla; // въвеждаме числата cout<<"Vavedete broi elementi:"; cin>>n; for(int i=0;i<n;i++) { cin>>x; chisla.push(x); } cout<<"Vavedete X:"; cin>>x; // проверяваме дали го има Х int y; bool namereno=false; for(int i=0;i<n;i++) { chisla.pop(y); if(x==y) { namereno=true; break; } } // отпечатваме резултата if(namereno) cout<<"Namereno e!\n"; else cout<<"Ne e namereno!\n"; system("pause"); return 0; }