Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword or section
Like this
99Activity
P. 1
Culegere probleme de informatica

Culegere probleme de informatica

Ratings:

4.88

(1)
|Views: 7,106|Likes:
Published by g_teodorescu
Culegere probleme de informatica
Culegere probleme de informatica

More info:

Published by: g_teodorescu on Sep 25, 2007
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/21/2014

pdf

text

original

 
Cuprins
CUPRINS................................................................................................................................................1INTRODUCERE....................................................................................................................................2CE
Ş
ANSE AM S
Ă
DEVIN UN BUN PROGRAMATOR ?...............................................................3LEGILE SUCCESULUI DURABIL (GHIDUL STUDENTULUI ÎND
Ă
R
Ă
TNIC).........................6PROBLEME DE JUDECAT
Ă
..............................................................................................................8
P
ROBLEME DE PERSPICACITATE
.............................................................................................................8P
ROBLEME CU CHIBRITURI
....................................................................................................................9P
ROBLEME DE LOGIC
Ă
 
Ş
I JUDECAT
Ă
....................................................................................................10P
ROBLEME DE LOGIC
Ă
 
Ş
I JUDECAT
Ă
CU
"
TENT
Ă
INFORMATIC
Ă
".........................................................12
NO
IUNI FUNDAMENTALE DE PROGRAMARE.......................................................................15
1.C
ELE TREI ETAPE ALE REZOLV
Ă
RII UNEI PROBLEME CU AJUTORUL CALCULATORULUI
.....................152.C
UM SE STABILE
Ş
TE CORECTITUDINEA
Ş
I EFICIEN
A SOLU
ION
Ă
RII
?..............................................153.
 
N
O
IUNILE FUNDAMENTALE ALE PROGRAM
Ă
RII
:
ALGORITM
,
LIMBAJE DE DESCRIERE AALGORITMILOR
,
PROGRAM
,
LIMBAJE DE PROGRAMARE
......................................................................16
 3.1. Algoritmul 
...............................................................................................................................16 
 3.2. Descrierea algoritmilor
...........................................................................................................17 
 3.3 Programul 
................................................................................................................................18
4.
 
S
ECRETUL ÎNV
ĂĂ
RII RAPIDE A PROGRAM
Ă
RII
................................................................................19
NO
IUNI PRIMARE DE PROGRAMARE ÎN PASCAL
Ş
I C.......................................................20
E
XEMPLE DE PROBLEME REZOLVATE
...................................................................................................21
METODA PRACTIC
Ă
DE ÎNV
Ă
ARE CE GARANTEAZ
Ă
REZULTATE IMEDIATE.........26PROBLEME SELEC
IONATE - ENUN
URI................................................................................26
P
ROBLEME PROPUSE SPRE REZOLVARE
(
PROBLEME DE ANTRENAMENT
).............................................26P
ROBLEME DE EXAMEN
.......................................................................................................................28P
ROBLEME DIFICILE
.............................................................................................................................30P
ROBLEME NESOLU
IONATE ÎNC
Ă
.......................................................................................................32P
ROBLEME INSOLVABILE ALGORITMIC
................................................................................................35
NO
IUNI APROFUNDATE DE PROGRAMARE..........................................................................37
M
ETODE
Ş
I STRATEGII DE PROIECTARE A ALGORITMILOR
(
ALIAS TEHNICI DE PROGRAMARE
)..............37B
ACK
T
RACKING
..................................................................................................................................39G
REEDY
..............................................................................................................................................42P
ROGRAMAREA DINAMIC
Ă
..................................................................................................................42B
RANCH
&
 
B
OUND
..............................................................................................................................43R
ECURSIVITATEA
................................................................................................................................44
PROBLEME REZOLVATE
Ş
I EXERCI
II DE PROGRAMARE................................................49
P
ROBLEME ELEMENTARE
.
 
E
XERCI
II DE PROGRAMARE
.......................................................................49P
ROBLEME CE NECESIT
Ă
BACK
-
TRACKING
..........................................................................................66P
ROBLEME CU SOLU
IE SURPRINZ
Ă
TOARE
..........................................................................................70E
LEMENTE DE PROGRAMARE A
PC
 
