Предавање низи на функции - задачи

// C++ Program to display marks of 5 students
#include <iostream>
using namespace std;
// declare function to display marks
// take a 1d array as parameter
void display(int m[5]) {
    cout << "Displaying marks: " << endl;
    // display array elements    
    for (int i = 0; i < 5; ++i) {
        cout << "Student " << i + 1 << ": " << m[i] << endl;
    }
}

int main() {
    // declare and initialize an array
    int marks[5] = {88, 76, 90, 61, 69};
    // call display function
    // pass array as argument
    display(marks);
    return 0;
}
Displaying marks: 
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 5: 69
#include <iostream>
using namespace std;
/* This function adds the corresponding
  elements of both the arrays and  displays it. */
void sum(int arr1[], int arr2[]){
   int temp[5];
   for(int i=0; i<5; i++){
      temp[i] = arr1[i]+arr2[i];
      cout<<temp[i]<<endl;
   }
}
int main(){
   int a[5] = {10, 20, 30, 40 ,50};
   int b[5] = {1, 2, 3, 4, 5};
   //Passing arrays to function
   sum(a, b);
   return 0;
}
11
22
33
44
55
#include <iostream>
using namespace std;
 // function declaration:
double getAverage(int arr[],int size);

int main () {
   // an int array with 5 elements.
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;
   // pass pointer to the array as an argument.
   avg = getAverage(balance,5) ;
    // output the returned value 
   cout << "Average value is: " << avg << endl; 
      return 0;
}

double getAverage(int arr[], int size) {
  int i, sum = 0;       
  double avg;          
   for (i = 0; i < size; ++i) {
      sum += arr[i];   }
   avg = double(sum) / size;
   return avg;
}

Average value is: 214.4

Програма со која се внесуваат и печатат елементите на еднодимензионална низа. За внесување и печатење на елементите се користат потпрограми.


#include <iostream>
using namespace std;
void vnesi_niza(int n,float a[50])
{
int i;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i];
}
}
void pecati_niza(int n,float a[50])
{
int i;
for(i=0;i<n;i++)
cout<<a[i]<<"\t";
cout<<endl;
}
int main()
{
float niza[50];
int n;
cout << "Vnesi go brojot na elementi na nizata"<<endl;
cout<<"n="; cin>>n;
cout<<endl;
cout << "Vnesete gi elementite na nizata: " << endl;
vnesi_niza(n,niza);
cout<<endl;
cout<<"Ja vnesovte nizata:"<<endl;
pecati_niza(n,niza);
cout<<endl;
return 0;
}

Програма со која се наоѓа најголем елемент во низа а со n елементи и неговиот индекс. За внесување на елементите на низата и одредување најголем елемент и негов индекс да се користат функции.

