A) Se consideră tabloul unidimensional A[1..n] cu elemente numere întregi. Să se compună un
program care va transcrie la începutul tabloului B[1..n] în ordine crescătoare elementele lui
negative, apoi ,în continuare, pe cele nenegative în ordine descrescătoare.
De exemplu, având A = (4, -8, 7, -6, 0, -7, 5), se va obţine B = (-8, -7, -6, 7, 5, 4, 0).
B) Informaţia despre fiecare fel de marfă conţine:
- denumirea mărfii;
- preţul;
- anul fabricării;
- cantitatea(în unităţi condiţionale);
De compus programul de formare a listelor ordonate după fiecare din parametri 1), 2) şi 3)
DE REZOLVAT IN CODEBLOCKS (C++)
Răspunsuri la întrebare
A)
#include <iostream>
#include <algorithm>
using namespace std;
int A[10000], B[10000];
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++)
cin >> A[i];
sort(&A[1], &A[n+1]);
int i;
for(i = 1; i <= n && A[i] < 0; i++);
reverse(&A[i], &A[n+1]);
for(i = 1; i <= n; i++)
B[i] = A[i];
for(i = 1; i <= n; i++)
cout << B[i] << " ";
}
B)
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
struct marfa{
string denumire;
double pret;
int an;
int cantitate;
};
bool cmp_denumire(marfa a, marfa b){
return a.denumire < b.denumire;
}
bool cmp_pret(marfa a, marfa b){
return a.pret < b.pret;
}
bool cmp_an(marfa a, marfa b){
return a.an < b.an;
}
marfa vec[10000];
int main(){
int n;
cin >> n;
for(int i = 0; i < n; i++){
cout << "Denumire:"; cin >> vec[i].denumire;
cout << "Pret:"; cin >> vec[i].pret;
cout << "Anul fabricarii:"; cin >> vec[i].an;
cout << "Cantitate:"; cin >> vec[i].cantitate;
}
sort(&vec[0], &vec[n], cmp_denumire);
cout << "Sortat dupa denumire:\n";
for(int i = 0; i < n; i++){
cout << vec[i].denumire << " " << vec[i].pret << " " << vec[i].an << " " << vec[i].cantitate<<"\n";
}
sort(&vec[0], &vec[n], cmp_pret);
cout << "Sortat dupa pret:\n";
for(int i = 0; i < n; i++){
cout << vec[i].denumire << " " << vec[i].pret << " " << vec[i].an << " " << vec[i].cantitate<<"\n";
}
sort(&vec[0], &vec[n], cmp_an);
cout << "Sortat dupa an:\n";
for(int i = 0; i < n; i++){
cout << vec[i].denumire << " " << vec[i].pret << " " << vec[i].an << " " << vec[i].cantitate<<"\n";
}
}
B se deschide si totul este ok