Revista de Info CNMV (2)

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

description

Revista este realizata de sub indrumarea doamnei profesoare Gilda Gebaila

Transcript of Revista de Info CNMV (2)

Page 1: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 1

Page 2: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 2

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

Page 3: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 3

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

Page 4: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 4

Ş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.

Page 5: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 5

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);}

Page 6: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 6

Funcţia şablon are ca parametru şablon, tipul TIP. Acest parametru şablon 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>

template <class T>

T GetMax (T a, T b) {

T r;

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

return r;

int main () {

int i=5, j=6, k;

long l=10, m=5, n;

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

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

cout << k << endl;

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);

Page 7: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 7

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);

Page 8: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 8

Determinanţii (scurtătură pentru tema la mate) 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.

Page 9: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 9

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--;

Page 10: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 10

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.

Page 11: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 11

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.

Page 12: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 12

3) Instrumentul Mail Merge precum şi opţiunile acestuia se regăsesc în 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...

Page 13: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 13

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.

Page 14: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 14

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 [email protected]

Page 15: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 15

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

Page 16: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 16

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”

Page 17: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 17

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ă.

Page 18: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 18

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.

Page 19: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 19

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:

Page 20: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 20

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.

Page 21: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 21

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: [email protected].

Page 22: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 22

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$.

Page 23: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 23

Samsung va reincepe vanzarea tabletelor Samsung Galaxy tab 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.

Page 24: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 24

Problema 1 – numere Clasa a IX -a

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 numere.out

3 4 2121212

Propunător: prof. Silviu Săcuiu

Page 25: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 25

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

1532487609391472

Propunător: prof. Gilda Gebăilă

Page 26: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 26

Problema 1 – licenţe Clasa a X -a

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

2442 4 68 77 77 4 68 111 73 22

68 73

5

11 131 2 11 88

”nu pot fi generate licenţe cu aceste

numere!“

Propunător: prof.Corobană Gabriela

Page 27: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 27

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

7 2 3

4 9 6

5 8 1

n=4 si matricea

1 2 3 4

13 14 15 16

12 11 10 9

6 5 7 8

Matricea

9 4 6

2 7 3

8 5 1

Matricea

14 15 16 13

11 10 9 12

6 7 8 5

2 3 4 1

Propunător: prof. Domnica Manoilă

Page 28: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 28

Problema 1 – Doi banditi Clasele XI,XII

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 Si

(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

1 3 2 2 4 2 1 3

Bandit 1 :

Sac : 3 4 5 7

Continut : 2 2 4 1

Bandit2 :

Sac : 1 2 6 8

Continut : 1 3 2 3

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

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

Propunător: prof. Viorel Rudeanu

Page 29: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 29

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.OUT

2

PIESE.IN

2

PIESE.OUT

7

PIESE.IN

10

PIESE.OUT

36096

PIESE.IN

30

PIESE.OUT

19374662320128

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

Propunător: prof. Diana Udrea

Page 30: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 30

Concursuri

Page 31: Revista de Info CNMV (2)

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

Nr.2 -2012

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

Page 31