Sunteți pe pagina 1din 9

UNIVERSITATEA DE VEST DIN TIMIȘ OARA

FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

Pregătire pentru examenul de Bacalaureat şi examenul de admitere la Facultatea de Matematică şi


Informatică

Rezolvările problemelor propuse pentru sesiunea 9 - 14 martie 2020

INFORMATICA

1. P1
#include <iostream>
using namespace std;

int n,k,v[1005],aux,i;
bool ok;

int main()
{
cin >> n;
k = n / 2;
for(i=1;i<=n;i++) cin>>v[i];

do
{
ok=true;
for(i=1;i<k;i++)
if(v[i]>v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=false;
}
} while (!ok);

do
{
ok=true;
for(i=k+1;i<n;i++)
if(v[i]<v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=false;
}
} while (!ok);

Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

for(i=1;i<=n;i++) cout<<v[i]<<" ";


return 0;
}

2. P2
#include<iostream>
#include <stdlib.h>
#include<string.h>
using namespace std;

typedef struct
{
char culoare[20];
int dim;
}obiecte;

void citire(obiecte *obj, int *n)


{
int i, nn;
cout<<"introduceti nr de obiecte:";
cin>>nn;
*n = nn;
for(i=0;i<nn;i++)
{
cout<<"culoarea: ";
cin>>obj[i].culoare;
cout<<"dimensiunea: ";
cin>>obj[i].dim;
}
}
void afisare(obiecte *obj, int n)
{
int i;
for(i=0;i<n;i++){
cout<<"culoare:"<<obj[i].culoare<<endl;
cout<<"\tdimensiune:"<<obj[i].dim<<endl;
}
}
int cmpcul(char *cul1,char *cul2)
{
if(!strcmp(cul1,cul2))return 0;
if(!strcmp(cul1,"rosu"))return -1;
if(!strcmp(cul1,"albastru"))return 1;
//cul1 este alb
if(!strcmp(cul2,"rosu"))return 1;
Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

//cul2 este albastru


return -1;
}
int cmp(obiecte *o1,obiecte *o2)
{
int r=cmpcul(o1->culoare,o2->culoare);
if(r)return r;
//culoare identica
if(o1->dim<o2->dim)return -1;
if(o1->dim>o2->dim)return 1;
return 0;
}
int main()
{
obiecte obj[100];
int i,n,modificat;
obiecte o;

citire(obj, &n);
afisare(obj,n);
//bubble sort
do{
modificat=0;
for(i=1;i<n;i++){
if(cmp(&obj[i-1],&obj[i])>0){
o=obj[i-1];
obj[i-1]=obj[i];
obj[i]=o;
modificat=1;
}
}
}while(modificat);

cout<<"\nsortat\n";
afisare(obj,n);
}

3. P3
#include <iostream>
using namespace std;

int n, i, x, minn = INT_MAX, maxx = -minn, v[1000];

int main()
{
Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

cin>>n;
for(i = 1;i <= n; i++)
{
cin>>x;
v[x]=i;
if (x<minn) minn = x;
if (x>maxx) maxx = x;
}
for(i=minn;i<=maxx;i++)
if(v[i]>0) cout << v[i] << " ";
return 0;
}

4.P4
#include <iostream>

using namespace std;

int x[25005],n,t,i,j,s,d,p,m,mi;

int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
cin>>m;
for(i=1;i<=m;i++)
{
cin>>t;
s=1;d=n;p=0;
while(s<=d)
{
mi=(s+d)/2;
if(x[mi]==t)
{
p=mi;
s=d+1;
} else
if(t<x[mi]) d=mi-1;
else s=mi+1;
}
if(p!=0) cout<<1<<" ";
else cout<<0<<" ";
}
return 0;
Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

5. P5
#include <iostream>
using namespace std;

void citire (int x[], int &n)


{
int i;
cout<<"Dati n ";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Dati o valoare ";
cin>>x[i];
}
}

int conditie (int a, int b, int c)


{
if(a > b+c || b> c+a || c> a+b)
return 0;
else
return 1;
}

