Page 1

INFO++ - “Doza recomandată de informatică” Nr.2 -2012

INFO++ - “Doza recomandată de informatică”

Page 1


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

INFO ++ "If you don't want to be replaced by a computer, don't act like one." Arno Penzias

Colectivul redacțional: Coordonator: prof. Gilda Gebăilă Redactori:  Tiberiu Mihăescu a XI-a I  Cezar Tudoran a XI-a I  Andrei Văcărașu a XI-a I  Sabina Aionesei a XI-a I  Andreea Chirciu a XI-a I  Ruxandra Puiu a XI-a I  Corina Lungu a XI-a I Colaboratori:  Daniel Stăncescu a X-a B  Tudorache Mario a XI-a I  Badea Filip a XI-a I Tehnoredactare:  Andrei Văcărașu a XI-a I  Cezar Tudoran a XI-a I  Vladimir Pogonariu a XI-a I  Tiberiu Mihăescu a XI-a I

INFO++ - “Doza recomandată de informatică”

Page 2


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Cuprins: Sabloane in C++................................................pg. 4 de prof. Gilda Gebăilă

Programare ......................................................pg. 8 de Tiberiu Mihăescu

CIA helping .....................................................pg. 11 de Andrei Văcăraşu

Gaming ............................................................pg. 15 de Cezar Tudoran

Photoshop .......................................................pg. 18 de Ruxandra Puiu şi Corina Lungu

News Flash.......................................................pg. 22 de Sabina Aionesei

INFO++ - “Doza recomandată de informatică”

Page 3


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Şabloane în C++

STL – Standard Template Library, ca de altfel aproape toată Biblioteca C++ Standard este construită pe baza șabloanelor. Șabloanele reprezintă una dintre cele mai puternice trăsături ale limbajului C++. Adevărata putere a limbajului se simte atunci când se utilizează în programare și mecanisme de tip “template”. Programarea cu șabloane, sau programarea generică este un atu foarte puternic, de care se bucură doar câteva limbaje.

Prin programare generică înțelegem acea metodă de programare în care funcțiile și clasele au parametri formali de tip. La apel se precizează parametrii efectivi de tip. În unele cazuri, parametrii efectivi de tip se deduc din tipul valorilor pe care o funcție le primește ca parametrii efectivi. În C++, se poate utiliza programarea generica prin utilizarea mecanismului template.

Scopul programării generice este scrierea de cod independent de tipul datelor. Programarea orientată pe obiecte și programarea generică au în comun abstractizarea datelor și reutilizarea codului, însă concepțiile sunt diferite. În timp ce OOP încapsulează în același obiect datele, care reflectă starea obiectului și funcțiile, care ilustrează capabilitățile obiectului, programarea generică realizează o separare a datelor de cod, în intenția clară de a obține independența codului de tipurile de date particulare. STL duce mai departe acest deziderat, oferind clase container și algoritmi eficienți, realizând o separare remarcabilă a algoritmilor de tipurile de date și de containerele utilizate.

Funcţiile șablon (template) sunt funcţii speciale, care pot opera cu tipuri generice. Acest lucru permite crearea unei funcţii șablon a cărei funcţionalitate poate fi adaptată la mai mult de un tip de date sau de clasă fără a repeta întregul cod pentru fiecare tip. În C++, acest lucru poate fi realizat folosind parametri şablon. Un parametru şablon este un tip special de parametru care poate fi folosit pentru a transmite un tip de date ca argument.

INFO++ - “Doza recomandată de informatică”

Page 4


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Funcțiile template sau șablon sunt funcții parametrizate, în sensul că parametrii formali nu sunt tipuri de date particulare, ci tipuri de date generice. Acest fapt le conferă avantajul de a putea fi apelate cu argumente de tipuri arbitrare. Fiecare funcție template reprezintă de fapt o familie de funcții.

O funcție template se definește astfel:

template <class identifier> function_declaration; sau template <typename identifier> function_declaration;

Singura diferenţă dintre cele două prototipuri este utilizarea cuvântului cheie class sau a cuvântului cheie typename. Utilizarea lor este neclară, deoarece ambele expresii au exact acelaşi înţeles şi se comporta exact în acelaşi mod.

