Sunteți pe pagina 1din 19

Ministerul Educaţiei, Culturii și Cercetării al Republicii

Moldova

Universitatea Tehnică a Moldovei


Departamentul Tehnologia Informatiei

RAPORT

Lucrarea de laborator nr. 3 la Programarea Calculatoarelor

Chişinău – 20XX
LUCRAREA DE LABORATOR 3
Solutionarea problemelor prin prelucrarea tablourilor
unidimensionale în TP şi C
Obiectivele temei :
1. Familiarizarea cu principiile solutionarii problemelor si
prelucrării elementelor tablourilor unidimensionale.
2. Algoritmizarea şi însuşirea procedeelor stereotipe de declarare,
introducere, afişare şi formare prin parcurgere şi calcule ale
valorilor elementelor tablourilor unidimensionale.
3. Însuşirea procedeelor avansate de realizare a structurilor ciclice
cu instrucţiunile for, while şi repeat, aplicând diverse tehnici de
programare.
4. Însuşirea procedeelor de operare în interfaţa TP şi C la nivelul
submeniurilor DEBUG şi BREAK/WATCH (mijloacele de depanare-
urmărire a variabilelor şi punctele de întrerupere).

Întrebările de autocontrol :
3.5
#include <stdio.h>
#include <math.h>

int main()
{
int num, rem, sum = 0, i;
printf("Introduceti numarul:");
scanf("%d", &num);
for (i = 1; i <= (num - 1); i++)
{
rem = num % i;
if (rem == 0)
{
sum = sum + i;
}
}
if (sum == num)
printf("Numarul introdus este perfect");
else
printf("Numarul introdus nu este perfect!");
return 0;
}

3.6
Un tablou este o colectie de elemente de acelasi tip, plasate in
locatii de memorie succesive, care pot fi accesate individual cu
ajutorul unui index unic, ce caracterizeaza identificatorul.
In C, tablourile unidimensionale sunt alcătuite dintr-un grup de
elemente de acelaşi tip (numit tip de baza) si referite printr-un
nume comun. Variabilele de tip tablou se definesc in maniera:
tip_de_baza nume_var [dimensiune].
Deci tabloul se poate caracteriza prin tip, nume şi dimensiune.
Formatul comun de descriere a tablourilor este: tip nume[d1][d1]…
[dn];

3.7
Pentru a declara un tablou în C, un programator specifică tipul
elementelor și numărul de elemente cerute de o matrice după cum
urmează:

tip arrayName [arraySize];

Puteți inițializa o matrice în C fie una câte una, fie folosind o


singură instrucțiune după cum urmează:

sold dublu [5] = {1000,0, 2,0, 3,4, 7,0, 50,0};

3.8
Tablourile sunt foarte importante pentru limbajul C, următoarele
concepte ar trebui să fie cunoscute pentru toti programatorii in C:
1.Tablouri multi-dimensionale.
C acceptă tablouri multidimensionale. Cea mai simplă formă a
matricei multidimensionale este matricea bidimensională.
2. Transmiterea matricilor către funcții.
Puteți trece la funcție un pointer către un tablou specificând
numele tabloului fără un index.
3. Returnează matricea dintr-o funcție.
C permite unei funcții să returneze o matrice.
4. Pointer către o matrice.
Puteți genera un pointer către primul element al unui tablou,
specificând pur și simplu numele matricei, fără niciun index.
3.14
#include <stdio.h>
#include <math.h>
int main()
{
int y[5]={3,4,5,6,0};
printf ("y[3]= %d", y);
return 0;
}

c) 6

3.15
#include <stdio.h>
int main() {
int x,i,t;
int y[10]={3,6,9,5,7,2,8,10,0,3};
while(1) { x=0;
for(i=0;i<9;i++) if (y[i]>y[i+1]) { t=y[i]; y[i]=y[i+1]; y[i+1]=t; x++; }
if(x==0) break; }
printf ("%d", y);
return 0;
}

c) {3,6,9,5,7,2,8,10,0,3}

3.16
#include <stdio.h>
#include <conio.h>
void main(void)
{
int a[30],i,n=20; int s=0; float ma;
for(i=0;i<n;i++){

printf("\na[%d]=", i);
}
scanf ("%d", &a[i]);
for(i=0;i<n;i++) s=s+a[i]; ma=s/n; {
printf("\nRezultatul=%f", ma);
}
getch();
return 0;
}

d) da, deoarece nu au fost citite corect toate elementele vectorului

