Informatică, întrebare adresată de robertavigh, 8 ani în urmă

Va rog sa ma ajutați,este la Informatică,Vectorii.Dau coroana.​
Erercitile de la A si B

Anexe:

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

#include <fstream>

#include <iostream>

using std::cout, std::cin, std::endl, std::size_t, std::ifstream, std::ofstream;

/* Funcția crează un vector de N dimensiune, dacă „citeșteElemente” este setat la „true” vei introduce de la tastatură elementele vectorului, altfel le preluăm din fișier*/

static int* creareVector(const size_t& dimensiuneVector, bool citesteElemente) {

 int* pVector = new int[dimensiuneVector];

 if (citesteElemente) {

   for (size_t i = 0; i < dimensiuneVector; ++i) {

     cout << "pVector[" << i << "] = ";

     cin >> pVector[i];

   }

 }

 return pVector;

}

static void primulExercitiu() {

 // Dimensiunea vectorului

 size_t dimensiuneVector;

 cout << "Introdu dimensiunea vectorului >> ";

 cin >> dimensiuneVector;

// Dacă dimensiunea este mai mare decât 100 ieșim din program

 if (dimensiuneVector > 100) {

   exit(EXIT_FAILURE);

 }

 // Creăm vectorul cu dimensiunea dată

 int* pVector = creareVector(dimensiuneVector, true);

 // Și afișăm elementele unul după celălalt

 for (size_t i = 0; i < dimensiuneVector; ++i) {

   cout << pVector[i] << " ";

 }

 cout << endl;

 // Eliberăm zona de memorie alocată

 delete[] pVector;

}

// La fel ca și-n funcția de mai sus

static void alDoileaExercitiu() {

 size_t dimensiuneVector;

 cout << "Introdu dimensiunea vectorului >> ";

 cin >> dimensiuneVector;

 if (dimensiuneVector > 100) {

   exit(EXIT_FAILURE);

 }

 int* pVector = creareVector(dimensiuneVector, true);

 // Doar că aici afișăm elementele unul sub celălalt

 for (size_t i = 0; i < dimensiuneVector; ++i) {

   cout << pVector[i] << "\n";

 }

 cout << endl;

 delete[] pVector;

}

// La fel ca și-n funcțiile de mai sus

static void alTreileaExercitiu() {

 size_t dimensiuneVector;

 cout << "Introdu dimensiunea vectorului >> ";

 cin >> dimensiuneVector;

 if (dimensiuneVector > 100) {

   exit(EXIT_FAILURE);

 }

 int* pVector = creareVector(dimensiuneVector, true);

 // Doar că aici afișăm invers vectorul, element după element

 for (int i = static_cast<int>(dimensiuneVector) - 1; i >= 0; --i) {

   cout << pVector[i] << " ";

 }

 cout << endl;

 delete[] pVector;

}

// La fel

static void alPatruleaExercitiu() {

 size_t dimensiuneVector;

 cout << "Introdu dimensiunea vectorului >> ";

 cin >> dimensiuneVector;

 if (dimensiuneVector > 100) {

   exit(EXIT_FAILURE);

 }

 int* pVector = creareVector(dimensiuneVector, true);

 // Doar că afișăm vectorul invers, elementele unul sub celălalt

 for (int i = static_cast<int>(dimensiuneVector) - 1; i >= 0; --i) {

   cout << pVector[i] << "\n";

 }

 cout << endl;

 delete[] pVector;

}

/* Aici citim din fișierul „vector.txt” și afișăm în fișierul „afișare.txt”, am combinat cele două exerciții într-unul singur. */

static void primulExercitiuSiAlDoileaFisier() {

 // deschidem un ifstream ca să citim din fișier

 ifstream fin("vector.txt", ifstream::in);

 // și un ofstream ca să scriem în fișier

 ofstream fout("afisare.txt", ofstream::app);

 // Dacă unul dintre cele două n-a putut fi deschis, ieșim din program

 if ((!fin.good()) || (!fout.good())) {

   exit(EXIT_FAILURE);

 }

 // Citim dimensiunea vectorului

 size_t dimensiuneVector;

 cout << "Introdu dimensiunea vectorului >> ";

 cin >> dimensiuneVector;

 // Dacă dimensiunea este mai mare de 100 ieșim din program

 if (dimensiuneVector > 100) {

   exit(EXIT_FAILURE);

 }

 /* De data asta îi dăm celui de al doilea argument valoarea „false” deoarece vrem să citim elementele în vector dintr-un fișier, nu de la tastatură */

 int* pVector = creareVector(dimensiuneVector, false);

 // Le citim din fișier și le introducem în vector

 for (size_t i = 0; i < dimensiuneVector; ++i) {

   fin >> pVector[i];

 }

 // închidem ifstream-ul deoarece nu mai avem nevoie de el

 fin.close();

 // afișăm unul după celălalt în „afisare.txt” cu ajutorul ofstreamului

 for (size_t i = 0; i < dimensiuneVector; ++i) {

   fout << pVector[i] << " ";

 }

 fout << endl;

 // afișăm unul sub celălalt în „afisare.txt” cu ajutorul ofstreamului

 for (size_t i = 0; i < dimensiuneVector; ++i) {

   fout << pVector[i] << "\n";

 }

 // închidem ofstream-ul deoarece nu mai avem nevoie de el

 fout.close();

 // și eliberăm zona de memorie alocată

 delete[] pVector;

}

int main() {

 // Cele 6 exerciții

 primulExercitiu();

 alDoileaExercitiu();

 alTreileaExercitiu();

 alPatruleaExercitiu();

 primulExercitiuSiAlDoileaFisier();

 return 0;

}

Alte întrebări interesante