Sunteți pe pagina 1din 9

Algoritm elementari7

Algoritmi
elementari

Algoritm elementari7

Vom clasifica algoritmii de prelucrare a datelor in: i8n24nb


1.Algoritmi numerici
2.Algoritmi de prelucrare a structurilor de date
1.Algoritmii numerici se aplica datelor elementare, utilizandu-se operatorii numerici
rationali si logici, respectiv operatorii pentru siruri de caractere.
Utilizarea algoritmilor in realizarea programelor ne obliga sa includem o serie de operatii
specifice manipularii datelor supuse prelucrarii. Din aceasta categorie de operatii, retinem
2 categorii: a.operatii de introducere a datelor de intrare b.operatii de afisare a rezultatelor
a.Operatia de introducere a datelor de intrare de la tastatura sau de pe Floppy Disk sau
Hard Disk si memorarea ei intr-o zona de RAM. Zona aceasta se numeste celula de lucru.
b.Operatia de afisare consta in transferul rezultatelor din memoria RAM pe un dispozitiv
periferic de iesire: monitor, imprimanta, Floppy Disk, Hard Disk.
Fluxul prelucrarii datelor cu un algoritm numeric
2.Algoritmi de prelucrare a structurii de opereaza cu datele memorate pe suportul extern
sub forma de fisiere sau baze de date. Ne vom referi la acei algoritmi numai din punct de
vedere al prelucrarii fisierelor.
Fisierul este o colectie de inregistrari memorate pe suport magnetic.
Ex: fisierul de contracte export. Fiecare contract reprezinta o inregistrare.
Elementele ce trebuie puse in contract: numarul, data, obiectul, cantitatea, clientul extern,
tara din care face parte, pretul unitar in lei si dolari, termen de livrare.
De studiat din lucrarile: 1.Puiu Alexandru-Management in afaceri economice
2.Economia transporturilor (Contractul de export si alte documente legate de exportul de
marfuri).
-Declaratie vamala, colosament, bilet la ordin, factura externa, CEC.
Se va face lista indicatorilor (rubricilor) si codurile folosite pentru completarea
contractului extern. Ex: fisierul PERSONAL are campurile: numar, numele, studii,
calificarea, starea civila, sex, salariu, adresa, functia.
Ex: codificam urmatoarele campuri: calificarea, sexul, functia, starea civila
Algoritmii de prelucrare a datelor folosesc urmatoarele operatii
1.operatii la nivel de fisier
2.operatii la nivel de inregistrare
3.operatii la nivel de campuri elementare
1.Operatiile la nivel de fisier sunt: a.deschiderea fisierului b.inchiderea fisierului
a.Operatiile de deschidere se mai numesc operatii de activare (open, use) si se desfasoara
distinct in functie de tipul fisierului. Pentru fisierele care se creaza (fisiere noi),
operatiunea de deschidere aloca un spatiu pe disk-ul fisierului si creeaza pe disk o
eticheta de inceput a fisierului, unde se scrie denumirea fisierului. Pentru fisierele de
date-comanda OPEN. Pentru fisierele vechi (old file), comanda OPEN verifica existenta
fisierului pe disk, autorizand accesul la datele fisierului.
Operatia de inchidere se numeste CLOSE. In cazul fisierelor noi care se creaza, scrie pe
disk dupa ultima inregistrare o eticheta de sfarsit de fisier-END of FILE. Pentru fisierele
vechi, instructiunea CLOSE, verifica eticheta de sfarsit si incheierea corecta a procesului
de prelucrare, interzicand orice acces la date.
Operatiile la nivel de inregistrare au ca efect manipularea globala a inregistrarii, fara a se