De exemplu, pentru a crea o funcţie şablon care returnează maximul dintre două obiecte vom scrie:

template <class TIP> TIP GetMax (TIP a, TIP b) { return (a>b?a:b);}

INFO++ - “Doza recomandată de informatică”

Page 5


INFO++ - “Doza recomandată de informatică”

Funcţia şablon are ca parametru şablon, tipul TIP. Acest parametru şablon Nr.2 -2012 reprezintă un tip care încă nu a fost specificat, dar care poate fi utilizat în funcţie ca şi cum ar fi un tip obişnuit. Apelul funcției este: int x,y; GetMax <int> (x,y);

Atunci când compilatorul întâlneşte un apel la o funcţie şablon, se foloseşte şablonul pentru a genera automat o funcţie de înlocuire a fiecărei apariții a tipului TIP cu tipul transmis ca parametru şablon actual (int, în acest caz) şi apoi o denumeşte. Acest proces este efectuat automat de către compilator fără știrea programatorului. #include <iostream.h>

int main () { int i=5, j=6, k;

template <class T>

long l=10, m=5, n;

T GetMax (T a, T b) {

k=GetMax<int>(i,j);

T r;

n=GetMax<long>(l,m);

r = (a>b)? a : b;

cout << k << endl;

return r;

cout << n << endl; return 0;}

În exemplul de mai sus, funcţia şablon GetMax() este apelată de două ori. Prima dată cu argumente de tip int, iar a doua oară, cu argumente de tip long.

În cazul în care tipul generic T este utilizat ca parametru pentru funcție, compilatorul poate afla în mod automat tipul de date care trebuie instanțiat, fără a specifica în mod explicit în paranteze unghiulare. int i,j; GetMax (i,j); INFO++ - “Doza recomandată de informatică”

Page 6


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Deoarece atât i cât şi j sunt de tip int, compilatorul poate găsi în mod automat că parametrul şablon poate fi doar int. Această metodă implicită produce exact acelaşi rezultat:

Deoarece funcția şablon include doar un singur parametru şablon (clasa T), iar funcţia şablon are doi parametri, ambii de acest tip T, nu putem apela funcţia şablon cu două obiecte de tipuri diferit.

Secvența int i; long l; k = GetMax (i,l); ar da eroare, pentru că funcţia GetMax are doi parametri de acelaşi tip, şi în acest apel, se folosesc obiecte de tipuri diferite.

Putem defini, de asemenea, şabloane de funcţii care acceptă mai mult de un parametru de tip, pur şi simplu prin specificarea acestor parametri șablon între paranteze unghiulare. De exemplu: template <class T, class U> T GetMin (T a, U b) { return (a<b?a:b); }

Apelul funcției va fi: int i,j; long l; i = GetMin<int,long> (j,l); sau simplu i = GetMin (j,l);

INFO++ - “Doza recomandată de informatică”

Page 7


INFO++ - “Doza recomandată de informatică”

Determinanţii (scurtătură pentru tema la mate)

Nr.2 -2012

de Tiberiu Mihăescu În acest număr am hotărât să scriu despre determinanţii matricelor. Aceştia sunt valori asociate matricelor pătratice, valori ce ajută în efectuarea diverselor operaţii cu matrice (cum ar fi aflarea inversei). E adevărat că pentru matricele de gradul 2 calculul determinantului este o joacă, şi chiar şi pentru cele de gradul 3, regula lui Sarrus vine ca o adevărată binecuvântare. Însă pentru matricele de grad mai mare, calculul unui determinant este laborios, dacă nu folosim câteva “trucuri” cu care să ne uşurăm munca.

Pentru o matrice A de n linii şi n coloane ca cea de alături, determinantul se calculează prin recurenţă. 1. Calculăm minorul fiecărui element de pe prima linie; 2. Înmulţim minorul cu elementul corespondent şi cu -1 la puterea (j+1), unde j este indicele coloanei curente 3. Adunăm produsele obţinute, aflând astfel determinantul

Minorul unui element este determinantul matricei de ordin (n-1) obţinut prin eliminarea (“tăierea”) liniei şi a coloanei pe care se află acest element. La rândul său fiecare minor va fi calculat prin metoda de mai sus, lucru care poartă denumirea de recurenţă. În informatică putem folosi metoda “Divide et impera” pentru a programa un algoritm de calcul al determinantului. Această metodă presupune împărţirea problemei iniţiale în subprobleme, care la rândul lor vor fi împărţite în alte subprobleme, şi tot aşa până la obţinerea unei “probleme foarte simple” şi uşor de rezolvat. Apoi, combinând toate rezultatele aflate, obţinem răspunsul căutărilor noastre. INFO++ - “Doza recomandată de informatică”

Page 8


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 După cum (probabil) bine ştiţi, determinantul unei matrice de gradul 2 se calculează după formula:

det(q) = a*d-b*c

Aceasta va reprezenta pentru noi “problema foarte simpla” care va sta la baza calculării determinantului. Mai jos am scris o metodă de calcul a determinanţilor în limbajul C. Deşi nu este cea mai eficientă metodă, este, după părerea mea, cea mai simplu de înţeles. Subprogramul (l-am numit în mod sugestiv “determinant”) primeşte ca parametrii matricea pe care se lucrează, ordinul ei şi linia şi coloana ce vor fi eliminate. Voi descrie paşii pe care îi urmează calculatorul: 1. Dupa citirea matricei, apelează subprogramul determinant; 2. Acesta elimină în primă instanţă linia 0 si coloana 0 (pe care nu este nimic important), formând noua matrice; 3. Apoi verifică dacă ordinul matricei este 2, caz în care returnează valoarea determinantului; 4. Dacă ordinul matricei este diferit de 2, subprogramul calculează pentru fiecare element de pe linia 1 minorul şi returnează determinantul aflat prin metoda descrisă mai sus. #include<iostream.h> #include<math.h> int a[100][100]; int determinant (int a[100][100], int n, int k, int l) {int b[100][100], x=0 ,y, i, j; for(i=1;i<=n;i++) if(i!=k) {x++; y=0; for(j=1;j<=n;j++) if(j!=l) b[x][++y]=a[i][j]; } n--; INFO++ - “Doza recomandată de informatică”

Page 9


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 if(n==2) return b[1][1]*b[2][2]-b[1][2]*b[2][1]; else {int det=0, aux=1; for(j=1;j<=n;j++) {aux=aux*pow(-1,1+j)*b[1][j]*determinant(b,n,1,j); det=det+aux; aux=1; } return det; } } int main() {int n, i, j, det; cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>a[i][j]; det=determinant(a, n+1, 0, 0); cout<<det; return 0; } Acestea fiind spuse, nu îmi rămâne decât să vă propun două probleme mai complicate. Prima ar fi calcularea determinantului pornind de la definiţie (folosind permutările de grad n). Acest lucru se poate realiza folosind metoda “Backtracking”. O a doua ar fi calcularea inversei unei matrice. Deşi este tentant să folosim calculatorul pentru fiecare problemă întâlnită, trebuie să insist asupra faptului că el este doar o unealtă şi că trebuie folosit doar ca sprijin al minţii umane. Omul vine cu soluţia de calcul, iar computerul cu viteza.

