declarare var <identif>:array[<tip1>,<tip2>,...] of <tip_e>; var a: array[1..20] of integer; (vector cu 20 elemente)

Similar documents
GRAFURI NEORIENTATE. 1. Notiunea de graf neorientat

Parcurgerea arborilor binari şi aplicaţii

VISUAL FOX PRO VIDEOFORMATE ŞI RAPOARTE. Se deschide proiectul Documents->Forms->Form Wizard->One-to-many Form Wizard

Algoritmică şi programare Laborator 3

PROBLEME DE TEORIA NUMERELOR LA CONCURSURI ŞI OLIMPIADE

SUBIECTE CONCURS ADMITERE TEST GRILĂ DE VERIFICARE A CUNOŞTINŢELOR FILIERA DIRECTĂ VARIANTA 1

OLIMPIADA DE MATEMATIC ¼A ETAPA JUDEŢEAN ¼A 3 martie 2007

Split Screen Specifications

Teoreme de Analiză Matematică - II (teorema Borel - Lebesgue) 1

Modalităţi de redare a conţinutului 3D prin intermediul unui proiector BenQ:

O VARIANTĂ DISCRETĂ A TEOREMEI VALORII INTERMEDIARE

PREZENTARE CONCURSUL CĂLĂRAŞI My joy is my sorrow unmasked. 1

22METS. 2. In the pattern below, which number belongs in the box? 0,5,4,9,8,13,12,17,16, A 15 B 19 C 20 D 21

Application form for the 2015/2016 auditions for THE EUROPEAN UNION YOUTH ORCHESTRA (EUYO)

Split Screen Specifications

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

4 Caracteristici numerice ale variabilelor aleatoare: media şi dispersia

6. MPEG2. Prezentare. Cerinţe principale:

Ghid de instalare pentru program NPD RO

Pasul 2. Desaturaţi imaginea. image>adjustments>desaturate sau Ctrl+Shift+I

Reprezentări grafice

Un tip de data este caracterizat de: o O mulţime de date (valori є domeniului) o O mulţime de operaţii o Un identificator.

10 Estimarea parametrilor: intervale de încredere

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Matematică (Varianta 4) b este: A b 2 a B b a C b+ a D a b

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Matematică (Varianta 1)

OLIMPIADA INTERNAŢIONALĂ DE MATEMATICĂ FORMULA OF UNITY / THE THIRD MILLENIUM 2014/2015 RUNDA A DOUA

Exerciţii Capitolul 4

2. PORŢI LOGICE ( )

COMENTARII OLIMPIADA DE MATEMATICĂ 2014 TESTE DE SELECŢIE JUNIORI

Rigla şi compasul. Gabriel POPA 1

Biostatistică Medicină Generală. Lucrarea de laborator Nr Intervale de încredere. Scop: la sfârşitul laboratorului veţi şti:

Aplicatii ale programarii grafice in experimentele de FIZICĂ

Programarea calculatoarelor CURS 1

Capitolul 1. Noţiuni de bază

riptografie şi Securitate

Press review. Monitorizare presa. Programul de responsabilitate sociala. Lumea ta? Curata! TIMISOARA Page1

Universitatea din Bucureşti. Facultatea de Matematică şi Informatică. Şcoala Doctorală de Matematică. Teză de Doctorat


LESSON FOURTEEN

PREZENTARE INTERFAŢĂ MICROSOFT EXCEL 2007

Paradoxuri matematice 1

Cum putem folosi întregii algebrici în matematica elementară

Biraportul în geometria triunghiului 1

Mail Moldtelecom. Microsoft Outlook Google Android Thunderbird Microsoft Outlook

GREUTATE INALTIME IMC TAS TAD GLICEMIE

COMENTARII OLIMPIADA DE MATEMATICĂ 2014 ETAPA JUDEŢEANĂ ŞI A MUNICIPIULUI BUCUREŞTI

