Informatica
BILETELE pentru sustinerea probei practice in vederea obtinerii ului profesional la informatica - sesiunea maiBILETELE pentru sustinerea probei practice in vederea obtinerii atestatului profesional la informatica sesiunea mai 2008 - conform metodologiei aprobata cu OM 5149/2002 - OBS:Subiectul nr.1 se rezolva in unul din mediile impuse de cerinte(Word, Excel, PowerPoint, WindowsExplorer etc.)Subiectul nr.2 se poate rezolva in oricare din urmatoarele: FoxPro, VisualFox, Access, OracleSubiectul nr.3 se poate rezolva in oricare din
urmatoarele limbaje: Pascal, C, C++
|
Exemplu : pentru fisierul in.txt 5 2 4 3 -7 6 7 6 2 |
fisierul out.txt va fi : |
#include <fstream.h>
void main ()
3. De la tastatura se citeste un cuvant de maxim 15 caractere. Sa se construiasca toate prefixele si sufixele cuvantului dat. Datele de iesire se scriu in fisierul out.txt astfel :
- pe prima linie cuvantul citit de la tastatura;
- pe a doua linie toate prefixele cuvantului, unul dupa altul, in ordinea generarii, separate de un caracter spatiu;
- pe a treia linie toate sufixele cuvantului, unul dupa altul, in ordinea generarii, separate de un caracter spatiu.
|
Exemplu : pentru cuvantul PASCAL, fisierul out.txt contine :
PASCAL
P PA PAS PASC PASCA PASCAL
L AL CAL SCAL ASCAL PASCAL
#include <fstream.h>
#include <string.h>
//prefixe si sufixe ale unui cuvant
void main ()
fout<<endl;
for (i=l-1; i>=0; i--)
fout<<c+i<<' ';
fout<<endl;
fout.close();
}
3. Se considera un tablou bidimensional cu n linii si m coloane (n, m <=10), completat cu numere intregi. Sa se determine suma elementelor de pe fiecare linie, respectiv de pe fiecare coloana a tabloului. Datele de intrare se citesc din fisierul text in.txt organizat astfel : pe prima linie - doua numere, n si m, separate printr-un caracter spatiu; pe urmatoarele n linii, cate m numere intregi separate printr-un caracter spatiu pe fiecare linie. Datele de iesire se scriu in fisierul out.txt organizat astfel : pe prima linie - n numere intregi, separate printr-un caracter spatiu, care reprezinta suma elementelor de pe cele n linii ale tabloului; pe a doua linie - m numere intregi, separate printr-un caracter spatiu, care reprezinta suma elementelor de pe cele m coloane ale tabloului.
Exemplu : pentru fisierul in.txt 5 2 4 3 -7 6 7 8 2 |
fisierul out.txt va fi : 3 20 15 3 12 |
#include <fstream.h>
void main ()
fout<<endl;
//suma pe coloane
int sc;
for (j=1; j<=m; j++)
fout<<endl;
fout.close();
}
3. Cerinte:
a) Scrieti un subprogram care primeste la intrare un numar natural dat, n, de maxim 9 cifre, si intoarce suma cifrelor acestui numar.
b) Sa se utilizeze acest subprogram pentru a calcula suma cifrelor numarului obtinut in urma efectuarii sumei , unde x este un numar natural citit de la tastatura.
#include <iostream.h>
//a
long n;
int s_cif (long n)
return s;
}
//b
void main ()
3. O matrice cu p linii si q coloane se completeaza cu numere intregi citite de la tastatura. Sa se interschimbe elementele coloanelor x si y (x si y sunt numere naturale citite de la tastatura). Daca matricea este patrata sa se verifice daca elementele de pe diagonala principala sunt ordonate crescator.
#include <iostream.h>
int p, q, a[100][100], x, y, i, j;
void schimba (int x, int y)
}
int verifica (int p)
void main ()
schimba (x, y);
for (i=1; i<=p; i++)
}
3. Cerinte:
a) Sa se scrie un subprogram recursiv care primeste la intrare doua numere naturale a si b si intoarce valoarea .
b) Sa se utilizeze subprogramul pentru calculul valorii expresiei : , unde p, q si k sunt numere naturale citite de la tastatura.
#include <iostream.h>
int a, b;
long put (int a, int b)
void main ()
cout<<(float)s1/p1<<endl;
}
3. Cerinte:
a) Sa se scrie un subprogram care calculeaza termenul de ordinul k al sirului Fibonacci.
b) Sa se utilizeze acest subprogram pentru a calcula suma , unde n se citeste de la tastatura si este impar.
Termenul de ordinul k al sirului se defineste astfel :
#include <iostream.h>
int fibonaci (int k)
void main ()
while (n%2==0);
int s=0;
for (i=1; i<=n; i++)
s+=fibonaci (i);
cout<<s<<endl;
}
3. Fisierul text in.txt contine mai multe linii, pe fiecare linie fiind memorat un numar natural de o cifra. Considerand ca aceste numere sunt cifrele unui numar natural, sa se determine acest numar. Sa se adauge acest numar la sfarsitul fisierului in.txt.
#include <fstream.h>
ifstream fin ('in.txt');
fstream f ('in.txt', ios::app);
void main ()
3. Fisierul text in.txt contine mai multe linii, pe fiecare linie fiind memorat un numar natural de maxim 4 cifre. Sa se calculeze suma numerelor care sunt neprime. Sa se adauge la sfarsitul fisierului in.txt inca o linie care contine aceasta suma.
3. Se considera o matrice a cu m linii si n coloane (m, n <=10), cu elemente numere reale. Sa se calculeze urmatoarele trei sume :
- suma elementelor din matrice care au 3 vecini;
- suma elementelor din matrice care au 5 vecini;
- suma elementelor din matrice care au 8 vecini.
Datele de intrare se citesc din fisierul text in.txt organizat astfel : pe prima linie - doua numere, n si m, separate printr-un caracter spatiu; pe urmatoarele n linii, cate m numere intregi separate printr-un caracter spatiu pe fiecare linie. Datele de iesire se scriu in fisierul out.txt care contine trei linii, pe fiecare linie fiind memorata cate una dintre sumele calculate, in ordinea ceruta.
#include <fstream.h>
void main ()
3. Se considera o tabla de sah de 8x8 patratele. Tabla se completeaza cu numerele de la 1 la 64 pe linii, incepand cu prima linie. Sa se afiseze tabla de sah. Sa se calculeze suma numerelor din patratelele negre, respectiv suma numerelor din patratelele albe. Patratelul din coltul stanga sus are culoarea alb.
#include <iostream.h>
void main ()
cout<<endl;
}
long sn=0, sa=0;
for (i=1; i<=8; i++)
for (j=1; j<=8; j++)
if ((i+j)%2==0) sa+=a[i][j];
else sn+=a[i][j];
cout<<'suma negre='<<sn<<endl<<'suma
albe='<<sa<<endl;
}
3. Determinati toate sirurile de numere de lungime n, n<=9, cu elemente formate numai din numerele 1, 2, n. Intr-un sir un numar poate apare in orice pozitie, iar doua elemente vecine nu pot fi ambele pare sau ambele impare. Exemplu : pentru n=4, sirurile generate sunt : 1234, 1432, 2143, 2341, 3241, 3412, 4123, 4321.
#include <iostream.h>
int n, v[5], i, uz[10];
void back (int k)
else
for (i=1; i<=n; i++)
if (k==1)
else
if ((uz[i]==0)
&& (v[k-1]%2 != i%2))
}
void main ()
while (n>9);
back (1);
}
3. De la tastatura se citeste un numar natural n, n<=30000. Sa se determine un numar mai mic decat n care are un numar maxim de divizori proprii primi. Pot exista mai multe astfel de numere, caz in care se va afisa unul dintre ele.
n=11 se va afisa 6 sau 10.
#include <iostream.h>
#include<math.h>
int prim (int x)
}
void main ()
}
cout<<nr<<endl;
}
3. De la tastatura se citesc elementele a doua multimi A si B, cu p, respectiv q elemente, elementele fiecarei multimi fiind distincte doua cate doua (p, q <=100). Sa se determine elementele si cardinalul multimilor .
#include <iostream.h>
void main ()
cout<<endl<<'A minus B'<<endl;
for (i=1; i<=p; i++)
}
if (nr==0) cout<<'Multimea vida'<<endl;
}
3. De la tastatura se citesc pe n caractere din multimea . Caracterele citite reprezinta un numar natural reprezentat in baza 16. Sa se determine valoarea acestui numar in baza 10.
#include <iostream.h>
void main ()
nr=nr*16+val;
}
cout<<nr<<endl;
}
3. Fisierul text date.txt memoreaza un graf neorientat (cu n noduri si m muchii) si are urmatoarea structura :
- pe prima linie 2 numere naturale (n si m) separate prin cel putin un caracter spatiu;
- pe urmatoarele m linii cate 2 numere naturale din multimea ; fiecare pereche de 2 numere naturale reprezinta nodurile adiacente ale fiecareia dintre cele m muchii.
Sa se construiasca matricea de adiacente a grafului si apoi, folosind-o, sa se afiseze lista de adiacenta asociata grafului.
#include <fstream.h>
void main ()
for (i=1; i<=n; i++)
}
3. Se considera un vector de dimensiune , completat cu numere intregi. Elementele vectorului se citesc de la tastatura astfel incat vectorul sa fie ordonat descrescator. Folosind algoritmul de cautare binara sa se verifice daca un numar intreg dat x, citit de la tastatura, se afla printre elementele vectorului.
#include <iostream.h>
//cautare binara vector ordonat crescator
void main ()
cout<<'x='; cin>>x;
int t=1, y=k, a=0;
while ((t<=y) && (a==0))
}
if (a==1) cout<<'Da'<<endl;
else cout<<'Nu'<<endl;
}
3. Fisierul text date.txt memoreaza un graf neorientat (cu n noduri si m muchii) si are urmatoarea structura :
- pe prima linie 2 numere naturale (n si m) separate prin cel putin un caracter spatiu;
- pe urmatoarele m linii cate 2 numere naturale din multimea ; fiecare pereche de 2 numere naturale reprezinta nodurile adiacente ale fiecareia dintre cele m muchii.
Se cere sa se afiseze matricea de adiacenta a subgrafului obtinut prin eliminarea nodurilor x si y (x si y se citesc de la tastatura si sunt mai mici sau egale cu n).
#include <fstream.h>
void main ()
f.close();
cout<<'x='; cin>>x;
cout<<'y='; cin>>y;
for (i=1; i<=n; i++)
int y=1;
if (x==n || y==n) n--;
if (x==1 || y==1) y=2;
for (i=y; i<=n; i++)
}
3. Fie cele 7 note muzicale: DO, RE, MI, FA, SOL, LA, SI. Citim de la tastatura o valoare naturala n, n cuprins intre 1 si 7. Determinati si afisati toate melodiile de n note care se pot forma cu aceste note muzicale, avand in vedere ca perechile de note (DO,SI) si (MI,FA) sa nu fie alaturate.
#include <iostream.h>
int n, v[8], uz[8];
void back (int k)
cout<<endl;
}
else
for (int i=1; i<=7; i++)
{if (k==1)
else
}
}
}
}
void main ()
while (n>7);
back (1);
}
Biletul nr. 25
3. Pentru un elev se retin urmatoarele date : numele, varsta, media generala. Sa se construiasca o lista liniara care retine informatii despre n elevi. Sa se afiseze numele elevilor care au varsta mai mare de 17 ani si sunt corigenti. Un elev este corigent daca are media generala mai mica decat 5. Pentru implementarea listei se poate folosi alocarea statica sau alocarea dinamica, la alegere.
#include <iostream.h>
struct elev
;
elev v[100];
int n;
void main ()
for (i=1; i<=n; i++)
if ((v[i].varsta>17) && (v[i].media<5))
cout<<v[i].nume<<endl;
}
Biletul nr. 26
3. Pentru un elev se retin urmatoarele date : numele, varsta, media generala. Sa se construiasca o lista liniara care retine informatii despre n elevi. Sa se stearga din lista elementele care contin informatii despre elevii corigenti. Sa se afiseze noua lista si sa se determine cate elemente are. Un elev este corigent daca are media generala mai mica decat 5. Pentru implementarea listei se poate folosi alocarea statica sau alocarea dinamica, la alegere.
#include <iostream.h>
struct elev
;
elev v[100];
int n;
void main ()
i=1;
while (i<=n)
else i++;
}
cout<<'Noua lista are '<<n<<'
elemente'<<endl;
for (i=1; i<=n; i++)
cout<<v[i].nume<<'
'<<v[i].varsta<<' '<<v[i].media<<'
'<<endl;
}
Biletul nr. 27
3. Fisierul in.txt contine pe o singura linie mai multe numere intregi (maxim 100 de numere) separate printr-un caracter spatiu. Se presupune ca numerele sunt distincte, un numar neaparand de doua ori, iar in fisier sunt cel putin doua numere. Sa se calculeze suma numerelor cuprinse intre maximul si minimul acestora, inclusiv.
Exemplu :
Daca fisierul in.txt contine numerele : 3, 7, 22, 4, 11, 8, 1, 9, suma calculata este : S=46 (=22+4+11+8+1).
Daca fisierul in.txt contine numerele : 2, 5, -3, 10, 14, 7, 6, suma calculata este : S=21 (=-3+10+14).
#include <fstream.h>
void main ()
if (a<min)
}
if (pmin>pmax)
for (i=pmin; i<=pmax; i++)
s+=v[i];
cout<<s<<endl;
}
Biletul nr. 28
3. Un numar complex z=a+ib este retinut prin utilizarea structurii (inregistrarii):
struct complex ; |
type complex = record a, b:real; end; |
Sa se calculeze si afiseze suma numerelor complexe, citite din fisierul complex.txt. Pe fiecare linie din fisier sunt cate doua numere reale(partea reala si imaginara a unui numar complex) separate de cate un spatiu.
#include <fstream.h>
struct complex v[100];
float x=0, y=0;
void main ()
f.close();
cout<<x<<'+'<<y<<'i'<<endl;
}
Biletul nr. 29
3. Un vector de dimensiune este completat cu numere intregi citite de la tastatura. Sa se calculeze media aritmetica a elementelor vectorului care sunt numere cuprinse intre a si b, inclusiv, si sunt multiple de k. Numerele intregi a, b si k se citesc de la tastatura.
#include <iostream.h>
void main ()
while (p>20);
for (i=1; i<=p; i++) cin>>v[i];
cout<<'a='; cin>>a;
cout<<'b='; cin>>b;
if (a>b)
cout<<'k='; cin>>k;
for (i=1; i<=p; i++)
if ((a<=v[i]) && (v[i]<=b) &&
(v[i]%k==0))
if (nr==0) cout<<'Nu exista numere care sa indeplineasca
conditiile'<<endl;
else cout<<(float)s/nr<<endl;
}
Biletul nr. 30
3. De la tastatura se citesc elementele a doua multimi A si B, , cu p, respectiv q elemente, elementele fiecarei multimi fiind distincte doua cate doua (p, q <=100). Sa se determine elementele si cardinalul multimilor .
#include <iostream.h>
float a[101], b[101];
int p, q;
void dif (float a[101], int p, float b[101], int q)
}
cout<<endl;
if (c==0) cout<<'B-A : multimea vida'<<endl;
else cout<<'|B-A|='<<c<<endl;
}
void intersectie (float a[101], int p, float b[101], int q)
}
cout<<endl;
if (x==0) cout<<'A int B : multimea vida'<<endl;
else cout<<'|A int B|='<<x<<endl;
}
void main ()
Contact |- ia legatura cu noi -| | |
Adauga document |- pune-ti documente online -| | |
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| | |
Copyright © |- 2024 - Toate drepturile rezervate -| |
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
Referate pe aceeasi tema | ||||||||||||||||||||||||
| ||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||