INFO++ - “Doza recomandată de informatică”

Page 10


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

de Andrei Văcăraşu Ce înseamnă Mail Merge? Pentru facilitarea scrierii corespondenţei personalizate (scrisori, formulare, plicuri, etc.) care să aibă acelaşi conţinut, dar să fie adresată personal fiecărui destinatar în parte, se foloseşte opţiunea Operaţiunea Mail Merge constă în stabilirea unei legături între fişierul în care se introduc datele destinatarului (nume, prenume, adresă, alte coordonate ale firmei) adică scrisoarea propriu-zisă, numită document principal (Main Document) şi fişierul sursă care conţine aceste date numit fişier sursă de date (Data Source). Metodă de lucru: 1)

Se creează o bază de date cu informaţiile necesare realizării scrisorii noastre. - se creează un tabel în aplicaţia Excel ce va conţine datele personale ale angajaţilor (nume, prenume, oraş etc.)

2) Se creează modelul de scrisoare pe care vrem sa îl trimitem anagajaţilor. Unde vom dori să schimbăm informaţiile referitoare la datele personale ale angajaţilor, vom lăsa spaţii libere ce vor fi apoi completate de instrumentul Mail Merge.

INFO++ - “Doza recomandată de informatică”

Page 11


INFO++ - “Doza recomandată de informatică” 3) Instrumentul Mail Merge precum şi opţiunile acestuia se regăsesc în Nr.2 -2012 Ribbon-ul Mailings. În prima etapa vom face legatura între baza de date, realizată în Excel şi scrisoarea noastră.Pentru a realiza acest pas se va utiliza opţiunea Select Recepients împreuna cu subopţiunea Use Existing List...

INFO++ - “Doza recomandată de informatică”

Page 12


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 4) În clipa în care aţi terminat de realizat etapele de la Pasul 3, Excel va indexa acel tabel, oferindu-ne apoi posibilitatea alegerii datelor necesare ce urmează a fi introduse în scrisoare. Accesând opţiunea Insert Merge Field vom vedea care sunt coloanele din sursa de date externă. În scrisoare, în locurile lăsate libere pentru a introduce informăriile personale ale angajaţilor vom alege ce coloane să introducem în scrisoare în locurile corespunzătoare.

INFO++ - “Doza recomandată de informatică”

Page 13


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 5) Pentru a edita scrisoriile realizate, vom accesa opţiunea Finish & Merge, subopţiunea Edit Individual Documents.

Această opţiune ne permite să edităm individual fiecare scrisoare sau să alegem o scrisoare anume.În final, scrisoarea trebuie să arate aşa:

În final, scrisoarea trebuie să arate aşa:

Puteţi să trimiteţi sugestii şi nelămuriri pe adresa andrei.vacarasu@cnmv.ro

INFO++ - “Doza recomandată de informatică”

Page 14


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Cele mai noi jocuri de Cezar Tudoran

Assassin’s Creed - Revelations marchează sfârşitul a două ere, călătorind de această dată în ultima aventură a celor doi protagonişti din jocurile trecute, Ezio Auditore şi Altair Ibn-La’Ahad. Ubisoft reuşeşte să pună capăt acestei serii de patru capitole cu succesul ultimului episod. După cum vă aşteptaţi cerinţele de sistem ale jocului sunt destul de piperate, cum au fost şi cele din jocurile de până acum. Ca procesor, cei de la Ubisoft ne recomandă un Intel Core 2 Duo E7300 2.66 GHz, o memorie RAM 4 GB, o placă video nVidia GeForce GTS 250 de 512 Mb şi un HDD de 12 GB. Povestea jocului continuă acţiunea din partea anterioară, Brotherhood, unde protagonistul nostru, Desmond Miles, intră într-o comă profundă. Pentru a-l putea salva, asasinii îl introduc pe Desmond într-o zonă sigură a Animus-ului, numită “The Black Room”. Ȋn momentul trezirii, Desmond se întâlneşte cu ocupantul anterior al Animus-ului, Subiectul 16. Acesta îi povesteşte lui Desmond că mintea sa a fost fragmentată în trei şi că singura cale de a scăpa din Animus este să continue să reproducă memoriile celor doi strămoşi ai săi, Ezio şi Altair, până când aceştia nu vor mai avea ce să îi arate lui Desmond. În acel moment Animus-ul va putea fi capabil să separe mintea lui Desmond de celelalte două.

Desmond şi Subiectul 16

INFO++ - “Doza recomandată de informatică”

Page 15


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Desmond si Subiectul 16 pe insula Animus

Povestea devine şi mai incitantă în momentul în care Ezio descoperă cheia de la biblioteca lui Altair, şi astfel lumile celor doi protagonişti se intersectează. Din acest punct acţiunea jocului promite o aventură unică în istoria seriei. Elementele noi precum “hookblade”, sau cele aproape 150 de tipuri de bombe fac jocul mai palpitant şi mai complex decât cele de până acum. “Hookblade-ul” poate fi folosit atât la navigarea mai rapidă prin oraş, cât şi la atacarea adversarilor. Acest item a fost introdus în joc şi datorită expansiunii districtelor oraşului, pentru a face parcurgerea lor mai rapidă.

Aplicaţie a “hookblade-ului”

INFO++ - “Doza recomandată de informatică”

