Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Teme / Problema divide et impera : Aprilie 25, 2014, 09:12:06
Salut, sunt clasa a 11-a si as vrea sa invat cum functioneaza divide et impera mai bine:

Citat
#include<iostream> // prodsul numerelor
using namespace std;
int n;
void(divizeaza(int s,int d,int &m)
{
   cout<<"Acum sunt la divizeaza iar s="<<s<<" d="<<d<<" m="<<m<<"\n";
   m=s+d/2;
   cout<<m<<"="<<s<<"+<<d<<"\2"<<"\n";
}
void combina(int x,int y, int &z) // combina solutiile
{
   cout<<"Acum sunt la combina iar x="<<x<<" y="<<y<<" z="<<z<<"\n";
   z=x+y;
   cout<<z<<"="<<x<<"+"<<y<<"\n";
}
void dei(int s, int d, int &z)
{
   cout<<"Acum sunt la dei iar s="<<s<<" d="<<d<<" z="<<z<<"\n";
   int m,x1,x2; // ce reprezinta m, x1, x2 si unde mai sunt folosite ?
   cout<<"dei iar m="<<m<<" x1="<<x1<<" x2="<<x2<<"\n";
   if(s==d)
   {
      cout<<"s==d adevarat"<<"\n";
      z=s*(s+1);
      cout<<"asa ca "<<z<<"="<<s"*"<<(s+1)<<;
   }
   else
   {
      cout<<"acum incepe sirul ala lung divizeaza, dei, dei, combina";
      divizeaza (s,d,m);
      dei (s,m,x1);
      dei (m+1,d,x2);
      combina (x1,x2,z);
   }
   int main()
   {
      int i,z;
      cin>>n;
      cout<<"acum incepe programul principal iar i="<<i<<" n="<<n<<" si z="<<z<<"\n";
      if(i=1;i<=n;i++)
         cin>>v;
      dei(1,n,z);
      cout<<"acum a iesit din subprograme"<<"\n";
      cout<<z;
      return 0;
   }

Scopul algoritmului este sa inmulteasca toate numerele prin divide et impera dar nu l-am facut bine, imi da cu eroare, ma puteti ajuta ?
Spre exemplu o eroare imi spune ca "m" este declarat fara tip, nu inteleg la ce se refera ?
Problema este facuta in MinGW.
2  infoarena - concursuri, probleme, evaluator, articole / Teme / Răspuns: Problema Subprograme : Martie 13, 2013, 22:08:02
Multumesc Smile
3  infoarena - concursuri, probleme, evaluator, articole / Teme / Problema Subprograme : Martie 11, 2013, 21:12:31
Salut, am ajuns la scoala la subprograme si am incercat sa fac un sub program care ridica numarul "n" la puterea "p", doar ca nu stiu unde gresesc ca-mi iese cu totul altceva. Mentionez ca abia am invatat sa fac subprograme si nu stiu multe despre ele.

Citat
#include<iostream>
using namespace std;
int putere(int p,int n)
{
   int i;
   for(i=0;i<=p;i++)
      n*=n;
   return n;
}
int main()
{
int n,p;
cout<<"n=";
cin>>n;
cout<<"p=";
cin>>p;
cout<<putere(p,n);
return 0;
}

4  infoarena - concursuri, probleme, evaluator, articole / Teme / Răspuns: Problema Info clasa a 10-a : Decembrie 03, 2012, 23:22:40
Multumesc  Very Happy
5  infoarena - concursuri, probleme, evaluator, articole / Teme / Problema Info clasa a 10-a : Decembrie 03, 2012, 21:12:15
Buna ziua, as dori daca se poate sa ma ajutati cu o problema la info. Cerinta este "Se citesc n numere intregi, sa se afiseze pe linii distincte suma cifrelor fiecarui numar", am facut programul de la tastatura pe ecran si merge, dar cand il fac din fisier in fisier nu gaseste nici o variabila si nici 'fout', acceasi problema o am si la alte algoritme din fisier in fisier, nu stiu unde gresesc de nu imi recunoaste nici o variabila si nici 'fout'.
Folosesc MinGW Developer Studio 2.05 de la oji kit.

Tastatura pe ecran
Cod:
#include<iostream>
using namespace std;
int n,s,i,nr;
int main()
{
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"nr=";
cin>>nr;
s=0;
while(nr)
{
s=s+nr%10;
nr=nr/10;
}
cout<<s<<"\n";
}
return 0;
}


Fisier is fisier
Cod:
#include<fstream>
using namespace std;
ifstream fin("numere.in")
ofstream fout("numere.out")
int n,s,i,nr;
int main()
{
fin>>n; // citesc din folderul numere.in un numar
for(i=1;i<=n;i++)
{
fin>>nr;
s=0;
while(nr)
{
s=s+nr%10;
nr=nr/10;
}
fout<<s<<"\n"; //afiseaza in folder iesire
}
fin.close
fout.close
return 0;
}
6  infoarena - concursuri, probleme, evaluator, articole / Teme / Răspuns: Ani bisecti : Noiembrie 25, 2011, 19:21:24
Mersi mult, am inteles Very Happy
7  infoarena - concursuri, probleme, evaluator, articole / Teme / Ani bisecti : Noiembrie 24, 2011, 20:31:46
Sunt clasa a 9-a si sunt incepator la informatica. Am o tema pe care nu o pot rezolva ma puteti ajuta ?

Cerinta:O problema importanta in astrologie este determinarea anilor bisecti. Un an se considera "bisect" daca este multiplu de 4, dar nu este multiplu de 100. Dintre anii eliminati conform acestui criteriu sunt considerati "bisecti" cei care sunt multipli de 400. Scrieti un program care determina si afiseaza toti anii bisecti intre an1 si an2.

Date de intrare: De la tastatura se vor citi valorile an1 si an2
Date de iesire: Se vor afisa anii bisecti din intervalul [an1;an2], separati prin cate un spatiu.
Restrictii si Precizari: 1600<=an1,an2<=2200

Exemplu:
Intrare: an1=1990 an2=2005
Iesire: 1992 1996 2000 2004
Explicatie: 1992, 1996 si 2004 sunt multipli de 4 si nu sunt multiplii de 100, iar 2000 este multiplu de 400.

Am facut un algoritm, dar nu stiu unde am gresit fiindca dupa ce pornesc programul si introduc an1 si an2, programul se termina si nu imi afisaza anii. Imi puteti arata cum se face corect si eventual sa imi spuneti si unde am gresit ? (folosesc MinGW Developer Studio )

Cod:
#include<iostream>
using namespace std;
int an1,an2;
int main()
{
cout<<"an1=";
cin>>an1;
cout<<"an2=";
cin>>an2;
    while(an2!=an1)
an2--;
if(((an2%4==0)&&(an2%100!=0))||(an2%400==0))
cout<<an2<<" ";
return 0;
}
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines