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

Fisierul "Numere.in" conține numere intregi dispuse pe mai multe linii. Sa se scrie un program care afiseaza în fisierul "Numere.out" numărul cel mai mic și cel mai mare de pe fiecare linie din fisierul inițial. Cele doua numere se vor scrie pe aceeași linie, separate prin spațiu.

Va rog, o sa verifice tema și problema asta chiar nu îmi iese!
Doar răspunsuri serioase, altfel raport.​


gugleadennis88: Nu este zis, cum vei opri programul, (ex introducem un caracter special atunci oprim tot programul ) ??
annna82: nu știu. asa e cerinta
gugleadennis88: atunci nush, daca trebuie de introdus cate linii vor fi, sau un simbol ca sa opreasca programul e usor dar altfel nu stiu, scuze
asdgjhaskghaskjlghsa: Se opreste automat dupa ce termina de bagat in numere.out, daca e facut in C++
asdgjhaskghaskjlghsa: Care sunt numerele? Sau iti fac eu un fisier cu numere?
annna82: numerele nu sunt date

Răspunsuri la întrebare

Răspuns de asdgjhaskghaskjlghsa
2

Răspuns:

#include <fstream>

using namespace std;

ifstream f("Numere.in");

ofstream g("Numere.out");

void main()

{    

   int a,b;

   while (!f.eof())

   {

       f >> a;

       f >> b;

       if (a > b)

           g << "Cel mai mare: " << a << ", cel mai mic:" << b << endl;

       else if (a < b)

           g << "Cel mai mare: " << b << ", cel mai mic:" << a << endl;

   }

}

Explicație:

  #include<fstream> - biblioteca pentru file.

  using namespace std - sa nu putem mereu std::f>>a

  ifstream f("Numere.in") - Declaram Input File, adica numere.in

  ifstream f("Numere.out") - Declaram Output File, adica numere.out

  void main - functia de baza, punem void pentru ca nu returneaza nimic.

  int a, b; - declaram variabilele pe care le folosim in algoritm.

  while(!f.eof()) - f.eof() inseamna sfarsitul unui fisier, deci executam algoritmul in timp ce nu suntem la sfarsitul fisierului, deci !f.eof()

  f >> a, respectiv f>> b, luam cele doua numere, pe rand si le memoram in a respectiv b.

  if (a > b) - verificam daca a mai mare ca b

  else if(a < b) - daca a nu e mai mare ca b, atunci verificam daca e mai mic.

   g << "Cel mai mare: " << a << ", cel mai mic:" << b << endl;

     respectiv

  g << "Cel mai mare: " << b << ", cel mai mic:" << a << endl;

  Scrie in ordine care e mai mare si care e mai mic dintre cele doua numere, conform conditiei.

OBS: am pus else if, pentru a salva mai multa memorie RAM, se poate si doar cu if, dar daca primul if este adevarat, nu il mai verifica si pe al doilea, salvand memorie si timp de executie.

Fisier.in:

10 11

2 3

4 6

4 2

6 2

62 69

420 156


asdgjhaskghaskjlghsa: Sper ca am explicat concret.
gugleadennis88: da numere gresite
gugleadennis88: la mine
asdgjhaskghaskjlghsa: Verifica conditia de la if()
asdgjhaskghaskjlghsa: Ce numere pune mai exact?
Alte întrebări interesante