Jump to content
theparasite

Intrebare... SIMULARE BAC 2015

Recommended Posts

Posted

Salutari. Am o intrebare referitoare la un subiect dat la SIMULAREA BAC INFORMATICA 2015


Subprogramul F este definit al?turat. Scrie?i
ce valori au F(105,105) respectiv
F(105,42).
(6p.)
int F(int x, int y)
{ if(x==y) return 1;
else
{ if(x<y)
{ x=x+y;
y=x-y;
x=x-y;
}
return 1+F(x-y,y);
}
}

Rezultatul meu a fost pentru F(105,105) : 1 si pentru F(105,42) : 4.

In barem gasesc ca F(105,105): 0

De ce?

Poftim codul transpuns in C++(CODEBLOCKS)


#include <iostream>
using namespace std;

int F(int x, int y)
{
if(x==y) return 1;
else {if(x<y) { x=x+y; y=x-y; x=x-y;} return 1+F(x-y,y);}

}
int main()
{ int x,y;
cout<<"dati x"; cin>>x;
cout<<"dati y"; cin>>y;
cout<<F(x,y);
}

Rulat, imi da rezultatul 1 pentru F(105,105) si 4 pentru F(105,42)...

Problema este ca in barem gasesc:

"Se acord? numai 3p. dac? doar o valoare

este conform cerin?ei.

F(105,105)=0;

F(105,42)=4."

Posted (edited)

+++

Rezolvare?

Subprogramul Cifre are un singur parametru, n, prin care prime?te un num?r natural

(nÎ[0,10^9]). Subprogramul afi?eaz? pe ecran toate cifrele distincte care apar în scrierea

lui n, separate prin câte un spa?iu.

Scrie?i defini?ia complet? a subprogramului.

Exemplu: dac? n=24207, se afi?eaz? cifrele 0 2 4 7, nu neap?rat în aceast? ordine.

Am incercat eu minunile..dar n-am stiut sa le afisez doar odata...

 void cifre(unsigned long n)
{ unsigned long x,v[10];
unsigned i=0;
x=n;
while(x!=0) { v[i]=x%10;
x=x/10;
i++;
}

N-am stiut sa le afisez doar odata...

Edited by theparasite
Posted

1 si 4 am pus si eu.

La "Subprogramul Cifre" am facut un vector cu cifrele de la 0 la 9 si verific pe rand (cu un while si un aux= aux / 10) daca cifra respectiva se afla in numar.

Posted

Nu am timp acum sa-ti scriu algoritmul, dar ti-l descriu:

Iei un vector A[10], atribui fiecarui element valoarea nula (0).

while(n>0){

cif=n%10;

A[cif]=1;

n=n/10;

}

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

if(A==1) cout<<i<<" ";

}

  • Downvote 1
Posted (edited)

la s2 ex 4 am facut ceva de genu:

i:=1;

while i<=length(s) do

begin

if s(i)='a' and s(i+1)='e' ) then begin s:=delete(s,s,2); i=1; end; else i:=i+1;

end;

e bine ? ce credeti ?

Edited by DarkDanut96
Posted
la s2 ex 4 am facut ceva de genu:

i:=1;

while i<=length(s) do

begin

if s(i)='a' and s(i+1)='e' ) then begin s:=delete(s,s,2); i=1; end; else i:=i+1;

end;

e bine ? ce credeti ?

este bine, asa am facut si eu, ai citit daca a si e sunt consecutive si daca sunt i=i+2 adica sare peste ele la afisare. La exercitiul din topic este 1 si 4 , m-am grabit si in loc de 4 am pus 5 am crezut ca uitasem sa adaug acel "return 1" din cazul if.. dar ideea e ca este bine 1 si au gresit ei baremul

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...