-
URILOR
.......................................................................................75C
URIOZIT
Ă
I
Ş
I TRUCURI DE PROGRAMARE
.........................................................................................91
CONFRUNTARE DE OPINII: INFORMATIC
Ă
VERSUS MATEMATIC
Ă
...............................93BIBLIOGRAFIE, ADRESE
Ş
I LOCA
II DE INTERES PE INTERNET.....................................95
 
2
Introducere
Exist
ă
multe culegeri de probleme de informatic
ă
ce permit înv
ă
area
ş
i perfec
ionarea înprogramare. Prin aceast
ă
culegere am încercat nu doar s
ă
sporim aceast
ă
mul
ime cu înc
ă
una ci s
ă
 oferim un punct de vedere nou, original
ş
i incitant. Originalitatea nu este dat
ă
de enun
urileproblemelor sau de rezolv
ă
rile oferite, ci de ideile
ş
i sfaturile cu caracter mobilizator pe care le oferim,precum
ş
i de faptul c
ă
am introdus cîteva capitole cu con
inut mai pu
in obi
ş
nuit într-o culegere deprobleme de programare.Ni s-a p
ă
rut mai important ca în aceste vremuri, caracterizate prin cuvintele "m
ă
simt într-opermanent
ă
criz
ă
de timp", s
ă
oferim cît mai mult din experien
a noastr
ă
direct
ă
, atît cea deprogramator cît
ş
i cea de profesor de programare. De
ş
i nu credem c
ă
exist
ă
metode perfecte de predaresau de înv
ă
are a program
ă
rii, totu
ş
i sper
ă
m c
ă
prin asimilarea informa
iilor originale oferite eficien
aprocesului de înv
ă
are a program
ă
rii în limbajele C
ş
i Pascal va cre
ş
te. Este important ca informa
iilesuplimentare s
ă
fie asimilate gradat
ş
i numai în limita "suportabilit
ă
ii" fiec
ă
ruia. De aceea, în paginilece urmeaz
ă
ve
i g
ă
si
ş
i o serie de informa
ii
ş
i sfaturi ce sintetizeaz
ă
experien
a didactic
ă
acumulat
ă
caprofesor de informatic
ă
 
ş
i urmîndu-le v
ă
asigur
ă
m c
ă
ve
i ob
ine succesul în programare.În primele capitole a fost pus un accent important pe motivarea ini
ial
ă
a celor ce doresc s
ă
  înve
e programare. În capitolul "Ce
ş
anse am s
ă
devin un bun programator" sînt chiar prezentate cusinceritate înzestr
ă
rile necesare unui bun programator.Tot astfel se explic
ă
motivul introducerii unui capitol ce con
ine probleme de judecat
ă
.Rezolvarea acestora pot fi considerate nu doar ca un excelent antrenament al min
ii ci
ş
i ca o bun
ă
 ocazie de a aprinde pasiunea pentru informatic
ă
 
ş
i de a înt
ă
ri motiva
ia programatorilor încep
ă
tori.Asta nu înseamn
ă
c
ă
aceast
ă
culegere nu le este util
ă
 
ş
i celor care au dobîndit deja suficientecuno
ş
tin
e de programare. Am introdus în ea cîteva capitole ce con
in informa
ii mai pu
in cunoscute.Unul cuprinde o list
ă
de probleme deosebite, unele foarte dificile, altele c
ă
rora nu li se cunoa
ş
te înc
ă
osolu
ie
ş
i altele pentru care exist
ă
demonstra
ie riguroas
ă
c
ă
nu pot fi rezolvate cu ajutorulcalculatorului. Alt capitol cuprinde exemple de programare a PC-urilor: lucrul cu tastatura, mouse-ul,accesul direct la memoria ecran, etc. Iar unele capitole ca
 No
  
iuni aprofundate de programare,
 
Probleme cu solu
  
ie surprinz
ă 
toare
sau
Curiozit 
ă 
i
 ş
