Fractali
This presentation is the property of its rightful owner.
Sponsored Links
1 / 30

Fractali PowerPoint PPT Presentation


  • 142 Views
  • Uploaded on
  • Presentation posted in: General

Fractali. Desenarea arborilor binari. Motto: Informatica nu inseamna calcul.Calculul este facut de masini de calcul.Informaticii ii apartine fantezia , imaginatia , demonstratia. Fractali. Generatitati.

Download Presentation

Fractali

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Fractali

Fractali

Desenareaarborilorbinari


Fractali

Motto:

Informatica nu inseamnacalcul.Calcululestefacut de masini de calcul.Informaticii ii apartinefantezia, imaginatia, demonstratia.


Fractali

Fractali


Fractali

Generatitati

Fractaliiau fostintrodusi in anul 1975 prinlucrarearevolutionara a matematicianuluifrancezBenoit Mandelbrot,' O teorie a seriilorfractale' cereunestetotodatadiverseleteoriidinainteasa.

El estecel care a inventatcuvantul ,,fractal", de provenientalatina(,,frângere"-a sparge in fragmentenenumarate).

Notiuneade fractal a aparut ca urmare a studiuluivietiireale in care informatiageneticacontinuta in nucleuluneicelule se repeta la diferitescari.Calculatorulperimte ca o anumitafigura (de ex:un segment) sa se transformeintr-o alta,formata din maimultefiguriinitiale (de ex: o liniefranta)sifiecarefiguraobtinutasa se transforme in mod asemanator (acestetransformarinecesitafoartemultecalcule).

Acesteformegeometrice au fostconsiderate in trecuthaotiicesau ,,aberatiigeometrice", iarmultedintreeleerauatat de complexeincatnecesitaucalculatoareperformantepentru a le vizualiza.Peparcurs, domeniistiintificeca fizica,chimia,biologiasaumeteorologiadescopereauelementeasemanatoare , care de multeoricontrazicaparenta ,daracesteadepasesc cu multcunostintele de matematica din liceu.

Inainte de a vaprezentacatevaexempletrebuiecunoscutenotiunile de baza pt a lucra in mod grafic.


Elemente de grafica

Elemente de grafica

Limbajul Pascal contine o serie de procedurisifunctii care permit realizareaunoraplicatiigrafice.Acesteasunt reunite un unitateaGRAPH ce se gaseste in subcatalogulUNITS.

Pentru ca o imagine sapoataapareapeecrancalculatorulutilizeaza o placa video care difera in functie de memoria video sialtiparametrii.Pt a accesa o placa video trebuiesafolosimanumiterutinespecialespecificelornumiteDriver-e.Limbajul Pascal detine o colectie de astfel de component software si in functie de placace a fostdetectata de sistem se incearca un driver saualtul. Acestefisiere au extensia “bgi “ .In continuare ne vomreferidoar la driverulVGA ( Video Graphics Array ) dezvoltat de firma IBM.Driverul VGA poate lucre in maimultemoduriinsavom prefer modul standard de inaltarezolutie“VGAHI”( constanta de tip intreg) cepoateafisa 640x480 puncte in 16 culori.


Fractali

Selectarea driver-uluisi a modului de lucru se face prinutilizareaproceduriiinitgraph. Aceasta are 3 parametrii: gdriver (de tip integer) care continecodulasociatdrever-ului, gmode(de tip integer) care retinemodul de lucrusi o variabila de tip string, care aratacaleacatreunitateaGRAPH.Formagenerala a proceduriieste:

initgraph(gdriver,gmode, ‘cale’); .

Primiidoiparametriisunttransmisiprinreferinta.


Initializarea sitemului grafic se poate face in 2 feluri

Initializareasitemuluigrafic se poate face in 2 feluri:

1)Prin a solicitasa se identifice automat placagraficasicorespunzatoreisa se incarce un anumit driver sisa se selectezemodul de lucru

  • procedure initg;

  • begin

  • gdriver:= detect;

  • initgraph (gdriver,gmode, ‘c:\tp\bgi’);

  • if graphresult <> 0 then

  • begin

  • writeln (‘Tentativaesuata!”);

  • halt

  • end

  • end;

    Constanta detect are valoarea 0 si se specificaproceduriiidentificarea automata a driver-uluisi a modului de lucru.


Fractali

2)Prinindicarea cu ajutorulprimilor 2 parametriaiunu driver si a unui mod de lucrusolicitate de progamator

  • griver:= VGA;

  • gmode:=VGAHI;

  • initgraph (gdriver,gmode, ‘c:\tp\bgi’);

  • if graphresult <> 0 then

  • begin

  • writeln (‘Tentativaesuata!”);

  • halt

  • end

  • end;

    Tentativa de initializaregraficapoateesua din diverse motive, cum arfilipsaunitatiiGRAPH,calea indicate gresitetc.Testarea se realizeaza cu functiaintreagagraphresult care returneaza 0 in cazafirmativsi o valoarediferita de 0 in cazcontrar.