Page 16


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Trebuie să precizăm şi noile îmbunătăţiri ale multiplayer-ului. În această versiune a lui Assassin’s Creed, vor apărea noi caractere de-alungul acestui mod de joc. De asemenea jucătorii au dreptul să-şi aleagă modul cum va arăta asasinul său şi arma pe care o va folosi. La modul multiplayer au fost adăugate şi altfel de misiuni, precum “Capturează steagul”, un mod tipic jocurilor gen Call of Duty. Modul “Capturează steagul”

În concluzie, aş vrea să recomand tuturor iubitorilor de jocuri FPS noul Assassin’s Creed, deoarece el pune capăt unei serii de succes, care a făcut furori în rândul împătimiţilor de jocuri ce combină aventura şi acţiunea sub o grafică realistă şi complexă.

INFO++ - “Doza recomandată de informatică”

Page 17


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Lecţia 2 Utilizarea uneltelor ( Tools )

Photoshop vă oferă un set integrat de unelte pentru producerea imaginilor grafice sofisticate. Pentru o listă completă a acestora, puteţi accesa Tools panel. Selectarea şi utilizarea unei unelte din panoul de unelte ( Tools panel ) Panoul de control – poziţionat în partea stângă a zonei de lucru – conţine unelte de selecţie, unelte pentru pictat şi editat, unelte pentru modificarea culorii planurilor principale şi secundare ( foreground and background ) şi unelte pentru vizualizare. Photoshop Extended include şi unelte 3D.

Exemplu: Zoom tool. Aceasta poate fi accesat prin dublu-click pe eticheta corespunzătoare din panoul de unelte, ca în imagine:

Selectarea acestei unelte poate fi făcută şi prin apăsarea tastei Z.

INFO++ - “Doza recomandată de informatică”

Page 18


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 Acum pointerul mouse-ului va arăta ca o lupă mică, având în interior semnul “+” sau “-“. Executând click oriunde în interiorul fotografiei deschise, imaginea se va mări permiţând vederea detaliilor, ca în imagine:

Selectarea şi utilizarea unei unelte ascunse ( hidden tool ). Panoul de control dispune câteva dintre unelte în grupuri cu una singură vizibilă pe iconiţa de identificare, celelalte unelte din grup fiind ascunse în spatele acesteia. Un mic triunghi în colţul din dreapta jos al butonului unei unelte este semnul că acesta conţine mai multe unelte:

INFO++ - “Doza recomandată de informatică”

Page 19


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 De exemplu, primul buton din imaginea de mai sus dispune doar identificatorul pentru unealtă Rectangular Marquee. Executând click pe acesta, observam alte 3 unelte : Elliptical Marquee, Single Row Marquee şi Single Column Marquee. Aceştia sunt utilizaţi pentru selectarea diverselor zone. Cele mai frecvente unelte şi utilizările lor: 1. Unealta de mutare:

Aceasta permite mutare de selecţii, imagini şi layere prin apăsarea tastei Shift şi poziţionarea în locul dorit. 2. Unealta de tip lasou permite selectarea oricărei zone în funcţie de conturul indicat cu mouse-ul. 3. Bagheta magică ajută mult când vrem să selectăm o anumită culoare/game din aceeaşi culoare. Practic, un click cu bagheta pe un perete roşu pe care există un tablou alb va selecta toată partea roşie, în functie de toleranţa setată.

4. Unealta de tăiere: practic, această unealtă face o selecţie cu Rectangular Marquee Tool, dar o dată apăsată tasta Enter, imaginea se taie, rămâne doar ce era în interiorul selecţiei. Se poate revoca prin Edit-Undo/Step Backward.

INFO++ - “Doza recomandată de informatică”

Page 20


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 5. Slice tool folosită în cea mai mare parte pentru construirea de site-uri prin divizarea spaţiilor pe care le vom folosi pentru web prin codare.

6. Eraser tool funcţionează asemănător unei gume de şters.

7. Gradient tool creează un amestec de culori între culoarea de fundal şi culoarea de prim plan dintr-o zonă.

8. Blur tool dă efectul de abur, de ceaţă.

9.Unealta pentru text permite inserarea textului într-o fotografie.

Pentru întrebari şi sugestii trimite-ţi un email la adresa: ruxi_puiu@yahoo.com.

INFO++ - “Doza recomandată de informatică”

Page 21


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

de Sabina Aionesei

