Sunteți pe pagina 1din 11

Ministerul Educaţiei

al Republicii Moldova

Universitatea Tehnică a Moldovei

RAPORT
despre lucrarea de laborator Nr. 6
la Structuri de Date si Algoritmi

Tema: Rezolvarea problemelor cu STRUCT în C


Varianta 3

A îndeplinit: Belii Daniela

Chişinău – 2020
Mersul lucrării:

Ex 1

Codul:
#include <stdio.h>
#include<string.h>
#include<stdlib.h>

#define max 100

int a[max];
int top = -1;
int x;
int min = 1000;

int isempty() ;
int isfull() ;
void introducere() ;
int eliminare() ;
void afisare() ;

int main()
{
int ch;

do
{

printf("\n 1. introducere");
printf("\n 2. eliminare");
printf("\n 3. afisare");
printf("\n 4. minimul");
printf("\n 5. Iesire\n");
printf(">>> ");
scanf("%d",&ch);

switch (ch) {
case 1:
introducere();
break;
case 2:
eliminare();
break;
case 3:
afisare();
break;
case 4:
minimul();
break;
case 5:
return 0;
default:
printf("Alegere invalida");
break;
}
}while(ch!=4);
return 0;
}

int isfull(){
if ( (top == max-1))
{
return 1;
}
else
{
return 0;
}
}

int isempty(){
if((top==-1))
{
return 1;
}
else
{
return 0;
}
}

void introducere(){
if (isfull())
{
printf("Stiva e plina");
}
else
{
printf("Introdu element: ");
scanf("%d",&x);
if(x < min){
min = x;
}
top++;
a[top] = x;
}
}

int eliminare(){
if(isempty())
{
printf("Stiva e goala");
exit(0);
}
else{
x = a[top];
printf("%d",x);
top--;
}
}

void afisare()
{
if(isempty())
{
printf("nu este nimic de afisat");
exit(0);
}
else
printf("Stiva: \n");
{
int i;
for(i=0;i<top+1;i++)
{
printf("%d \n",a[i]);
}
}
}

void minimul(){
printf("Minimul este: %d", min);
}

Output:
Ex 2:

Codul:

#include <stdio.h>
#include <stdlib.h>
struct node {
char nume[30];
char prenume[30];
int anNastere;
char adresa[30];
float notaMedie;
char specialitate[2];
struct node *next;
};

void parcurgereSiAfisare(struct node *p) {


int nr = 1;
printf("\nLista: \n");
while (p != NULL) {
printf("Studentul nr: %d\n", nr);
printf("Numele: %s", p->nume);
printf("Prenumele: %s", p->prenume);
printf("An Nastere: %d", p->anNastere);
printf("Adresa: %s", p->adresa);
printf("notaMedie: %f\n", p->notaMedie);
printf("Specalitate: %s\n", p->specialitate);
p = p->next; nr++;
}
}

void introducere(struct node *p) {


int nr = 1;
printf("Introducerea valorilor listei pentru 3 studenti:\n");
while (p != NULL) {
printf("Studentul %d: \n", nr);
printf("Introdu numele: "); fgets(p->nume, 30, stdin);
printf("Introdu prenumele: "); fgets(p->prenume, 30, stdin);
printf("Introdu anul nasterii: "); scanf("%d", &p->anNastere);
getchar();
printf("Introdu adresa: "); fgets(p->adresa, 30, stdin);
printf("Introdu notaMedie: "); scanf("%f", &p->notaMedie);
getchar();
printf("Introdu specialitatea: "); fgets(p->specialitate, 30,stdin);
p = p->next; nr++;
}
}

void notaMedieMax(struct node *p){


float max = 0;
while (p != NULL){
if(p->notaMedie > max){
max = p->notaMedie;
}
p = p->next;
}
printf("\nnota Medie maxima - %f\n", max);
}

