Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Teme / Supraincarcare operatori : Martie 21, 2017, 15:46:10
Hello.Am urmatoarea problema:
Scrieti o clasa Matrix. Elementele sunt de tip intreg.
-        Pentru simplificare se considera matricea patratica
-        Elementele se citesc de la tastatura

Se permit opratiile:
Matrix  a;
Matrix  b;
Matrix c(a);
Matrix d = a;
Matrix e = a + b;

De ce primesc eroare de segmentation fault?Codul este acesta:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<stdio.h>
#include<string.h>

using namespace std;

class matrix
{ private:
  int n;
  int p[3][3];
 
 public:
   
   void citire(int n);
   void afisare();
   
  matrix(int x)
  {n=x;
  };
  matrix(const matrix &obj);
  ~matrix() {}   


matrix operator = (matrix m2);
matrix operator + (matrix m2);
};

matrix::matrix(const matrix &obj)
{ int i,j;
   for(i=0;i<n;i++)
    {for(j=0;j<n;j++)
      p[j]=obj.p[j];
   }
}

void matrix::citire(int n)
 {int i,j;
    for(i=0;i<n;i++)
      { for(j=0;j<n;j++)
         cin>>p[j];
      }
 }
 
 void matrix::afisare()
 {int i,j;
    for(i=0;i<n;i++)
      { for(j=0;j<n;j++)
         cout<<p[j];
      }
 }
 
 matrix matrix::operator + (matrix m2)
 {  int i,j;
    for(i=0;i<n;i++)
    { for(j=0;j<n;j++)
       p[j]=m2.p[j] + p[j];
    }
   
 }
 
matrix matrix::operator = (matrix m2)
 { int i,j;
    for(i=0;i<n;i++)
    {for(j=0;j<n;j++)
      p[j]=m2.p[j];
     }
    return *this;
 }
 
int main()
{
  matrix a(2);
  a.citire(2);
 
  cout<<"-------"<<endl;
  matrix c(a);
  matrix d(2);
  d=a;
  d.afisare();
  ~matrix d;
  ~matrix a;
  }
2  infoarena - concursuri, probleme, evaluator, articole / Teme / Ierarhie de clase : Martie 21, 2017, 15:42:53
Salut. Am o problema cu clase:
Sa se scrie un program C++ care tine evident cainilor intr-un cabinet veterniar.
Sunt 2 categorii de caini:
•        Caini cu pete
•        Caini fara pete

Subiecte urmarite:
-        Ierarhia de clase
-        Initializare membrilor
 
Introduc atat cainii cu pete cat si cei fara pete intr-o lista. Trebuie sa fac o functie virtuala de afisare.Am facut asta,dar totusi am erori si nu pot afisa fiecare clasa derivata in parte.Ma puteti ajuta?

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<stdio.h>
#include<string.h>


using namespace std;

class lista;

class caini
{
private:
   char nume[20], rasa[20];
   int an;
    caini*urm;

public:
   caini(char n[20], char r[20], int an1)
   {
      strcpy(nume, n);
      strcpy(rasa, r);
      an = an1;
        urm = NULL;
   }


   virtual void afisare()
   {
      cout << "----------------------\n";
      cout << "nume: " << nume << endl;
      cout << "rasa: " << rasa << endl;
      cout << "an: " << an << endl;
   }
   friend class lista;
};

class cu_pete :public caini
{
private:
   int np;

public:
   cu_pete(char n[20], char r[20], int an1, int np1) :caini(n, r, an1)
   {
      np = np1;
   }

   void afisare()
   {
      caini::afisare();
      cout << "nr pete: " << np << endl;
   }
   friend class lista;
};

class fara_pete :public caini
{
private:
   char culoare[20];

public:
   
   
   fara_pete(char n[20], char r[20], int an1,char c[20]) :caini(n, r, an1)
   {
      strcpy(culoare, c);
   }

   void afisare()
   {
      caini::afisare();
      cout << "culoare: " << culoare << endl;
   }
   friend class lista;
};

class lista
{
public:
   caini*prim;
   void adaugare(caini*a);
   void an2();
       
};


void lista::adaugare(caini*a)
{
   caini*p;
   p = prim;
   if (p)
   {
      if (strcmp(p->nume, a->nume)>0)
      {
         a->urm = prim;
         prim = a;
      }
      else
      {
         while (p->urm &&strcmp((p->urm)->nume, a->nume)<0)
            p = p->urm;
         a->urm = p->urm;
         p->urm = a;
      }
   }
   else
      prim = a;
}