Samsung Galaxy Note, disponibil in magazinele americane din 19 februarie Noua tableta-telefon Samsung Galaxy Note, va fi disponibila in magazinele firmei americane de telefonie mobila AT&T pentru pretul de 300$.

Hitachi va produce hard disk-uri de pana la 4TB

Hitachi Global Storage Technologies a inceput luna aceasta vanzarea primelor hard disk-uri de capacitate mare, disponibile in America la pretul de 400$.

INFO++ - “Doza recomandată de informatică”

Page 22


INFO++ - “Doza recomandată de informatică”

Samsung va reincepe vanzarea tabletelor Samsung GalaxyNr.2 tab-2012 10.1 in Germania Dupa ce o curte de justitie din Germania a interzis vanzarea tabletelor Samsung Galaxy Tab, versiunea 10.1, deoarece semanau cu tabletele Ipad 2.0, compania a reluat vanzarea, facand disponibila o versiune modificata a tabletelor Samsung, mai putin similare cu cele Apple.

Sony va lansa carduri de memorie cu o viteza de scriere de 125 Mbps Luna aceasta Sony a anuntat lansarea unor noi carduri de memorie, ce vor avea o viteza de scriere de 125 Mbps.

INFO++ - “Doza recomandată de informatică”

Page 23


INFO++ - “Doza recomandată de informatică” Problema 1 – numere

Clasa a IX -a

Nr.2 -2012

Se dau N1 cifre 1 şi N2 cifre 2. Cerinţă Scrieţi un program care să determine o posibilitate de aranjare a celor N1 cifre 1 şi a celor N2 cifre 2 astfel încât lângă orice cifră 1 să se afle cel puţin o cifră 2, iar lângă orice cifră 2 să se afle cel puţin o cifră 1. Date de intrare Fişierul de intrare numere.in conţine pe prima linie două numere naturale separate prin spaţiu N1 şi N2, unde N1 reprezintă numărul de cifre 1, iar N2 reprezintă numărul de cifre 2. Date de ieşire Fişierul de ieşire numere.out va conţine o singură linie pe care vor fi scrise N1 cifre 1 şi N2 cifre 2, respectând condiţiile problemei. Restricţii  

1 <= N1, N2 <= 100 pentru datele de test exista intotdeauna soluţie.

Exemple : numere.in 34

numere.out 2121212

Propunător: prof. Silviu Săcuiu

INFO++ - “Doza recomandată de informatică”

Page 24


INFO++ - “Doza recomandată de informatică” Nr.2 -2012 Problema 2 – PĂTRATE Există numere naturale ale căror pătrate conţin toate cifrele zecimale. Cerinţă Să se afle toate numerele de 5 cifre ale căror pătrate conţin 10 cifre distincte. Date de ieşire Pe ecran se vor afişa numerele cerute pe câte o linie a ecranului şi pe ultimul rând câte numere au îndeplinit condiţia cerută. Exemplu

391472  1532487609

Propunător: prof. Gilda Gebăilă

INFO++ - “Doza recomandată de informatică”

Page 25


INFO++ - “Doza recomandată de informatică” Problema 1 – licenţe

Clasa a X -a

Nr.2 -2012

Pentru fiecare dintre softurile vândute, o firmă de soft acordă N licenţe. Din înşiruirea de numere generate iniţial de calculator se vor alege licenţe asfel încât să fie unice iar înşiruirea de numere ce le compun nu poate fi un număr simetric (cu aceeaşi valoare oricare ar fi sensul de citire). Se cere să se elimine numerele care nu pot fi licenţe din setul iniţial de numere şi să se afişeze licenţele posibile.

DATE DE INTRARE N—numărul de (N<1000) numere generate iniţial

DATE DE IESIRE licenţele posibile, sau mesajul ”nu pot fi generate licenţe cu aceste numere!“ . Exemple:

DATE DE INTRARE

DATE DE IESIRE

10

68 73

2442 4 68 77 77 4 68 111 73 22

5 11 131 2 11 88

”nu pot fi generate licenţe cu aceste numere!“

Propunător: prof.Corobană Gabriela

INFO++ - “Doza recomandată de informatică”

Page 26


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Problema 2 – ordonare

