theparasite Posted March 6, 2015 Report Share Posted March 6, 2015 Salutari. Am o intrebare referitoare la un subiect dat la SIMULAREA BAC INFORMATICA 2015Subprogramul F este definit al?turat. Scrie?ice valori au F(105,105) respectivF(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): 0De 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 valoareeste conform cerin?ei.F(105,105)=0;F(105,42)=4." Quote Link to comment Share on other sites More sharing options...
SticKyWoX Posted March 6, 2015 Report Share Posted March 6, 2015 Aceeasi nedumerire o am si eu, o sa trimit o sesizare la edu. Si eu am pus aceleasi valori ca si tine. Quote Link to comment Share on other sites More sharing options...
theparasite Posted March 6, 2015 Author Report Share Posted March 6, 2015 (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 scrierealui 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 March 6, 2015 by theparasite Quote Link to comment Share on other sites More sharing options...
siur Posted March 6, 2015 Report Share Posted March 6, 2015 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. Quote Link to comment Share on other sites More sharing options...
SticKyWoX Posted March 6, 2015 Report Share Posted March 6, 2015 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<<" ";} 1 Quote Link to comment Share on other sites More sharing options...
DarkDanut96 Posted March 6, 2015 Report Share Posted March 6, 2015 (edited) la s2 ex 4 am facut ceva de genu:i:=1;while i<=length(s) dobeginif 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 March 6, 2015 by DarkDanut96 Quote Link to comment Share on other sites More sharing options...
Eustatiu Posted March 8, 2015 Report Share Posted March 8, 2015 la s2 ex 4 am facut ceva de genu:i:=1;while i<=length(s) dobeginif 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 Quote Link to comment Share on other sites More sharing options...