i trucuri de programare
le sînt în întregimedestinate celor care au dep
ăş
it stadiul de încep
ă
tor. Probabil c
ă
aceste informa
ii constituie o provocaredestul de substan
ial
ă
chiar
ş
i pentru cei avansa
i în ale program
ă
rii.În concluzie, scopul acestei culegeri nu este doar de a contribui la formarea
ş
i specializareaprogramatorilor sau pentru aprofundarea tehnicilor de programare, cît mai ales de a le oferi o baz
ă
, omotiva
ie
ş
i o ini
iere celor care doresc s
ă
fac
ă
primii pa
ş
i în domeniul program
ă
rii. Iar acelor împ
ă
timi
i ai program
ă
rii care se simt deja plictisi
i, s
ă
tui sau plafona
i le promitem c
ă
parcurgîndaceast
ă
culegere vor aprofunda cuno
ş
tin
ele pe care
ş
i le-au însu
ş
it deja
ş
i, dac
ă
vor avea curajul de "ase lua de piept" cu unele din problemele nesolu
ionate înc
ă
, li se va reaprinde cu siguran
ă
foculpasiunii pentru programare.Încep
ă
torilor le ur
ă
m
 Bun venit în programare
ş
i tuturor
 Mult succes !
 
 
3
Ce
ş
anse am s
ă
devin un bun programator ?
Aceast
ă
întrebare apare deseori în discu
iile sincere dintre profesori
ş
i studen
ii lor descuraja
ide întîrzierea apari
iei unor rezultate care s
ă
certifice buna lor calitate ca programatori. Vom încerca înrîndurile ce urmeaz
ă
s
ă
r
ă
spundem cît mai clar la aceast
ă
întrebare oferind, în plus, o perspectiv
ă
 prosp
ă
tat
ă
asupra acestui subiect, prin luarea în considerare a unei serii de factori mai pu
in utiliza
i înprocesul didactic contemporan.Mai întîi s
ă
vedem ce s-ar putea în
elege prin sigtagma
 bun programator”,
insisitînd încontinuare doar pe aprofundarea adjectivului
bun,
ă
r
ă
a mai defini sau detalia ce se în
elege printr-unprogramator. Vom cita cuvintele recente ale lui Timoty Budd ( profesor la Oregon State University )care d
ă
urm
ă
toarea defini
ie: “
Un bun programator trebuie s
ă 
fie înzestrat cu tehnic
ă 
 , experien
 ă 
 ,capacitate de abstractizare, logic
ă 
 ,
 
inteligen
 ă 
 , creativitate
 ş
i talent 
”. Întru-totul de acord cu aceast
ă
 defini
ie vom trece în cele ce urmeaz
ă
la explicitarea fiec
ă
rei calit
ă
i.Înainte vom deduce urm
ă
toarea consecin
ă
imediat
ă
- deosebit de important
ă
- ce rezult
ă
dindefini
ia de mai sus:
cele
ş
apte calit
ă
i trebuie s
ă
fie prezente
 toate
pentru a se ob
ine calificativul de
 bun programator.
Deci, prin lipsa sau prin prezen
a “atrofiat
ă
” a uneia , sau a mai multe din“ingredientele re
etei” de mai sus, acest calificativ nu mai poate fi atins.
1.
 
Tehnica
– este desigur o calitate ce poate fi,
ş
i este, dobîndit
ă
doar prin aplicarea asidu
ă
(conformproverbului: “exerci
iul îl face pe maestru”) în activitatea concret
ă
de programare a tehnicilor deprogramare înv
ă
ate
ş
i asimilate de c
ă
tre programator în timpul form
ă
rii sale profesionale. Nu esteexclus
ă
aici posibilitatea ob
inerii tehnicii de programare înafara unui cadru specializat (într-ofacultate de profil ), ci chiar exist
ă
posibilitatea ob
inerii ei prin studiu individual
ş
i forma
ieproprie (autodidact ).
 2.
 
Experien
  
a
– este perechea geam
ă
n
ă
a calit
ă
ii de mai înainte, f 
ă
r
ă
îns
ă
a se exclude una pecealalt
ă
. Nu vom mai repeta cum
ş
i în ce condi
ii poate fi ea ob
inut
ă
ci vom deduce urm
ă
toareaconsecin
a imediat
ă
:
nici un programator încep
ă 
tor nu poate fi numit 
 
bun programator
 
întrucît el nu a avut cînd (adic
ă 
timpul necesar ) s
ă 
dobîndeasc
ă 
ambele calit 
ă 
i
. Este binecunoscut faptulc
ă
o rubric
ă
important
ă
ce se cere completat
ă
la angajare sau la schimbarea locului de munc
ă
este
experien
  
