Задачи - функции

 Што ќе се прикаже по извршување на следните кодови 

1. A function can actually be called multiple times within a program, and its argument is naturally not limited just to literals:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// function example
#include <iostream>
using namespace std;

int subtraction (int a, int b)
{
  int r;
  r=a-b;
  return r;
}

int main ()
{
  int x=5, y=3, z;
  z = subtraction (7,2);
  cout << "The first result is " << z << '\n';
  cout << "The second result is " << subtraction (7,2) << '\n';
  cout << "The third result is " << subtraction (x,y) << '\n';
  z= 4 + subtraction (x,y);
  cout << "The fourth result is " << z << '\n';
}
The first result is 5
The second result is 5
The third result is 2
The fourth result is 6

2.
#include <iostream>
using namespace std;
void fun(int x)
{
    // definition of function
    x = 30;
}
int main()
{  int x = 20;
    fun(x);
    cout << "x = " << x;
    return 0;
}
  3. 
// passing parameters by reference
#include <iostream>
using namespace std;
void duplicate (int& a, int& b, int& c)
{
  a*=3;
  b*=3;
  c*=3;
}
int main ()
{ int x=2, y=4, z=6;
  duplicate (x, y, z);
  cout << "x=" << x << ", y=" << y << ", z=" << z;
  return 0;
}

// default values in functions
#include <iostream>
using namespace std;

int divide (int a, int b=2)
{
  int r;
  r=a/b;
  return (r);
}
int main ()
{ cout << divide (12) << '\n';
  cout << divide (20,4) << '\n';
  return 0;
}
  4. 
#include <iostream>
 using namespace std; 
 void Inc ( int& x)
 {
  x+=1;
   }
 void Reset ( int x, int& y )
 { y = x+2; }
 int main() 
{  int a=3, b=2;
   cout << "a + b = " << a + b << endl;      
   Inc (b);
   cout << a << " " << b << endl; 
   Reset(b, a);                                       
   cout << a << " " << b << endl;
   return 0;  
    }
  5.
 #include <iostream>
using namespace std;
void Func1 (int z, int& x, int& y)
       {   x = x + z; 
           y = y - z; }
int main()
{
     int x=33, y=22, z = 3;
     Func1 (++z, x, y); 
     cout << "x=" << x<< " "<< "y="<< y<<endl;
     Func1 (z++, x, y);
     cout << "x=" << x<< " "<< "y="<< y<< endl;
return 0;
}

6. #include<iostream>
using namespace std;
int broj1,broj2;    //globalni promenlivi vidlivi i za funkcijata i za main
int presmetaj (int a, int b)
{      int zbir,broj1,broj2;  // broj1, broj2 vazat samo za ovoj scope  
       broj1=1;               // nadvor od nego ne vazat 
       broj2=2;
      zbir=a+b+broj1+broj2;
      return zbir;   
}

int main ()
{
    int c,d;
    c=3; d=4; 
    broj1=10;  broj2=20; 
    cout<<"Funkcijata vraka rezultat:"<<presmetaj(c,d)<<endl;
    cout<<"broj1="<<broj1<<endl; 
    cout<<"broj2="<<broj2<<endl; 
    cout<<broj1<<"+"<<broj2<<"="<<broj1+broj2<<endl;
return 0;  
 }

7. Kаде е грешката ??

#include <iostream> using namespace std; void Potprogram() { int i=5; } int main() { Potprogram(); cout <<i; return 0; }

8.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// declaring functions prototypes
#include <iostream>
using namespace std;

void odd (int x);
void even (int x);

int main()
{
  int i;
  do {
    cout << "Please, enter number (0 to exit): ";
    cin >> i;
    odd (i);
  } while (i!=0);
  return 0;
}

void odd (int x)
{
  if ((x%2)!=0) cout << "It is odd.\n";
  else even (x);
}

