SDA - Laboratoare

Laborator
8.5/10 (2 voturi)
Conține 4 fișiere: pdf
Pagini : 37 în total
Cuvinte : 8436
Mărime: 517.25KB (arhivat)
Publicat de: Oliver Marian
Puncte necesare: 0

Extras din laborator

Programul şi datele sale sunt păstrate în memoria calculatorului (RAM – Random

Acces Memory – memorie cu acces aleator). Memoria este împărţită în octeţi (opt biţi).

Doi octeţi formează un cuvânt, patru octeţi formează un cuvânt lung, iar 16 octeţi

formează un paragraf (pe IBM PC). Fiecare octet are în memorie o adresă unică, octeţi

consecutivi având adrese consecutive.

Un pointer este o variabilă care păstrează adresa unei date, în loc de a memora

data însăşi.

Prin utilizarea pointerilor, limbajul C oferă utilizatorilor multiple facilităţi, dintre

care mai importante sunt:

- accesarea directă a diverselor zone de memorie prin modificarea adresei

memorate în pointer; în acest fel pot fi create şi exploatate liste înlănţuite.

- crearea de noi variabile în timpul execuţiei programului, în cadrul

mecanismului de alocare dinamică a memoriei;

- întoarcerea dintr-o funcţie a mai multor valori către funcţia apelantă; în mod

uzual, o funcţia întoarce o singură valoare prin intermediul instrucţiunii return;

- accesarea directă unor elemente dintr-o structură de date cum ar fi şiruri sau

tablouri.

1. Declararea şi utilizarea pointerilor

Ca orice tip de variabilă, înainte de a fi utilizată, variabila de tip pointer trebuie

declarată. Declararea se face în cadrul unei instrucţiuni având forma generală:

Tip *nume_pointer 1, .., *nume_pointer n;

unde: tip poate fi oricare dintre tipurile fundamentale de date (int, float, double, char),

nume_pointer i un şir de caractere cu condiţia ca primul caracter să fie o literă

(aceeaşi condiţie ca la numele de variabile).

Singura deosebire faţă de o instrucţiune de declarare de variabile este prezenţa

caracterului *, care semnalează compilatorului că a fost declarată o variabilă pointer şi nu

o variabilă obişnuită.

Pentru a explica modul de lucru cu pointeri, considerăm exemplele următoare:

Exemplul 1.

main()

{

int varint, *ptrint;

ptrint = &varint;

varint = 200;

printf(“adresa varint: %pn”, &varint);

printf(“valoare varint: %dn”, varint);

printf(“valoare ptrint: %pn”, ptrint);

printf(“valoare adresată de ptrint: %dn”,*ptrint);

2

}

În exemplul 1. sunt declarate două variabile, varint şi ptrint. Prima este o variabilă

de tip întreg, care păstrează o valoare de tip int. A doua este o variabilă de tip pointer la o

variabilă întreagă, ea memorând adresa unei variabile de tip int. Operatorul * este numit

în limbajul C operator de indirectare.

Adresa lui varint este atribuită lui ptrint, iar valoarea întreagă 200 este atribuită lui

varint.

Rezultatul execuţiei programului este:

adresa varint: FFD4

valoare varint: 200

valoare ptrint: FFD4

valoare adresată de ptrint: 200

Primele două linii dau adresa şi conţinutul lui varint. A treia linie reprezintă conţinutul lui

ptrint (adresa lui varint), respectiv adresa de memorie în care programul a creat varint.

Această valoare poate diferi de la execuţie la execuţie. Ultima linie afişează valoarea

memorată la adresa respectivă.

Instrucţiunea

varint = 200;

este echivalentă cu

*ptrint = 200;

întrucât varint şi *ptrint se referă la aceeaşi locaţie de memorie.

Exemplul 2.

#include <stdio.h>

void main(void)

