👤

Examenul de bacalaureat naţional 2018

Proba E. d)

Informatică

Limbajul C/C++

Varianta 1

4. Primii termeni ai șirului definit alăturat

(unde n este un număr natural nenul)

sunt:

0, 3, 8, 15, 24, 35, 48, 63, 80 ....

fn=

0 dacă n=1

3 dacă n=2

2∙fn-1-fn-2+2 altfel

Se citesc de la tastatură două numere naturale din intervalul [0,109], x și y,

reprezentând valorile a doi termeni aflați pe poziții consecutive în şirul dat (x
cere să se scrie în fişierul text bac.txt, în ordine strict descrescătoare, separați prin câte

un spațiu, toţi termenii şirului mai mici sau egali cu y.

Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei

utilizate.

Exemplu: dacă se citesc numerele

48 63

fişierul bac.txt conţine numerele

63 48 35 24 15 8 3 0

a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)

b) Scrieţi programul C/C++ corespunzător algoritmului proiectat. (8p.)




Help!!!!!!!!!!!!!! a si in limbaj de clasa a X ! verificati , nu se afiseaza si puterea si functia


Răspuns :

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ofstream g("bac.txt");

int x,y,dif,t;

int main()

{

   cin >> x >> y;

   g << y << " " << x;

   if (x!=0)

   {

       t=x; dif=y-x;

       while (t!=3)

       {

           dif-=2;

           t-=dif;

           g << " " << t;

       }

       g << " " << 0;

   }

}

Explicație:

63 48 35 24 15 8 3 0

Fiind dati x si y,  48 şi 63, diferenţa dintre ei este 15. Pentru a afla precedentul lui 48, scădem 13, apoi 11, apoi 9, ş.a.m.d