En - 01 - Introducere. Biblioteci

Embed Size (px)

Citation preview

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    1/25

    Algorithms and

    programming techniques

    ? ? ??

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    2/25

    programming techniques

    Course name: Algorithms and programming techniques

    Course and seminars: Cristian Uscatu Course: Monday 15:00 - 16:20

    Seminars: Monday 12:00 - 13:20 (1025) Monday 16:30 - 17:50 (1026)

    Tuesday 13:30 - 14:50 (1028)

    Friday 12:00 - 13:20 (1027)

    Consulaions! "oom 2301# Monday 13:30-14:50

    ! $%%oinmen &y email 'risianus'auieasero! (use your insiuional address# %ro*ided &y +e uni*ersiy)

    Algorithms and programming techniques

    mailto:[email protected]:[email protected]
  • 7/26/2019 En - 01 - Introducere. Biblioteci

    3/25

    ,rereuisies .asi' 'om%uer /nolede and a&iliies

    ,roramin &asi's (irs semeser)

    .asi' isual Sudio s/ills

    ou mus undersand and /no +o o or/ i+ CC

    ! rie 'onsole a%%li'aions

    ! $rrays - 1# 2# 3 e' dimensions

    ! ,oiners - o%eraions# memory (de)allo'aion

    ! Su&%rorams - &uild# use# %arameers

    isual Sudio! Creae a sim%le Console $%%li'aion (no %re'om%iled +eaders)

    ! rie CC 'ode

    ! Com%ile&uild +e a%%li'aion! e&u +e a%%li'aion

    Algorithms and programming techniques

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    4/25

    ou ill sudy Fun'ion li&raries

    ,oiners o un'ions

    9erai*iy and re'ursi*iy

    i*ide e 9m%era me+od Sear'+# sor# mere arrays

    aa *alidaion

    ;ernal daa sru'ures: iles - e;# &inary (seuenial# relai*e# inde;ed)

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    5/25

    .oo/s# a*aila&le a li&rary Manual

    ! C =s'au# C Co'ianu# . ,o'ailu#Algoritmi i tehnici de programare.

    Aplica ii # diura $S 2015

    ?+er &oo/s! 9 i&ris $ora# 2000

    ! -

    Algorithms and programming techniques

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    6/25

    *aluaion! Seminar: 40%

    ! Mandaory +omeor/ (%rereuisie or %ra'i'al es): 10%

    ! ,ra'i'al es: 30%

    ! ;aminaion: 50%! ; oi'io: 10%

    Mis'ellaneous! $endan'e# missed 'lasses# indi*idual sudy# rules# 'olla&oraion

    onlineaseroE a''essi&le rom $S inrane Course des'ri%ion (i a dis'i%linei)# %resenaions# o+er maerials

    Algorithms and programming techniques

    http://var/www/apps/conversion/tmp/scratch_7/online.ase.rohttp://var/www/apps/conversion/tmp/scratch_7/online.ase.ro
  • 7/26/2019 En - 01 - Introducere. Biblioteci

    7/25

    Libraries

    >i&rary: 'olle'ion o un'ions

    ,ur%ose

    Code reuse or muli%le a%%li'aions isri&uion o o+er users

    Ty%es Sour'e 'ode# &inary (o&e') 'ode

    Sai'# dynami'

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    8/25

    Libraries

    or/ o%ions

    Command line

    ! cl.ee ! compiler! lib.ee ! librar" manger

    ! lin#.ee ! lin# editor

    9n 9 (isual Sudio)

    ! Same soluion (i+ muli%le %roe's)! Se%arae soluions

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    9/25

    $tatic libraries

    Fun'ion 'ode is insered ino +e %roram

    File e;ension indos: .lib

    >inu;: .a

    $d*anaes Sinle e;e'ua&le ile

    ?nly 'alled un'ions are e;ra'ed rom +e li&rary and insered

    in +e %roram

    ra&a'/s >arer e;e'ua&le ile

    a'+ e;e'ua&le in'ludes a se%arae 'o%y o +e same un'ions

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    10/25

    $tatic libraries

    Creae sai' li&rary

    =se +e li&rary

    >in/ edior

    Sour'e

    'ode

    ('# '%%# +)

    ?&e' 'ode

    (o&)

    ?&e' 'ode

    li&rary

    (li&)

    Sour'e

    'ode iles

    ('# '%%# +)

    ;e'ua&leile

    (e;e)

    Com%ile>i&rary

    manaer

    ?&e' 'ode

    li&rary

    (li&)

    ?&e' 'ode

    (o&)Com%ile

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    11/25

    $tatic libraries

    Source flesheader (antet)matrice.h

    implementation matrice.cpptest test.cpp

    //alocare dinamica matrice// I - nr. linii, nr. coloane// E - adresa matriceidouble **aloca_matrice(int m, int n);

    //dezalocare matrice dinamica// I - adresa matricei, nr. linii// E - adresa matricei (NULL)double** dezalocare_matrice(double **a, int m);

    //produs matrice patrate de dimensiuni eale, prealocate// I - a, b, n// E - c!oid produs_mpn(double** a, double **b, int n, double** c);

    //copiaza matrice prealocate// I - a, m, n// E - b!oid copiaza(double** a, int m, int n, double** b);

    //citire matrice patrata cu alocare// I -// E - adresa matrice, dimensiunedouble** citire_matrice(int *m);

    //a"isare matrice patrata// I - adresa matrice, dimensiune// E -!oid a"isare_matrice(double** a, int m);

    #include $stdio.%include $malloc.%&

    #include 'matrice.%'

    //citire matrice patrata cu alocare// I -// E - adresa matrice, dimensiunedouble** citire_matrice(int *m) int i,; double** a; print"_s('nn+imensiune '); scan"_s('d',m);

    ane double*0*m1; "or(i2;i$*m;i33) a0i1ne double0*m1; "or(i2;i$*m;i33) "or(2;$*m;33)

    print"_s('a0d,d1 ',i,); scan"_s('l"',4a0i101);

    5 return a;5

    //a"isare matrice patrata// I - adresa matrice, dimensiune// E -!oid a"isare_matrice(double** a, int m) int i,; //cout$$'n6atricea este n'; "or(i2;i$m;i33) "or(2;$m;33) print"_s('72.8l" ',a0i101); print"_s('n'); 5 print"_s('n');5

    #include $stdio.%include $conio.%include 'matrice.%'

    !oid main() double** a; int m,n;

    acitire_matrice(4m); a"isare_matrice(a,m);

    _etc%();5

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    12/25

    $tatic libraries

    Command line Creae a ne older and sa*e +e reuired iles

    "uncars3&.bat# ound in isual SudioGs older bin! 9:roram iles (

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    13/25

    $tatic libraries

    9n 9 E 'reae &inary li&rary Creae a ne %roe'# Win32 Console Application

    ! soluion name: BSIDE# %roe' name: matrice

    9nApplication settingsdialo '+oose

    ! Application tpe! Static li"rar

    ! Additional options!Empt pro#ect# no Precompiled headers

    $dd sour'e iles o +e %roe' (+eader and im%lemenaion)

    Com%ile soluion (Build)

    T+e li&rary is 'reaed in older BSIDE$De"ug

    ! >i&rary name:matrice.li"

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    14/25

    $tatic libraries

    9n 9 E use &inary li&rary in +e same soluion Creae a ne %roe' Win32 Console Application

    ! %roe' name: %est# add o e;isin soluion BSIDE

    9nApplication settingsdialo '+oose:

    ! Application tpe! Console Application! Additional options!Empt pro#ect# no Precompiled headers

    $dd sour'e ile o +e %roe' (es ile# i+ mainun'ion)

    Pro#ectH PropertiesH Common PropertiesH &rame'or( and )e*erences

    HAdd +e' )e*erence,H matrice

    Pro#ectH PropertiesH Con*iguration PropertiesH C-CH /eneralHAdditional Include Directories H %a+ o matrice.h

    Pro#ectH Set As Start0p Pro#ect

    Com%ile (Build)

    >aun'+ rom 9 or se%araely

    ! %est.e1e is in BSIDE$De"ug

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    15/25

    $tatic libraries

    9n 9 E use &inary li&rary in +e se%arae soluion Creae a ne %roe' Win32 Console Application in a ne soluion

    ! soluion name (also or %roe'): %estS

    9nApplication settings'+oose

    ! Application tpe! Console Application

    ! Additional options!Empt pro#ect# no Precompiled headers

    $dd sour'e ile o +e %roe' (es ile i+ main un'ion)

    Co%y o +e %roe' older +e iles matrice.hand matrice.li"

    Pro#ectH PropertiesH Con*iguration PropertiesH in(erH InputHAdditional Dependencies H add matrice.li"

    Com%ile (Build)

    >aun'+

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    16/25

    '"namic libraries

    Fun'ion 'ode is se%araed rom +e main %roram

    File e;ension indos: .dll

    >inu;: .so

    $d*anaes Smaller e;e'ua&le

    T+e li&rary is s+ared &y se*eral a%%li'aions

    ra&a'/s Se*eral iles (main e;e'ua&le dynami' li&raries)

    $ddiional %ro'essin ime

    >i&rary mus &e on +e sear'+ %a+ or 'urren older

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    17/25

    '"namic libraries

    Creae

    dynami'

    li&rary

    =se li&rary

    >aun'+

    a%%li'aioni+

    dynami'

    li&rary

    >in/ edior

    Sour'e

    'ode

    ('# '%%# +)

    ?&e' ile

    (o&)

    9m%or a&le

    (li&)

    ynami'

    li&rary

    (dll)

    Sour'e'ode

    ('# '%%# +)

    ;e'ua&le

    ile

    (e;e)

    Com%ile >in/ edior

    ?&e' 'ode

    li&rary

    ?&e' ile(o&)Com%ile

    ;e'ua&le

    ile

    (e;e)

    ynami'

    li&rary(dll)

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    18/25

    '"namic libraries

    .uildin and usin dynami' li&raries is similar o sai'

    li&raries

    ieren'es Fun'ion %rooy%es mus in'lude (only +e +eader ile +)

    ((declspec)dlleport*

    +or each ,unction-

    ((declspec)dlleport* double** citire_matrice(int *m);

    $ e;e'uion# .dllile mus &e a*aila&le(same older or /non sear'+

    %a+)

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    19/25

    '"namic libraries

    Command line Creae a ne older or +e %roe'# in'lude +e 3 iles

    "uncars3&.bat# rom binolder o isual Sudio! 9:roram iles (

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    20/25

    '"namic libraries

    9n 9 E 'reae dynami' li&rary Creae ne %roe' Win32 Console Application

    ! Soluion name: BDIDE# %roe' name: matrice

    9nApplication settingsdialo '+oose

    ! Application tpe! D

    ! Additional options!Empt pro#ect

    $dd sour'e iles o +e %roe' (+eader and im%lemenaion)

    .uild soluion (Build)

    T+e dynami' li&rary ill &e in +e older BDIDE$matrice$De"ug

    ! iles: matrice.dll# matrice.li"

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    21/25

    '"namic libraries

    9n 9 E use +e dynami' li&rary in +e same soluion Creae a ne %roe' Win32 Console Application

    ! %roe' name: %est# add o e;isin soluion BDIDE

    9nApplication settingsdialo '+oose

    ! Application tpe! Console Application

    ! Additional options!Empt pro#ect# no Precompiled headers

    $dd sour'e ile o +e %roe' (e; ile i+ main un'ion)

    Pro#ectH PropertiesH Common PropertiesH &rame'or( and )e*erences

    HAdd +e' )e*erence,H matrice

    Pro#ectH PropertiesH Con*iguration PropertiesH C-CH /eneralH

    Additional Include Directories H %a+ o matrice.h

    Pro#ectH Set As Start0p Pro#ect

    .uild soluion (Build)

    "un +e a%%li'aion

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    22/25

    '"namic libraries

    9n 9 E use +e dynami' li&rary in a se%arae soluion Creae a ne %roe' Win32 Console Application

    ! soluion name (same or %roe'): %estD

    Co%y matrice.hand matrice.li" o %roe' older

    9nApplication settingsdialo '+oose

    ! Application tpe! Console Application

    ! Additional options!Empt pro#ect# no Precompiled headers

    $dd sour'e ile (es ile i+ main un'ion)

    Pro#ectH PropertiesH Con*iguration PropertiesH in(erH InputHAdditional Dependencies H add matrice.li"

    Pro#ectH PropertiesH Con*iguration PropertiesH De"uggingH

    Enironment H add %a+ o matrice.dll

    .uild soluion (Build)

    "un +e a%%li'aion

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    23/25

    Libraries

    / 2 / Creae and es a li&rary i+ un'ions or %ro'essin

    arrays (12 dimensions) E mus in'lude readin and

    dis%layin +e arrays $ll arrays ill &e allo'aeddynami'ally! Sai' li&rary

    ! or/ in 'ommand line

    ! or/ in 9 (same soluion)

    ! ynami' li&rary

    ! or/ in 'ommand line

    ! or/ in 9 (se%arae soluion)

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    24/25

    '"namic libraries

    / 2 / SiIe 'om%arison:

    +en s+ould e use li&rariesJ

    +en s+ould e '+oose sai' dynami' li&raryJ

    Static (.lib) Dynamic (.dll)

    L.C. IDE L.C. IDEmatrice.% @ @ @ @

    matrice.lib @ @ @ @

    matrice.dll - - @ @

    test.e

  • 7/26/2019 En - 01 - Introducere. Biblioteci

    25/25

    Spor la nvat!