Sistemul de operare Windows (95, 98) Componenta My Computer

TTX260 investiţie cu cost redus, performanţă bună

DIRECTIVA HABITATE Prezentare generală. Directiva 92/43 a CE din 21 Mai 1992

Conferinţa Naţională de Învăţământ Virtual, ediţia a IV-a, Graph Magics. Dumitru Ciubatîi Universitatea din Bucureşti,

Circuite Basculante Bistabile

Anexa 2. Instrumente informatice pentru statistică

Clasele de asigurare. Legea 237/2015 Anexa nr. 1

Capitolul V MODELAREA SISTEMELOR CU VENSIM

MANUAL DE UTILIZARE. 2. Nomenclator Curs Produse Clienti Introducere Facturi

Tehnici de programare

OLIMPIADA INTERNAŢIONALĂ DE MATEMATICĂ FORMULA OF UNITY / THE THIRD MILLENIUM 2014/2015 RUNDA A DOUA ADDENDUM

Maria plays basketball. We live in Australia.

ANEXA NR. 1. Caracteristicile tehnice ale interfeţelor echipamentelor. Exemplu schema de interconectare TRONSON XX: A A1 A2 A3 - B STM-4 A2 A3 STM-1

Click pe More options sub simbolul telefon (în centru spre stânga) dacă sistemul nu a fost deja configurat.

ARHITECTURA CALCULATOARELOR 2003/2004 CURSUL 10

Curs 3 Word 2007 Cuprins

Olimpiada Naţională de Matematică 2015 Testele de Selecţie Juniori IV şi V

REVISTA DE MATEMATICĂ

Microsoft Excel partea 1

OPTIMIZAREA GRADULUI DE ÎNCĂRCARE AL UTILAJELOR DE FABRICAŢIE OPTIMIZING THE MANUFACTURING EQUIPMENTS LOAD FACTOR

9.1. Structura unităţii de I/E. În Figura 9.1 se prezintă structura unui sistem de calcul împreună cu unitatea

ice~felix' COMPUTER S.A.

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE FINANŢE, ASIGURĂRI, BĂNCI şi BURSE de VALORI

Alexandrina-Corina Andrei. Everyday English. Elementary. comunicare.ro

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 12, 13 şi 14

Consideraţii statistice Software statistic

3. CPU 3.1. Setul de regiştri. Copyright Paul GASNER

SORIN CERIN STAREA DE CONCEPŢIUNE ÎN COAXIOLOGIA FENOMENOLOGICĂ

DEMONSTRAREA CONCURENŢEI ŞI COLINIARITĂŢII UTILIZÂND METODA FASCICULELOR CONVERGENTE NECULAI STANCIU 1

Defuzzificarea într-un sistem cu logică fuzzy. Aplicaţie: maşina de spălat cu reguli fuzzy. A. Obiective. B. Concepte teoretice ilustrate

1. Funcţii speciale. 1.1 Introducere

directorul ATESTAT de pe desktop.

VERBUL. Are 3 categorii: A. Auxiliare B. Modale C. Restul. A. Verbele auxiliare (to be si to have)

Metode de căutare neinformată şi informată

Geometrie euclidian¼a în plan şi în spaţiu. Petru Sorin Botezat

ZOOLOGY AND IDIOMATIC EXPRESSIONS

Hama Telecomanda Universala l in l

JOURNAL OF ROMANIAN LITERARY STUDIES DO ASSERTIONS, QUESTIONS OR WISHES MAKE A THICK TRANSLATION?

b) Sa se afiseze numele salariatilor al caror salariu este mai mare decat salariul lui Kevin Mourgos.

EPI INFO. - Cross-tabulation şi testul 2 -

Autonet Service Manager

COMENTARII OLIMPIADA DE MATEMATICĂ 2013 ULTIMELE DOUĂ TESTE DE SELECŢIE

Reţele de calculatoare

