Docstoc

Proiect Baze

Document Sample
Proiect Baze Powered By Docstoc
					Proiect Bazele Programarii

                  Mardar Marius-Catalin
                                 Seria C
                            Grupa 1011
                                  Anul 1
                    Facultatea : C.S.I.E.
   1. Sa se sorteze crescator un vector dat de la tastatura .

Pseudocod                                  Codificare C

{                                          #include<stdio.h>
read(n);                                   void main()
do_for i=1,n,1                             {
   read(v[i]);                             int v[100], n, i, j, aux;
enddo;                                     printf (“n=”); scanf (“%d”, &n);
  do_for i=1,n-1,1                         for (i=1;i<=n;i++)
     do_for j=i+1,n,1                      {
        if (v[i]>v[j]) then                                 printf (“v[%d]=”,i);
{                                                           scanf (“%f”, &v[i]);
   aux=v[i];                               }
   v[i]=v[j];                              for (i=1;i<=n-1;i++)
   v[j]=aux;                               for (j=i+1;j<=n;j++)
}                                              if (v[i]>v[j])
        endif;                             {
     enddo;                                aux=v[i];
  enddo;                                    v[i]=v[j];
do_for i=1,n,1                              v[j]=aux;
    write(“Vectorul sortat crescator        }
este:”,v[i])                               printf (“Vectorul sortat crescator este: ”);
enddo;                                              for (i=1;i<=n;i++)
}                                                   printf (“%f”, v[i]);
                                           }




Date :
v[i] = vectorul dat de la tastatura
n=dimensiune vector
i=pozitia pe care se afla fiecare element in vector
j=pozitia de la care incepe compararea elementului v[i] cu urmatoarele.
aux=ajuta la interschimbarea intre v[i] si v[j]
   2. Sa se afle produsul vectorial a 2 vectori.
Pseudocod                              Codificare C
{                                               #include<stdio.h>
read(n);                                         void main()
read(m);                                        {
  do_for i=1,n,1                                int a[100], b[100], c[100];
    read(a[i]);                                 int n, i,j,m;
enddo;                                          printf ("n=");
  do_for j=1,m,1                                scanf ("%d", &n);
    read(b[j]);                                 printf ("m=");
enddo;                                          scanf ("%d", &m);
   if (n=m) then                                for (i=1;i<=n;i++)
{                                               {
do_for i=1,n,1                                  printf ("a[%d]=",i);
    c[i]=a[i]*b[i];                             scanf ("%d", &a[i]);
enddo;                                          }
   write(c[i]);                                 for(j=1;j<=m;j++)
}                                               {
   else write(“nu este posibil”);               printf ("b[%d]=",j);
}                                               scanf ("%d", &b[j]);
                                                }
                                                if (n==m)
                                                {
                                                for (i=1;i<=n;i++)
                                                c[i]=a[i]*b[i];
                                                printf ("Vectorul format este: ");
                                                for(i=1;i<=n;i++)
                                                printf("%d\t",c[i]);
                                                }
                                                else printf(“Produsul vectorial nu este
                                                posibil”);
                                                          }




Date :

a[i],b[j] = vectori dati de la tastatura
n=dimensiune vector a[i]
m=dimensiune vector b[j]
i=pozitia pe care se afla fiecare element in vectorul a[i]
j= pozitia pe care se afla fiecare element in vectorul b[j]
c[i]=vector rezultat.
   3. Sa se calculeze media aritmetica a elementelor unui vector.