#include <iostream>
using namespace std;
void vnesi_niza(int n,int a[50])
{
 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)
 {
 max=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>
#include <cmath>
using namespace std;
void vnesi_niza(int n,float a[50])
{
int i;
for(i=0;i<n;i++)
{ cout<<"a["<<i<<"]=";
    cin >> a[i];}
}
void pecati_niza(int n,float a[50])
{
int i;
for(i=0;i<n;i++)
cout<<a[i]<<"\t";
cout<<endl;
}
void najgolem_i_pozicija(int n,float a[50],float &najgolem, int &rb1)
{
int i;
najgolem=a[0];
rb1=0;
for(i=1;i<n;i++)
if(a[i]>najgolem)
{
    najgolem=a[i];
     rb1=i;}
}
void najmal_i_pozicija(int n,float a[50],float &najmal, int &rb2)
{
  int i;
  najmal=a[0];
  rb2=0;
 for(i=1;i<n;i++)
  if(a[i]<najmal)
  {
     najmal=a[i];
     rb2=i;     }
}

int main()
{
float niza[50],max,min;
int n,pozmax,pozmin;
cout << "Vnesi go brojot na elementi na nizata"<<endl;
cout<<"n="; cin>>n;
cout<<endl;
cout << "Vnesete gi elementite na nizata: " << endl;
vnesi_niza(n,niza);
cout<<endl;
cout<<"Ja vnesovte nizata:"<<endl;
pecati_niza(n,niza);
cout<<endl;
najgolem_i_pozicija(n,niza,max,pozmax);
najmal_i_pozicija(n,niza,min,pozmin);
cout<<"Najgolemiot element vo nizata se naogja na pozicija so indeks "<<pozmax<<endl;
cout<<"Negovata vrednost e: "<<max<<endl<<endl;
cout<<"Najmaliot element vo nizata se naogja na pozicija so indeks "<<pozmin<<endl;
cout<<"Negovata vrednost e: "<<min<<endl<<endl;
return 0;
}

Програма сo која се пресметува збир на елементите кои се делат со 3 и 6 . За внесување на елементите на низата и одредување на збировите да  се користат функции.
#include <iostream>
using namespace std;
//  vnesuvanje elementi na niza  
void vnesi_niza(int n,int a[50]) {
 int i;
 for(i=0;i<n;i++)
     { cin >> a[i];  }
 }
 //presmetuvanje zbir 
void zbir(int n,int a[50]) {
 int i,s=0;
 for(i=0;i<n;i++)
 {   if(a[i]%3==0 && (a[i]%6==0))
               s+=a[i];
     }
 cout<<"Zbir na elementite koi se delat so 3 i 6  e "<<s<<endl;
}

int main() {
 int niza[50];
 int n;
 cout << "Vnesi go brojot na elementi na nizata"<<endl;
 cin>>n;
 cout << "Vnesi gi elementite na nizata: " << endl;
 vnesi_niza(n,niza);
 zbir(n,niza);
return 0; }

Програма со која се внесува низа а со n елементи, а потоа се формираат  две низи едната ги содржи  парните елементи од низата, другата непарните елементи . Да се испечатат соодветните низи. За внесување на елементите на низата, формирање на новите низи и печатење на низите да се користат функции.

#include <iostream>
using namespace std;
// vnesuvanje elementi na niza 
void vnesi_niza(int n,int a[50])
{
 int i;
 for(i=0;i<n;i++)
 cin >> a[i];
}
// kreiranje na niza b od parni i niza c od neparni broevi 
void novi_nizi(int n,int a[50])
{
 int i,j=0,k=0,b[100],c[100];
 for(i=0;i<n;i++)
 {
 if(a[i]%2==0)
 {
 b[j]=a[i];
 j++;
 }
 else
 {
 c[k]=a[i];
 k++;
 }
 }
 cout<<"Niza so parni elementi e "<<endl;
 for(i=0;i<j;i++)
 cout<<b[i]<<" ";
 cout<<endl;
 cout<<"Niza so neparni elementi e "<<endl;
 for(i=0;i<k;i++)
 cout<<c[i]<<" ";
}
int main()
{
 int niza[50];
 int n;
 cout << "Vnesi go brojot na elementi na nizata"<<endl;
 cin>>n;
 cout << "Vnesi gi elementite na nizata: " << endl;
 vnesi_niza(n,niza);
 novi_nizi(n,niza);
return 0;
}

Да се најде збирот и производот на елементите на низата броеви [ai]n, со употреба на потпрограми.

#include <iostream>
using namespace std;
void vnesi_niza(int n,float a[50])
{
int i,j;
for(i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin >> a[i]; }
}
void pecati_niza(int n,float a[50])
{
int i,j;
for(i=0;i<n;i++)
cout<<a[i]<<"\t";
cout<<endl;
}
float zbir(int n, float a[50])
{
int i;
float s=0;
for(i=0;i<n;i++)
s=s+a[i];
return s;
}
float proizvod(int n, float a[50])
{
int i;
float p=1.;
for(i=0;i<n;i++)
p=p*a[i];
return p;
}
int main()
{
float niza[50],s,p;
int n;
cout << "Vnesi go brojot na elementi na nizata"<<endl;
cout<<"n="; cin>>n;
cout<<endl;
cout << "Vnesete gi elementite na nizata: " << endl;
vnesi_niza(n,niza);
cout<<endl;
cout<<"Ja vnesovte nizata:"<<endl;
pecati_niza(n,niza);
cout<<endl;
cout<<"Zbirot na elementite na nizata e: "<<zbir(n,niza)<<endl<<endl;
cout<<"Proizvodot na elementite na nizata e: "<<proizvod(n,niza)<<endl<<endl;
return 0;
}

Да се изврши циклично поместување на елементите на низата броеви [ai]n за к-места во лево. За внесување на елементите на низата, поместување и печатење на низата да се користат функции
#include <iostream>
using namespace std;
void vnesi_niza(int n,float a[50])
{
 int i,j;
 for(i=0;i<n;i++)
 {
 cin >> a[i];
 }
}
void pecati_niza(int n,float a[50])
{
 int i,j;
 for(i=0;i<n;i++)
 cout<<a[i]<<" ";
 }
void pomesti_za_k_vo_levo(int n,int k,float a[50])
{
 int i,j;
 float pom;
 for(j=1;j<=k;j++)
 {
 pom=a[0]; //vo promenlivata pom se zacuvuva prviot element
 for(i=0;i<n-1;i++) //so ovoj for - pomestuvanje na site elementi za edna pozicija vo levo
 a[i]=a[i+1]; //vtoriot stavi go na mestoto na prviot, tretiot na vtoriot .....
 a[n-1]=pom; //na mestoto na posledniot stavi ja vrednosta na pom, odnosno prviot
 }
}
int main()
{
 float niza[50],s,p;
 int n,k;
 cout << "Vnesi go brojot na elementi na nizata"<<endl;
 cin>>n;
 cout << "Vnesi gi elementite na nizata: " << endl;
 vnesi_niza(n,niza);
 cout<<"Vnesenata niza e "<<endl;
 pecati_niza(n,niza);
 cout<<endl;
 cout<<"Vnesi go brojot na pomestuvanja k ";
 cin>>k;
 pomesti_za_k_vo_levo(n,k,niza);
 cout<<"Posle pomestuvanjeto za "<<k<<" mesta vo levo, nizata e "<<endl;
 pecati_niza(n,niza);
retu

No comments: