Informatică, întrebare adresată de andriesboss92, 9 ani în urmă

1.
În fişierul numere.txt pe prima linie este memorat un număr natural n (n≤10000), iar pe
linia următoare un şir de n numere naturale distincte două câte două, separate prin câte un spaţiu, cu maximum 4 cifre fiecare. Se cere afişarea pe ecran a poziţiei pe care s-ar găsi primul element din şirul aflat pe linia a doua a fişierului, în cazul în care şirul ar fi ordonat crescător. Numerotarea poziţiilor elementelor în cadrul şirului este de la 1 la n. Alegeţi un algoritm de rezolvare eficient din punct de vedere al memoriei utilizate şi al timpului de execuţie.
Exemplu: dacă fişierul numere.txt conţine:
6
267 13 45 628 7 79
se va afişa 5, deoarece primul element din şirul iniţial, 267, s-ar găsi pe poziţia a cincea în
şirul ordonat crescător.


2.

În fiecare dintre fişierele nr1.txt şi nr2.txt este memorată pe prima linie câte o
valoare naturală n de cel mult 8 cifre, iar pe linia următoare sunt memorate câte n numere naturale, cu maximum 4 cifre fiecare, ordonate strict crescător şi separate prin câte un spaţiu. Se cere afişarea pe ecran, separate prin câte un spaţiu, în ordine strict crescătoare, a tuturor numerelor aflate pe a doua linie în cel puţin unul dintre cele două fişiere. În cazul în care un număr apare în ambele fişiere, el va fi afişat o singură dată. Alegeţi un algoritm de rezolvare eficient din punct de vedere al memoriei utilizate şi al timpului de execuţie.
Exemplu: pentru următoarele fişiere:
nr1.txt
5
3..6..8..9..12

nr2.txt
6
2..3..5..7..9..13

se va afişa 2..3..5..6..7..8..9..12..13.

Vreau in C++ si cateva idei a modului de rezolvare daca se poate.


antonii: Iti dau o idee: folosestie vectori. Daca folosesti vectori(and for god sake...I'm using the correct word here...not an array) poti folosi apoi libraria algorithm care are o groaza de functii pentru vectori, precum sort,find, etceteraaa(sunt foarte multe). ATENTIE:vectori nu array-uri. Vectori din libraria "vector"
ardyarde: In liceu nu se foloseste libraria <vector> si la orice examen de informatica (bac, admitere, etc.) este interzisa folosirea altor librarii decat cele studiate in liceu
andriesboss92: Problema este ca eu nu am invatat de array-uri, sau algorithm (librarie)

Răspunsuri la întrebare

Răspuns de ionutg38
8
1.
#include <iostream.h> #include <fstream.h> int n, x, y, p; int main() { ifstream fin("numere.txt"); fin >> n; fin >> x; n--; p = 1; while( n ) { fin >> y; if( x > y) p++; n--; } cout << p << endl; fin.close(); system("pause"); return 0; }

2.

#include<fstream.h> void main() { ifstream f("nr1.txt"), g("nr2.txt"); int x,y,n,m,i,j; f>>n; g>>m; i=j=1; f>>x; g>>y; while(i<=n && j<=m) if(x<y) { cout<<x<<" "; f>>x; i++;} else if(y<x) { cout<<y<<" "; g>>y; j++; } else { cout<<x<<" "; f>>x; g>>y; i++; j++; } while(i<=n) { cout<<x<<" "; f>>x; i++;} while(j<=m) { cout<<y<<" "; g>>y; j++;} }
Alte întrebări interesante