Documente Academic
Documente Profesional
Documente Cultură
Stagiu de Practica
Stagiu de Practica
1.1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int i,n=5,val,c,max,cnt=0;
int v[500]={-20,-5,15,-13,14};
void citire()
scanf("%d",&n);
for(i=0;i<n;i++)
printf("v[%d]= ",i);
scanf("%d",&v[i]);
void afisare()
for(i=0;i<n+cnt;i++)
{
printf("%d ",v[i]);
if(abs(a)>abs(b))
max = abs(a);
else
max = abs(b);
return max;
void creaza_spatiu()
for(c=n;c>=val+1;c--)
v[c]=v[c-1];
if(c-d<10)
return 1;
else
return 0;
}
void numara()
for(i=0;i<n;i++)
if(verificare(v[i],v[i+1])==1)
cnt++;
printf("\nContor: %d\n",cnt);
void inserare()
for(i=0;i<n;i++)
val=i+1;
if(verificare(v[i],v[i+1])==1)
creaza_spatiu();
v[val]=maxim(v[i],v[i+1]);
int main()
{
//citire();
numara();
inserare();
afisare();
return 0;
1.2
#include <stdio.h>
#include <stdlib.h>
int n,m,v[50],vv[50],i,in[50],j,q;
void citire_mult1()
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&v[i]);
void citire_mult2()
{
printf("\n Dati nr de elemente: ");
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%d",&vv[i]);
void inter()
{ q=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(v[i]==vv[j])
in[q]=v[i];
q++;
printf("Intersectia: ");
for(i=0;i<q;i++)
{
printf("%d ",in[i]);
int maxim()
if(n>m)
return n;
else
return m;
int main()
citire_mult1();
citire_mult2();
inter();
return 0;
#include<stdio.h>
#include<stdlib.h>
//--------------------------------------------------------------------------
void dif()
{
k=0;
gasit=0;
if(a[i]==b[j])
gasit=1;
if(!gasit)
c[k++]=a[i];
printf("%d ",c[i]);
//--------------------------------------------------------------------------
void prodCart()
for(i=0;i<n;i++)
printf("%d ",a[i]);
for(j=0;j<m;j++)
printf("%d ",b[j]);
//--------------------------------------------------------------------------
int main()
{
printf("Nr de elemente al multimii a: ");
scanf("%d",&n);
scanf("%d",&a[i]);
scanf("%d",&m);
scanf("%d",&b[i]);
k=0;
gasit=0;
if(a[i]==b[j])
gasit=1;
if(!gasit)
c[k++]=a[i];
printf("\nReuniunea: ");
printf("%d ",c[i]);
for(i=0; i<=m-1; i++)
printf("%d ",b[i]);
dif();
prodCart();
return 0;
1.3
#include <stdio.h>
#include <ctype.h>
void suma()
printf("Elem mat1\n");
for(c=0;c<m;c++)
for(d=0;d<n;d++)
scanf("%d", &mat1[c][d]);
printf("Elem mat2\n");
for(c=0;c<m;c++)
for(d=0;d<n;d++)
scanf("%d",&mat2[c][d]);
for(c=0;c<m;c++)
for(d=0;d<n;d++)
matricea_summat1[c][d]=mat1[c][d]+mat2[c][d];
printf("Suma:\n");
for(c=0;c<m;c++)
for(d=0;d<n;d++)
printf("%d\t", matricea_summat1[c][d]);
printf("\n");
void produs()
scanf("%d %d",&m,&n);
scanf("%d %d",&o,&p);
if(n!=o){
printf("\nEROARE!");
else{
printf("\nMat1 ");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&mat1[i][j]);
printf("\nMat2 ");
for(i=0;i<o;i++)
for(j=0;j<p;j++)
scanf("%d",&mat2[i][j]);
printf("\nMat1 \n");
for(i=0;i<m;i++){
printf("\n");
for(j=0;j<n;j++){
printf("%d\t",mat1[i][j]);
printf("\nMat2 \n");
for(i=0;i<o;i++){
printf("\n");
for(j=0;j<p;j++){
printf("%d\t",mat2[i][j]);
}
for(i=0;i<m;i++)
for(j=0;j<p;j++)
mat3[i][j]=0;
sum=0;
for(k=0;k<n;k++)
sum=sum+mat1[i][k]*mat2[k][j];
mat3[i][j]=sum;
printf("\nInmultirea \n");
for(i=0;i<m;i++){
printf("\n");
for(j=0;j<p;j++){
printf("%d\t",mat3[i][j]);
int main()
{char ch;
printf("\nS-Suma\nP-Produs\nE-Exit\n");
printf("Introdu comanda: ");
do
scanf("%c",&ch); toupper(ch);
switch(ch)
case'S':suma();
break;
case'P':produs();
break;
case'E':break;
default:break;
}while(ch!='E');
return 0;
1.4
#include <stdio.h>
#include <stdlib.h>
int A[50][50],B[50][50],i,j,n,At[50][50],q,w;
void citire()
printf("Dati n: ");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("A[%d][%d]= ",i,j);
scanf("%d",&A[i][j]);
void transp()
for(i=0;i<n;i++)
for(j=0;j<n;j++)
At[j][i]=A[i][j];
void creareB()
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
B[i][j]=At[i][j];
q=0;w=0;
for(i=n;i<2*n;i++)
{w=0;
for(j=0;j<n;j++)
B[i][j]=A[q][w];
w++;
q++;
q=0;w=0;
for(i=n;i<2*n;i++)
{w=0;
for(j=n;j<2*n;j++)
B[i][j]=At[q][w];
w++;
}
q++;
q=0;w=0;
for(i=0;i<n;i++)
{w=0;
for(j=n;j<2*n;j++)
B[i][j]=A[q][w];
w++;
q++;
void afisare()
for(i=0;i<2*n;i++)
for(j=0;j<2*n;j++)
{
printf("%d ",B[i][j]);
printf("\n");
int main()
citire();
transp();
creareB();
afisare();
return 0;
1.5
2 4
1
Se consideră că elementele de pe diagonal nu aprţin nici unei regiuni.
Să se calculeze cel mai mare element din regiunea 1, cel mai mic element din
regiunea 2, suma elementelor din regiunea 3 și produsul elementelor din regiunea
4;
#include <stdio.h>
#include <stdlib.h>
int i,j,A[50][50],n;
void citire()
{
printf("Dati n: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("A[%d][%d]= ",i,j);
scanf("%d",&A[i][j]);
}
}
}
void regiunea1()
{
int maxim=-32767;
for(i=1;i<n;i++)
{
for(j=0;j<n;j++)
{ if(i>j && i+j>n-1)
{
if(maxim<A[i][j])
{
maxim=A[i][j];
}
}
}
}
printf("\nMaximul din regiunea 1 este: %d\n",maxim);
}
void regiunea2()
{int minim=32767;
for(i=1;i<n;i++)
{
for(j=0;j<n;j++)
{ if(i>j && i+j<n+1)
{
if(minim>A[i][j])
{
minim=A[i][j];
}
}
}
}
printf("\nMinimul din regiunea 2 este: %d\n",minim);
}
void regiunea3()
{int suma=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n-i-1;j++)
{
suma=suma+A[i][j];
}
}
printf("\nSuma elementelor din regiunea 3 este: %d\n",suma);
}
void regiunea4()
{ int produs=1,cnt=0;
for(i=1;i<n;i++)
{
for(j=n-i;j<n-1;j++)
{
produs=produs*A[i][j];
}
}
printf("\nProdusul elementelor din regiunea 4 este: %d\n",produs);
}
int main()
{
citire();
regiunea1();
regiunea2();
regiunea3();
regiunea4();
return 0;
}
1.6
Citește un șir de numere întregi și îl ordonează crescător folosind sortarea prin
metoda inserției. Elementele se citesc pe rând și se inserează în vector astfel
încât acesta să rămână ordonat.
Ex: n=5 și se citesc numerele: 4 -3 3 1 15
6=>
4 -3
4
-3 3 4 -3 3
4 15
-3 3 4 6 15
#include <stdio.h>
#include <stdlib.h>
int n,v[50],i,j,a;
void sort_ins()
{
printf("Dati n: "); scanf("%d",&n);
printf("v[%d]= ",1); scanf("%d",&v[1]);
for(i=0;i<n;i++)
{
printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
for(j=1;j<n;j++)
{
a=v[j];
i=j-1;
while(a<v[i] && i>=0)
{
v[i+1]=v[i];
i=i-1;
}
v[i+1]=a;
}
}
void afisare()
{
for(i=0;i<n;i++)
{
printf("%d",v[i]);
}
}
int main()
{
sort_ins();
afisare();
return 0;
}
1.10
Scrieti o functie care primeste ca argument un vector de numere intregi, de
dimensiune n si il sorteaza in functie de suma cifrelor elementelor constituente.
Se va scrie programul care citeste vectorul si afiseaza vectorul sortat.
De exemplu pentru tabloul [18, 13, 6] => [13,6,18]
#include <stdio.h>
#include <stdlib.h>
int i,j,v[50],n,q,t[50],aux;
void citire()
{
printf("Dati n: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
}
void transformare()
{int s;
for(i=0;i<n;i++)
{ s=0;
while(v[i]!=0)
{ s=s+v[i]%10;
q=q*10+v[i]%10;
v[i]/=10;
}
t[i]=s;
}
}
void afisare()
{
for(i=0;i<n;i++)
{
printf("%d ",v[i]);
}
}
void sortare()
{
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(t[j]>t[j+1])
{
aux=v[j];
v[j]=v[j+1];
v[j+1]=aux;
}
}
}
}
int main()
{
citire();
transformare();
sortare();
afisare();
return 0;
}
2.1
c.Citeşte două cuvinte şi înlocuieşte într-un text introdus de la tastatură toate apariţiile
primului cuvânt prin cel de-al doilea.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char sir[20];
int l,p,i,j;
int main()
char sir[]="abcdefghijk";
if(l>strlen(sir)-2)
else
for(i=p;i<p+l;i++)
sir[i]='0';
}
for(i=0;i<strlen(sir)-1;i++)
while(sir[i]=='\0')
sir[i]=sir[i+1];
for(i=0;i<strlen(sir)-1-l;i++)
if(sir[i]!='0')
printf("%c",sir[i]);
return 0;
2.2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
char a[50][50];
int i,j,n;
void citire()
{
printf("Dati n: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("a[%d][%d]= ",i,j);
scanf("%s",&a[i][j]);
}
}
}
void afisare()
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%c ",a[i][j]);
}
printf("\n");
}
}
void diagPrinc()
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((i==j) && (isdigit(a[i][j])==0))
printf("%c",a[i][j]);
}
}
printf(" <== Cuvantul de pe diagonala principala\n");
}
void numara()
{
int nr=0,l_mare=0,l_mica=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(isdigit(a[i][j])==1)
{
nr++;
}
if(a[i][j]>=97 && a[i][j]<=122)
{
l_mica++;
}
if(a[i][j]>=65 && a[i][j]<=90)
{
l_mare++;
}
}
}
printf("Numere: %d\n",nr);
printf("Litere mici: %d\n",l_mica);
printf("Litere mari: %d\n",l_mare);
}
void diagSec()
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((j==n-1-i) && (isdigit(a[i][j])==0))
printf("%c",a[i][j]);
}
}
printf(" <== Cuvantul de pe diagonala secundara\n");
}
void alphab()
{int cnt=0;
char subSir[50],aux;
for(i=0;i<n;i++)
{
for(j=1;j<n;j=j+2)
{
if(a[i][j]>=65 && a[i][j]<=90)
{
subSir[cnt]=a[i][j];
cnt++;
}
}
}
for(i=0;i<cnt;i++)
{
if(subSir[i]>subSir[i+1])
{
aux=subSir[i];
subSir[i]=subSir[i+1];
subSir[i+1]=aux;
}
}
for(i=0;i<cnt;i++)
{
printf("%c",subSir[i]);
}
}
int main()
{
citire();
afisare();
diagPrinc();
numara();
diagSec();
alphab();
return 0;
}
2.3
Se citeşte un şir de caractere alfanumerice. Considerăm că literele sunt
separatorii numerelor. Afişaţi datele de tip numeric preluate în ordine din şirul
citit. Numerele vor fi scrise câte unul pe o linie.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char a[50];
int i;
void afisare()
{
for(i=0;i<strlen(a);i++)
{
if(isdigit(a[i])==1)
printf("%c",a[i]);
else
printf("\n");
}
}
int main()
{ printf("String: ");
scanf("%s",a);
afisare();
return 0;
}