Fie o matrice pătratică A, de dimensiune n, cu elemente numere întregi (2≤n≤100 ). În A sunt permise doar două operaţii: permutarea a două linii între ele, respectiv a două coloane între ele. Cerinţă Sa se transforme matricea in aşa fel încât elementele aflate initial pe diagonala principală sa rămână pe diagonala principală şi să fie ordonate descrescător. Exemple

Date de intrare

Date de iesire

n=3 si matricea

Matricea

723

946

496

273

581

851

n=4 si matricea

Matricea

1 2 3 4 13 14 15 16 12 11 10 9 6 5 7 8

14 15 16 13 11 10 9 12 6 7

8 5

2 3

4 1

Propunător: prof. Domnica Manoilă

INFO++ - “Doza recomandată de informatică”

Page 27


INFO++ - “Doza recomandată de informatică” Problema 1 – Doi banditi

Clasele XI,XII

Nr.2 -2012

Dupa un jaf la o banca, cei doi banditi urmeaza sa imparta in mod egal suma de bani. Stiind ca toti banii sunt in saculeti, iar in fiecare saculet suma S i (i{1,2,…,n}, n<=20), scrieti un program care sa-i ajute pe cei doi banditi sa imparta saculetii astfel imcat sa obtina fiecare aceeasi suma de bani. Cerinţă Pentru fiecare bandit programul va afisa numarul fiecarui saculet repartizat, precum si suma din saculetul respective. Daca banii nu se pot imparti in mod egal, se va afisa mesajul DUCEM BANII INAPOI. Date de intrare Fişierul de intrare bandit.in conţine pe prima linie numarul n iar pe a doua linie sumele de bani ale sacilor 1,2,…,n Date de ieşire Fişierul de ieşire bandit.out va conţine pe prima linie banditul, pe a doua linie sacii repartizati banditului, iar pe a treia linie sumele de bani aflati in sacii de pe linia anterioara. La fel si pentru celalalt bandit. Restricţii  

1 ≤ n ≤ 20 Suma din fiecare saculet este un numar natural nenul ≤ 100. Timp maxim de execuţie/test: 0.1 secunde Memorie totală disponibilă/stivă: 16MB/1 MB Exemplu bandit.in

bandit.out

Explicaţii

8

Bandit 1 :

Sacii 3,4,5,7 totalizeaza suma 2+2+4+1=9

13224213

Sac : 3 4 5 7 Continut : 2 2 4 1

Aceesasi suma este totalizata de sacii 1,2,6, si 8.

Bandit2 : Sac : 1 2 6 8 Continut : 1 3 2 3 Propunător: prof. Viorel Rudeanu INFO++ - “Doza recomandată de informatică”

Page 28


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Problema 2 – Piese

Se consideră un dreptunghi cu laturile de 2, respectiv n unităţi (n este număr natural nenul). Se cere să se determine numărul de moduri în care acest dreptunghi poate fi acoperit în întregime cu piese de dimensiuni 1x1 sau 1x2. Piesele pot fi aşezate orizontal sau vertical. Piesele nu pot ieşi din dreptunghi şi nu se pot suprapune. Date de intrare Fişierul de intrare PIESE.IN conţine pe prima linie valoarea numărului natural n. Date de ieşire Fişierul de ieşire PIESE.OUT conţine o singură valoare reprezentând numărul posibilităţilor de acoperire a dreptunghiului. Restricţii  1 ≤ n ≤ 100, număr natural Exemple PIESE.IN 1 PIESE.IN 2 PIESE.IN 10 PIESE.IN 30

PIESE.OUT 2 PIESE.OUT 7 PIESE.OUT 36096 PIESE.OUT 19374662320128

În desenul de mai jos sunt redate dispunerile posibile ale pieselor pentru n=2

Propunător: prof. Diana Udrea

INFO++ - “Doza recomandată de informatică”

Page 29


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

Concursuri

INFO++ - “Doza recomandată de informatică”

Page 30


INFO++ - “Doza recomandată de informatică” Nr.2 -2012

INFO++ - “Doza recomandată de informatică”

Page 31

Revista de Info CNMV (2)  

Revista este realizata de sub indrumarea doamnei profesoare Gilda Gebaila

Read more
Read more
Similar to
Popular now
Just for you