1. Ecuaţii diferenţiale de ordinul întâi

Curs 6 Mai 2015 Funcţii Labview pentru prelucrarea sunetelor Noţiuni despre placa de sunet PS sound card/audio card line in intrare pentru microfon

Comentarii la a 18-a Balcaniadă de Matematică Juniori jbmo 2014, Ohrid Macedonia

Raionul Şoldăneşti la 10 mii locuitori 5,2 4,6 4,4 4,8 4,8 4,6 4,6 Personal medical mediu - abs,

Laboratorul 1. MS Word

Numere zecimale. 1 Noţiunea de număr zecimal

ANCA-MARIANA PEGULESCU Ministery of National Education

Evaluation in E-Advertisements: Appraisal across Cultures

Anexa nr.1. contul 184 Active financiare depreciate la recunoașterea inițială. 1/81

4. Porturi de intrare-ieşire


Transcription:

TITLUL: Tablou unidimensional 1. Teorie Tabloul este o structură de date statică (dimensiunea este fixă) care memoreză o succesiune de elemente de acelaşi tip. Elementele tabloului sunt identificate prin indici. Pascal declarare var <identif>:array[<tip1>,<tip2>,...] of <tip_e>; var a: array[1..20] of integer; (vector cu 20 elemente) initializare var c: array[1..6] of real =(2.5,-6,7.3,-4.7,0,-8); //trebuie initializate toate cele 6 elemente alocate accesare a[i], i=1,...,20 (vector) elemente Citirea Avem două etape: elementelor a. se citeşte numărul de componente; unui tablou b. se citesc pe rând toate componentele. Exemplu: var x: array[1..5] of integer; N, I: integer; write( Numarul de componente ); readln(n); for I := 1 to N do C/C++ <tip> <identif> [<ind1>][<ind2>]...; int a[20]; (vector cu 20 elemente)!! numele unui tablou este un pointer constant având ca valoare adresa de început a tabloului float c[6]={2.5,-6,7.3,-4.7}; //s-au initializat //doar primele 4 elemente din cele 6 alocate int d[]={1,2,3,4}; //s-a alocat zona de //memorie pentru 4 intregi si s-au initializat a[i] sau *(a+i), i=0,...,19 (vector) 1

write( Componenta a, I, a= ); readln(x[i]); end; end. Tiparirea elementelor unui tablou Afişarea elementelor dintr-un vector se face componentă cu componentă. Pentru exemplul anterior afişarea se realizează prin: For I:= 1 to N do Write(x[I], ); 2. Exerciţii 1. Ce va afişa următorul program? Program exemplu; Var v:array [1..30] of integer; i,n:integer; n:=10; i:=1; while i<=n do v[i]:=4*i-2; i:=i+1 end; writeln(v[i-3]) end. 2. Care dintre secvenţele de program următoare calculează corect suma elementelor unui vector S=v[1]+v[2]+ +v[n]? Justificaţi răspunsul. a). S:=0; for i:=1 to n do S:=S+v[i]; b) S:=0; i:=1; while (i<=n) do S:=S+v[i]; i:=i+1 end; c) S:=0; i:=1; repeat S:=S+v[i]; i:=i+1; until (i<n); 3. În urma execuţiei următoarei secvenţe de program variabila booleană ok ar trebui să aibă valoarea true dacă x se găseşte printre cele n elemnte ale vectorului v, respectiv false în caz contrar. Algoritmul este corect? Justificaţi răspunsul, exemplificând pentru x=8 şi vectorul v=(6, 3, 8, 5, 1) cu n=5 elemente. 2

