C++ Exercises 3
C++ Exercises 3
#include<iostream>
using namespace std;
main() {
int a[10],i,n;
for (i=0; i<=9; i++)
{
cout<<"a["<<i+1<<"]=";
cin>>a[i]; }
for (i=9; i>=0; i--)
cout<<"\na["<<i+1<<"]="<<a[i];
cin.get();
cin.get();
}
___________________________________________________________________________________
_____
/* Dali eden broj e palindrom */
#include<iostream>
using namespace std;
main() {
int a[10],n,i;
cout<<"Vnesete go brojot na cifrite";
cin>>n;
for (i=0;i<=n-1;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
for (i=0;i<=n/2;i++)
if (a[i]!=a[n-i-1])
{
cout<<"Ne e palindrom";
break;
}
if (i==(n/2+1))
cout<<"E palindrom";
cin.get();
cin.get();
}
___________________________________________________________________________________
_________
/*Da se procita niza a i da se ispecati nizata a i nejzinata dolzina*/
#include <iostream>
using namespace std;
main()
{
char a[20];
int i;
cout<<"vnesi tekst";
cin.getline(a,20);
for(i=0;a[i]!='\0';i++);
cout<<"Tekstot e"<<a<<"so dolzina"<<i;
cin.get();
cin.get();
}
___________________________________________________________________________________
________________________
/*da se izdvojat site zborovi vo edna recenica*/
#include <cstring>
#include <iostream>
using namespace std;
main()
{
char a[30];
int i,d;
cout<<"vnesi tekst";
cin.getline(a,30);
d=strlen(a); //dava dolzina na zborot
for(i=0; i<=d;i++)// d se stava namesto a[i]!='\0'
if (a[i]!=' ')
cout<<a[i];
else
cout<<endl;
}
___________________________________________________________________________________
________
cout<<a;
cin.get(); cin.get();
}
___________________________________________________________________________________
____________________-
/*dadeni se dve nizi a i b. Da se najdat poziciite (rednite broevi) na elementite
so ista vrednost vo dvete nizi*/
#include<iostream>
using namespace std;
main()
{
int i,a[100],b[100],n;
cout<<"Vnesi ja dolzinata na nizata n=";
cin>> n;
for (i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
cout<<endl;
}
for (i=0;i<n;i++)
{
cout<<"b["<<i<<"]=";
cin>>b[i];
cout<<endl;
}
cout<<" Nizite se sovpagjaat vo poziciite ";
for (i=0;i<n;i++)
{
if (a[i]==b[i])
cout<<i<<",";
}
cin.get();
cin.get();
}
___________________________________________________________________________________
___________________
/*Da se opredelat razlicnite elementi vo nizata a1,a2,a3�,an.*/
#include<iostream>
using namespace std;
main()
{
int a[50],i,j,n,br;
bool da;
cout<<"vnesi go brojot na elementi na nizata";
cin>>n;
for (i=0;i<n;i++)
{
cout<<"a["<<i+1<<"]=";
cin>>a[i];
cout<<endl;
}
br=0;
for (i=0;i<n;i++)
{
da=true;
for (j=0;j<i;j++)
if (a[i]==a[j])
da=false;
if (da==true)
{
cout<<a[i];
br++;
}
}
cout<<"brojot e="<<br;
cin.get();
cin.get();
}
___________________________________________________________________________________
____________________
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i,j;
string ime[8]={"Sneze", "Moni", "Toni", "Slavco","Ane", "Zorica","Vele",
"Bozin"};
cout<<"\niminata se:\n";
for(i=0;i<8;i++)
cout<<"\n"<<ime[i];
for(i=0;i<8;i++)
for(j=i+1;j<8;j++)
if(ime[i]>ime[j])
swap(ime[i],ime[j]);
cout<<endl;
cout<<"\npodredeni imina:\n ";
for(i=0;i<8;i++)
cout<<"\n"<<ime[i];
cin.get();
cin.get();
return 0;
}
___________________________________________________________________________________
____________________-
Maksimum od proizvolen broj na elementi
#include <iostream>
#include<cstring>
#include<cctype>
using namespace std;
main()
{
int br, max;
cout<<"Vnessi broj:";
cin>>br;
max=br;
while (cin.get()!=EOF)
{ cout<<"Vnesi broj:";
cin>>br;
if (br>max)
max=br;
}
cout<<"max e :"<<max;
cin.get(); cin.get();
}
___________________________________________________________________________________
___________________
POINTERI
___________________________________________________________________________________
____________________
#include <iostream>
using namespace std;
int main () {
int x = 5;
int y = 10;
int *xPtr = NULL;
int *yPtr = NULL;
xPtr = &x;
yPtr = &x;
*xPtr = *xPtr + 1;
(*yPtr)--;
cout<<x<<", "<<y;
}
o 5, 10
o 6, 9 <-----
o 10, 5
o 9, 6
o 0, 0
o 5, 5
o 10, 10
___________________________________________________________________________________
___________________
2. What� s the output for the next code:
#include <iostream>
using namespace std;
int main () {
int x = 2;
int y = 2;
int *xPtr = NULL;
int *yPtr = NULL;
cout<<x<<", "<<y;
}
o 4, 8 <---------
o 2, 2
o 8, 4
o 2, 4
o 4, 2
o 6, 8
o 8, 6
___________________________________________________________________________________
____________________
3. If we have a declaration as follows:
int number[5];
int *p;
the expression:
p=number; *p=10;
is equivalent with:
o number[0]=10
o number [1]=10
o number [10]=10 <---------
o number [5]=10
___________________________________________________________________________________
______________________
4. The code
int *tek=&number;
o is correct
o is not correct
___________________________________________________________________________________
____________________
5. If we have:
int *pointer;
value=&pointer;
the variable value contains:
int main()
{
int value1=5,value2=15;
int *p1,*p2;
p1=&value1;
p2=&value2;
*p1=10;
*p2=*p1;
p1=p2;
*p1=20;
cout<<"value1="<<value1<<"/value2="<<value2;
return 0;
}
o value1=10/value2=20; <---------
o value1=10/value2=10;
o value1=20/value2=20;
o value1=20/value2=10;
o value1=5/value2=15;
___________________________________________________________________________________
______________________
7. Pointers are used in functions when we have:
o call by reference
o call by value
___________________________________________________________________________________
____________________
STRINGOVI
___________________________________________________________________________________
____________________
/*
Da se uoci dali vo nekoj tekst se pojavuva podtekst, ako da, da se napise
pozicijata kade pocnuva podtekstot
*/
#include <iostream>
using namespace std;
int main()
{
int i; int j; int dolzinaa; int dolzinab;
char a[100]; char b[50];
}
cin.get();
return 0;
}
___________________________________________________________________________________
_____________________
/*
Od eden zbor da se dobie inverzniot
*/
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char zbor[20];
cout<<"Vnesi zbor";
cin.getline(zbor,20);
strrev(zbor);
cout<<"Inverzniot zbor e:"<<zbor;
cin.get();
return 0;
}
___________________________________________________________________________________
___
/********************************************************************
*
*
* Odstranuvanje na eden podstring od daden string (se znae pozicijata
i dolzinata na podstringot
*
*
********************************************************************/
#include<iostream>
#include<string>
using namespace std;
int main(){
char a[40],b[40];
int pozicija, dolzina;
int i,j,len;
cout<<"Vnesi zbor: ";
cin.getline(a,40);
cout<<"Vnesi ja pozicijata od koja pocnuva podstringot: ";
cin>>pozicija;
cout<<"Vnesi ja dolzinata na podstringot: ";
cin>>dolzina;
len=strlen(a);
for(i=1;i<=pozicija;i++)
b[i-1]=a[i-1];
for(i=pozicija+dolzina-1;i<len;i++)
b[i-dolzina]=a[i];
cout<<"Zborot bez izvadeniot podstring e:\t";
j=len-dolzina;
for(i=0;i<j;i++)
cout<<b[i];
cout<<"\nIzvadeniot podstring e:\t";
for(i=pozicija;i<pozicija+dolzina;i++)
cout<<a[i-1];
cin.get();
cin.ignore();
return 0;
}
______________________________________________________________________________
/*
Da se napise programa so koja za dva zbora se realizira:
a) spojuvanje
b) sporeduvanje
*/
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[90],b[90];
cout<<"Vnessi go prviot zbor: ";
cin.getline(a,90);
cout<<endl<<"Vnesi go vtoriot zbor: ";
cin.getline(b,90);
cout<<endl<<"Dvata stringa se: ";
if (strcmp(a,b))
cout<<"Ne se isti" ;
else
cout<<"Se isti";
int main(void)
{
STRING zbor;
zb_input(zbor);
zb_print(zbor);
zb_sort(zbor);
printf("\nAlfabetski podredenata lista na iminja e: \n");
zb_print(zbor);
getch();
}
for(i=0;i<10;i++)
{
printf("Vnesi iminja %d = ", i+1);
scanf("\n %s", &f[i]);
}
}
void zb_print( STRING f )
{
int i;
for(i=0;i<10;i++)
{
printf("\n %s", f[i]);
}
}
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if (strcmp(f[i], f[j]) > 0)
{
strcpy(t, f[i]);
strcpy(f[i], f[j]);
strcpy(f[j], t);
}
}
___________________________________________________________________________________
_____
/*
Da se proveri inputot na edna numericka promenliva (dali e broj ili zbor)
*/
#include <iostream>
#include <string.h>
using namespace std;
int main ()
{
int i,dolzina;
char a[50];
bool da;
cout<<"Vnesi niza";
cin.getline(a,50);
dolzina=strlen(a);
da=true;
for (i=0;i<dolzina;i++)
{
if (isalpha(a[i])&&da)
{
cout<< "Inputot ne e broj\n";
da=false;
}
}
if (strlen(a)>5)
cout<<"Dolzinata na nizata e mnogu golema";
cin.get();cin.get();
return 0;
}
___________________________________________________________________________________
____________
/* Sredna vrednost na dva ili tri broja */
#include<iostream>
#include<averages.h>
using namespace std;
int average(int first_number, int second_number, int third_number)
{ return ((first_number + second_number + third_number) / 3); }
int average(int first_number, int second_number)
{ return ((first_number + second_number) / 2); }
int main() {
int x,y,z,n;
cout<<"Vnesi dva ili tri broja:";
cin>>n;
if (n==3)
{ cout<<"Vnesi gi trite broja:";
cin>>x>>y>>z;
cout<<"Srednata vvrednost e:"<<average(x,y,z); }
else
{ cout<<"Vnesi gi dvata broja:";
cin>>x>>y;
cout<<"Srednata vvrednost e:"<<average(x,y); }
cin.get(); cin.get();
}
______________________________________________________________________-
//da se najde faktoriel i kvadraten koren na pozitiven broj
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int cel_broj;
#include <iostream>
using namespace std;
main()
{
int i,a[100],b[100],n,p;
p=0;
cout<<"Kolku broja sakate da presmetate: ";
cin>>n;
cout<<"Vnesete gi broevite na prvata niza : \n";
for (i=0;i<n;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
cout<<endl;
}
cout<<"Vnesete gi broevite na vtorata niza : \n";
for (i=0;i<n;i++)
{
cout<<"b["<<i<<"]=";
cin>>b[i];
cout<<endl;
}
for (i=0;i<n;i++)
p=p+a[i]*b[i];
cout<<"Skalarniot proizvod e: "<<p;
cin.get();
cin.get();
}
___________________________________________________________________________________
_____________
/*
Da se najde minimalniot broj i negoviot indeks vo edna niza
*/
#include <iostream>
using namespace std;
int main()
{
int a[50],i,index,min,broj;
cout<<"Vnesi go brojot na elementi na nizata";
cin>>broj;
cout<<endl;
for(i=0;i<broj;i++)
{
cout<<"a["<<i+1<<"]=";
cin>>a[i];
}
min=a[0];
index=0;
for(i=0;i<broj;i++)
if(a[i]<min)
{
min=a[i];
index=i;
}
cout<<"Minimumot e: \n"<<min;
cout<<"Indeksot na minimumot e : "<<index+1<<"\n";
cin.get();cin.ignore();
return 0;
}
_________________________________________________________________________________
//Od edna niza a da se najdat site broevi delivi so tri, e da se vnesat vo edna
nova niza b
#include <iostream>
using namespace std;
int main()
{
int b[10],a[10];
int i,br;
br=0;
for(i=1;i<=10;i++)
{ cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Broevite delivi so tri se:";
for (i=1;i<=10;i++)
if ((a[i]%3)==0)
{
br++;
b[br]=a[i];
}
else
cout<<endl;
for (i=1;i<=br;i++)
cout <<"\nb["<<i<<"]="<<b[i];
cin.get();
cin.get();
}
___________________________________________________________________________________
_________________
/*
Za edna niza da se formiraat podnizi, taka da koga se doaxa na element so vrednost
nula, da se formira nova podniza
#include<iostream>
using namespace std;
int main()
{
int i,a[100],n;
cout<<"Kolku broja ke vnesete:";
cin>>n;
cout<<"Vnesi gi elementite na nizata: ";
for (i=0;i<n;i++)
{
cout<<endl<<"a["<<i+1<<"]=";
cin>>a[i];
}
for(i=0;i<n;i++)
if (a[i]!=0)
{
cout<<a[i]<<" ";
}
else
{
cout<<endl<<endl;
}
cin.get();cin.get();
return 0;
}
___________________________________________________________________________________
_______________
//Za dadena niza da se najde zbirot na pozitvni broevi i zbirot na negativni broevi
___________________________________________________________________________________
_________________
/Da se napise zbor, da se napravi inverzen na nego i ako bila bukvata
/mala da se napravi golema i obratno
#include <iostream>
#include <cstring>
using namespace std;
main(){
char a[10],b[10];
int i,n;
cout<<"Vnesi zbor";
cin.getline(a,10);
n=strlen(a);
for (i=0; i<=n; i++)
b[i]=a[n-i-1];
b[i-1]='\0';
for (i=0; i<=n; i++)
{ if (b[i]>91)
b[i]=toupper(b[i]);
else
b[i]=tolower(b[i]);
}
cout<<b;
cin.get();
cin.get();
}
___________________________________________________________________________________
_____________________
Maksimum od dva broja so funk
#include <iostream>
using namespace std;
int max(int, int);
main() {
int a,b;
cout<<"Vnesi eden broj: \n";
cin>>a;
cout<<"Vnesi uste eden broj: \n";
cin>>b;
cout<<"Maaksimumot e: "<<max(a,b);
cin.get(); cin.get(); }
int max(int a, int b)
{ if (a>b)
return a;
else
return b; }
___________________________________________________________________________________
__________________
Vmetni zvezda vo tekst;
#include <iostream>
#include <cstring>
using namespace std;
main()
{
char a[30];
int i,poz,dol;
cout<<"Vnesi elementi : ";
cin.getline(a,30);
cout<<"Vnesi pozicija: ";
cin>>poz;
dol=strlen(a);
for(i=dol;i>=poz-1;i--)
a[i+1]=a[i];
a[dol+1]='\0';
a[poz-1]='*';
cout<<a<<"\n";
}
___________________________________________________________________________________
____________________
Zbir na broevi od 1 do n
#include <iostream>
using namespace std;
int suma(int);
main() {
int n;
cout<<"Vnesi eden broj: \n";
cin>>n;
cout<<"Zbirot e: "<<suma(n);
cin.get(); cin.get(); }
int suma(int n)
{ int s;
s=0;
for (int i=0; i<=n; i++)
s=s+i;
return s;
}
___________________________________________________________________________________
___________________
//Dve funkcii call by value i call by reference samo da se opisat
#include <iostream>
using namespace std;
int fcall_value(int);
int fcall_reference(int &);
main() {
int a,b;
a=2;
b=4;
cout<<"Vrednosta na a pred fcall_value: "<<a<<"\n";
cout<<"Vrednosta a vo fcall_value: "<<fcall_value(a)<<"\n";
cout<<"Vrednosta posle povik na funkcijata: "<<a<<"\n";
cout<<"Vrednosta na b pred fcall_value: "<<b<<"\n";
fcall_reference(b);
cout<<"Vrednosta na b posle povik na funkcijata: "<<b<<"\n";
cin.get(); cin.get(); }
int fcall_value(int x)
{ x=3*x;
return x; }
int fcall_reference(int & yref)
{ yref=yref*3;
return yref; }
_______________________________________________________________
//Opsta formula za generiranj na slucajni broevi od 1 do n: rand()%n+1
//DA se formira niza aod 5 el. za slucajni broevi od 1 do 6
#include<cstdlib>
#include <iostream>
using namespace std;
main() {int a[5];
for (int i=0; i<=5; i++)
{ a[i]=rand()%6+1;
cout<<a[i]<<",";}
cin.get(); cin.get(); }
________________________________________________________________________________
//Sto dava kako output sledniot kod;
#include<cstdlib>
#include <iostream>
using namespace std;
main() {int a[5]={1,2,6,3,9},*p;
p=a;
cout<<*(p+3);
cin.get(); cin.get(); }
___________________________________________________________________________________
________________
Maksimum od proizvolen broj na elementi
#include <iostream>
#include<cstring>
#include<cctype>
using namespace std;
main()
{
int br, max;
cout<<"Vnessi broj:";
cin>>br;
max=br;
while (cin.get()!=EOF)
{ cout<<"Vnesi broj:";
cin>>br;
if (br>max)
max=br;
}
cout<<"max e :"<<max;
cin.get(); cin.get();
}
___________________________________________________________________________________
_______________
/*s=1+2n+3n....n*n;*/
#include <iostream>
using namespace std;
int suma(int);
int main()
{ int n;
cout<<"Vnesi go brojot";
cin>>n;
cout<<"Zbirot e:"<<suma(n);
cin.get();
cin.get();
}
int suma(int n)
{
int i,s;
s=1;
for (i=2;i<=n;i++)
s=s+i*n;
return s;
}
___________________________________________________________________________________
__________________