Pseudocod:                                     Codificare C:
{                                              #include<stdio.h>
read(n);                                       void main()
s=0;                                           {
  do_for i=1,n,1                               int v[100], n, i, s;
   read(v[i]);                                 printf ("n=");
s=s+v[i];                                      scanf ("%d", &n);
  enddo;                                       s=0;
write(“Media aritmetica a elementelor          for (i=1;i<=n;i++)
vectorului este:”,s/n);                        {
}                                                               printf ("v[%d]=",i);
                                                                scanf ("%d", &v[i]);
                                                }
                                                                for (i=1;i<=n;i++)
                                               s=s+v[i];
                                               printf ("Media aritmetica a elementelor
                                               vectorului este:" );
                                               printf("%d",s/n);
                                               }




Date :
v[i] = vectorul dat de la tastatura
n=dimensiune vector
i=pozitia pe care se afla fiecare element in vector
s=suma elementelor vectorului
* media se calculeaza direct in afisare ca s/n.
   4. Sa se afle maximul dintre 2 vectori.
Pseudocod:                           Codificare C:
{                                              #include<stdio.h>
citeste n;                                     void main()
citeste m;                                     {
  citeste v[1];                                int v[100],u[100],n,m,i,j,max1,max2,max;
  max1=v[1];                                   printf("n=");
do_for i=2,n,1                                 scanf("%d",&n);
 citeste v[i];                                 printf("m=");
                if v[i]>max1 then max1=v[i];   scanf("%d",&m);
                endif                                  for(i=1;i<=n;i++)
enddo                                                  {printf("v[%d]=",i);
  citeste u[1];                                        scanf("%d",&v[i]); }
  max2=u[1];                                           for(j=1;j<=m;j++) {
do_for j=2,m,1                                         printf("u[%d]=",j);
 citeste u[j];                                         scanf("%d",&u[j]); }
                if u[j]>max2 then max2=u[j];   max1=v[1];
                endif                          for(i=2;i<=n;i++)
enddo                                                  if (v[i]>max1) max1=v[i];
                if max2>=max1 then             max2=u[1];
max=max2                                       for(j=2;j<=m;j++)
                         else max=max1;                if (u[j]>max2) max2=u[j];
                endif                          if (max2>=max1) max=max2;
scrie max ;                                               else max=max1;
}                                              printf("Maximul per total este:%d", max);
                                               }

   Date :
   n,m=dimensiune vectorilor v[i] si u[j]
   i,j=pozitiile din vectorii v,u.
   max1= maximul din v[i]
   max2= maximul din u[j]
   max=maxim per total.
   5. Sa se afle amplitudinea unui vector
Pseudocod:                           Codificare C:
{                                        #include<stdio.h>
read(n);                                 void main()
do_for i=1,n,1                           {
 read(a[i]);                                            int n,i,a[20], max, min,amp ;
 enddo;                                  printf ("n=");
max=a[1]                                 scanf ("%d", &n);
min=a[1];                                for (i=1;i<=n;i++)
do-for i=2,n,1                           {
   if a[i]<min then min=a[i];                            printf ("a[%d]=",i);
   endif;                                                scanf ("%d", &a[i]);
   if a[i]>max then max=a[i];            }
   endif                                 max=a[1];
enddo;                                   min=a[1]; {
a= max-min;                              for (i=2;i<=n;i++)
write 'Amplitudinea sirului este', a;    {
}                                                       if (a[i]>=max)
                                                         max=a[i];
                                                         }
                                         for (i=2;i<=n;i++) {
                                         if (a[i]<=min)
                                                         min=a[i]; }

                                         }
                                         amp=max-min;
                                         printf ("Amplitudinea este%i" ,amp);
                                         }




Date :
a[i]=vector
i=arata pozitia unui element in vector
min=minimul din vector
max=maximul din vector
a=amplitudinea
n=dimensiunea vectorului
   6. Sa se determine numerele prime dintr-un vector.
Pseudocod:                         Codificare C:
{                                              #include<stdio.h>
read(n);                                       #include<math.h>
do_for i=1,n,1                                 int main()
 read(a[i]);                                   {
 enddo;                                            int a[20],n,ok,i,j,x=0;
do_for i=1,n,1                                 printf("n=");
{                                              scanf("%i",&n);
ok=0;                                          for (i=1;i<=n;i++)
x=a[i]/2;                                      {
j=2;                                              printf("a[%d]=",i);
while (ok=0) and (j<=x)                        scanf("%d",&a[i]);
if (a[i]%j=0) then ok=ok+1                     }
               else j=j+1;                     for (i=1;i<=n;i++)
endif;                                         {
endwhile;                                         ok=0;
enddo;                                         x=(int)(a[i]/2);
}                                              j=2;
if (ok=0) then write(a[i]);                    while ( (ok==0) && (j<=x) )
}                                              if (a[i] % j==0)
                                               ok++;
                                               else
                                               j++;
                                               if (ok==0)
                                               printf("%i\t",a[i]);
                                               }
                                               }




Date :
a[i]=vectorul
i=arata pozitia unui element in vector
x=partea intreaga din jumatatea lui a[i] pana la care merge j;
   7.Sa se afiseze numerele pare situate pe pozitiile impare ale unui
   vector.
   Pseudocod :                         Codificare C :
   {                                             void main()
   read(n) ;                                     {
   do_for i=1,n,1                                int a[100], n, i, ok=0;
    read(a[i]);                                  printf ("n=");
    enddo;                                        scanf ("%d", &n);
   ok=0;                                         for (i=1;i<=n;i++)
   do_for i=1,n,1                                {
   {                                                              printf ("a[%d]=",i);
   if (i%2=1) then                                                scanf ("%d", &a[i]);
        if (a[i]%2=0) then                       }
   {ok++;                                        for(i=1 ;i<=n;i++)
   write(a[i]);                                   {
   }                                             if (i%2==1)
   endif;                                           if (a[i]%2==0)
   endif;
   if ok=0 then write (“nu sunt elemente          printf("%d\n",a[i]) && (ok++) ;
   pare pe pozitii impare”);                      }
   enddo;                                          if(ok==0)
   }
   }                                              printf("Nu sunt elemente pare pe pozitii
                                                 impare");

                                                  }




       Date :

v[i] = vectorul dat de la tastatura
n=dimensiune vector
i=pozitia pe care se afla fiecare element in vector
   8.Sa se afle suma dintre minimul si maximul unui vector.
Pseudocod:                           Codificare C:
{                                        #include<stdio.h>
read (n);                                void main()
do_for i=1,n,1                           {
 read(a[i]);                                            int n,i,a[20], max, min,s ;
 enddo;                                  printf ("n=");
max=a[1]                                 scanf ("%d", &n);
min=a[1];                                for (i=1;i<=n;i++)
do-for i=2,n,1                           {
   if a[i]<min then min=a[i];                            printf ("a[%d]=",i);
   endif;                                                scanf ("%d", &a[i]);
   if a[i]>max then max=a[i];            }
   endif                                 max=a[1];
enddo;                                   min=a[1]; {
a= max+min;                              for (i=2;i<=n;i++)
write (“Suma este', a);                  {
}                                                       if (a[i]>=max)
                                                         max=a[i];
                                                         }
                                         for (i=2;i<=n;i++) {
                                         if (a[i]<=min)
                                                         min=a[i]; }

                                         }
                                         s=max+min;
                                         printf ("Suma este%i" ,s);
                                         }




Date :

a[i]=vector
i=arata pozitia unui element in vector
min=minimul din vector
max=maximul din vector
s=suma
n=dimensiunea vectorului
   9. Sa se afiseze toate tripletele de numere dintr-un vector situate pe
   pozitii consecutive care sunt in progresie aritmetica

Pseudocod :                                    Codificare C:
   {                                           #include<stdio.h>
   read(n);                                    void main()
   do for i=1,n,1                              {
   read(v[i]);                                 int v[100],n,i,b;
    enddo;                                     printf ("n="); scanf ("%d", &n);
   do for i=1,n-2,1                            for (i=1;i<=n;i++)
   if (2*v[i+1]=v[i]+v[i+2]) then              {
   {                                                           printf ("v[%d]=",i);
    b=1;                                                       scanf ("%d", &v[i]);
   write(v[i],” “,v[i+1],” “,v[i+2]);          }
   }                                           for (i=1;i<=n-2;i++)
                     else b=0;                 if (2*v[i+1]==v[i]+v[i+2])
   endif;                                      {
   enddo;                                       b=1;

   if(b=0) then write(“nu exista triplete de   printf("%i\n",v[i]);
   nr in progresie aritmetica”);
   endif;                                      printf("%i\n",v[i+1]);
   }
                                               printf("%i\n",v[i+2]);
                                               }
                                                                else
                                               b=0;
                                               if (b==0)
                                               printf ("nu exista triplete de nr in progresie
                                               aritmetica");
                                                        }




Date :
n=dimensiunea vectorului
a[i]=vector
i=arata pozitia unui element in vector
10. Sa se scrie un program care elimina elementele nule dintr-un vector.

Pseudocod :                              Codificare C:
   {                                     #include<stdio.h>
   read(n);                              void main()
   do for i=1,n,1                        {
   read(x[i]);                           int v[100], m, x[100], n, i;
   enddo;                                m=0;
        do_for i=1,n,1                   printf ("n=");
              if (x[i]≠0) then           scanf ("%d", &n);
   {                                     for (i=1;i<=n;i++)
   m=m+1;                                {
   v[m]=x[i];                                             printf ("x[%d]=",i);
   }                                                      scanf ("%d", &x[i]);
    endif;                                                 }
   enddo;                                            for(i=1;i<=n;i++)
   do for i=1,m,1 scrie(v[i]);                                     if (x[i]!=0)
    enddo;                               {
   }                                     m=m+1;
                                                                        v[m]=x[i];
                                         }
                                         for (i=1;i<=m;i++)
                                                  printf ("%d",v[i]);
                                         }




Date :


n=dimensiunea vectorului
a[i]=vector
i=arata pozitia unui element in vector
x[i]=noul vector format.
   11. Sa se construiasca un vector format din patratele perfecte gasite
   intr-un vector dat de la tastatura.
Pseudocod:                             Codificare C:
{                                           #include<stdio.h>
read(n);                                    #include<math.h>
do_for i=1,n,1                              void main()
 read(v[i]);                                {
 enddo;                                     float v[100],x[100],p;
m=0;                                        int n,m,i;
do_for i=1,n,1                              m=0;
{                                           printf ("n=");
p=exponentiala(x[i],1/2);                   scanf ("%d", &n);
  if (p*p=x[i]) then                        for (i=1;i<=n;i++)
{                                           {
m=m+1;                                                       printf ("x[%d]=",i);
v[m]=x[i];                                                   scanf ("%f", &x[i]);
}                                                             }
endif;                                                       for(i=1;i<=n;i++)
enddo;                                                       { p=sqrt(x[i]);
do_for i=1,m,1                                                        if (p*p==x[i])
 write(v[i]);                               {
}                                           m=m+1;
                                                                           v[m]=x[i];   }
                                            }
                                            for (i=1;i<=m;i++)
                                                     printf ("%f\n",v[i]);
                                            }




Date :

n=dimensiunea vectorului
x[i]=vector
i=arata pozitia unui element in vector
v[i]=noul vector format.
m=dimensiunea noului vector format din patrate perfecte.
   12. Sa se verifice daca elementele unui vector dat de la tastatura sunt
   in progresie geometrica.
Pseudocod :                                   Codificare C :
{                                             #include<stdio.h>
read(n);                                      void main()
do_for i=1,n,1                                {
 read(v[i]);                                  int v[100], m, l, n, i;
 enddo;                                       m=0;
l=v[2]/v[1];                                  printf ("n=");
do_for i=3,n,1                                scanf ("%d", &n);
if v[i]/v[i-1]=l then m=m+1;                  for (i=1;i<=n;i++)
endif;                                        {
enddo;                                                        printf ("v[%d]=",i);
if (m!=0) then printf(“vectorul este in                       scanf ("%d", &v[i]);
progresie geometrica”)                                         }
else printf(“nu este in progresie                              l=v[2]/v[1];
geometrica”)                                                  for(i=3;i<=n;i++)
endif;                                                        if ((v[i]/v[i-1])==l) m++ ;
}                                                             if (m!=0)
                                                               printf("vectorul este in
                                              progresie geometrica\n");
                                                              else printf("elementele nu
                                              sunt in progresie geometrica\n");
                                                         }




Date :

v[i]=vectorul
i=pozitia elementului in vector
l=calculeaza ratia primelor 2 elemente din vector
   13. Sa se scrie programul care realizeaza operatia de intersectie
   dintre doua multimi date.
Pseudocod:                                      Codificare C:
{                                               #include<stdio.h>
read(n);                                         void main()
read(m);
  do_for i=1,n,1                                {
   read(a[i]);                                  int a[100], b[100], c[100];
enddo;                                          int n, i,j,m;
  do_for j=1,m,1                                printf ("n=");
   read(b[j]);                                  scanf ("%d", &n);
enddo;                                          printf ("m=");
 do_for i=1,n,1                                 scanf ("%d", &m);
do_for j=1,m,1                                  for (i=1;i<=n;i++)
if (a[i]=b[j]) then write(a[i])                 {
enddo;                                          printf ("a[%d]=",i);
enddo;                                          scanf ("%d", &a[i]);
else write(“nu exista elemente comune”)         }
endif;                                          for(j=1;j<=m;j++)
}                                               {
                                                printf ("b[%d]=",j);
                                                scanf ("%d", &b[j]);
                                                }
                                                for(i=1;i<=n;i++)
                                                for(j=1;j<=m;j++)
                                                 if (a[i]==b[j])
                                                 printf("%d",a[i]);
                                                 }




Date :
a[i],b[j] = vectori dati de la tastatura
n=dimensiune vector a[i]
m=dimensiune vector b[j]
i=pozitia pe care se afla fiecare element in vectorul a[i]
j= pozitia pe care se afla fiecare element in vectorul b[j]
   14. Sa se afiseze pozitia pe care apare pt prima data un nr dat de la
   tastatura intr-un vector.
Pseudocod:                                    Codificare C:
{                                             #include<stdio.h>
read(n);                                      void main()
 do_for i=1,n,1                               {
   read(v[i]);                                int v[100], m, x,k, n,ok, i;
 enddo;                                       printf ("n=");
i=1;                                          scanf ("%d", &n);
k=0;                                          printf("x=");
 do_for i=1,n,1                               scanf("%d",&x);
while (i<=n) and (k=0)                        for (i=1;i<=n;i++)
 if v[i]==x then k=i                          {
else i=i+1;                                                  printf ("v[%d]=",i);
endif;                                                       scanf ("%d", &v[i]);
endwhile;                                                     }
enddo;                                                       i=1;
write(k);                                                    k=0;
}                                                            for(i=1;i<=n;i++)
                                                             while ((i<=n) && (k==0))
                                                             if (v[i]==x) k=i;
                                                             else

                                                              i++;
                                                             printf("valoarea %d se
                                              gaseste pt prima data pe pozitia %d",x,k);
                                                             }




Date :
v[i] = vector
x= numarul dat de la tastatura
i=pozitia unui element in vector
k=retine prima pozitie a cifrei x in vector
n= dimensiunea vectorului.
   15.Sa se afle produsul scalar dintre 2 vectori.
   Pseudocod:                           Codificare C :
   {                                             #include<stdio.h>
   read(n);                                       void main()
   read(m);                                      {
     do_for i=1,n,1                              int a[100], b[100], c[100];
       read(a[i]);                               int s,n, i,j,m;
   enddo;                                        printf ("n=");
     do_for j=1,m,1                              scanf ("%d", &n);
       read(b[j]);                               printf ("m=");
   enddo;                                        scanf ("%d", &m);
   s=0;                                          for (i=1;i<=n;i++)
      if (n=m) then                              {
   {                                             printf ("a[%d]=",i);
   c[i]=a[i]*b[i];                               scanf ("%d", &a[i]);
   s=s+c[i];                                     }
   else write(“nu este posibil”);                for(j=1;j<=m;j++)
   }                                             {
   write(s);                                     printf ("b[%d]=",j);
   }                                             scanf ("%d", &b[j]);
                                                 }
                                                 if (n==m)
                                                 {
                                                 s=0;
                                                 for (i=1;i<=n;i++) {

                                                 c[i]=a[i]*b[i];
                                                 s=s+c[i];
                                                 }
                                                 printf("%d",s);
                                                 }




Date :
a[i],b[i]=vectori dati de la tastatura
i=pozitia pe care se afla un element in vector
n=dimensiunea vectorului;
c[i]=vector [ produs vectorial ]
s=suma elementelor vectorilor.
16. Sa se transleze toate liniile unei matrici in sus cu o linie . Prima linie
trecand pe ultima linie.
Pseudocod:                              codificare c :
{                                       #include<stdio.h>
read (n);                               #include<conio.h>
read(m);                                #include<math.h>
 do_for i=1,m,1                         int main()
 do_for j=1,n,1                         {
 read(a[i][j]);
enddo;                                  int a[100][100],n,m,i,j;
enddo;                                  printf("introduceti dimensiunile matrici\n");
do_for j=1,n,1                          printf ("numarul de linii, m=");
a[m+1[j]=a[1][j];                       scanf("%i",&m);
enddo;                                  printf("numarul de coloane,n=");
do_for i=1,m,1                          scanf("%i",&n);
do_for j=1,n,1                          for (i=1;i<=m;i++)
a[i][j]=a[i+1][j];                      for (j=1;j<=n;j++)
enddo;                                  {printf("a[%i,%i]=",i,j);
enddo;                                  scanf("%i",&a[i][j]);}
do_for i=1,m,1                          for (i=1;i<=m;i++)
{                                       {for (j=1;j<=n;j++)
do for = 1,n,1                          printf("%6i",a[i][j]);
write(a[i][j]);                         printf("\n");
}                                       }
}                                       for (j=1;j<=n;j++)
                                        a[m+1][j]=a[1][j];
                                        for (i=1;i<=m;i++)
                                        for (j=1;j<=n;j++)
                                        a[i][j]=a[i+1][j];
                                        printf("matricea rezultat este:\n");
                                        for (i=1;i<=m;i++)
                                        {for (j=1;j<=n;j++)
                                        printf("%6i",a[i][j]);
                                        printf("\n");
                                        }
                                        getch();
                                        }


Date :
Date :
a[i][j]=matricea
i=contor linii;
j=contor coloane
m=dimensiunea liniei;
n=dimensiunea coloanei;
17.Se da o matrice patratica.Sa se afiseze elementul care se afla la
intersectia diagonalelor.
Pseudocod:                          Codificare C :
{
read (n);                           #include<conio.h>
 do_for i=1,n,1                     #include<stdio.h>
 do_for j=1,n,1                     int main()
 read(a[i][j]);                     {
enddo;                              int a[100][100],b[100],n,i,j,k,cresc;
enddo;                              printf("n=");
do_for i=1,n,1                      scanf("%i",&n);
         do_for j=1,n,1             for (i=1;i<=n;i++)
if (i=j and i+j=n+1)                   for (j=1;j<=n;j++)
write(a[i][j]);                        {
}                                         printf("a[%i][%i]=",i,j);
                                          scanf("%i",&a[i][j]);
                                       }
                                    printf("\n");
                                    for (i=1;i<=n;i++)
                                    {
                                       for (j=1;j<=n;j++)
                                          printf("%i\t",a[i][j]);
                                    printf("\n");
                                    }
                                    for (i=1;i<=n;i++)
                                    for (j=1;j<=n;j++)
                                    if ((i==j) && ((i+j)==(n+1)))
                                    printf("Elementul situat la intersectia
                                    diagonalelor este %i",a[i][j]);
                                    getch();
                                    }




Date :
a[i][j]=matricea
i=contor linii;
j=contor coloane;
n=dimensiunea matricii patratice;
   18.Se da o matrice patratica.Sa se afiseze suma dintre minimul de pe
   diagonala secundara si maximul de pe diagonala principala.
Pseudocod:                          Codificare C:
{                                     #include<conio.h>
read (n);                             #include<stdio.h>
 do_for i=1,n,1                       int main()
 do_for j=1,n,1                       {
 read(a[i][j]);                       int a[100][100],min,s,max,n,i,j;
enddo;                                printf("n=");
enddo;                                scanf("%i",&n);
max=a[1][1];                          for (i=1;i<=n;i++)
min=a[1][n];                             for (j=1;j<=n;j++)
do_for i=1,n,1                           {
 do_for j=1,n,1                             printf("a[%i][%i]=",i,j);
{                                           scanf("%i",&a[i][j]);
if i=j then                              }
   if a[i][j]>max then max=a[i][j];   printf("\n");
if i+j=n+1 then                       for (i=1;i<=n;i++)
if a[i][j]<min min=a[i][j];           {
}                                        for (j=1;j<=n;j++)
s=max+min;                                  printf("%i\t",a[i][j]);
write(s);                             printf("\n");
}                                     }
                                      max=a[1][1];
                                      min=a[1][n];
                                      for (i=1;i<=n;i++)
                                      for (j=1;j<=n;j++)
                                      {
                                      if (i==j)
                                              if (a[i][j]>max) max=a[i][j];
                                      if ((i+j)==(n+1))
                                               if (a[i][j]<min) min=a[i][j];
                                               }
                                               s=max+min;
                                               printf("Suma este %i",s);
                                      getch();
                                      }


Date :
a[i][j]=matricea
i=contor linii;
j=contor coloane;
n=dimensiunea matricii patratice;
min=minimul pe diag secundara
max=maximul pe diag principala
s=suma dintr max si min;
   19. Se da o patrice patratica.Sa se afle suma elementelor care se afla
   pe pozitiile in care i+j este numar par.
Pseudocod:                           Codificare C:
{                                   #include<conio.h>
read (n);                           #include<stdio.h>
 do_for i=1,n,1                     int main()
 do_for j=1,n,1                     {
 read(a[i][j]);                     int a[100][100],min,s,max,n,i,j;
enddo;                              printf("n=");
enddo;                              scanf("%i",&n);
s=0;                                for (i=1;i<=n;i++)
do_for i=1,n,1                         for (j=1;j<=n;j++)
 do_for j=1,n,1                        {
if (i+j)%2=0 then s=s+a[i][j];            printf("a[%i][%i]=",i,j);
write(s);                                 scanf("%i",&a[i][j]);
}                                      }
                                    printf("\n");
                                    for (i=1;i<=n;i++)
                                    {
                                       for (j=1;j<=n;j++)
                                          printf("%i\t",a[i][j]);
                                    printf("\n");
                                    }
                                    s=0;
                                    for (i=1;i<=n;i++)
                                    for (j=1;j<=n;j++)
                                    if ((i+j)%2==0) s=s+a[i][j];

                                           printf("Suma este %i",s);
                                    getch();
                                    }




a[i][j]=matricea
i=contor linii;
j=contor coloane;
n=dimensiunea matricii patratice;
s=suma;
    20. Sa se interschimbe 2 linii ale unei matrici patratice . Indicii
   liniilor se dau de la tastatura.
Pseudocod:                             Codificare C:
{                                      #include<stdio.h>
read(n);                               #include<conio.h>
do_for i=1,n,1                         int main()
do_for j=1,n,1                         {
read(a[i][j]);
enddo;                                 int a[100][100],aux,i,j,n,x,y;
enddo;                                 printf ("introduceti dimensiunea
read(x);                               matricei:\n");
read(y);                               scanf("%i",&n);
do_for j=1,n,1                         for (i=1;i<=n;i++)
{                                      for (j=1;j<=n;j++)
aux=a[x][j];                           {printf("a[%i,%i]=",i,j);
a[x][j]=a[y][j];                       scanf("%i",&a[i][j]);}
a[y][j]=aux;                           printf("prima linie, x=");
enddo;                                 scanf("%i",&x);
}                                      printf("a doua linie, y=");
do_for i=1,n,1                         scanf("%i",&y);
{                                      for (j=1;j<=n;j++)
do_for j=1,n,1                         {aux=a[x][j];
write(a[i][j]);                        a[x][j]=a[y][j];
}                                      a[y][j]=aux; }
}                                      printf("matricea rezultat este:\n");
                                       for (i=1;i<=n;i++)
                                       {for (j=1;j<=n;j++)
                                       printf("%4i",a[i][j]);
                                       printf("\n");
                                       }
                                       getch();
                                       }
21.Se da o matrice patratica.
Sa se afiseze elementele pare aflate pe linii impare si coloane divizibile cu 3.
Pseudocod :                                    Codificare C:
{                                              #include<stdio.h>
read(n);                                       #include<conio.h>
DO-FOR i=1,n                                   void main()
       DO-FOR j=1,n,1                          {
                           read(a[i][j]);      int a[100][100],n,i,j;
       ENDDO                                   printf("n=");
                                               scanf("%i",&n);
DO-FOR i=1,n,1                                 for (i=1;i<=n;i++)
      DO-FOR j=1,n,1                              for (j=1;j<=n;j++)
               IF (i%2!=0) && (j%3=0)          {
               IF (a[i][j]%2=0) THEN              printf("a[%i][%i]=",i,j);
write(a[i][j]);                                scanf("%i",&a[i][j]);
               ENDIF                           }
      ENDDO                                    for (i=1;i<=n;i++)
ENDDO                                          {
}                                                 for (j=1;j<=n;j++)
                                                     printf("%i\t",a[i][j]);
                                               printf("\n");
                                               }
                                               printf("\n");
                                               for (i=1;i<=n;i++)
                                                  for (j=1;j<=n;j++)
                                                     if ((i%2!=0) && (j%3==0))
                                                        if (a[i][j]%2==0)
                                               printf("%d",a[i][j]);
                                               }




Date :
a[i][j]=matricea a formata din “i”linii si “j”coloane.
n=dimensiunea matricii
22. Se da o matr patratica.Sa se afle numarul liniilor ale
      caror elemente sunt in ordine crescatoare.
Pseudocod:                                       Codificare C :
{                                                #include<conio.h>
scrie('m=');                                     #include<stdio.h>
citeste(m);                                      void main()
scrie('n=');                                     {
citeste(n);                                      int a[100][100],n,i,j,k,cresc;
DO-FOR i=1,m,1                                   printf("n=");
        DO-FOR j=1,n,1 scrie('a[',i,'][',j,']=); scanf("%i",&n);
                           citeste(a[i][j]);     for (i=1;i<=n;i++)
        ENDDO                                       for (j=1;j<=n;j++)
k=0;                                                {
DO-FOR i=1,m,1                                          printf("a[%i][%i]=",i,j);
         cresc=1;                                       scanf("%i",&a[i][j]);
        DO-FOR j=1,n-1,1                            }
                IF a[i,j]>a[i,j+1] THEN          printf("\n");
cresc=0;                                         for (i=1;i<=n;i++)
                ENDIF                            {
        ENDDO                                       for (j=1;j<=n;j++)
        IF cresc=1 THEN k=k+1;                          printf("%i\t",a[i][j]);
        ENDIF                                    printf("\n");
ENDDO                                            }
IF k=0 THEN scrie('nu exista linii ale caror k=0;
elemente sunt in ordine crescatoare')              for (i=1;i<=n;i++)
        ELSE scrie('exista ',k,' linii ale       {
caror elemente sunt in ordine crescatoare')            cresc=1;
ENDIF                                                  for (j=1;j<=n-1;j++)
}                                                            if (a[i][j]>a[i][j+1]) cresc=0;
                                                       if (cresc==1) k++;
                                                 }
                                                   if (k!=0) printf("k=%i",k);
                                                      else printf("nu avem linii ordonate");
                                                 }




Date :
a[i][j]=matricea a formata din “i”linii si “j”coloane.
n=dimensiunea matricii
23. Sa se determine produsul dintre elementul minim si maxim din triunghiul din
stanga diagonalelor unei matrice patrate(exclusiv diagonalele).
Pseudocod:                                    Codificare C:
{ citeste(n);                                 #include<conio.h>
DO-FOR i=1,n,1                                #include<stdio.h>
        DO-FOR j=1,n,1                        void main()
                          citeste(a[i][j]);   {
        ENDDO                                    int a[100][100],min,max,n,i,j,p;
ENDDO                                         printf("n=");scanf("%i",&n);
max=a[2][1];                                  for (i=1;i<=n;i++)
min=a[2][1];                                     for (j=1;j<=n;j++)
DO-FOR i=2,n/2,1                                 {
   DO-FOR j=1,i-1,1
              IF max<a[i][j] THEN             printf("a[%i][%i]=",i,j);scanf("%i",&a[i
max=a[i][j]                                   ][j]);
              ENDIF                              }
              IF min>a[i][j] THEN min=a[i][j] for (i=1;i<=n;i++)
              ENDIF                           {
   ENDDO                                         for (j=1;j<=n;j++)
ENDDO                                                printf("%i\t",a[i][j]);
DO-FOR i=n/2+1,n-1,1                           printf("\n");
   DO-FOR j=1,n-i,1                           }
              IF max<a[i][j] THEN             min=a[2][1];
max=a[i][j]                                   max=a[2][1];
              ENDIF                           printf("\n");
              IF min>a[i][j] THEN min=a[i][j] for (i=2;i<=n/2;i++)
              ENDIF                              for (j=1;j<=i-1;j++)
   ENDDO                                             printf("%i\t",a[i][j]);
ENDDO                                         for (i=n/2+1;i<=n-1;i++)
scrie('produsul dintre minimul si maximul din    for (j=1;j<=n-i;j++)
stanga intersectiei diagonalelor                     printf("%i\t",a[i][j]);
este:'max*min);
}                                             for (i=2;i<=n/2;i++)
                                                 for (j=1;j<=i-1;j++)
                                                 {
                                                     if (a[i][j]<min) min=a[i][j];
                                                     if (a[i][j]>max) max=a[i][j];
                                                 }
                                              for (i=n/2+1;i<=n-1;i++)
                                                 for (j=1;j<=n-i;j++)
                                                 {
                                                     if (a[i][j]<min) min=a[i][j];
                                                     if (a[i][j]>max) max=a[i][j];
                                                 }

                                               p=min*max;
                                               printf("\n");
                                               if (n>3) printf("produsul dintre minim
                                               si maxim este p=%i",p);
                                               else printf("nu avem triunghi stang
                                               introduceti dimensiunea matricii >= 3");
                                               }
24. Sa se calculeze suma elem unei matrici de m linii si n coloane.
Pseudocod:                                       Codificare C:
{                                                #include<conio.h>
read (m); (citire nr de linii)                   #include<stdio.h>
read (n); (citire nr de coloane)                 void main()
do_for i=1,m,1 (parcurgere pe linie)             {
         do_for j=1,n,1 (parcurgere pe           int a[100][100],m,n,i,j,s;
coloane)                                         printf("n=");scanf("%i",&n);
                 read (a[i,j]); (citire matrice) printf("m=");scanf("%i",&m);
         enddo;                                  for (i=1;i<=m;i++)
enddo;                                              for (j=1;j<=n;j++)
s=0; (se initializeaza suma cu 0)                   {
do_for i=1,m,1
         do_for j=1,n,1                          printf("a[%i][%i]=",i,j);scanf("%i",&a[i][j]);
                 s=s+a[i,j]; (se aduna la           }
suma elemental ce urmeaza a fi parcurs)          for (i=1;i<=m;i++)
         enddo;                                  {
enddo;                                              for (j=1;j<=n;j++)
write s;                                               printf("%i\t",a[i][j]);
}                                                printf("\n");
                                                 }
                                                 s=0;
                                                 for (i=1;i<=m;i++)
                                                    for (j=1;j<=n;j++)
                                                       s=s+a[i][j];
                                                 printf("suma elementelor matricii este
                                                 s=%i",s);
                                                 }
25. Sa se calculeze produsul elementelor impare de pe linia k.
Pseudocod:                                      Codificare C:
{                                               #include<conio.h>
read (m); (citire nr de linii)                  #include<stdio.h>
read (n); (citire nr de coloane)                void main()
do_for i=1,m,1 (parcurgere pe linie)            {
                 do_for j=1,n,1 (parcurgere        int a[100][100],m,n,i,j,p,k;
pe coloane)                                     printf("n=");scanf("%i",&n);
                         read (a[i,j]); (citire printf("m=");scanf("%i",&m);
matrice)                                        for (i=1;i<=m;i++)
                 enddo;                            for(j=1;j<=n;j++)
enddo;                                             {
p=1;(se initializeaza p cu 1)
                         do_for j=1,n,1 (se     printf("a[%i][%i]=",i,j);scanf("%i",&a[i][j]);
parcurg coloanele)                                 }
                                 if             p=1;
a[k,j]%2<>0 then p=p*a[i,j] (daca               for (i=1;i<=m;i++)
elementul de pe linia k este impar atunci       {
se inmulteste cu produsul)                         for(j=1;j<=n;j++)
                         enddo;                       printf("%i\t",a[i][j]);
write p;                                        printf("\n");
}                                               }
                                                printf("k=");scanf("%i",&k);
                                                for (j=1;j<=n;j++)
                                                   p=p*a[k][j];
                                                printf("produsul p=%i",p);
                                                }
        26. Sa se calc diferenta dintre suma elem de pe diag principana si suma elem
de pe diag secundara.
Pseudocod:                                  Codificare C:
{                                           #include<conio.h>
read (m); (citire de matrice cu patratica)  #include<stdio.h>
do_for i=1,n,1                              void main()
        do_for j=1,n,1                      {
                read (a[i,j]);                 int a[100][100],n,i,j,d,s1,s2;
        enddo;                              printf("n=");scanf("%i",&n);
enddo;                                      for (i=1;i<=n;i++)
s1=0;                                          for (j=1;j<=n;j++)
s2=0;                                          {
do_for i=1,n,1 (parcurgere de linii)
        do for j=1,n,1 (parcurgere de       printf("a[%i][%i]=",i,j);scanf("%i",&a[i][j]);
coloane)                                       }
                if i=j then s1=s1+a[i,j]    for (i=1;i<=n;i++)
(conditie de diagonala principala si daca e {
adv se aduna elementul la s1)                  for (j=1;j<=n;j++)
                endif;                            printf("%i\t",a[i][j]);
                if i+j=m+1 then             printf("\n");
s2=s2+a[i,j] (conditie de diag secundara si }
daca e adv se aduna elem la s2)             s1=0;
                endif;                      s2=0;
        enddo;                              for (i=1;i<=n;i++)
enddo;                                         for (j=1;j<=n;j++)
d=s1-s2; (se face diferenta dintre suma de     {
pe diag principala si cea de pe diag              if (i==j) s1=s1+a[i][j];
secundara)                                        if (j==n-i+1) s2=s2+a[i][j];
write d;                                       }
}                                           d=s1-s2;
                                            printf("\nsuma pe diagonala principala este
                                            s1=%i",s1);
                                            printf("\nsuma pe diagonala secudara este
                                            s2=%i\n",s2);
                                            printf("diferenta este d=%i",d);
                                            }
27. Sa se calculeze suma elementelor de pe conturul unei matrici.
Pseudocod:                                 Codificare C:
{                                          #include<conio.h>
read (m);                                  #include<stdio.h>
read (n);                                  void main()
do_for i=1,m,1                             {
           do_for j=1,n,1                     int a[100][100],m,n,i,j,s;
                read (a[i,j]);             printf("m=");scanf("%i",&m);
           enddo;                          printf("n=");scanf("%i",&n);
enddo;                                     for (i=1;i<=m;i++)
s=0;                                          for (j=1;j<=n;j++)
do_for j=1,n,1 do s=s+a[1][j]; (suma de pe    {
prima linie)
do for i=2,m,1 do s=s+a[i][n]; (suma d pe printf("a[%i][%i]=",i,j);scanf("%i",&a[i][j]);
ultima coloana incepand de la al 2-lea        }
element)                                   for (i=1;i<=m;i++)
do_for i=1,n-1,1 do s=s+a[m][j]; (suma     {
de pe ultima linie incepand de la primul      for (j=1;j<=n;j++)
pana la penultimul)                              printf("%i\t",a[i][j]);
do_for j=2,m-1,1 do s=s+a[i][1]; (suma     printf("\n");
de pe prima coloana incepand de la primul }
pana la penultimul)                        for (j=1;j<=n;j++) s=s+a[1][j];
write s;                                   for (i=2;i<=m;i++) s=s+a[i][n];
}                                          for (j=1;j<=n-1;j++) s=s+a[m][j];
                                           for (i=2;i<=m-1;i++) s=s+a[i][1];
                                           printf("suma conturului matricii este
                                           s=%i",s);
                                           }
         28. Sa se calculeze suma elementelor situate desupra diag principale si
deasupra diag secundare.
Pseudocod:                                   Codificare C:
{                                            #include<conio.h>
read (n);                                    #include<stdio.h>
do_for i=1,n,1                               void main()
         do_for j=1,n,1                      {
                 read (a[i,j]);                 int a[100][100],n,i,j,s;
         enddo;                              printf("n=");scanf("%i",&n);
enddo;                                       for (i=1;i<=n;i++)
s=0;                                            for (j=1;j<=n;j++)
do_for i=1,n,1 (se parcurge pe linie)           {
         do_for j=1,n,1 (se parcurge pe
coloana)                                     printf("a[%i][%i]=",i,j);scanf("%i",&a[i][j]);
                 if i<j and i+j<n+1 then        }
s=s+a[i,j]; (se testeaza daca elementul este for (i=1;i<=n;i++)
in triunghiul format de cele 2 diagonale in {
partea de sus, si daca da, se aduna             for (j=1;j<=n;j++)
elementul la suma)                                 printf("%i\t",a[i][j]);
                 endif;                      printf("\n");
         enddo;                              }
enddo;                                       printf("\n");
write s;                                     for (i=1;i<=n;i++)
}                                               for (j=1;j<=n;j++)
                                                   if ((i<j) && (i+j<n+1)) printf("%i
                                             ",a[i][j]);
                                             printf("\n");
                                             s=0;
                                             for (i=1;i<=n;i++)
                                                for (j=1;j<=n;j++)
                                                   if ((i<j) && (i+j<n+1)) s=s+a[i][j];
                                             printf("suma este s=%i",s);
                                             }
29. Sa se verifice daca o matrice este sau nu matrice nula.
Pseudocod :                                  Codificare C:
{                                            #include<conio.h>
read (n);                                    #include<stdio.h>
do_for i=1,n,1                               void main()
          do_for j=1,n,1                     {
               read (a[i,j]);                    int a[100][100],n,i,j,ok;
          enddo;                             printf("n=");scanf("%i",&n);
enddo;                                       for (i=1;i<=n;i++)
ok=1;                                            for (j=1;j<=n;j++)
do_for i=1,n,1 (se parcurge pe linie)            {
          do_for j=1,n,1        (se parcurge
pe coloana)                                  printf("a[%i][%i]=",i,j);scanf("%i",&a[i][j]);
               if a[i.j] <> 0 then ok=0;         }
(daca se gaseste un element diferit de 0, se for (i=1;i<=n;i++)
schimba val lui ok)                          {
               endif;                            for (j=1;j<=n;j++)
          enddo;                                    printf("%i\t",a[i][j]);
enddo;                                       printf("\n");
if ok=0 then write ('Matricea este nula')    }
(daca ok este ca la inceput, matricea este   ok=1;
nula)                                        for (i=1;i<=n;i++)
        else write ('Matricea este               for (j=1;j<=n;j++)
normala') (daca ok s-a modificat este               if (a[i][j]!=0) ok=0;
normala)                                     if (ok) printf("matricea este nula");
}                                               else printf("matricea nu este nula");
                                             }
30. Sa se transforme in 0 elementele de pe liniile pare ale caror indici de linie si
coloana adunate dau un nr impar
Pseudocod:                                  codificare C:
{                                           #include<conio.h>
read (m);                                   #include<stdio.h>
read (n);                                   int main()
do_for i=1,m,1                              {
          do_for j=1,n,1                       int a[100][100],n,i,j,s;
                read (a[i,j]);              printf("n=");scanf("%i",&n);
          enddo;                            for (i=1;i<=n;i++)
enddo;                                         for (j=1;j<=n;j++)
do_for i=1,m,1 (parcurgem liniile)             {
          do_for j=1,n,1 (parcurgem
coloanele)                                  printf("a[%i][%i]=",i,j);scanf("%i",&a[i][j]);
                if ((i%2=0) &&                 }
((i+j)%2<>0)) then a[i,j]=0; (dc linia para for (i=1;i<=n;i++)
si daca suma dintre indicii de linie si     {
coloana a elementului a[i,j] este impar        for (j=1;j<=n;j++)
atunci a[i,j]=0)                                  printf("%i\t",a[i][j]);
                        endif;              printf("\n");
                endif;                      }
          enddo;                            for (i=1;i<=n;i++)
enddo;                                         for (j=1;j<=n;j++)
do_for i=1,m,1                                    if ((i%2==0) && ((i+j)%2!=0))
          do_for j=1,n,1                    a[i][j]=0;
                write(a[i,j]); (se scrie    printf("\n");
matricea)                                   for (i=1;i<=n;i++)
                writeln;                    {
          enddo;                               for (j=1;j<=n;j++)
enddo;                                            printf("%i\t",a[i][j]);
}                                           printf("\n");
                                            }
                                            }

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:86
posted:1/27/2011
language:Romanian
pages:31