Sem 1 / Examen / Programare C: prob 15-3
11-2
Folosind pointeri, determinaţi frecvenţa de apariţie a caracterelor într-un text introdus de la tastatură.
(Folosiţi caracterele textului în calitate de indecşi).
#include
#include
void main(void)
{int i, frecventa[127]={0};
char caracter, text[200];
gets(text);
for(i=0;i<200;i++)
++frecventa[text[i]];
printf("%s%17s\n","Caracterul", "Frecventa");
for (caracter=0;caracter<=127;caracter++)
printf("%6c%17d",caracter,frecventa[caracter]);
getch();
}
11-3
Fie o matrice y*y. Aflaţi produsul scalar al primei linii cu ultima coloană.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;is+=a[0][i]*a[i][m-1];
printf("produsul scalar este %d",s);
getch();
}
12-2
Folosind pointeri, aflaţi numărul de apariţii ale unui caracter anumit întru-un şir introdus de la
tatstatură.
#include
#include
void main(void)
{char cuvint[12],c; int i,f;
scanf("%s",&cuvint);
printf("\nlitera:\t");
scanf("%c",&c);
f=0;
for(i=0;i{if (*(cuvint+i)==c) f++;}
printf("frecventa aparitiei literei %c in cuvint este %d",c,f);
getch();
}
12-3
Fie o matrice d*d. Aflaţi produsul scalar al primei coloane cu ultima linie.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;is+=a[i][0]*a[m-1][i];
printf("produsul scalar este %d",s);
getch();
}
13-2
Folosind pointeri, scrieţi un program care intercalează un caracter specificat într-un şir introdus de la
tastatură.
#include
#include
#include
void main(void)
{char sir[50], *p, a;
int i,l;
printf("introduceti sirul\n");
gets(sir);
printf("introduceti caracterul\t");
a=getch();
l=strlen(sir);
p=(char *)malloc(l+1);
for (i=0;i*(p+i)=*(sir+i);
*(p+l)=a;
printf("sirul obtinut impreuna cu caracterul intercalat:");
for (i=0; i<=l;i++)
printf("%c\t",*(p+i));
getch();}
13-3
Fie o matrice s*s. Aflaţi produsul scalar al liniei 2 cu penultima coloană.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;is+=a[i][m-2]*a[m-2][i];
printf("produsul scalar este %d",s);
getch();
}
14-2
Folosind pointeri, scrieţi o funcţie care calculează lungimea unui şir de caractere introdus de la
tastatură.
#include
#include
int lungime (char);
void main(void)
{char s[10];
gets(s);
printf("lungimea sirului introdus este %d", lungime(s));
gecth();}
int lungime (char *s)
{int i;
while (*(s+i)!='\0') {i++;}
return i;}
14-3
Fie x un vector coloană şi y un vector linie cu acelaşi număr de elemente. Aflaţi matricea A = x * y.
#include
#include
void main(void)
{ int x[3]={1,2,3}, y[3]={2,4,5}, i,j, M[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
M[i][j]=x[i]*y[j];
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("Matricea este:\n%d\t",M[i][j]);
printf("\n");}
getch();}
15-2
Folosind pointeri, scrieţi o funcţie care compară două şiruri de caractere introduse de la tastatură.
int compara(char *s, char *s1)
{int i,l,l1,k1;
k1=0; i=0;
while (*(s+i)!='\0')&&(*(s1+1)!='\0')
{if (*(s+i))<(*(s1+1)) {k1=-1; break;}
if (*(s+i))>(*(s1+1)) {k1=1; break;}
i++;}
return k1;}
15-3
Fie un vector b. Aflaţi dacă elementele lui formează o progresie aritmetică
#include
#include
void main(void)
{int i,n,k=0;
printf("introduceti lungimea vectorului\t");
scanf("%d",&n);
printf("introduceti elementele vectorului\n");
for (i=0;iscanf("%d",&x[i]);
for (i=0;iif(x[i]-x[i+1])!=(x[i+1]-x[i+2]) k=1;
if (k==0)
printf("elementele vectorului formeaza o progresie aritmetica");
else
printf("elementele vectorului nu formeaza o progresie aritmetica");
getch();}
Folosind pointeri, determinaţi frecvenţa de apariţie a caracterelor într-un text introdus de la tastatură.
(Folosiţi caracterele textului în calitate de indecşi).
#include
#include
void main(void)
{int i, frecventa[127]={0};
char caracter, text[200];
gets(text);
for(i=0;i<200;i++)
++frecventa[text[i]];
printf("%s%17s\n","Caracterul", "Frecventa");
for (caracter=0;caracter<=127;caracter++)
printf("%6c%17d",caracter,frecventa[caracter]);
getch();
}
11-3
Fie o matrice y*y. Aflaţi produsul scalar al primei linii cu ultima coloană.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;i
for(i=0;i
printf("produsul scalar este %d",s);
getch();
}
12-2
Folosind pointeri, aflaţi numărul de apariţii ale unui caracter anumit întru-un şir introdus de la
tatstatură.
#include
#include
void main(void)
{char cuvint[12],c; int i,f;
scanf("%s",&cuvint);
printf("\nlitera:\t");
scanf("%c",&c);
f=0;
for(i=0;i
printf("frecventa aparitiei literei %c in cuvint este %d",c,f);
getch();
}
12-3
Fie o matrice d*d. Aflaţi produsul scalar al primei coloane cu ultima linie.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;i
for(i=0;i
printf("produsul scalar este %d",s);
getch();
}
13-2
Folosind pointeri, scrieţi un program care intercalează un caracter specificat într-un şir introdus de la
tastatură.
#include
#include
#include
void main(void)
{char sir[50], *p, a;
int i,l;
printf("introduceti sirul\n");
gets(sir);
printf("introduceti caracterul\t");
a=getch();
l=strlen(sir);
p=(char *)malloc(l+1);
for (i=0;i
*(p+l)=a;
printf("sirul obtinut impreuna cu caracterul intercalat:");
for (i=0; i<=l;i++)
printf("%c\t",*(p+i));
getch();}
13-3
Fie o matrice s*s. Aflaţi produsul scalar al liniei 2 cu penultima coloană.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;i
for(i=0;i
printf("produsul scalar este %d",s);
getch();
}
14-2
Folosind pointeri, scrieţi o funcţie care calculează lungimea unui şir de caractere introdus de la
tastatură.
#include
#include
int lungime (char);
void main(void)
{char s[10];
gets(s);
printf("lungimea sirului introdus este %d", lungime(s));
gecth();}
int lungime (char *s)
{int i;
while (*(s+i)!='\0') {i++;}
return i;}
14-3
Fie x un vector coloană şi y un vector linie cu acelaşi număr de elemente. Aflaţi matricea A = x * y.
#include
#include
void main(void)
{ int x[3]={1,2,3}, y[3]={2,4,5}, i,j, M[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
M[i][j]=x[i]*y[j];
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("Matricea este:\n%d\t",M[i][j]);
printf("\n");}
getch();}
15-2
Folosind pointeri, scrieţi o funcţie care compară două şiruri de caractere introduse de la tastatură.
int compara(char *s, char *s1)
{int i,l,l1,k1;
k1=0; i=0;
while (*(s+i)!='\0')&&(*(s1+1)!='\0')
{if (*(s+i))<(*(s1+1)) {k1=-1; break;}
if (*(s+i))>(*(s1+1)) {k1=1; break;}
i++;}
return k1;}
15-3
Fie un vector b. Aflaţi dacă elementele lui formează o progresie aritmetică
#include
#include
void main(void)
{int i,n,k=0;
printf("introduceti lungimea vectorului\t");
scanf("%d",&n);
printf("introduceti elementele vectorului\n");
for (i=0;i
for (i=0;i
if (k==0)
printf("elementele vectorului formeaza o progresie aritmetica");
else
printf("elementele vectorului nu formeaza o progresie aritmetica");
getch();}