Cerința
Scrieți o funcție operand cu doi parametri care returnează poziția maximului dintr-un șir dat de numere întregi. Se presupune că elementele șirului sunt distincte și memorate începând cu poziția 1
. Parametrii funcției sunt: tabloul în care este memorat șirul și numărul de elemente ale acestuia.
Scrieți o funcție procedurală cu trei parametri care oferă poziția minimului dintr-un șir dat de numere întregi. Se presupune că elementele șirului sunt distincte și memorate începând cu poziția 1
. Parametrii funcției sunt: tabloul în care este memorat șirul, numărul de elemente ale acestuia precum și rezultatul.
Scrieți o funcție procedurală care interschimbă două valori întregi.
Scrieți o funcție procedurală care are trei parametri, în ordine: v
(tablou unidimensional cu elemente int), pozInit
(de tip int), pozFin
(de tip int), și care afișează în ordine descrescătoare a indicilor (separate prin spații) elementele secvenței delimitate de pozInit
și pozFin
, inclusiv. Se garantează că primul parametrul pozInit
se transmite funcției mai mic strict decât pozFin
. Se garantează că tabloul are cel puțin pozFin
elemente și că ambii indici se transmit funcției mai mari sau egali cu 1
.
Scrieți un program care, apelând util TOATE funcțiile de mai sus, preia dintr-un fișier dimensiunea (notată de noi mai departe n
) și elementele unui vector și le stochează în acesta începând cu poziția 1
. Programul va scrie într-un fișier, în ordine descrescătoate a indicilor, elementele cuprinse între valoarea minimă și valoarea maximă. Se garantează că elementele șirului se dau distincte.
Date de intrare
Programul citește din fișierul calcfunct.in
mai întâi un număr n
, iar apoi n
numere naturale, separate prin spații.
Date de ieșire
Programul va scrie în fișierul calcfunct.out
, pe un singur rând separate prin spații, elementele secvenței specificate, în ordinea cerută.
Restricții și precizări
1 ≤ n ≤ 100
- cele
n
numere citite vor fi distincte, naturale, și mai mici decât1.000.000.000
Exemplu
calcfunct.in
5 4 1 3 2 5
calcfunct.out
5 2 3 1
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema calcfunct:
#include <fstream>
using namespace std;
int v[1002];
int n, p1, p2;
ifstream fin ("calcfunct.in");
ofstream fout("calcfunct.out");
int maxim(int v[], int n) {
int r = v[1];
int p = 1;
for (int i=2;i<=n;i++) {
if (v[i] > r) {
r = v[i];
p = i;
}
}
return p;
}
void minim(int v[], int n, int &p) {
int r = v[1];
p = 1;
for (int i=2;i<=n;i++) {
if (v[i] < r) {
r = v[i];
p = i;
}
}
}
void schimba(int &a, int &b) {
int aux = a;
a = b;
b = aux;
}
void afiseaza(int v[], int pozInit, int pozFin) {
for (int i=pozFin;i>=pozInit;i--)
fout<<v[i]<<" ";
fout<<"\n";
}
int main () {
fin>>n;
for (int i=1;i<=n;i++)
fin>>v[i];
p1 = maxim(v, n);
minim(v, n, p2);
if (p1 > p2)
schimba(p1, p2);
afiseaza(v, p1, p2);
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3205 calcfunct
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3205 calcfunct de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!