Administratie | Alimentatie | Arta cultura | Asistenta sociala | Astronomie |
Biologie | Chimie | Comunicare | Constructii | Cosmetica |
Desen | Diverse | Drept | Economie | Engleza |
Filozofie | Fizica | Franceza | Geografie | Germana |
Informatica | Istorie | Latina | Management | Marketing |
Matematica | Mecanica | Medicina | Pedagogie | Psihologie |
Romana | Stiinte politice | Transporturi | Turism |
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);
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 } |
Documente similare:
|
ComentariiCaracterizari
|
Cauta document |