Documente Academic
Documente Profesional
Documente Cultură
Raport
La Programarea Calculatoarelor
LUCRAREA DE LABORATOR Nr. 5
Chiinu, 2014
Obiectivele temei
-Aprofundarea cunotinelor n limbajul i mediul TurboC i perfecionarea
tehnicii de programare cu subprograme n prelucrarea structurilor complexe.
-nsuirea procedeelor de algoritmizare i progamare prin descompunerea
problemei n module autonome care, apoi, vor fi reprezentate prin secvene
/fragmente de program pentru prelucrarea unor informaii dup principii
comune cu apeluri multiple, analiznd soluiile stereotipe i cele eficiente de
introducere, afiare i rearanjri ale tablourilor etc.
-nsuirea tehnicilor eficiente de parcurgere, cutare, schimbare i ordonare a
structurilor i calculul conform cunotinelor obinute din matematic n baza
ciclurilor i ncorporate ntr-un program complex, alctuit dup principiile
structurale i modulare.
un
rezultat
(similare
Un program este compus din una sau mai multe funcii, printre care si
"main()" principala funcie. ntotdeauna execuia unui program ncepe cu
"main()". Cnd o funcie este apelata (sau invocata) atunci controlul
programului este pasat funciei apelate. Dup ce aceasta i termina
execuia, atunci se paseaz napoi controlul ctre principala funcie.
#include <>
void tipareste_mesaj(int k)
{
int i;
printf("Iti urez:\n");
for (i = 0; i < k; ++i)
printf(" O zi buna ! \n");
}
main()
{
int n;
printf("Dati un numar natural mic: ");
scanf("%d", &n);
tipareste_mesaj(n); // apelul functiei tipareste_mesaj
}
Exemplu:
#include <>
main()
{
int n=3, suma, calculeaza_suma(int);
printf("%d\n", n);
/* se va scrie 3 */
suma = calculeaza_suma(n);
printf("%d\n", n);
/* se va scrie 3 */
printf("%d\n", suma);
/* se va scrie 6 */
}
Listingul :
#include<stdio.h>
#include<conio.h>
#include<math.h>
int first(int x[],int y[],int n)
{
int i,v,*a,*b;
a=x;b=y;
for(i=0;i<n;i++)
v=pow(*(a+i),2)+pow(*(b+i),2)+*(a+i)**(b+i);
return v;
}
int second(int x[],int y[],int n)
{
int i,v,*a,*b,s1,s2;
a=x;b=y;s1=0;s2=0;
for(i=0;i<n;i++)
{
s1=s1+pow(*(a+i),2);
s2=s2+pow(*(b+i),2);
}
return s1*s2;
}
int third(int x[],int y[],int n)
{
int j,i,v,*a,*b,s;
a=x;b=y;v=x[1];
for(j=0;j<n;j++)
{
s=1;
for(i=0;i<j;i++)
s=s**(b+i);
v=v+*(a+i)+s;
}
return v;
}
main()
{
clrscr();
int i,j,n,x[50],y[50],v,w;
printf("Introduceti marimea masivelor:");
scanf("%d",&n);
printf("\nIntroduceti valorile masivului x:");
for(i=0;i<n;i++)
scanf("%d",&x[i]);
printf("\nIntroduceti valorile masivului y:");
for(i=0;i<n;i++)
scanf("%d",&y[i]);
printf("\nIntroduceti w:");
scanf("%d",&w);
if(w==1) v=first(x,y,n);
if(w==2) v=second(x,y,n);
if(w==3) v=third(x,y,n);
printf("\nRezultatul este: %d",v);
getch();}
Laboratorul 3
#include <stdio.h>
#include <conio.h>
int * generate_array(int n)
{
int x[100], i;
puts("\nValorile masivului A:");
for(i=0;i<n;i++){
x[i]=rand()%35;
printf("%d ", x[i]);
}
return x;
}
int main ()
{
int n, i=0, j=0, s=0;
int *a;
int a2[100];
n=rand()%98;
a=generate_array(n);
for(i=0;i<=n;i+=2){
if(a[i]!=a[i+1]){
a2[j]=a[i]*a[i+1];j++; }
}
for(i=0;i<n;i++)
s+=a[i];
a2[j-1]=s;
puts("\nValorile masivului nou:");
for(i=0;i<j;i++){
printf("%d ", a2[i]);
}
getch();
return 0;
}
Laboratorul 4
#include <stdio.h>
#include <stdlib.h>
void array_of_coincidences()
{
int x=0,i,j,k;
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
for(k=0; k<m; k++) if(a[k][i]==a[k][j])x++;
r[i][j]=x;
x=0;
}
}
int response1()
{
int i,j,max=1,p=1;
for(i=0; i<n; i++)
for(j=0; j<n; j++) if(r[i][j]>max)
{
max=r[i][j];
p=1;
}
else if (r[i][j]==max)p++;
return p;
int response2()
{
int i,j,s;
for(i=0; i<n; i++)
for(j=0; j<n; j++) if(r[i][j]==0) s++;
return s;
}
int main()
{ printf("Dati dimensiunile tabloului:");
scanf("%i%i",&m,&n);
read_array(n,m);
array_of_coincidences();
printf("\n Numarul de coloane ce au cele mai multe asemanari:
%i\n Numarul de coloane ce se deosebesc una de alta: %i",
response1()/2,response2()/2);
return 0;}