Orar semigroup #2

Orar semigroup #2

Subiecte BAC 20 noiembrie

Subprogramul sub, cu trei parametri, primeşte prin intermediul parametrilor:
– v un tablou unidimensional cu cel mult 100 de componente ce memorează numere întregi de cel mult 4 cifre fiecare;
– n un număr natural nenul mai mic sau egal cu 100 ce reprezintă numărul efectiv de componente ale tabloului primit prin intermediul parametrului v;
– a un număr întreg cu cel mult 4 cifre.
Subprogramul sub returnează numărul componentelor tabloului primit prin intermediul parametrului v ale căror valori sunt strict mai mici decât valoarea parametrului a.
Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=20 ale parametrilor, în urma apelului, subprogramului sub va returna valoarea 2.
a) Scrieţi definiţia completă a subprogramului sub.
b) Să se scrie un program C/C++ care să citească de la tastatură un număr natural nenul n (n≤100) şi n numere întregi, fiecare având cel mult 4 cifre, şi care, folosind apeluri utile ale subprogramului sub, să afişeze pe ecran mesajul DA dacă oricare două dintre cele n numere întregi citite sunt distincte două câte două, sau mesajul NU în caz contrar.
Exemplu: pentru n=6 şi cele n numere citite de la tastatură: 47 183 69 8 134 -56
se va afişa pe ecran mesajul DA

#include<iostream>
#include<fstream>
using namespace std;
int sub(int v[], int n, int a)
{int i,j=0;
for(i=0;i<n;i++)
    if(v[i]<a)
        j++;
return j;}

int main()
{int n,v[100],i,a,vv[100];
cin>>n;
for(i=0;i<n;i++)
    cin>>v[i];
for(i=0;i<n;i++)
    vv[i]=sub(v,n,v[i]);
for(i=0;i<n-1;i++)
    for(int j=i+1;j<n;j++)
        if(vv[i]==vv[j])
            {cout<<"NU";return 0;}
cout<<"DA";
}

marți, 20 noiembrie 2012 by DlMuresan
Categories: | Leave a comment

19 noiembrie

Departamente, suma salariilor din fiecare, media, max si min din fiecare plus numarul de angajati
select department_name, sum(salary), trunc(avg(salary)), min(salary),max(salary),count(*) angajati from employees join departments using (department_id) group by department_name

select add_months(to_date('01-01-2012','dd-mm-yyyy'),4) from dual

select add_months(to_date('2012/02/02','yyyy-mm-dd'),4) from dual

select to_char(add_months(to_date('2012/02/02','yyyy-mm-dd'),4),'day,month,yyyy') from dual

Luna in cifre romane (rm sau RM)
select to_char(add_months(to_date('2012/02/02','yyyy-mm-dd'),4),'day,rm,yyyy') from dual


luni, 19 noiembrie 2012 by DlMuresan
Categories: , , | Leave a comment

16 noiembrie

select first_name, last_name,trunc(months_between(sysdate,hire_date)/12) "Ani de lucru" from employees

Fondul de salarii din fiecare departament dar doar pt angajatii mai vechi de 15 ani
select sum(salary) "Fond de salarii", department_name from employees e,departments d where e.department_id=d.department_id and trunc(months_between(sysdate,hire_date)/12)>15 group by department_name

Afiseaza doar departamentele in care lucraeza mai vechi de 15 ani cu fond de salarii de peste 15000
select sum(salary) "Fond de salarii", department_name from employees e,departments d where e.department_id=d.department_id and trunc(months_between(sysdate,hire_date)/12)>15 group by department_name having sum(salary)>15000

SELECT - coloane
FROM - tabele
WHERE - expresie logica
GROUP BY - coloan1, coloana 2
HAVING - expresie logica (conditie pe grupul definit)
ORDER - coloana1 (alias)

HAVING nu poate aparea fara GROUP BY


select sum(salary) "Fond de salarii", department_name from employees e,departments d where e.department_id=d.department_id and trunc(months_between(sysdate,hire_date)/12)>15 group by department_name having sum(salary)>=(select avg(salary) from employees)

select sum(salary) "Fond de salarii", department_name from employees e,departments d where e.department_id=d.department_id and trunc(months_between(sysdate,hire_date)/12)>1 group by department_name having count(*)>2

vineri, 16 noiembrie 2012 by DlMuresan
Categories: , | Leave a comment