ok:=false; for i:=1 to n do if v[i]=x then ok:=true else ok:=false; 4. În următoarea secvenţă de program v este un vector cu cinci elemente numere întregi v=(5,7,6,2,4), iar celelalte variabile sunt de tip întreg. Valoarea afişată va fi: S:=5; i:=2; repeat d:=v[i]-v[i-1]; S:=S-d; i:=i+1 until i>=6; writeln( S=,S); 5. Fie următoarea secvenţă de program în care v este un vector cu n elemnte întregi, iar p este o variabilă booleană. Dati un exemplu de vector pentru care secvenţa afişează valoarea FALSE. p:=true; for k:=2 to n do if (v[k]=v[k-1]) then p:=false; write(p); 6. În secvenţa următoare v este un vector cu cinci elemente numere întregi, iar celelalte variabile sunt de tipul întreg. Dati un exemplu de vector pentru care secvenţa afişează valoarea 5? p:=1; for k:=2 to 6 do if (v[k]>v[p]) then p:=k; writeln(p); 7. Ce valori vor fi afisate in urma rularii urmatoarelor programe? var a:array[1..10]of integer; i:integer; for i:=1 to10 do a[i]:=i; write(a[2], );write(a[a[2]], ); write(a[a[a[3]]], ); write(a[a[2]+a[3]], );end. 3. Algoritmi elementari - Determinarea elementului maxim si minim - Afisarea elementelor care indeplinesc anumite conditii - Sume si produse de elemente care indeplinesc anumite conditii - Determinarea numarului de elemente care indeplinesc anumite conditii - Cautarea unui element - Stergerea sau adaugarea (inserarea) unui element sau elemente - Ordonarea elementelor unui tablou - Interclasare - Operaţii cu mulţimi de numere - Construcţii de tablouri diverse - Subşiruri de elemente 4. Probleme rezolvate Problema 1 Să se determine maximul şi minimul componentelor (de tip real) unui vector de dimensiune n (1<=n<=100). Afişarea va respecta formatul din exemplu. Exemplu: 3

Pentru n=6 şi vectorul cu componentele: 5 89 24-2.5 33 4 se va afişa: min(5, 89, 24, -2.5, 33, 4) =-2.5 max(5, 89, 24, -2.5, 33, 4) = 89 program vector1; var x: array[1..100] of real; i, n: integer; max, min:real; write('n='); readln(n); for i:=1 to n do write('x[',i,']='); readln(x[i]); end; max:=x[1]; min:=x[1]; for i:=2 to n do if max<x[i] then max:=x[i]; if min>x[i] then min:=x[i]; end; writeln('maximul elementelor este:',max:3:2); writeln('minimul elementelor este:', min:3:2); end. Problema 2 Să se construiască un vector cu primele n (1<=n<=30) numere cuburi perfecte nenule, apoi să se afişeze componentele cu un spaţiu între ele. Exemplu: Pentru n=6, se va afişa: 1 8 27 64 125 216 Soluţie: Vom lua toate numerele consecutive 1, 2,, n, folosind o structură repetitivă şi vom construi cu cuburile lor vectorul x, după care îl vom afişa. program vector1; var x: array[1..25] of longint; {Declararea componentelor vectorului} i, n: byte; write('n='); readln(n); {Citirea nr. de componente} for i:=1 to n do {Se citesc pe rand toate componentele} x[i]:=i*i*i; for i:=1 to n do {Afisarea unui vector componenta cu componenta} 4