Fractali

Elementeleuni fractal

1.Initiatorul

2.Legea de constructie

3.Procesul de generare


Fractali

Copac fractal


Fractali

Primiifractalifaimosi

Triunghiul lui Sierpinski

Sita lui Sierpinski

Covorul lui Sierpinski 1

Covorul lui Sierpinski 2


Fractali

Praful lui Cantor

Curba lui Koch


Fractali

FulgulluiCoch


Fractali

Ultra fractal


Fractali

Arborelebinar fractal


Definitie

Definitie

  • Un arbore binar este o multime finita de noduri care este fie vida,fie reprezinta un arbore ordonat in care fiecare nod are cel mult 2 descendenti.

  • Din definitie rezulta ca un arbore binar contine cel mult doi sub-arbori binari(stang sau drept).Ei se obtin deci prin suprimarea radacinii si a muchiilor incidente cu aceasta.Oricare din ei poate sa fie vid.Daca arborele binar este format dintr-un singur nod,atunci ambii subarbori sunt vizi.

  • Un nod fara descendenti se numeste nod terminal sau frunza.

  • Un arbore binar in care fiecare nod care nu este terminal are exact doi descendenti,se numeste arbore binar complet


Fractali

Se da un segment AB. Cu ajutorul lui se construieste un arbore,asa cum se vede in figura de mai jos:

Lungimea fiecarei ramuri este o treime din lungimea initiala a segmentului .Fiecare latura se transforma in mod asemanator.Se cere sa se vizualizeze figura astfel rezultata ,dupa 1s transformari.


Fractali

Pentru obtinerea ramurilor se procedeaza astfel:

  • se considera punctul situat pe dreapta determinata de segment si pentru care avem:

    k= CA/CB=3 ; X=(X1-3*x2)/(1-3);

    y=(y1-3*y2)/(1-3)=(3*y2-y1)/2;

  • se roteste acest punct in jurul punctului B (x2,y2) cu un unghi de π/4;

  • se rotestepunctul in jurullui B cu unghiul

    -π/4

    In urmaacesteirotatii se obtincoordonatelepunctelor care ,impreuna cu punctulB,determinasegmentelececonstituieramurilearborelui.


Fractali

Proceduradesenez are ca parametri de intrarecoordonateleunui segment ,numarul de transformariefectuate(n) sinumarul de transformari care trebuieefectuate (1s).In cazul in care nu s-au efectuattoatetransformarile ,se treseazasegmentul (cu o culoareoarecare), se calculeazacoordonatelepunctelor care determinaramurilesi,pentrufiecare segment ,se reapeleazaprocedura.


Programul de desenare a arborilor

Programul de desenare a arborilor :

  • uses graph,crt;

  • var gdriver,gmode,1s:integer

  • xmax,ymax:integer;

  • procedure initg;

  • ....

  • procedure retplan (xc,yx,x1,y1:integer;x,y :integer;unghi:real);

  • ...

  • procedure desenez(x1 ,y1 x2,y2,n,ls:integer);

  • varx,y :integer;

  • begin

  • if n<=1s then


Fractali

  • begin

  • setcolor(1+random(15));

  • moveto(x1,y1);

  • lineto(x2,y2);

  • rotplan(x2,y2,(3*x2-x1) div 2, (3*y2-y1) div 2,x,y,pi?4);

  • desenez (x2,y2,x,y,n+1,1s);

  • end

  • end;

  • begin

  • randomize;

  • write ( ‘1s=’);readln(1s);

  • initg;

  • setbkcolor(white);

  • desenez (getmaxx div 2, getmaxy, getmaxx div 2, getmaxy-250,1,1s);

  • readln

  • end.


Aplicatie

Aplicatie

Pentru evidenţa elevilor unei şcoli se defineşte un arbore binar de căutare, în care fiecare nod va memora numărul matricol, numele şi numărul de absenţe ale unui elev. Căutarea în arbore se va face după numărul matricol al elevilor. Scrieţi un program care, prin intermediul unui meniu, selectează în mod repetat, atâta timp cât utilizatorul doreşte acest lucru, una din următoarele acţiuni:

  • adăugarea unui elev;

  • afişarea absenţelor pentru numărul matricol minim;

  • afişarea absenţelor pentru numărul matricol maxim;

  • modifică numărul de absenţe al unui elev pentru care se cunoaşte numărul matricol;

  • afişează toţi elevii al căror nume începe cu litera „B”.


