Documente Academic
Documente Profesional
Documente Cultură
/*1. Testați aplicațiile privind metodele de programare oferite în cadrul laboratorului. Folosiți aceste
aplicații
pentru a implementa problemele 2 și 3 propuse, considerând în acest sens aplicațiile adiționale din
laborator
note.cpp și bakopti.cpp.*/
//pb2
//Zinveliu Ioana,grupa 4
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define DIM 20
void back_SubSet(int);
void afis_sol(int);
int x[DIM], n;
int main()
scanf("%d", &n);
back_SubSet(0);
}//end main
void back_SubSet(int k)
int sum;
x[k] = 0;
x[k]++;
if (posibil(k, sum))
{
if (sum == n)
afis_sol(k);
else
back_SubSet(k + 1);
}//end else
}//end while
}//end back_SubSet
s = 0;
s += x[i];
if (s <= n) return 1;
}//end if
return 0;
}//end posibil
void afis_sol(int k)
printf("\n\t");
}//end afis_sol
/*1. Testați aplicațiile privind metodele de programare oferite în cadrul laboratorului. Folosiți aceste
aplicații
pentru a implementa problemele 2 și 3 propuse, considerând în acest sens aplicațiile adiționale din
laborator
note.cpp și bakopti.cpp.*/
//pb3
//Zinveliu Ioana,grupa 4
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
int n;
scanf("%d", &n);
mutari = 0;
} //main
if (n == 1)// n=1
mutari++;
return;
}
// n>1, Etapa 1, Problema pt.n-1 discuri a-sursa, c-destinatia, b-manevra
hanoi(n - 1, a, c, b);
mutari++;
hanoi(n - 1, c, b, a);
} // hanoi
/*5. Creaţi un fişier în care stocaţi un şir de numere întregi, generate in mod aleator. Preluaţi prin
program aceste
valori. Folosiţi metoda divide et impera pentru a determina minimul şi maximul din şir şi afisaţi
rezultatele pe
//Zinveliu Ioana,grupa 4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include <time.h>
#include <search.h>
int v[100];
int main()
{
srand(time(NULL));
int n, nr;
printf("Dati n:");
scanf("%d", &n);
FILE* f;
f = fopen(nume, "w");
if (f == 0) {
_getch();
scanf("%d", &nr);
fclose(f);
f = fopen(nume, "r");
if (f == 0) {
_getch();
sortare(n);
fclose(f);
f = fopen(nume, "r");
if (f == 0) {
_getch();
_getch();
void sortare(int n)
v[i] = v[j];
v[j] = aux;
}
int a, b, m;
if (x == y)return v[x];
else
m = (x + y) / 2;
a = min(x, m);
b = min(m + 1, y);
if (a < b)return a;
else return b;
int a, b, m;
if (x == y)return v[x];
else
m = (x + y) / 2;
a = min(x, m);
b = min(m + 1, y);
if (a > b)return a;
else return b;
/*Daca in fisier se genereaza numerele: 403 126 401 605 687 rezultatul in urma compilarii este
Dati n:5
Nr minim din fisier este: 126 Nr minim din fisier este: 605
*/
/*6. Scrieţi o aplicaţie care determină c.m.m.d.c. dintr-un tablou unidimensional de numere întregi
(max. 2000 de
valori), utilizând metoda divide et impera. Elementele tabloului se pot citi de la tastatură sau dintr-un
fisier.*/
//Zinveliu Ioana,grupa 4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int cmmdcimp(int , int );//prototip functie cmmdc pt n numere folosind divide et impera
int v[2000];
int main()
int n;
printf("Dati n: ");
scanf("%d", &n);
scanf("%d", &v[i]);
//functie cmmdc pt 2 nr
if (a == b) return a;
int a;
if (x - n == 1)cmmdc(v[n], v[x]);
else {
a = (n + x) / 2;
Cmmdc este: 3
C:\Users\ioana\source\repos\ConsoleApplication10\Debug\ConsoleApplication10.exe (process
23460) exited with code 0.
*/
/*8. Să se scrie o aplicație C/C++ care să genereze aleator maxim 10 valori întregi, ce vor fi memorate
într-un
tablou unidimensional. Să se verifice dacă o altă valoare generată aleator aparține acestui tablou,
utilizând
funcția _lsearch().*/
//Zinveliu Ioana,grupa 4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#include <search.h>
int main()
{
int v[10];
size_t n = 10;
srand(time(NULL));
int* p;
if (p)
else
*/
/*10. Citiți de la intrarea standard un tablou unidimensional de maxim 20 de valori întregi. Folosind
mecanismul de
căutare binară, determinați dacă o nouă valoare, a, introdusă de la tastatură există în șir. Dacă da,
determinați
//Zinveliu Ioana,grupa 4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
printf("Dati n :");
scanf("%d", &n);
scanf("%d", &v[i]);
}
printf("Introduceti valoarea a:");
scanf("%d", &a);
sortare(v, n);
if (cautarebin(v, a, 0, n - 1) != -1)
factoriprimi(a);
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
v[i] = v[j];
v[j] = aux;
int m;
return -1;
else {
m = (stg + dr) / 2;
if (a == v[m])
return m;
if (a < v[m])
void factoriprimi(int n)
int f = 2, p;
while (n > 1)
p = 0;
while (n % f == 0)
p++;
n = n / f;
if (p > 0)
printf("\n%d", f);
f++;
Dati n :5
2 la puterea 2
3 la puterea 1