void lista::an2()
{
   caini*c;
   c = prim;
   while(c)
{
   if (c->an == 2)
     c->afisare();
          c=c->urm;
     cout << "-------";
}
}
 

void introdu(lista &l, int x)
{
   caini*c;
   char nume[20]; char rasa[20]; int an; int np; char culoare[20];
   cout << "Dati numele: ";
   cin >> nume;
   cout << "Dati rasa: ";
   cin >> rasa;
   cout << "Dati varsta: ";
   cin >> an;
   
      if (x == 0)
   {
      cu_pete*p;
      cout << "Dati nr pete: ";
      cin >> np;
       p = new cu_pete(nume, rasa, an, np);
      c = p;
      l.adaugare(c);
      
   }
   else
      if (x == 1)
      {
         fara_pete*f;
         cout << "Dati culoarea: ";
         cin >> culoare;
         f = new fara_pete(nume, rasa, an, culoare);
         c = f;
         l.adaugare(c);
      }
}

int main()
{
   int o;
   lista l;
   l.prim = NULL;
   caini *a;
   cu_pete p;
   fara_pete f;
   
   do
   {
      cout << "1.Adauga caini cu pete\n";
      cout << "2.Adauga caini fara pete\n";
      cout << "3.Afisare caini cu pete\n";
      cout << "4.Afisare caini fara pete\n";
        cout << "5.varsta de 2 ani\n";
        cout << "0.iesire\n";
      cin >> o;
      switch (o)
      {
      case 1:introdu(l, 0);
         break;
      case 2:introdu(l, 1);
         break;
      case 3:a=&p;
             a->afisare();
         break;
      case 4:a=&f;
             a->afisare();
         break;
                case 5:l.an2();
         break;
        }
   } while (o != 0);
}



3  infoarena - concursuri, probleme, evaluator, articole / Informatica / Structuri de date.Produse. (incepatori) : Noiembrie 15, 2015, 15:25:44
1. Să se scrie un program care ţine evidenţa produselor electronice dintr-un magazin. Pentru fiecare produs se specifică în parte: producător, model, pret, categorie.
În functie de categoria introdusă de la tastatură se vor citi următoarele caracteristici:
- Pentru categoria TELEFOANE: rețeaua, culoare, greutate, bucăti
- Pentru categoria TABLETE: Tip procesor, Ram, Diagonala, bucati
Să se facă un meniu care să conţină următoarele operaţii:
1. Citirea produselor deja salvate aflate în fișierul „stoc.txt” si afișarea acestora pe ecran
2. Adăugarea unui nou produs în stocul magazinului și salvarea acestuia în fișierul „stoc.txt” (nu se va crea un nou fisier deoarece pot exista produse adăugate anterior)
3. Afişarea tuturor produselor din magazin.
4. Afișarea tuturor telefoanelor din magazin
5. Cautarea unui telefon dupa producator și după rețea
6. Sortarea categoriei TABLETE după diagonală
7. Sortarea categoriei TELEFOANE după culoare
8. Să se afișeze telefoanele care au un preț mai mic decât cel citit de la tastatură pe ecran și salvarea lor într-un fișier numit „oferta.txt”
9. Iesire
Observatii:
 Programul se va implementa folosind stucturi de date.
 Se va verifica dacă există deja produse salvate în fișier, dacă vor exista se vor încărca în evidență și după aceea se va putea adăuga un produs nou.
 Pentru fiecare opțiune se va crea o funcție, iar variabilele se vor transmite prin adresa.
 Nu este permisă folosirea variabilelor globale.
 Meniul realizat va fi afișa pe ecran în timpul testării programului.
4  infoarena - concursuri, probleme, evaluator, articole / Teme / Complement fata de 9 : Martie 21, 2015, 19:44:05
Scrieti un subprogram care primeste prin intermediul parametrului n un nr nat si returneaza numarul obtinut prin inlocuirea fiecarei cifre a numarului n cu complementul sau fata de 9.

procedure compl(var n:integer);
var nr,p:integer; c:byte;
begin
 nr:=0; p:=1;
  while n<>0 do
   begin
    c:=n mod 10;
    c:=9-c;
    n:=n div 10;
    nr:=c*p+nr;
    p:=p*10;
   end;
  n:=nr;
end;

begin
 readln(n);
 compl(n);
 write(n);
end.

Primesc exitcode 201 pentru n=120445. Ma poate ajuta cineva?Multumesc anticipat.
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines