Date post: | 07-Mar-2016 |
Category: |
Documents |
Upload: | cnmv-bucuresti |
View: | 230 times |
Download: | 1 times |
INFO++ - “Doza recomandată de informatică”
Nr.2 -2012
INFO++ - “Doza recomandată de informatică”
Page 1
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
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
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.
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);}
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);
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);
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.
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--;
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.
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.
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...
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.
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]
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
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”
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ă.
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.
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:
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.
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].
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$.
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.
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
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ă
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
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ă
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
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
INFO++ - “Doza recomandată de informatică”
Nr.2 -2012
INFO++ - “Doza recomandată de informatică”
Page 30
Concursuri
INFO++ - “Doza recomandată de informatică”
Nr.2 -2012
INFO++ - “Doza recomandată de informatică”
Page 31