end. write(x[i],' '); 5. Probleme propuse 1. Scrieţi un program care să calculeze suma elementelor unui tablou unidimensional de n numere reale. 2. Scrieţi un program care să calculeze suma inverselor elementelor unui tablou unidimensional de n numere reale. 3. Scrieţi un program care să calculeze produsul pătratelor elementelor unui tablou unidimesional de n numere reale. 4. Scrieţi un program care să calculeze suma elementelor mai mari sau egale cu zero ale unui tablou unidimensional de n numere reale. 5. Scrieţi un program care să calculeze suma elementelor mai mari decât zero ale unui tablou unidimesional de n numere reale. 6. Scrieţi un program care să calculeze produsul elementelor negative ale unui tablou unidimesional de n numere reale. 7. Scrieţi un program care să numere câte elemente pozitive, negative şi nule are un tablou unidimensional de n numere reale. 8. Scrieţi un program care să calculeze media aritmetică a n numere reale. 9. Scrieţi un program care să calculeze suma elementelor pozitive şi produsul elementelor negative ale unui tablou unidimensional de n numere reale. 10. Scrieţi un program care să numere câte elemente pare şi câte elemente impare are un tablou unidimensional de n numere naturale. 11. Scrieţi un program care să determine maximul unui tablou unidimensional de n numere reale. 12. Scrieţi un program care să determine minimul unui tablou unidimensional de n numere reale. 13. Scrieţi un program care să calculeze suma dintre inversul minimului şi inversul maximului unui tablou unidimensional de n numere reale. 14. Scrieţi un program care să ordoneze descrescător un tablou unidimensional de n numere reale, tabloul având cel puţin două elemente. 15. Scrieţi un program care să ordoneze crescător un tablou unidimensional de n numere reale, tabloul având cel puţin două elemente. 16. Scrieţi un program care să adune elementele corespunzătoare a două tablouri unidimensionale de n numere reale obţinând astfel un nou tablou. 18. Scrieţi un program care dintr-un tablou unidimensional de n numere reale să obţină două tablouri unidimensionale care să aibă ca elemente respectiv elementele pozitive şi elementele negative ale tabloului iniţial. 19. Scrieţi un program care dintr-un tablou unidimensional care are un număr par de elemente să obţină un tablou unidimensional ale cărui elemente să fie media aritmetică a două elemente consecutive ale tabloului iniţial. 20. Scrieţi un program care să calculeze suma elementelor unui tablou unidimensional de n numere reale cuprinse între două numere reale A şi B ştiind că A<B. Aceste numere pot fi egale cu A sau B. 21. Scrieţi un program care să determine maximul elementelor de rang par şi minimul elementelor de rang impar ale unui tablou unidimensional de n numere reale. 22. Scrieţi un program care să înlocuiască fiecare element negativ al unui tablou unidimensional de n numere reale cu maximul elementelor strict pozitive ale tabloului considerat. 23. Să se inverseze elementele egal depărtate de extremităţile unui tablou unidimensional de n numere reale. 5

24. Scrieţi un program care să înlocuiască fiecare element al unui tablou unidimensional de n numere reale cu media aritmetică a celorlalte n-1 elemente. 25. Scrieţi un program care dintr-un tablou unidimensional dat de n numere reale să afişeze un nou tablou unidimensional care să aibă ca elemente numai elementele de rang impar care împărţite la 17 să dea restul 9. 26. Scrieţi un program care dintr-un tablou unidimensional dat de n numere reale să obţină un nou tablou unidimensional care să aibă pe ultimele locuri elementele nule ale tabloului considerat (în caz că ele există). 27. Scrieţi un program care să numere câte din elementele unui tablou unidimensional de n numere naturale sunt divizibile cu 2,3,5,7. Ex.: 9, 1, 0, 75, 19, 6, 8 D=3 (div. cu 2: 0, 6, 8) T=4 (div. cu 3: 0, 9, 75, 6) C=2 (div. cu 5: 0, 75) S=1 (div. cu 7 : 0) 28. Scrieţi un program care să efectueze reuniunea, intersecţia şi diferenţa a două mulţimi. 29. Se consideră un tablou unidimensional de n numere naturale nenule. Scrieţi un program care să afişeze toţi divizorii fiecărui element al tabloului considerat şi de câte ori se cuprinde divizorul respectiv în elementul pe care îl divide. 6. Probleme suplimentare 1. Se dă un număr întreg n suficient de mare (de tip longint). Să se afişeze toate numerele obţinute prin permutarea circulară la dreapta a cifrelor numărului. Ex: pentru n=123456 se vor tipări numerele 123456 612345 561234 456123 345612 234561 Cerinţă de lucru: cifrele numărului n se vor introduce într-un vector (prima componentă a vectorului reţinând ultima cifră a numărului, a doua componentă a vectorului reţinând penultima cifră a numărului s.a.m.d); componentele vectorului se vor schimba astfel încât prima componentă a vectorului să reţină prima cifră a numărului, a doua componentă a vectorului să reţină a doua cifră a numărului s.a.m.d; în final nu se vor tipări vectorii obţinuţi în urma permutărilor, ci se vor construi numerele având drept cifre componentele acestor vectori (aceste numere fiind cele care se tipăresc). 2. Se dă un număr întreg n. Să se tipărească şirul: 1-1 -1 1-1 -1-1 1-1 -1-1 -1 1.. 6