int main() {
struct node *head;
struct node *one = NULL;
struct node *two = NULL;
struct node *three = NULL;
struct node *ch = NULL;
int n;

one = malloc(sizeof(struct node));


two = malloc(sizeof(struct node));
three = malloc(sizeof(struct node));
ch = malloc(sizeof(struct node));

one->next = two;
two->next = three;
three->next = NULL;
head = one;
while(1){
printf("Alege operatia: \n1.Introducerea listei\n2.Afisarea listei\n3.Introducere Element
Inceput\n4.Introducere Element Sfarsit\n5.Introducere element Intre 2 Noduri\n6.Stergere
Element\n7.Cea mai mare nota medie\n8.EXIT\n");
scanf("%d", &n);
getchar();
switch(n){
case 1: introducere(head);
break;
case 2: parcurgereSiAfisare(head);
break;
case 3: front(head);
break;
case 4: end(head);
break;
case 5: printf("Introdu elementul dupa care sa inserezi nodul: ");
scanf("%d", &ch);
after(ch);
break;
case 6: printf("Introdu elementul dupa care sa stergi nodul: ");
scanf("%d", &ch);
del(ch);
break;
case 7: notaMedieMax(head);
case 8: return 0;
default: break;

}
}
return 0;
}

front(struct node *head)


{
struct node *p;
p=malloc(sizeof(struct node));
printf("Introdu numele: "); fgets(p->nume, 30, stdin);
printf("Introdu prenumele: "); fgets(p->prenume, 30, stdin);
printf("Introdu anul nasterii: "); scanf("%d", &p->anNastere);
getchar();
printf("Introdu adresa: "); fgets(p->adresa, 30, stdin);
printf("Introdu nota Medie: "); scanf("%f", &p->notaMedie);
getchar();
printf("Introdu specialitatea: "); fgets(p->specialitate, 30,stdin);
p->next=head;
return (p);
}

end(struct node *head,int value)


{
struct node *p,*q;
p=malloc(sizeof(struct node));
printf("Introdu numele: "); fgets(p->nume, 30, stdin);
printf("Introdu prenumele: "); fgets(p->prenume, 30, stdin);
printf("Introdu anul nasterii: "); scanf("%d", &p->anNastere);
getchar();
printf("Introdu adresa: "); fgets(p->adresa, 30, stdin);
printf("Introdu nota Medie: "); scanf("%f", &p->notaMedie);
getchar();
printf("Introdu specialitatea: "); fgets(p->specialitate, 30,stdin);
p->next=NULL;
q=head;
while(q->next!=NULL)
{
q = q->next;
}
q->next = p;
}

after(struct node *a)


{
if (a->next != NULL)
{
struct node *p;
p = malloc(sizeof(struct node));
printf("Introdu numele: "); fgets(p->nume, 30, stdin);
printf("Introdu prenumele: "); fgets(p->prenume, 30, stdin);
printf("Introdu anul nasterii: "); scanf("%d", &p->anNastere);
getchar();
printf("Introdu adresa: "); fgets(p->adresa, 30, stdin);
printf("Introdu nota Medie: "); scanf("%f", &p->notaMedie);
getchar();
printf("Introdu specialitatea: "); fgets(p->specialitate, 30,stdin);
p->next = a->next;
a->next = p;
}
else
{
printf("Use end function to insert at the end\n");
}
}

del (struct node *before_del)


{
struct node *temp;
temp = before_del->next;
before_del->next = temp->next;
free(temp);
}
Output(partea 1):

Output(partea 2):
Concluzie:
În aceasta lucrare de laborator am lucrat cu functia Struct în C și am rezolvat un exercițiu în care am
folosit și sortari.

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

  • Proiect Dispozitive Si Circuite Electronice
    Proiect Dispozitive Si Circuite Electronice
    Document22 pagini
    Proiect Dispozitive Si Circuite Electronice
    DanielaBalan
    100% (1)
  • Mecanica 5 PDF
    Mecanica 5 PDF
    Document5 pagini
    Mecanica 5 PDF
    Belîi Daniela
    Încă nu există evaluări
  • Varianta Atestarea 2 Seria 2
    Varianta Atestarea 2 Seria 2
    Document2 pagini
    Varianta Atestarea 2 Seria 2
    Belîi Daniela
    Încă nu există evaluări
  • UGHIJOK
    UGHIJOK
    Document7 pagini
    UGHIJOK
    Belîi Daniela
    Încă nu există evaluări
  • Lab LFPCN3 OnicaDinu
    Lab LFPCN3 OnicaDinu
    Document18 pagini
    Lab LFPCN3 OnicaDinu
    Dinu RaceClan
    Încă nu există evaluări
  • Cde 5
    Cde 5
    Document5 pagini
    Cde 5
    Belîi Daniela
    Încă nu există evaluări
  • Lab 2 Cazacu POO
    Lab 2 Cazacu POO
    Document6 pagini
    Lab 2 Cazacu POO
    Belîi Daniela
    Încă nu există evaluări
  • Model Laborator 2 PDF
    Model Laborator 2 PDF
    Document4 pagini
    Model Laborator 2 PDF
    hsdfhdf
    Încă nu există evaluări
  • Foaia de Titlu
    Foaia de Titlu
    Document1 pagină
    Foaia de Titlu
    Belîi Daniela
    Încă nu există evaluări
  • MMC Lab2
    MMC Lab2
    Document6 pagini
    MMC Lab2
    Mihail Boran
    Încă nu există evaluări
  • CYTGUHBI
    CYTGUHBI
    Document6 pagini
    CYTGUHBI
    Belîi Daniela
    Încă nu există evaluări
  • Serdtfgyuhjk
    Serdtfgyuhjk
    Document10 pagini
    Serdtfgyuhjk
    Belîi Daniela
    Încă nu există evaluări
  • Lab 2 Cazacu POO
    Lab 2 Cazacu POO
    Document6 pagini
    Lab 2 Cazacu POO
    Belîi Daniela
    Încă nu există evaluări
  • Cde 5
    Cde 5
    Document5 pagini
    Cde 5
    Belîi Daniela
    Încă nu există evaluări
  • Lucrare de Laborator Nr. 1
    Lucrare de Laborator Nr. 1
    Document4 pagini
    Lucrare de Laborator Nr. 1
    Belîi Daniela
    Încă nu există evaluări
  • DTYVGUB
    DTYVGUB
    Document11 pagini
    DTYVGUB
    Belîi Daniela
    Încă nu există evaluări
  • Lab2 Poo
    Lab2 Poo
    Document5 pagini
    Lab2 Poo
    Maria Codreanu
    Încă nu există evaluări
  • BIUHJK
    BIUHJK
    Document14 pagini
    BIUHJK
    Belîi Daniela
    Încă nu există evaluări
  • Lab2 Poo
    Lab2 Poo
    Document5 pagini
    Lab2 Poo
    Maria Codreanu
    Încă nu există evaluări
  • Lab2 Poo
    Lab2 Poo
    Document5 pagini
    Lab2 Poo
    Maria Codreanu
    Încă nu există evaluări
  • Lab2 Poo
    Lab2 Poo
    Document5 pagini
    Lab2 Poo
    Maria Codreanu
    Încă nu există evaluări
  • Lab 2 Cazacu POO
    Lab 2 Cazacu POO
    Document6 pagini
    Lab 2 Cazacu POO
    Belîi Daniela
    Încă nu există evaluări
  • Lab2 Poo
    Lab2 Poo
    Document5 pagini
    Lab2 Poo
    Maria Codreanu
    Încă nu există evaluări
  • Lab 2 Cazacu POO
    Lab 2 Cazacu POO
    Document6 pagini
    Lab 2 Cazacu POO
    Belîi Daniela
    Încă nu există evaluări
  • Curs C
    Curs C
    Document112 pagini
    Curs C
    alexsicoe
    Încă nu există evaluări
  • Lab 2 C
    Lab 2 C
    Document12 pagini
    Lab 2 C
    Belîi Daniela
    Încă nu există evaluări
  • Curs C
    Curs C
    Document112 pagini
    Curs C
    alexsicoe
    Încă nu există evaluări
  • Lab 26 Belii Daniela SI 191
    Lab 26 Belii Daniela SI 191
    Document4 pagini
    Lab 26 Belii Daniela SI 191
    Belîi Daniela
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document7 pagini
    Lab 5
    Belîi Daniela
    Încă nu există evaluări
  • RGHRTR
    RGHRTR
    Document11 pagini
    RGHRTR
    Belîi Daniela
    Încă nu există evaluări