QReferate - referate pentru educatia ta.
Cercetarile noastre - sursa ta de inspiratie! Te ajutam gratuit, documente cu imagini si grafice. Fiecare document sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Documente informatica

Programe cu date alocate dinamic



PROGRAME CU DATE ALOCATE DINAMIC


EXEMPLE DE PROGRAME



E6.1 Functie echivalenta cu functia de biblioteca 'strdup'


#include <string.h>

#include <alloc.h>

// alocare memorie si copiere sir

char * strdup ( char * adr)



// utilizare 'strdup'

#include <stdio.h>

void main () while (1);



E6.2 Vector alocat dinamic (cu dimensiune cunoscuta la eexecutie)


#include <stdio.h>

#include <stdlib.h>

void main ()


E6.3 Vector realocat dinamic (cu dimensiune necunoscuta)


#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#define INCR 4

void main()

v[i++]=x;

}

m=i;

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

printf ('%.2f ',v[i]);



E6.4 Matrice alocata dinamic (cu dimensiuni cunoscute la executie)


#include <stdio.h>

#include <stdlib.h>

void main ()

}



E6.5 Vector de pointeri la siruri alocate dinamic


/* Creare/ afisare vector de pointeri la siruri */

#include <stdio.h>

#include <stdlib.h>

#include <string.h>


// afisare siruri reunite On vector de pointeri

void printstr ( char * vp[], int n)

// ordonare vector de pointeri la siruri

void sort ( char * vp[],int n)


// citire siruri si creare vector de pointeri

int readstr (char * vp[])

return n;



void main ()


E6.6 Structuri alocate dinamic si legate prin pointeri (liste inlantuite)


// creare si afisare lista simplu inlantuita

#include <stdio.h>

#include <stdlib.h>

// definire tip nod de lista

typedef struct snod nod;


void main ()

// afisare lista

p=list;

while ( p != NULL)


PROBLEME PROPUSE



P6.1 Program care citeste mai multe linii de text de la tastatura si

le memoreaza intr-un vector de caractere alocat si realocat dinamic

(textul va fi terminat cu zero si va rezulta prin concatenare de linii).


P6.2 Program care citeste mai multe linii de text de la tastatura, aloca

dinamic memorie pentru fiecare linie si pune adresa liniei intr-un vector

de pointeri (vector alocat si realocat dinamic)


P6.3 Program pentru crearea si afisarea unei liste inlantuite de pointeri

la siruri alocate dinamic.


P6.4 Sa se scrie o functie pentru alocarea unor matrice patratice cu

dimensiuni date de reali (de tip 'double'). Sa se scrie un program care

citeste si afiseaza valori in/din matricea astfel alocata (dimensiunea se


citeste in programul principal).


P6.5 Functii pentru operatii cu multimi realizate ca vectori de biti

alocati dinamic. Se va defini un tip 'Set' ca pointer la o structura care

reuneste adresa si dimensiunea vectorului multime. Functii pentru afisare


multime, creare multime vida, adaugare numar la multime, copiere multime,

test de apartenenta, reuniune si intersectie de multimi. Valoarea k este

in multime daca este 1 bitul k%16 din intregul aflat in pozitia k/16 in

vector. Dimensiunea multimii (ca numar de biti) se da la creare multime

vida si nu mai poate creste prin adaugare de elemente.


P6.6 Functie pentru adunarea a doua numere intregi fara semn cu maxim 254

cifre zecimale, reprezentate prin vectori de cifre zecimale (cate o cifra

pe un octet), precedate de lungimea lor . Numerele pot avea lungimi diferite,

iar prima cifra este cea mai putin semnificativa (cifra unitatilor). Functii

pentru conversia din sir de caractere in numere reprezentate ca vectori de

cifre si pentru conversia inversa. Memoria se aloca dinamic pentru fiecare

sir de cifre. Program pentru verificarea functiilor prin citire, adunare

si afisare suma de intregi foarte lungi.

Exemplu de adunare: 567089 + 432 = 567521


P6.7 Functii pentru operatii cu liste inlantuite de numere: initializare

lista vida, adaugare la sfarsit de lista, afisare lista. Program pentru

creare si afisare lista folosind aceste functii.


P6.8 Functii pentru operatii cu liste ce contin la inceput un nod fara

date (element santinela creat la initializarea listei). Program pentru

crearea si afisarea unei liste de numere.


P6.9 Functie pentru adaugare la o lista ordonata de numere, cu pastrarea

ordinii. Program pentru crearea si afisarea unei liste ordonate de numere.


SOLUTII LA PROBLEME PROPUSE


R6.5

#include <stdio.h>

#include <stdlib.h>

// definire tip Set

typedef struct * Set;

// initializare multime de n elemente

void init (Set m, int n)

// adauga un element la multime

void addelem (Set m,int el)

// adunare (reuniune) multimi

void add (Set a, Set b, Set c)

// intersectie de multimi

void inters (Set a, Set b, Set c)

// apartenenta la multime

int este(Set m,int el)

// nr de elemente in multime

int size ( Set m)

// afisare multime

void printset(Set m) n');


// copiere multime

void clone ( Set a, Set c)

// verificare functii

void main()


R6.6

// numere lungi ca sir de cifre bcd (o cifra pe octet)

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

typedef char* bcd;

// conversie din ascii in bcd

bcd asc_bcd (char a[])

// conversie din bcd in ascii

void bcd_asc (bcd b, char a[])

// adunare de numere bcd

bcd add_bcd (bcd b1, bcd b2)

if (t)

return b3;


// verificare functii

void main () while (1);


Nu se poate descarca referatul
Acest document nu se poate descarca

E posibil sa te intereseze alte documente despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi documentele afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul document pe baza informatiilor de pe site.
{ Home } { Contact } { Termeni si conditii }