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

Ajutaţimă vărog mult.să se rezolve punctul a şi b.rog mult!desigur dau coroana

Anexe:

VxF: Ai mai postat asta în https://brainly.ro/tema/10244445 . Acolo ai scris că vrei C++. Acum din captura de ecran se poate deduce că este din cartea lui Andrei Braicov, el însă a scris culegere de probleme de Turbo Pascal. Promit să întreb pentru ultima dată: în ce limbaj vrei?
misabalatel: În C++
misabalatel: Eu învăţ limbajul C++,profesoara mia dac aceste sarcini din această imagine,
misabalatel: Dacă este posibil a şi b de rezolvat e bine,
misabalatel: Mă puteţi ajuta?

Răspunsuri la întrebare

Răspuns de VxF
2

Răspuns:

#include <iostream>

#include <iomanip>

#include <fstream>

#include <vector>

#include <climits>

int main()

{

   std::vector<std::string> listaDenumire;

   std::fstream fisier;

   std::string denumire;

   double pret, pretMinim = INT_MAX;

   fisier.open("produse_alimentare.txt", std::fstream::in);

   if (fisier.is_open()) {

       std::cout << "Produse existente în fișierul de date:" << std::endl;

       while (fisier.peek() && ! fisier.eof()) {

           std::getline(fisier, denumire, ';');

           fisier >> pret;

           fisier.get();

           std::cout << denumire << ": " << pret << " RON" << std::endl;

       }

       fisier.close();

   }

   fisier.open("produse_alimentare.txt", std::fstream::out | std::fstream::app);

   if (fisier.is_open()) {

       std::cout << "Produse de adăugat în fișierul de date (denumire goală pentru terminare):" << std::endl;

       do {

           std::cout << "Denumire: ";

           std::getline(std::cin, denumire);

           if (! denumire.empty()) {

               std::cout << "Preț: ";

               std::cin >> pret;

               std::cin.get();

               fisier << denumire << ";" << pret << std::endl;

           }

       } while (! denumire.empty());

       fisier.close();

   }

   fisier.open("produse_alimentare.txt", std::fstream::in);

   if (fisier.is_open()) {

       std::cout << "Produsele cu cel mai mic preț:" << std::endl;

       while (fisier.peek() && ! fisier.eof()) {

           std::getline(fisier, denumire, ';');

           fisier >> pret;

           fisier.get();

           if (pretMinim > pret) {

               pretMinim = pret;

               listaDenumire.clear();

           }

           if (pretMinim == pret) {

               listaDenumire.push_back(denumire);

           }

       }

       fisier.close();

   }      

   for (int i = 0; i < listaDenumire.size(); i++) {

       std::cout << listaDenumire[i] << ": " << std::setprecision(2) << pretMinim << " RON" << std::endl;

   }

}

Explicație:

Programul stochează datele în fișierul produse_alimentare.txt, fiecare produs pe rând separat cu denumire și preţ separate cu „;”.

La fiecare rulare programul face 3 chestii:

  • Listează conţinutul existent al fișierului de date
  • Salvează în fișier produse noi introduse de utilizator
  • Parcurge conţinutul actualizat al fișierului de date și pentru cel mai mic preţ găsit reţine toate denumirile într-un vector, a cărui conţinut afișează la sfârșit
Alte întrebări interesante