#include <iostream>
using namespace std;
int main()
{
int a[50];
int n,i;
//sekogas, prvo mora da se vnese brojot na elementi na
nizata
cout << "Vnesi go brojot na elementi na nizata"<<endl;
cout<<"n=";
cin>>n;
//elementite na nizata se vnesuvaat so naredbata for
cout << "Vnesete gi elementite na nizata:
" << endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
//za pecatenje na nizata povtorno se koristi naredbata
for
cout<<"Ja vnesovte nizata: [";
for(i=0;i<n;i++)
cout<<a[i]<<",
";
cout << "]"<<endl;
getchar();
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a [100];
int n,i,promeni;
cout<< "Vnesete go brojot na elementi na nizata n=";
cin>>n;
cout<<"Vnesete gi elementite na nizata:"<<endl;
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
promeni=0; //brojot na promeni ima pocetna vrednost nula
for(i=1;i<n;i++)
if((a[i-1]<0 && a[i]>0) || (a[i-1]>0 && a[i]<0))
promeni++;
cout<<"Vo nizata ima "<<promeni<<" promeni na znacite."<<endl;
system("pause");
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int a[50], b[50], c[50];
int n,i;
cout << "Vnesi go brojot na elementi na
nizite"<<endl;
cout<<"n="; cin>>n;
cout << "Vnesete gi elementite na prvata
niza: " << endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
cout << "Vnesete gi elementite na vtorata
niza: " << endl;
for(i=0;i<n;i++)
{
cout<<"b["<<i<<"]=";
cin >> b[i];
}
//sobiranje na elementite na nizite
for(i=0;i<n;i++)
c[i]=a[i]+b[i];
//pecatenje na zbirnata niza c
cout<<"Zbirnata niza c[] gi ima slednite
elementi: [";
for(i=0;i<n;i++)
cout<<c[i]<<",
";
cout << "]"<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int a[100],b[100],c[100];
int i,p,q,n,k;
p=0; //p e promenliva za indeksot na nizata so parni
broevi
q=0; //q e promenliva za indeksot na nizata so parni
broevi
//prvo, se vnesuva brojot na elementi na nizite
cout << "Vnesi go brojot na elementi na
nizata"<<endl;
cout<<"n="; cin>>n;
//vnesuvanje na elementite nizata
cout << "Vnesete gi elementite na nizata:
" << endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
//kreiranje na dve novi nizi so parni, odnosno
neparni broevi
for(i=0;i<n;i++)
{
if(a[i]%2==0)
{
b[p]=a[i];
p++;
}
else
{
c[q]=a[i];
q++;
}
}
//pecatenje na nizata so parni broevi
cout<<"Ima "<<p<<"
parni elementi, i toa:"<<endl;
for(k=0;k<p;k++)
cout<<b[k]<<",";
cout<<endl;
//pecatenje na nizata so neparni broevi
cout<<"Ima "<<q<<"
neparni elementi, i toa:"<<endl;
for(k=0;k<q;k++)
cout<<c[k]<<",";
cout<<endl;
getchar();
return 0;
}
5. Да се најде збирот и производот на елементите на низата броеви a.
#include<iostream>
using namespace std;
int main()
{
int a[50],i,n,zbir,proizvod;
cout<<"Vnesete go brojot na elementi na nizata n=";
cin>>n;
cout<<"Vnesete gi elementite na nizata:"<<endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
zbir=0;
proizvod=1;
for(i=0;i<n;i++)
{
zbir=zbir+a[i];
proizvod=proizvod*a[i];
}
cout<<"Zbirot na elementite na nizata e:
"<<zbir<<endl;
cout<<"Proizvodot na elementite na nizata e:
"<<proizvod<<endl;
system("pause");
return 0;
}
6. За низата броеви [ai]n, да се пресмета посебно збирот на позитивните и посебно збирот на негативните елементи.
#include<iostream>
using namespace std;
int main()
{
int a[50],i,n,zbirpozitivni,zbirnegativni;
cout<<"Vnesete go brojot na elementi na nizata n=";
cin>>n;
cout<<"Vnesete gi elementite na nizata:"<<endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
zbirpozitivni=0;
zbirnegativni=0;
for(i=0;i<n;i++)
{
if(a[i]>0)
zbirpozitivni=zbirpozitivni+a[i]; //zbirpozitivni+=a[i]
else
zbirnegativni=zbirnegativni+a[i]; //zbirnegativni+=a[i]
}
cout<<"Zbirot na pozitivnite elementi na nizata iznesuva:
"<<zbirpozitivni<<endl;
cout<<"Zbirot na negativnite elementi na nizata iznesuva:
"<<zbirnegativni<<endl;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int i,n;
float ocenki[100],zbir,prosek;
cout<<"Kolku predmeti
ucite?"<<"\n"; //"\n" e isto kako endl - nov
red
cin>>n;
cout<<"Vnesete gi
ocenkite:"<<endl;
for(i=0;i<n;i++)
{
cout<<"ocenki["<<i<<"]=";
cin >>
ocenki[i];
}
zbir=0;
for(i=0;i<n;i++)
zbir=zbir+ocenki[i];
prosek=zbir/n;
cout<<"Prosekot na ucenikot
iznesuva:"<<prosek<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int i,n;
float
ocenki[100],zbir,prosek,zaokruzen_prosek;
cout<<"Kolku predmeti
ucite?"<<"\n"; //"\n" e isto kako endl - nov red
cin>>n;
cout<<"Vnesete gi ocenkite:"<<endl;
for(i=0;i<n;i++)
{
cout<<"ocenki["<<i<<"]=";
cin >> ocenki[i];
}
zbir=0;
for(i=0;i<n;i++)
zbir=zbir+ocenki[i];
prosek=zbir/n;
cout<<"Prosekot na ucenikot iznesuva:
"<<prosek<<endl;
zaokruzen_prosek=roundf(prosek);
//funkcijata roundf go zaokruzuva prosekot na cel broj,
//no,tipot na podatokot e float
//Zatoa, vo naredbata switch toj se pretvora vo int (switch bara tip na podatok
int)
cout<<"Uspehot na ucenikot e: ";
switch(static_cast<int>(zaokruzen_prosek))
{
case 1: cout<<"Nedovolen"<<endl;break;
case 2: cout<<"Dovolen"<<endl;break;
case 3: cout<<"Dobar"<<endl;break;
case 4: cout<<"Mn.dobar"<<endl;break;
case 5: cout<<"Odlicen"<<endl;break;
default:cout<<"Greska. Prosek nadvor od
granicite"<<endl;
}
system("pause");
return 0;
}
#include<iostream>
using namespace std;
int 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;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a[50];
int n,i,redenbroj,najmal;
cout<<"Vnesete go brojot na elementi na nizata n=";
cin>>n;
cout<<"Vnesete gi elementite na nizata:"<<endl;
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
najmal=a[0];
redenbroj=0;
for(i=1; i<n; i++)
{
if(najmal>a[i])
{
najmal=a[i];
redenbroj=i;
}
}
cout<<"Najmal e elementot so reden broj
"<<redenbroj<<" so vrednost
"<<najmal<<endl;
system("pause");
return 0;
}
//p-29 N-1D Cel dekaden broj vo
binaren
#include<iostream>
using namespace std;
int 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,10,50,100 и 5000 денари. За да се исплати сумата со најмал број банкноти, треба да се употребат банкноти со поголеми вредности. Затоа, прво се проверува со колку банкноти од 5000 денари може да се исплати дел од сумата, со колку банкноти од 1000 денари може да се исплати дел од остатокот итн.
#include<iostream> using namespace std; int main() { int suma,v[10],i,nbb,bb; cout<<"vnesete ja sumata: "<<endl; cin>>suma; v[0]=1; v[1]=2; v[2]=5; v[3]=10; i=4; do { v[i]=10*v[i-2]; v[i+1]=10*v[i-1]; i=i+2; } while(i<=8); //cout<<v[4]<<","<<v[5]<<","<<v[6]<<","<<v[7]<<","<<v[8]<<endl; cout<<suma<<"="; nbb=0; for(i=8;i>=0;i--) { bb=suma/v[i]; nbb=nbb+bb; suma=suma%v[i]; if(bb!=0) { cout<<bb<<"*"<<v[i]; if(suma!=0) cout<<"+"; else cout<<" "<<endl; } } cout<<"Najmal broj banknoti za dadenata suma e "<<nbb<<endl; return 0; }
ПРОГРАМИ СО СОРТИРАЊЕ НА
ЕДНОДИМЕНЗИОНАЛНИ НИЗИ
C++ Program to Implement Sorted Array (tutorialspoint.com)
#include<iostream>
using namespace std;
int main()
{
int a[50];
int n,i,j,pom;
cout << "Vnesete go brojot na elementi na nizata,
n="<<endl;
cin>>n;
cout << "Vnesete gi elementite na nizata: " << endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[j]<a[i])
{
pom=a[i];
a[i]=a[j];
a[j]=pom;
}
}
}
cout<<"Vnesenata niza SORTIRANA RASTECKI e:"<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<",";
cout<<endl;
cout<<"Najmaliot element vo nizata e
a[0]="<<a[0]<<endl;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a[50];
int n,i,j,pom;
cout << "Vnesete go brojot na elementi na nizata,
n="<<endl;
cin>>n;
cout << "Vnesete gi elementite na nizata: " << endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[j]>a[i])
{
pom=a[i];
a[i]=a[j];
a[j]=pom;
}
}
}
cout<<"Vnesenata niza SORTIRANA OPAGJACKI e:"<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<",";
cout<<endl;
cout<<"Najgolemiot element vo nizata e
a[0]="<<a[0]<<endl;
system("pause");
return 0;
}
Постапка: Најмалиот елемент од а1 до аn го доведуваме на прво место, а најголемиот на n-то место, најмалиот елемент од а2 до аn-1 го доведуваме на второ место, а најголемиот на (n-1)-во место итн.
//p-35 N-1D Sortiranje so naogjanje
na max i min
#include<iostream>
using namespace std;
int main()
{
int a[100];
int n,i,j,pom;
cout << "Vnesete go brojot na elementi na nizata,
n="<<endl;
cin>>n;
cout << "Vnesete gi elementite na nizata: " << endl;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
for(i=0;i<n/2;i++)
{
for(j=i; j<=n-i-1;j++)
{
if(a[j]<a[i])
{
pom=a[j];
a[j]=a[i];
a[i]=pom;
}
if(a[j]>a[n-i-1])
{
pom=a[j];
a[j]=a[n-i-1];
a[n-i-1]=pom;
}
}
}
cout<<"Podredenata niza e:"<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<",";
cout<<endl;
cout<<"Najmaliot element vo nizata e
a[0]="<<a[0]<<endl;
cout<<"Najgolemiot element vo nizata e
a["<<n-1<<"]="<<a[n-1]<<endl;
system("pause");
return 0;
}
Објаснување: Бинарното барање се
користи како најбрз метод на барање елемент со одредена вредност во некоја
низа, при што низата мора да е подредена во неопаднувачки или нерастечки
редослед. На пример, 1,2,5,5,9 или 7,4,2,2,1.
Методата на барање се состои во следното: Вредноста
што се бара се споредува со средниот елемент во низата и ако таа е поголема од
вредноста на елементот, барањето продолжува во половината на низата со поголеми
вредности, инаку, барањето продолжува во половината на низата со помали
вредности. Потоа, вредноста што се бара, се споредува со средниот елемент од
соодветната половина на низата и, зависно од споредувањето, барањето продолжува
во левата или десната четвртина од таа половина. Постапката продолжува до
наоѓање на елемент со иста вредност, или до утврдување дека во низата нема
елемент со таква вредност.
//p-31 N-1D Binarno baranje
#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;
system("pause");
return 0;
}
3. Напиши програма со која се пребројуваат и печатат едноцифрените и парни броеви и двоцифрените и непарни броеви во низа а со n елементи
4. Напиши код во C++ со кој првиот и третиот елемент од низата a[5]={1,7,5,3,9} ќе ги заменат местата, а останатите елементи од низата ќе ја зголемат својата вредност за 3. Да се отпечати новoдобиената низа
No comments:
Post a Comment