{

float a

Preview document

SDA - Laboratoare - Pagina 1
SDA - Laboratoare - Pagina 2
SDA - Laboratoare - Pagina 3
SDA - Laboratoare - Pagina 4
SDA - Laboratoare - Pagina 5
SDA - Laboratoare - Pagina 6
SDA - Laboratoare - Pagina 7
SDA - Laboratoare - Pagina 8
SDA - Laboratoare - Pagina 9
SDA - Laboratoare - Pagina 10
SDA - Laboratoare - Pagina 11
SDA - Laboratoare - Pagina 12
SDA - Laboratoare - Pagina 13
SDA - Laboratoare - Pagina 14
SDA - Laboratoare - Pagina 15
SDA - Laboratoare - Pagina 16
SDA - Laboratoare - Pagina 17
SDA - Laboratoare - Pagina 18
SDA - Laboratoare - Pagina 19
SDA - Laboratoare - Pagina 20
SDA - Laboratoare - Pagina 21
SDA - Laboratoare - Pagina 22
SDA - Laboratoare - Pagina 23
SDA - Laboratoare - Pagina 24
SDA - Laboratoare - Pagina 25
SDA - Laboratoare - Pagina 26
SDA - Laboratoare - Pagina 27
SDA - Laboratoare - Pagina 28
SDA - Laboratoare - Pagina 29
SDA - Laboratoare - Pagina 30
SDA - Laboratoare - Pagina 31
SDA - Laboratoare - Pagina 32
SDA - Laboratoare - Pagina 33
SDA - Laboratoare - Pagina 34
SDA - Laboratoare - Pagina 35
SDA - Laboratoare - Pagina 36
SDA - Laboratoare - Pagina 37

Conținut arhivă zip

  • SDA - Laboratoare
    • lucrarea 0.pdf
    • lucrarea1.pdf
    • lucrarea2.pdf
    • lucrarea3.pdf

Alții au mai descărcat și

Ingineria Sistemelor de Programe - Capitolul 2

Capitolul II Structuri complexe de date in ingineria programarii 1. Generalitati Variabilele utilizate in Limbajul C/C++, din punct de vedere al...

Elemente de Bază ale Scriptului PHP

ELEMENTE DE BAZA ALE SCRIPTULUI PHP Scrierea programelor PHP Programele PHP sunt o mixtura de trei elemente : text, cod HTML si script PHP....

Program de copiere a unui fișier oarecare

/*PROGRAM DE COPIERE A UNUI FISIER OARECARE*/ import java.io.*; import java.util.*; public class CopyFile { public static void main(String[]...

Probleme Rezolvate

#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 30 int main(void) { char nume[MAX]; char...

Laboratoare C++ (SDA)

1.1. Crearea şi afişarea unei liste Exerciţiul 1. Să se scrie programul pentru crearea unei liste simplu înlănţuite cu preluarea datelor de la...

Tehnici Programare

1. Recapitularea unor elemente ale limbajului C 1.1 Structuri 1.1.1 Definire Se foloseste cuvantul cheie struct urmat de numele structurii si...

Te-ar putea interesa și

Structuri de Date și Algoritmi

1 Tema:Implimentarea tipului abstract de date.Tabloul de structuri. 2 Sarcina:De implimentat tipul abstract de date,tablou de structuri si de...

Magistrala SPI

1. Introducere 1.1 Scopul lucrării Scopul lucrării este de a familiariza studenții cu aspectele practice de baza pentru utilizarea în aplicații de...

Laborator SDA

LISTE SIMPLU ÎNLANTUITE 1. Continutul lucrarii În lucrare sunt prezentate operatiile importante asupra listelor simplu înlantuite si...

Structuri de Date și Algoritmi

Lucrarea 1 Evaluarea si masurarea timpului de executie al unui algoritm 1.Definitia unui tip de date abstract - TDA Un TDA este un model...

Pediatrie

Curs 1 Pediatrie Componentele pediatriei 1. pediatrie clinica->studiul bolilor 2. pediatrie preventiva->prevenirea bolilor,pastrarea sanatatii...

Laboratoare C++ (SDA)

1.1. Crearea şi afişarea unei liste Exerciţiul 1. Să se scrie programul pentru crearea unei liste simplu înlănţuite cu preluarea datelor de la...

Structuri de Date și Algoritmi

De ce SDA? Structuri de date : metode de organizare a unei mari cantitati de informatie Analiza algoritmilor : estimarea timpului de executie si...

Ai nevoie de altceva?