Algoritm elementari7
lua in considerare continutul inregistrarii. Operatiile sunt:
1.citire; 2.scriere; 3.rescriere; 4.stergere, 5.mutare
1.Citirea este valabila pentru fisierele vechi si inseamna aducerea de pe HDD sau FDD a
unei inregistrari in memoria RAM.
2.Scrierea este operatia prin care o inregistrare este transferata din memoria interna in
fisierul de pe FDD sau HDD.
3.Rescrierea este operatiunea prin care o inregistrare citita prealabil este rescrisa in fisier.
4.Stergerea este operatia prin care o inregistrare citita in prealabil este eliminata din fisier.
5.Mutarea este operatia prin care campurile si chiar o inregistrare este mutata dintr-o zona
in alta, din memoria RAM.
Diversele programe pot folosi si alte denumiri pentru aceste categorii de operatii.
Ce algoritmi se pot compune cu aceste operatii ? Avem algoritmii:
1.Algoritmi de creare a structurii de date (fisierelor, baze de date)
2.Algoritmi de actualizare
3.Algoritmi de exploatare
Operatiile la nivel de camp sunt specifice algoritmilor numerici.
1.Sunt algoritmii de o factura speciala, care au ca rezultat definirea structurii fisierelor
sau a bazei de date. Pe baza acestei structuri de datese realizeaza popularea cu date
reale a fiecarei inregistrari. Pentru fiecare inregisrare se introduc datele de la tastatura,
camp cu camp, iar dupa ce inregistrareaa fost completata, aceasta urmeaza a fi scrisa in
fisier.
2.Acestia au rolul de a aduce la zi sau de a mentine la zi continutul informational din
campurile
inregistrarilor din fisier. Aceste modificari sunt de categoriile: a.adaugari de noi
inregistrari b.adaugari de noi campuri c.stergerea unor inregistrari d.modificarea unor
campuri din inregistrari a.Se face la sfarsitul fisierului (APPEND),sau se poate face in
fisierul INSERT. Prin adaugare are loc o extensie a fisierului. c.Are ca efect invalidarea
logica a inregistrarii sau chiar eliminarea fizica a ei. d.Are rolul de a inlocui in
inregistrarile existente acele campuri care au suferit modificari (majorari, reduceri). O
inregistrare modificata presupune citirea inregistrarii mai intai, si apoi inregistrarile
trebuiesc rescrise in vechiul fisier.
Algoritmii de exploatare- rolul lor consta in citirea, prelucrarea (numerica si nenumerica)
si afisarea rezultatelor a.prelucrari monofisier b.prelucrari multifisier a. Folosesc un
singur fisier de intrare. Sunt urmatoarele: sortarea, listarea, listarea cu selectie, ventilarea.
Listarea=parcurgerea secventiala a inregistrarilor cu afisarea rezultatelor pe monitor.
Listarea cu salectie=parcurgerea secventiala si extragerea numai a anumitor inregistrari
pe baza unui criteriu numit filtru de selectie.
Sortarea=inseamna ordonarea fisieruluipe baza unuia sau mai multor chei (criterii) de
sortare, obtinandu-se un duplicat sortat dupa criteriile stabilite.
Ventilarea=este algoritmul prin care fisierul original este parcurs secventional,
extragandu-se unul sau mai multe seturi de inregistrari, cu care se creaza filiere noi in
conformitate cu filtrul de ventilare.

Algoritm elementari7

1. Logica abordarii
pe baza de venit
In cadrul acestei
abordari se
estimeaza
valoarea unei
intreprinderi, sau
a unui pachet de
a ctiuni prin
calcularea valorii
prezente a
veniturilor
anticipate
Valoarea = suma
actuala pentru
proprietari/invest
itori. Din punct
de vedere tehnic,
aceasta se
realizeaza a
veniturilor
anticipate prin
metoda
capitalizarii
profitului net
si/sau actualizarii
cash-flow-ul sau
a dividendelor.
In cazul
metodelor bazate
pe capitalizare,
un nivel
reprezentativ si
reproductibil al
venitului (de
regula profitul
net sau
dividendele) este
raportat
Conversia
venitului la o
rata de
capitalizare sau
este inmultit cu
un multiplu al

venitului
considerat, viitor
in valoare =
convertind astfel
venitul in
valoare.
actualizare/
capitalizare
In cazul
metodelor bazate
pe tehnica
actualizarii,
cash-flow-ul sau
dividendele sunt
estimate pentru
fiecare din anii
unei perioade
explicite de
previziune si
apoi convertite in
valoare prin
aplicarea unei
rate de
actualizare.
Abordarea pe
baza de venit
este
fundamentata pe
principii care au
fost descrise in
cadrul primului
capitol:
- Principiul
anticiparii este
poate primordial
in cadrul acestei
abordari. A
intelege ca
valoarea provine
din beneficiile
viitoare
anticipate care
urmeaza a fi
generate de