n cifre 3. Se dă un vector cu elemente numere întregi. Să se mute la sfârşitul vectorului elementele sale nule, păstrând ordinea celorlalte elemente a) folosind un vector auxiliar b) fără a folosi un vector auxiliar Ex: dacă iniţial vectorul este (2,3,0,9,0,0,8) în final va rezulta (2,3,9,8,0,0,0) 4. Se dă un vector cu elemente numere întregi. Să se elimine elementele nule din vector şi între două elemente consecutive de acelaşi semn să se introducă produsul lor. Ex: dacă iniţial vectorul este (2,-3,0,-2,-8,0,0,2,3,4) în final va rezulta (2,-3,6,- 2,16,-8,2,6,3,12,4) 5. Se dă un şir cu n componente naturale (1 n 100).Să se afişeze cel mai mic număr natural care se poate alcătui luând prima cifră a fiecărui element al şirului. Ex: pentru n=4 şi elementele (234,7650,19,2) numărul este 1227. 6. Se citeşte de la tastatură un şir cu n elemente numere naturale, nu neapărat distincte.să se afişeze elementul care apare de cele mai multe ori în şir.dacă există mai multe astfel de elemente, se vor afişa toate. Ex: pentru n=5 şi elementele (23,7,11,7,19,7,11,11) se vor afişa elementele 7 şi 11 care apar fiecare de câte trei ori Indicaţii: Se ordonează crescător vectorul v în care se memorează şirul.după ordonare, elementele identice vor fi succesive în vector.se folosesc alţi doi vectori u şi f: fiecare u[i] va fi un element distinct al vectorului v, iar f[i] va reprezenta frecvenţa de apariţie a lui u[i] în vectorul v.parcurgem vectorul sortat v şi la fiecare pas comparăm elementul curent v[i] cu cel următor.dacă sunt diferite s-a identificat un nou element distinct al lui v (v[i+1]), care se adaugă la sfârşitul lui u, iniţializând totodată cu 1 un element nou la sfârşitul vectorului f; în caz contrar se incrementează componenta din f care indică frecvenţa elementelor egale v[i] şi v[i+1]. 7. Se citesc de la tastatură două numere naturale foarte mari, care pot avea până la 70 de cifre fiecare.să se afişeze suma celor două numere. Indicaţii: Numere atât de mari nu pot fi reprezentate în memorie nici măcar cu ajutorul tipului longint.singura soluţie este să se memoreze cifrele numerelor în vectori.pentru adunarea celor două numere se va opera asupra vectorilor.se parcurg în paralel cei doi vectori de cifre de la dreapta la stânga.la fiecare pas se însumează elementele aflate pe poziţii identice în cei doi vectori, cu memorarea rezultatului pe aceeaşi poziţie într-un al treilea vector.dacă o astfel de sumă depăşeşte 10, înseamnă că elementul corespunzător din vectorul-sumă va fi diferenţa dintre suma obţinută şi 10, iar pe de altă parte vom avea un transport egal cu 1 către poziţia următoare.dacă suma nu depăşeşte 10, atunci ea se va memora ca atare în vectorul sumă. 8. Se citeşte un şir cu n elemente numere naturale.să se re-aranjeze numerele în şir astfel încât cele pare să ocupe primele poziţii în ordine crescătoare. Ex: dacă şirul iniţial este (7,8,5,2,10,4) atunci după re-aranjare devine (2,4,8,10,7,5) 7