int cateTriunghiuri(int x[], int n)


{
int contor = 0,i,j,k;
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
for(k=j+1;k<=n;k++)
{
if(conditie(i,j,k)==1)
contor++;
}
}
}
return contor;
}

int main()
{
Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

int x[100], n;
citire(x,n);
cout<<"Se pot forma "<<cateTriunghiuri(x,n)<<" triunghiuri";
}

6. P6
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int n;
int M;
int v[100];
int a[100];

int cmpfunc (const void * a, const void * b) {


return ( *(int*)a - *(int*)b );}
void citire(int n,int v[100]);

int main()
{
int durata=0;
cout<<"Nr muncitori: "; cin>>n;
cout<<"Durate muncitori: "; citire(n,v);
cout<<"Obiecte: "; cin>>M;
int i;
//qsort(v,n, sizeof(int), cmpfunc);
for(i=0;i<n;i++)
a[i]=v[i];
while(M!=0)
{
for(i=0;i<n;i++)
{
v[i]--;
if(v[i]==0)
{M--;
v[i]=a[i];}

}
durata++;
}
cout<<durata;

}
Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

void citire(int n,int v[100])


{
int i;
for(i=0;i<n;i++)
cin>>v[i];
}

7. P7

#include<iostream>
#include<algorithm>
using namespace std;

void swap(int *x, int *y)


{
int temp = *x;
*x = *y;
*y = temp;
}

void sortInWave(int arr[], int n)


{

sort(arr, arr+n);

for (int i=0; i<n-1; i += 2)


swap(&arr[i], &arr[i+1]);
}

int main()
{
int arr[] = {10, 90, 49, 2, 1, 5, 23};
int n = sizeof(arr)/sizeof(arr[0]);
sortInWave(arr, n);
for (int i=0; i<n; i++)
cout << arr[i] << " ";
return 0;
}

8. P8. Suprapunere intervale

#include <algorithm>
#include <iostream>
using namespace std;

Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

struct Interval {
int start;
int end;
};

bool compareInterval(Interval i1, Interval i2)


{
return (i1.start < i2.start) ? true : false;
}

bool isOverlap(Interval arr[], int n)


{
sort(arr, arr + n , compareInterval);

for (int i = 1; i < n; i++)


if (arr[i - 1].end > arr[i].start)
return true;

return false;
}

int main()
{
Interval arr1[] = { { 1, 3 }, { 7, 9 }, { 4, 6 }, { 10, 13 } };
int n1 = sizeof(arr1) / sizeof(arr1[0]);
isOverlap(arr1, n1) ? cout << "Yes\n" : cout << "No\n";

Interval arr2[] = { { 6, 8 }, { 1, 3 }, { 2, 4 }, { 4, 7 } };
int n2 = sizeof(arr2) / sizeof(arr2[0]);
isOverlap(arr2, n2) ? cout << "Yes\n" : cout << "No\n";

return 0;
}
9.P9
#include<bits/stdc++.h>
using namespace std;
int countRotations(int arr[], int low, int high)
{
if (high < low)

Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .
UNIVERSITATEA DE VEST DIN TIMIȘ OARA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

return 0;
if (high == low)
return low;
int mid = low + (high - low)/2; /*(low + high)/2;*/
if (mid < high && arr[mid+1] < arr[mid])
return (mid+1);
if (mid > low && arr[mid] < arr[mid - 1]) return mid;
if (arr[high] > arr[mid]) return countRotations(arr, low, mid-1);
return countRotations(arr, mid+1, high);
}
int main()
{
int arr[] = {15, 18, 2, 3, 6, 12};
int n = sizeof(arr)/sizeof(arr[0]);
cout << countRotations(arr, 0, n-1);
return 0;
}

Telefon: 0256-592.303
Email: dci@rectorat.uvt.ro
Website: http://www.uvt.ro/
Blvd. V. Pârvan 4, 30 0223, Tim i şoa ra, Român ia
Tel: +40-(0)256-592.155
Email: mateinfo @e-uvt.ro
www.math.uvt.ro .

S-ar putea să vă placă și