Fractali

  • program aplicatie;

  • type pnod=^nod;

  • nod=record

  • nr:integer;

  • nume:string;

  • abs:integer;

  • st, dr: pnod;

  • end;

  • var r:pnod; n,op: integer; num:string;

  • abs1:integer; exista:boolean;

  • procedure creare (var p:pnod;n:integer; num:string; abs1:integer);

  • {creeaza un nod al arborelui ce va contine un elev cu

  • numarul matricol n, numele num si nr. de absente abs1}

  • begin

  • if p<>nil then

  • begin

  • if n<p^.nr then creare(p^.st, n, num, abs1)

  • else

  • if n>p^.nr then creare(p^.dr, n, num, abs1)

  • else writeln(' elevul exista')

  • end else begin

  • new(p); p^.nr:=n;

  • p^.nume:=num;

  • p^.abs:=abs1;

  • p^.st:=nil;p^.dr:=nil;

  • end;

  • end;


Fractali

  • procedure SRD(p:pnod);

  • begin

  • if p<>nil then begin

  • SRD(p^.st);

  • writeln(' ',p^.nr,' ',p^.nume,' ',p^.abs);

  • SRD(p^.dr);

  • end;

  • end;

  • function min(p:pnod):integer;

  • { cheia minima se gaseste in nodul cel mai

  • din stinga, pornind de la radacina}

  • begin

  • if p^.st<>nil then min:=min(p^.st)

  • else min:=p^.abs;

  • end;

  • function max(p:pnod):integer;

  • {cheia maxima se gaseste in nodul cel mai

  • din dreapta, pornind de la radacina}

  • begin

  • if p^.dr<>nil then max:=max(p^.dr)

  • else max:=p^.abs;

  • end;


Fractali

  • procedure elevi_B(p:pnod);

  • { afiseaza elevii care au numele incepind cu litera B}

  • begin

  • if p<>nil then begin

  • if (p^.nume[1]='B') then begin

  • exista:=true;

  • writeln(' ',p^.nr,' ',p^.nume,' ',p^.abs);

  • end;

  • elevi_B(p^.st); elevi_B(p^.dr);

  • end

  • end;

  • procedure modifica_abs(p:pnod;n:integer);

  • { modifica nr. de absente pentru care

  • se cunoaste numarul matricol}

  • begin

  • if p<>nil then begin

  • if n<p^.nr then modifica_abs(p^.st, n)

  • else if n>p^.nr then

  • modifica_abs(p^.dr, n)

  • else begin

  • write(' absenta=');

  • readln(abs1);

  • p^.abs:=abs1;

  • end

  • end

  • else writeln(' Elevul cu numarul matricol ',n,' nu exista');

  • end;


Fractali

  • begin

  • r:=nil;

  • repeat

  • writeln(' alegeti optiunea:');

  • writeln(' 1 - ADAUGAREA unui elev');

  • writeln(' 2 – Absente pentru matricol MINIM');

  • writeln(' 3 – Absente pentru matricol MAXIM');

  • writeln(' 4 - MODIFICA numarul de absente');

  • writeln(' 5 - ELEVII cu numele - B');

  • writeln(' 6 - LISTA tuturor elevilor');

  • writeln(' 0 - IESIRE');

  • writeln;

  • readln(op);

  • case op of


Fractali

  • 1:begin

  • write(' numar matricol= '); readln(n);

  • write(' nume elev= '); readln(num);

  • write(' numar absente= '); readln(abs1);

  • creare(r,n,num,abs1);

  • end;

  • 2:begin writeln(' Valoarea absentei pentru matricol MINIM');

  • writeln(' min=',min(r));

  • end;

  • 3: begin writeln(' Valoarea absentei pentru matricol MAXIM');

  • writeln(' max=',max(r));

  • end;

  • 4: begin write(' numar matricol=');

  • readln(n);

  • modifica_abs(r,n);

  • end;

  • 5:begin exista:=false;

  • elevi_B(r);

  • if not exista then

  • writeln(' nu exista elevi cu numele - B');

  • end;

  • 6:begin writeln;

  • writeln(' lista tuturor elevilor');

  • SRD(r);

  • end;

  • end;

  • until op=0;

  • readln;

  • end.


Fractali

Realizatori:

CALUGARANDREI

CosteaAnneliese

CREMINEDENISA


Fractali

Rolurile in echipa


Fractali

BIBLIOGRAFIE:

  • ManuanualinformaticaintensivEditura L&S Soft

  • http://cnamd.wikispaces.com

  • www.google.ro (imagini)

  • http://facultate.regielive.ro

  • http://ro.wikipedia.org


  • Login