9. Numim platou de lungime k într-un şir de numere întregi, o secvenţă de k elemente identice (cu aceeaşi valoare).scrieţi un program care afişează toate platourile de lungime maximă existente într-un şir dat cu n elemente. Ex: în şirul (1,2,2,2,3,4,4,5,5,5) întâlnim platourile (2,2,2), (4,4) şi (5,5,5), iar cele de lungime maximă sunt primul şi al treilea. Indicaţii: Se reţin în două variabile p şi q poziţiile care reprezintă capetele fiecărui platou identificat şi lungimea maximă în variabila lmax iniţializată cu 1.Se identifică platourile prin parcurgerea vectorului într-un ciclu cât timp i<=n.la fiecare pas se caută un platou începând cu poziţia i, avansând în vector cât timp întâlnim elemente consecutive egale (unde iniţial i=1).dacă lungimea platoului astfel determinat, adică q-p-1 este mai mare decât lungimea maximă lmax, atunci ea devine noua lungime maximă. În final, printr-o nouă parcurgere a vectorului, identificăm toate platourile de lungime maximă şi le afişăm: pentru fiecare element v[i] testăm dacă este egal cu v[i+lmax]. 10. Se citeşte de la tastatură un şir de numere naturale.să se afişeze toate grupurile de numere din şir care au aceeaşi divizori factori primi. Ex: Fie şirul (12,15,2,36,32).Grupurile afişate vor fi: (12,36) cu divizorii primi 2 şi 3, (15) cu divizorii primi 3 şi 5, (2,32) cu divizorul prim 2. Indicaţii: Dacă şirul are n numere, se va lucra cu doi vectori v şi f astfel: fiecare element v[i] va fi un număr din şirul dat, iar f[i] va reprezenta produsul factorilor primi ai lui v[i], cu i=1,2,,n.dacă două elemente ale şirului au acelaşi produs de factori primi, atunci elementele în cauză vor avea aceeaşi factori primi, deci în vectorul f se pot evidenţia grupurile cerute.se ordonează crescător vectorul f (folosind oricare dintre algoritmii de sortare).în final se afişează grupurile cerute prin parcurgerea vectorului f, grupurile cerute nefiind altceva decât platourile din vector.(vezi problema anterioară). 11. Se dă un vector v cu n componente numere naturale, având p cifre, unde n şi p sunt numere naturale citite de la tastatură.se cere să se afişeze numărul format astfel: prima cifră a noului număr este cifra maximă dintre cifrele de pe prima poziţie ale fiecărei componente, a doua cifră a noului număr este cifra maximă dintre cifrele de pe a doua poziţie ale fiecărei componente s.a.m.d Ex: pentru n=3, p=4 şi vectorul iniţial (7293,5687,3241) numărul format este 7697 12. Se da un vector v cu n elemente numere intregi. Fara a folosi un vector auxiliar, sa se mute la sfarsitul vectorului v toate elementele sale nule, pastrand ordinea celorlalte elemente. Exemplu: daca initial v=(2,3,0,9,0,0,8), in final va rezulta v=(2,3,9,8,0,0,0). Indicatii: parcurgem vectorul dat v si pentru fiecare element v[i] testam daca este 0;in caz afirmativ mutam toate elementele din dreapta lui v[i] cu o pozitie mai la stanga, micsoram dimensiunea lui v cu o unitate si incrementam un contor nr care numara elementele nule. In final adaugam nr elemente cu valoarea 0 la sfarsitul vectorului v. 13. Se da un sir cu n elemente numere naturale (1<=n<=100). Sa se afiseze cel mai mic nuamr natural care se poate alcatui luand prima cifra a fiecarui element al sirului. 8