void even (int x)
{
  if ((x%2)==0) cout << "It is even.\n";
  else odd (x);
}
Please, enter number (0 to exit): 9
It is odd.
Please, enter number (0 to exit): 6
It is even.
Please, enter number (0 to exit): 1030
It is even.
Please, enter number (0 to exit): 0
It is even.

9. Напиши функција (од типот void) izmeni која како параметри има референци на 3 цели броеви. Во функцијата, првиот аргумент се зголемува за 1, вториот аргумент се множи по 2, и третиот се намалува за 1. Потоа во главната програма да се декларираат 3 целобројни променливи x, y и z и да се внесат нивните вредности преку тастатура. Да се повика функцијата за аргументите x,y,z.  Во главната програма да се отпечатат нивните нови вредности.
 
Пример: x=3, y=2, z=4; Излез: 4, 4, 3; 

#include <iostream>
using namespace std;
void izmeni(int &x, int &y, int &z) 
{ x++;
 y*=2; 
 z--; }
 int main() 
{ int x,y,z; 
 cout << "vnesi tri celi broja" << endl ;
 cin>>x>>y>>z;
 izmeni(x,y,z);
 cout<<x<<" "<<y<<" "<<z;
 return 0;
}

10. Подредување на два броја по големина 
#include <iostream>
using namespace std; 
void zamena(float &x, float &y);

 int main()
 { float a, b; 
 cout << "внеси два броја " << endl; 
 cin >> a >> b;
 if(a>b) zamena(a,b); 
 cout << "podredeni broevite se : "; 
 cout << a << " " << b << endl; return 0; } 

void zamena(float &x, float &y)
 { float temp; temp = x; x = y; y = temp;}



Објасни ги примерите :

  1. #include <iostream>  
  2. using namespace std;  
  3. void func() {    
  4.    static int i=0; //static variable    
  5.    int j=0; //local variable    
  6.    i++;    
  7.    j++;    
  8.    cout<<"i=" << i<<" and j=" <<j<<endl;    
  9. }    
  10. int main()  
  11. {   func();    
  12.     func();    
  13.     func();    
  14. }  

Output:

i= 1 and j= 1
i= 2 and j= 1
i= 3 and j= 1


  1. #include<iostream>  
  2. using namespace std;  
  3. int sum(int x, int y, int z=0, int w=0) // Here there are two values in the default arguments   
  4. // Both z and w are initialised to zero   
  5.     return (x + y + z + w); // return sum of all parameter values  
  6. }  
  7. int main()  
  8. {  
  9.     cout << sum(10, 15) << endl; // x = 10, y = 15, z = 0, w = 0  
  10.     cout << sum(10, 15, 25) << endl; // x = 10, y = 15, z = 25, w = 0  
  11.     cout << sum(10, 15, 25, 30) << endl; // x = 10, y = 15, z = 25, w = 30  
  12.     return 0;  
  13. }  

Output

25
50
80    

Да се отпечатат сите прости броеви од 1 до n со користење на функцијата prost.

#include <iostream>
using namespace std;
bool prost(int n)
{
 int b=0,j;
 for(j=2;j<=n/2;j++)
 {
 if(n%j==0) b++;
 }
 if(b==0) return true;
 else return false;
}

int main()
{
 int n,i;
 bool t;
 cout << "vnesi go n" << endl;
 cin>>n;
 for(i=2;i<=n;i++)
 {
 t=prost(i);
 if (t) cout<<i<<" e prost "<<endl;
 }
 return 0;
}


ЗАДАЧИ 

1. Да се подредат три броја по големина
2. Напиши функција за наоѓање обратен број. Во главната програма да се најдат спротивни броеви на збирот и на разликата на броевите a и b.
3. Напиши функција со која се одредува бројот на цифрите на природен број. Во главната програма да се вчитаат два природни броја и да се провери дали тие имаат ист број на цифри.
4. Напиши функција со која се одредува збирот на цифрите на двоцифрен природен број. Во главната програма да се отпечатат сите двоцифрени броеви на кои збирот на цифрите име е поголем или еднаков на 10. 
5. 

No comments: