#include <iostream>
using namespace std;
{
int i;
for(i=0;i<n;i++)
cin >> a[i];
}
void najgolem(int n,int a[50])
{
int indeks=0,i,max;
max=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max)
{
maks=a[i];
indeks=i;
}
}
cout<<"Najgolem element e "<<max<<endl;
cout<<"Se naoga na pozicija "<<indeks<<endl;
}
int main()
{
int niza[50];
int n,s1;
cout << "Vnesi go brojot na elementi na nizata"<<endl;
cin>>n;
cout << "Vnesi gi elementite na nizata: " << endl;
vnesi_niza (n,niza);
najgolem (n,niza);
return 0;
}
#include<iostream>
using namespace std;
main()
{
int a[100], n, i, j, k, pom;
cout<<"Vnesete go brojot na elementi na nizata n=";
cin>>n;
cout<<"Vnesete go brojot na pomestuvanja k=";
cin>>k;
cout<<"Vnesete gi elementite na nizata:"<<endl;
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
cout<<"Pocetnata niza e:"<<endl;
for(i=0; i<n-1; i++)
cout<<a[i]<<",";
cout<<a[n-1]<<endl;
//pomestuvanjeto na elementite na nizata za k-mesta vo desno
for(j=1; j<=k; j++)
{
pom=a[n-1]; //vo promenlivata pom se zacuvuva posledniot
for(i=n-1; i>=1; i--) //so ovoj for - pomestuvanje na site elementi za edna pozicija vo desno
a[i]=a[i-1]; //pretposledniot stavi go na mestoto na posledniot .....
a[0]=pom; //na mestoto na prviot stavi ja vrednosta na pom, odnosno posledniot
}
cout<<"Pomestenata niza za "<<k<<" mesta vo desno e:"<<endl;
for(i=0;i<n-1;i++)
cout<<a[i]<<",";
cout<<a[n-1]<<endl;
return 0;
}
Да се изврши конверзија на цел декаден број во бинарен
#include<iostream>
using namespace std;
main()
{
int n,a[10000],i,vrednostN;
cout<<"Vnesete priroden broj n=";
cin>>n;
vrednostN=n;
i=1;
while(n!=0)
{
a[i]=n%2;
n=n/2;
i++;
}
i--;
cout<<endl;
cout<<"Brojot "<<vrednostN<<" vo binaren broen sistem e:"<<endl<<endl;;
for(i;i>0;i--)
cout<<a[i]<<" ";
cout<<endl<<endl;
system("pause");
return 0;
}
Објаснување: Бинарното пребаруваање се користи како најбрз метод на барање елемент со одредена вредност во некоја низа, при што низата мора да е подредена во неопаднувачки или нерастечки редослед. На пример, 1,2,5,5,9 или 7,4,2,2,1.
Методот се состои во следното: Вредноста што се бара се споредува со средниот елемент во низата и ако таа е поголема од вредноста на елементот, барањето продолжува во половината на низата со поголеми вредности, инаку, барањето продолжува во половината на низата со помали вредности. Потоа, вредноста што се бара, се споредува со средниот елемент од соодветната половина на низата и, зависно од споредувањето, барањето продолжува во левата или десната четвртина од таа половина. Постапката продолжува до наоѓање на елемент со иста вредност, или до утврдување дека во низата нема елемент со таква вредност.
#include<iostream>
using namespace std;
int main()
{
int a[100],n,i,v,levo,desno,sredina;
cout<<"vnesete go brojot na elementi na nizata n=";
cin>>n;
cout<<"Vnesete gi elementite na nizata vo rastecki redosled"<<endl;
for(i=1;i<=n;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Vnesete ja vrednosta na elementot sto se bara, v=";
cin>>v;
levo=1;
desno=n;
do
{
sredina=(levo+desno)/2;
{
if(v>a[sredina])
levo=sredina+1;
else
desno=sredina-1;
}
}
while(v!=a[sredina]&&levo<=desno);
if(a[sredina]==v)
cout<<"Element so takva vrednost e a["<<sredina<<"]"<<endl;
else
cout<<"Nema element so takva vrednost"<<endl;
return 0;
}
No comments:
Post a Comment