Exemplu: pentru n=4 si elementele (234,7650,19,2) numarul este 1227. Indicatii: Se parcurge sirul memorat intr-un vector v, si pentru fiecare element v[i] retinem prima cifra, pe care o extragem cu algoritmul calsic de impartiri la 10 si o adaugam la sfarsitul unui vector de cifre c, initial gol. Sortam crescator vectorul, dupa care, prin parcurgerea vectorului sortat de la stanga la dreapta, obtinem numarul cerut. 14. Se citeste de la tastatura un sir de n elemente numere naturale, nu neaparat distincte. Sa se afiseze elementul care apare de cele mai multe ori in sir. Daca exista mai multe astfel de elemente, se vor afisa toate. Exemplu: pentru n=8 si elementele (23,7,11,7,19,7,11,11) se vor afisa elementele 7 si 11 care apar fiecare de cate 3 ori. Indicatii: Se ordoneaza crescator vectorul v in care memoram sirul. Dupa ordonare, elementele identice vor fi succesive in vector. Folosim si lati doi vectori u si f: fiecare u[i] va fi un element distinct al vectorului v, iar f[i] va reprezenta frecventa de aparitie a lui u[i] in vectorul v. Parcurgem vectorul sortat v si la fiecare pas comparam elementul curent v[i] si cel urmatorv[i+1].; daca sunt diferite am identificat un nou element distinct al lui v in persoana lui v[i+1], pe care il adaugam la sfarsitul lui u, initializand totodata cu 1 un element nou la sfarsitul vectorului vv; in caz contrar, incrementam componenta lui f care indica frecventa elementelor v[i] si v[i+1]. 15. Se citesc de la tastatura doua numere naturale foarte mari, care pot avea pana la 70 de cifre fiecare. Sa se afiseze suma celor doua numere. Indicatii: Evident ca numere atat de mari nu pot fi reprezentate in memorie nici macar cu ajutorul tipului longint. Singura solutie este sa memoram suma lor in vectori. Pentru a aduna cele doua numere, vom opera asupra vectorilor. Se parcurg in paralel cei doi vectori de cifr, de la dreapta la stanga. La fiecare pas se insumeaza elementele aflate pe pozitii identice in cei doi vectori, cu memorarea rezultatului pe aceeasi pozitie in al treilea vector. Daca o astfel de suma depaseste 10 inseamna ca elementul corespunzator din vectorul-suma va fi diferenta dintre suma obtinuta si 10, iar pe de alta parte, vom avea un transport egal cu 1 catre pozitia urmatoare. Daca suma nu depaseste 10, ea se va memora ca atare in vectorul suma. 16. Se da un vector cu n componente numere naturale (datele se citesc de la tastatura, n<=50). Sa se inlocuiasca componentele neprime din vector cu numarul divizorilor acestora. 17. Se da un vector cu n componente numere naturale (datele se citesc de la tastatura, n<=50). Sa se afiseze componentele vectorului care contin o cifra data, nenula (cifra se citeste de la tastatura). 18. Fie doi vectori a si b formati din n, respectiv m numere intregi nenule (m,n<=50). Scrieti un program care citeste, numarul de lemente si valorile din vectorul a, respectiv b si afiseaza valorile din vectorul a care sunt prime cu toate valorile din vectorul b. Ex: Fie n=6, a=(77,35,55,15,121,11) si m=3, b=(18,20,10). Se vor afisa numerele 77,121,11. 9

19. Se citesc 2 vectori a si b cu n, respectiv m componente intregi. Sa se determine daca cei doi vectori sunt identici. daca nu, sa se afiseze pozitia de unde nu mai coincid elementele. Ex: pt n=3 si elementele:1 2 3 si m=3 si elementele:1 2 3, se va afisa "Cei doi vectori sunt identici". 10