En - 01 - Introducere. Biblioteci
-
Upload
boldojar-laura -
Category
Documents
-
view
228 -
download
0
Transcript of En - 01 - Introducere. Biblioteci
-
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!