Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


STRUCTURI - Sursa programului

c



+ Font mai mare | - Font mai mic



Structuri

SCOPUL LUCRARII

In aceasta lucrare se vor studia structuri si vectori de structuri.



2. BREVIAR TEORETIC

2.1. Structuri

Structurile sunt folosite pentru a grupa sub acelasi nume, mai multe date de acelasi tip sau de tipuri diferite. Sunt denumite si inregistrari. In limbajul C, pentru a declara o structura, se foloseste cuvantul cheie struct. In mod uzual, numele unei structuri se declara cu ajutorul cuvantului cheie typedef.

Sintaxa:

typedef structnumeStructra;

Exemplu:

typedef structcomplex;

Dupa ce a fost definit cuvantul cheie typedef, numele asociat structurii poate fi folosit pentru a declara variabile.

Exemplu:

complex c1,c2;

angajat a1;

2.2. Accesul la componentele unei structuri

Pentru accesarea membrilor unei structuri, pe baza numelui ei, se foloseste operatorul punct.

Exemple:

c1.re = 0.2;

c1.im = 0.7;

modulC1 = sqrt(c1.re* c1.re + c1.im* c1.im);

2.3. Vectori de structuri

In mod frecvent se folosesc tablouri ce au drept componente structuri. Astfel, un vector ce contine 100 de numere complexe, se declara in felul urmator:

typedef structcomplex;

complex tab[100];

Accesam un camp dintr-o structura componenta a unui vector, tot prin intermediul operatorului punct, aflat la dreapta componentei.

Astfel prin instructiunea:

tab[0].re = 0.5;

se atribuie campului re al primei componente din vectorul tab valoarea 5.

3. DESFASURAREA LUCRARII

Se vor edita si apoi executa programele descrise in continuare.

Programul nr. 1

Se defineste structura punct, ce are doua campuri x si y (coordonatele reprezentarii in plan a unui punct). Sa se scrie un program in care se citesc coordonatele a doua puncte, de la tastatura si se afiseaza distanta intre aceste puncte.

Sursa programului:

#include<conio.h>

#include<stdio.h>

#include<math.h>

typedef structpunct;

void main(void)

Programul nr. 2

Se defineste in acest program structura complex, ce consta din doua numere reale: partea reala si partea imaginara a unui numar complex. Se va scrie o functie in care se calculeaza modulul unui numar complex, o functie in care se calculeaza conjugatul unui numar complex si o alta functie in care se calculeaza suma a trei numere complexe.

Sursa programului:

#include<conio.h>

#include<stdio.h>

#include<math.h>

typedef structcomplex;

double modulComplex(complex c);

complex sumaComplex(complex c1, complex c2,complex c3);

complex complexConjugat(complex c);

void afisareComplex(complex c);

void main(void)

double modulComplex(complex c)

complex sumaComplex(complex c1,complex c2,complex c3)

complex complexConjugat(complex c)

void afisareComplex(complex c)

Programul nr. 3

Se citesc de la tastatura mai multe numere de tip complex, care se memoreaza intr-un vector de numere complexe. Sa se realizeze un program care sa calculeze si afiseze numarul de modul maxim.

Sursa programului:

#include<conio.h>

#include<stdio.h>

#include<math.h>

typedef structcomplex;

double modulComplex(complex c);

#define N 2

void main(void)

for(i=0;i<N;i++)

Modul[i]=modulComplex(A[i]);

ModulMaxim=Modul[0];

indexMax=0;

for(i=1;i<N;i++)

if(Modul[i]>ModulMaxim)

printf('%lfn',A[indexMax].re);

printf('%lf',A[indexMax].im);

getch();

double modulComplex(complex c)

Programul nr. 4

Folosind structura punct, se vor citi de la tastatura N puncte, care vor fi introduse intr-un vector. Sa se realizeze un program care sa afiseze daca toate cele N puncte sunt diferite intre ele sau nu.

Sursa programului:

#include<stdio.h>

#include<conio.h>

typedef struct punct;

#define N 3 //numarul de puncte

void main(void)

int suntDiferite=1;//presupunem ca sunt

for(i=0;i<N-1;i++)

for(j=i+1;j<N;j++)

if((p[i].x==p[j].x)&&(p[i].x==p[j].y))

if(suntDiferite)printf('Sunt diferite.');

else printf('Nu sunt diferite.');

getch();

Programul nr. 5

Folosind structura punct, se vor citi de la tastatura N puncte, care vor fi introduse intr-un vector. Sa se realizeze un program care sa afiseze distanta maxima dintre doua puncte.

#include<stdio.h>

#include<conio.h>

#include <math.h>

typedef struct punct;

#define N 3 //numarul de puncte

double dist(punct a, punct b); //distanta intre doua puncte

void main(void)

//Toate distantele sunt pozitive, deci initializam

// distMax cu 0:

double distMax=0;

//Formam toate perechile de puncte posibile:

for(i=0;i<N-1;i++)

for(j=i+1;j<N;j++)

printf('Distanta maxima=%lf',distMax);

getch();

double dist(punct a, punct b)

Programul nr. 6

Se defineste structura elev, ce contine doua campuri: numele de familie unui elev (de tipul string) si nota obtinuta de elev (de tipul int). Se citesc de la tastatura si se memoreaza intr-un vector de structuri elev, elevii unei clase si notele obtinute de ei. Sa se sorteze acest vector in ordinea descrescatoare a notelor elevilor.

Sursa programului:

#include <stdio.h>

#include <conio.h>

#define NR_ELEVI 20

typedef struct elev;

void main(void)

//sortarea, prin metoda bubble sort:

do//if

}while(existaInversiuni==1);

//Afisarea    elevilor:

for(i=0;i<NR_ELEVI;i++)

printf('%s %dn',tab[i].numetab[i].nota);

4. PROBLEME    PROPUSE

1. Cu ajutorul structurii punct, definita anterior, sa se realizeze un program care afiseaza daca trei puncte ale caror coordonate se introduc de la tastatura, sunt sau nu coliniare.

2. Sa se scrie o functie in care se realizeaza inmultirea a doua numere complexe.

3. Se citesc N puncte intr-un vector. Sa se afiseze daca sunt coliniare.

4. Folosind structura elev definita anterior, citim N elevi intr-un vector. Sa se afiseze toti elevii care au nota > 7.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 890
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved