theparasite Posted March 6, 2015 Report 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
SticKyWoX Posted March 6, 2015 Report 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
theparasite Posted March 6, 2015 Author Report 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
siur Posted March 6, 2015 Report 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
SticKyWoX Posted March 6, 2015 Report 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
DarkDanut96 Posted March 6, 2015 Report 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
Eustatiu Posted March 8, 2015 Report 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