3.17
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main() {
int y,k,n,n1;
printf("Introduceti numarul:");
scanf("%d", &n1);
printf("Cate cifre sa deplasam la stanga?");
scanf("%d",&k);
y=pow(10,k-1);
n=n1%y;
n1=n1/y;
n=n*pow(10,k)+n1;
printf("se obtine numarul %d",n);
getch();
return 0;
}

3.22
#include <stdio.h>

int main() {
int i , num , fact = 1;
printf ("Introduceti un numar : ");
scanf ("%d", &num);

if (num<0)
{
printf ("Factorialul nu este preconizat pentru numerele
negative!");
}
else
{
for(i=1; i<= num; i++)
fact = fact * i;
}
printf("Factorialul lui %d = %d", num, fact);
return 0;
}

3.23
#include<stdio.h>
#include<conio.h>
int main()
{
int x, y;
char op;

printf("Introduceti x: ");
scanf("%d",&x);
printf("Introduceti y: ");
scanf("%d",&y);
printf("Introduceti operatorul de calcul : ");
scanf(" %c", &op);

switch (op) {
case '+':
printf ("%d + %d = %d", x, y, x+y);
break;
case '-':
printf ("%d - %d = %d", x, y, x-y);
break;
case '*':
printf ("%d * %d = %d", x, y, x*y);
break;
case '/':
printf ("%d / %d = %d", x, y, x/y);
break;
default:
printf ("Operatori necunoscuti!", op);
}

return 0;
}

Test 7
#include <stdio.h>
#include <conio.h>
int main()
{
float a[40],suma=0,med;
int lung,i,cont=0;
printf("Introduceti lungimea vectorului :");
scanf("%d",&lung);
for (i=0;i<lung;i++)
{
printf("a[%d]: ",i+1);
scanf("%f",&a[i]);

}
for (i=0;i<lung;i++)
if (a[i]>0)
{
suma+=a[i];
cont++;
}
med=suma/cont;
printf("Media aritmetica a numerelor pozitive din vectorul a este %-
8.2f",med);
getch();
}

E 1.19
void main(){
int n,k; int v[n]; n=4;
for(k=0;k<n;k++) v[k]=0; }

c) 2

E 1.37
#include <stdio.h>
void main (void){
puts("Dimensiunea in octeti ocupata de:");
printf("int\t%d\n",sizeof(int));
printf("char\t%d\n",sizeof(char));
printf("long\t%d\n",sizeof(long));
printf("32780\t%d\n",sizeof(32780));
printf("32780u\t%d\n",sizeof(32780u));
printf("-10000\t%d\n",sizeof(-10000));
printf("'a'\t%d\n",sizeof('a'));
printf("07111111\t%d\n",sizeof(07111111));
printf("22l\t%d\n",sizeof(22l));
}

E 1.38
void main(void){
int i=20000,j=15000,k;
float r;
scanf("%d",&k);
printf("%d %p\n",k,&k);
k=i+j;
r=i+j;
r=(float)i+j;
r=(long)i+j;
r=i/j;
k=i/j;
r=(float)i/j;
k=i%j;
k=+ - - -i;
k=+ - --i;
k=- +j--;
i=k/(j-j);
}
E 1.39
#include <stdio.h>
int main () {
int x,x2,x3,x4,x5;
printf("x=");scanf("%d",&x);
x5=(x4=(x3=(x2=x*x)*x)*x)*x;
printf("%d %d %l %d %d\n",x,x2,x3,x4,x5);
return 0;
}

E 1.42
#include <stdio.h>
int main () {
int n,i,dim=sizeof(i)*8,masca=1;
while(1){
printf("n=");scanf("%d",&n);
for(i=dim-1;i>=0;i--)
putchar(n&masca<<i?'1':'0');
}
return 0;
}

Ex 33
#include <stdio.h>
int main() {
int arr[] = {2,8,0,4,6,5,0,4};
int i, count=0;
int n = 8;
for(i = 0; i < n; i++) {
if(arr[i] > 0){
arr[count++] = arr[i];
}
}
while(count < n){
arr[count++] = 0;
}
for(i = 0; i < n; i++) {
printf(" %d ",arr[i]);
}
return 0;
}

Ex 34
# include <stdio.h>
# include <math.h>
void primeFactors(int n)
{
while (n%2 == 0)
{
printf("%d ", 2);
n = n/2;
}
for (int i = 3; i <= sqrt(n); i = i+2)
{
while (n%i == 0)
{
printf("%d ", i);
n = n/i;
}
}
if (n > 2)
printf ("%d ", n);
}
int main()
{
int n = 240;
primeFactors(n);
return 0;
}

S-ar putea să vă placă și