a de programare în ani.
Se consider
ă
în general c
ă
experien
a apare abia dup
ă
minimumdoi ani de programare. Acest fapt nu trebuie privit ca o descurajare pentru cei mai tineriprogramatori ci mai degrab
ă
ca pe un motiv de ambi
ionare
ş
i ca o invita
ie la rapid
ă
 autoperfec
ionare.
 3.
 
 Abstractizarea
– este o tr
ă
s
ă
tur
ă
a intelectului uman
ş
i constituie un dat al oric
ă
rui om normal, dardin p
ă
cate(!) este o însu
ş
ire prea pu
in dezvoltat
ă
 
ş
i prea pu
in folosit
ă
de oamenii obi
ş
nui
i. Eaconst
ă
din capacitatea de a extrage din context, de a vedea dincolo de suprafa
a imediat
ă
 
ş
i de aputea sesiza structura – scheletul ce sus
ine întreaga re
ea de detalii ale unei probleme generale.Pentru a fi un bun programator acest
ă
calitate trebuie s
ă
fie net amplificat
ă
fa
ă
de “normal” întrucît st
ă
la baza oric
ă
rui proces de analiz
ă
 
ş
i modelare a problemelor, cît
ş
i la baza procesului deproiectare a solu
iilor generale. Absen
a sau mai exact atrofierea acestei capacit
ă
i se constat
ă
 practic la studen
i prin incapacitatea de a în
elege sau de a asimila explica
ii, demonstra
ii saumodele abstracte ( simplu spus, o acut
ă
 
ş
i permanent
ă
lips
ă 
de chef 
” atunci cînd sînt atinseanumite subiecte ce nu mai au contact direct cu realitatea concret
ă
, imediat
ă
– adic
ă
subiecteabstracte ). Metoda pentru a rec
ă
p
ă
ta sau a amplifica aceast
ă
capacitate este de a face cît mai desuz de ea, adic
ă
de a o exersa mereu (conform zicalei “
 func
  
ia creeaz
ă 
organul
”) într-un domeniuparticular, sus
inut de o motiva
ie personal
ă
puternic
ă
. Altfel spus, capacitatea noastr
ă
deabstractizare se va amplifica dac
ă
vom încerca g
ă
sirea de solu
ii la problemele dintr-unul din
domeniile noastre preferate
, pentru c
ă
rezolvarea acestora va fi automotivat
ă
, f 
ă
cut
ă
“cu chef”
ş
iva prezenta o doz
ă
sporit
ă
de atractivitate.
 4.
 
 Logica
– este o alt
ă
calitate intrinsec
ă
a oric
ă
rui intelect s
ă
n
ă
tos. Ea este absolut necesar
ă
atîtpentru a putea folosi mecanismele mentale de deduc
ie
ş
i induc
ie logic
ă
, cît
ş
i pentru a putea în
elege u
ş
or, dar în acela
ş
i timp corect, cursul – firul ro
ş
u al unei demonstra
ii sau al unuira
ionament întins pe mai multe pagini. Asemenea tuturor calit
ă
ilor intrinseci existente în starepoten
ial
ă
, antrenarea
ş
i amplificarea acesteia se face prin exerci
iu repetat, prin folosirea ei în modcurent.Din p
ă
cate, doar prin rezolvarea de integrame nu se ajunge la amplificarea logicii…
 5.
 
 Inteligen
  
a
– este una din cele mai de pre
calit
ă
i intrinseci ale intelectului uman. În cîteva cuvinte,
ă
r
ă
a avea preten
ia de a da prin acestea o defini
ie, prin inteligen
ă
în
elegem capacitatea de a face(de a stabili) conexiuni sau leg
ă
turi noi
ş
i folositoare (din latinescul
inter-legere
) între idei,cuno
ş
tin
e sau informa
ii “aparent f 
ă
r
ă
leg
ă
tur
ă
”. Fa
ă
de logic
ă
, pe care o consider
ă
m ca fiind o

Activity (99)

You've already reviewed this. Edit your review.
Stoica Mircea added this note
+1
Stoica Mircea liked this
1 thousand reads
1 hundred reads
gcostea32 liked this
Alina Maria liked this
Nemes Dan liked this
Oana Mechno liked this
Andra Isabela liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->