proprietatea
detinuta este
2. indiscutabil
elementul de
baza in
intelegerea
acestui mod de
judecata a valorii
intreprinderii;
- Principiul
substitutiei ajuta
la intelegerea
atat a costului
capitalului cat si
a legaturii intre
costul capitalului
si valoarea
intreprinderii.
Atunci cand pe
piata sunt
disponibile
investitii cu
rentabilitati si
riscuri diferite,
prima
oportunitate
investitionala
care se va epuiza
va fi aceea cu
rentabilitatea cea
mai ridi cata si
riscul cel mai
mic .
- Principiul
cererii si ofertei.
Pretul care
trebuie platit
pentru a deveni
proprietarul
capitalului sau
unei parti din
capitalul unei
firme depinde
esential de
cererea si oferta

Algoritm elementari7
de pe acea piata
in special si de.

Algoritm elementari7

Prin subprogram ntelegem un ansamblu alcatuit din declarari si instructiuni scrise n


vederea unei anumite prelucrari, ansamblu implementat separat si identificat printr-un
nume.
Exemple:
- Matematice: floor (C++) / sin, cos, abs, exp, trunc (Pascal)
- De manipulare a fisierelor: .close() (C++) / close (Pascal)
Avantajele utilizarii subprogramelor sunt:
reutilizare codului odata scris, un subprogram poate fi utilizat de catre mai multe
programe
elaborarea algoritmilor prin descompunerea problemei n altele mai simple n acest fel,
se rezolva mult mai usor problemele;
- reducerea numarului de erori care pot aparea la scrierea programelor;
- depistarea cu usurinta a erorilor verificam la nceput subprogramele, apoi modul n care
le-am asamblat (le-am apelat din cadrul programului);
- realizarea unor programe usor de urmarit (lizibile).
1. Palindrom:
Sa se afiseze daca un numar n citit de la tastatura este palindrom.
#include<iostream.h>
int n;
void citire( )
{
cout<<n=;
cin>>n;
}
long palindrom (long n)
{
long inv=0;
while(n!=0)
{
inv=inv*10+n%10;
n=n/10;
}
If(inv= =n)
return 1;
else
return 0;
}
main( )
{
citire( );
if(palindrom(n))
cout<<Da;

Algoritm elementari7
else
cout<<Nu;
}
2. Suma cifrelor:
Sa se afiseze suma cifrelor unui numar n citit de la tastatura.
#include<iostream.h>
int n,s;
void citire( )
{
cout<<n=;
cin>>n;
}
int sumacif(int n)
{
if(n= =0)
return 0;
while(n!=0)
{
s=s+n%10;
n=n/10;
return s;
}
}
main( )
{
citire( )
cout<<sumacif(n);
}
3. Produsul cifrelor:
Sa se afiseze produsul cifrelor unui numar n citit de la tastatura

Algoritm elementari7

Algoritm elementari7

1.citirea unui vector


Aceasta inseamna citirea numarului n de
componente, intr-un ciclu for, de pilda.
De fapt avem de citit componenta
numarului i, cu i de la 1 la n. Deci putem
scrie:

vom inversa vectorul x in vectorul y, de


acelasi tip cu x, deci vom pune in
componenta y[1] pe x[n],in componenta
y[2] pe x[n-1]...,im componenta y[n] pe
x[1]
for i :=1 to n do
y[i]:=x[n+1-i]

for i:= 1 to n do
4.inversarea unui vector in el insasi
begin
write('dati x[',x,']=');
readln(x[i]);
end;
2.Srierea unui vector
cand trebuie sa afisam vectorul, adica
toate componentele sale efective
numarul acestora este cunoscut. Afisarea
se realizeaza ciclic si poate fi astfel:

Va trebui sa schimbam prima


componenta cu ultima,pe a doua cu
penultima s.a.m.d.,pana la mijloc vom
intelege n div 2 indiferent daca n este par
sau impar.Asadar,va trebui sa parcurgem
vectorul pana la n div 2 intershimband
pe x[i] cu x[n+1-i];
for i:=1 to n do div 2 do
begin
aux:=x{i];

-fiecare element pe un rand(folosita mai


ales cand avem vectori si siruri de
caractere)

x[i]:=x [n+1-i];

for i:1to n do

end;

writeln(x[i]);

5.determinarea elementului minim dintrun vector

-toate elementele pe acelasi rand,


despartite de virgula si/sau spatii(in
cazul valorilor numerice)

x[n+1-i]:=aux;

write(x[i],',');

Aceasta problema se rezolva


astfel:consideram minim primul
element,apoi parcurgem restul vectorului
si,ori de cate ori gasim un element mai
mic actualizam minimul la valoarea
acelui element

writeln;

minim:=x[1]

for i:=1 to n do

3.inversarea unui vector in alt vector