Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
noxon
PRAWIE elektronik - prawie robi...
Dołączył: 15 Lis 2006
Posty: 253
Przeczytał: 0 tematów
Skąd: [TK] bytom
|
Wysłany: Sob 1:25, 08 Gru 2007 Temat postu: |
|
|
Cytat: |
[link widoczny dla zalogowanych]
|
a tez wrzuce, co mi tam
ciut inaczej niz leon ;]
Kod: |
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////////////////////////
class WekD{
public:
int n,suma,*wi;
WekD(int liczbaElementowWektora);
~WekD();
void wpisz();
int operator+();
};
//////////////////////////////////////////////////////////////////////////////
//------------------------------------konstruktor-----
WekD::WekD(int l=1):n(l){
wi = new int[l];
suma=0;
cout<<"to jest konstruktor"<<endl;
}
WekD::~WekD(){
delete [] wi;
cout<<"to jest destruktor"<<endl;
}
//-------------------------------------operator--plus--jako--czesc--skladowa--klasy--
int WekD::operator +(){
suma=0;
for(int i=0;i<n;i++)
suma+=wi[i];
return suma;
}
//-------------------------------------wpisywanie--elementow--wektora---
void WekD::wpisz(){
for(int i=0;i<n;i++){
cout<<"podaj el "<<i+1<<endl;
cin>>wi[i];
}
}
//-------------------------------------operator--tylda--jako--osobna--funkcja---
int operator~(WekD wektor){
int suma=0;
for(int i=0;i<wektor.n;i++)
suma+=wektor.wi[i];
wektor.suma = suma;
return suma;
}
/////////////////////////////////////////////////--MAIN--////////////////////////////////////
int main(int argc, char* argv[])
{
WekD A(3),B,C(2);
int a;
A.wpisz();
cout<<"suma el wekt A, obl za pomoca operatora \"+\" "<<+A<<endl;
C.wpisz();
cout<<"suma el wekt C, obl za pomoca operatora \"~\" "<<~C<<endl;
getchar();
getchar();
return 0;
}
///////////////////////////////////////////////////////////////////////////////////
|
|
|
Powrót do góry |
|
|
|
|
staniol
ELEKTRONIK - on już ciągnie druty
Dołączył: 12 Paź 2006
Posty: 387
Przeczytał: 0 tematów
Skąd: Piekary Śl.
|
Wysłany: Śro 1:19, 12 Gru 2007 Temat postu: |
|
|
jakby ktos mogl to niech jeszcze napisze co klosowski ciekawego dal na 3 laborce???
|
|
Powrót do góry |
|
|
Gość
|
Wysłany: Śro 18:36, 12 Gru 2007 Temat postu: |
|
|
wie ktos jak to
"Utwórz klase bazowa i klase pochodna dla pojecia "telefon".
Sam ustal co moze byc w klasie bazowej, a co w pochodnej.
Dla kazdej klasy zdefiniuj konstruktor i destruktor(sygnalizujace, ze zostaly uruchomione).
Utworz met wirtualna "info" w obu klasach wypisujaca info al od klasy, do ktorej nalezy.
Zdefiniuj dwie zmienne wskaznikowe na typ bazowy, do jednej wpisz adres uzyskany z new dla typu bazowego, a do drugiej - dla typu pochodnego.
Uruchom "info" przez te wskazniki."
?
|
|
Powrót do góry |
|
|
Misiael
Sado-Elektro - wiecie gdzie ma lutownice
Dołączył: 14 Paź 2006
Posty: 502
Przeczytał: 0 tematów
|
Wysłany: Śro 20:01, 12 Gru 2007 Temat postu: |
|
|
Kod: | #define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <string>
using namespace std;
class telefon
{
public:
string rodzaj;
virtual void info();
telefon();
virtual ~telefon();
};
class marka : public telefon
{
public:
string model;
string generacja;
void info();
marka(string);
~marka();
};
marka::marka(string numer)
{
cout<<"DZIALA KONSTRUKTOR PODKLASY"<<endl;
model="nokia111111111\n";
generacja=numer;
}
marka::~marka()
{
cout<<"KASOWANIE MARKI !!"<<endl;
}
telefon::telefon()
{
cout<<"DZIALA KONSTRUKTOR GLOWNY"<<endl;
rodzaj=" g5\n";
}
telefon::~telefon()
{
cout<<"KASOWANIE TELEFONU"<<endl;
}
void telefon::info()
{
cout<<rodzaj;
}
void marka::info()
{
cout<<rodzaj;
cout<<endl<<model<<generacja;
}
int main()
{
int i,j;
string k1,k2;
cin>>k1>>k2;
cout<<"\ntworzenie obiektu TELEFON\n";
telefon *n;
n=new telefon;
cout<<"\n tworzenie obiektu marka\n";
marka *k;
k=new marka(k1);
cout<<"\ntworzenie obiektu MARKA\n";
marka *wsk1;
marka *n2;
n2= new marka(k2);
wsk1=n2;
cout<<"\nele tele ";
n->info();
cout<<"\nele marka ";
k->info();
n2->info();
delete n;
delete k;
system("pause");
return 0;
system("pause");
} |
ja to tak zrobilem
|
|
Powrót do góry |
|
|
Gość
|
Wysłany: Śro 20:36, 12 Gru 2007 Temat postu: |
|
|
Siemka może ktoś zrobić taki programik:
Utwórz klasę Zbior dla zbioru nieujemnych liczb całkowitych (od 0 do n-1). Wartość n niech będzie jednakowa dla wszystkich obiektów typu Zbior. Konstruktor domyślny tworzy zbiór pusty. Obecność elementu w zbiorze jest sygnalizowana wartością 1 w odpowiednim miejscu tablicy utworzonej dynamicznie za pomocą new, nieobecność jest sygnalizowana zerem. Na początku wszystkie elementy tablicy są wyzerowane, a po dołożeniu zbioru np. 5 i 13 elementy tablicy o indeksach 5 i 13 zostają ustawione na 1. Zdefiniuj operator + pozwalający dołożyć do zbioru pojedynczy element, operator + zwracający sumę dwóch zbiorów i metodę 'ma' sprawdzającą czy obiekt zawiera element o danej wartości, np. zb1.ma(13) zwraca 1 lub true gdy obiekt zb1 ma 1-kę na pozycji 13. Przydatne byłby też inne operatory jak np. * zwracający część wspólną dwóch zbiorów, ale tym się zajmij gdy wystarczy czasu. Uwaga: najmniej miejsca w pamięci wymagałoby, a może i najszybciej działo gdyby obecność lub nieobecność elementu była sygnalizowana jednym bitem, ale to...
Byłbym obowiązany za pomoc .
|
|
Powrót do góry |
|
|
noxon
PRAWIE elektronik - prawie robi...
Dołączył: 15 Lis 2006
Posty: 253
Przeczytał: 0 tematów
Skąd: [TK] bytom
|
Wysłany: Śro 21:55, 12 Gru 2007 Temat postu: |
|
|
Sirser napisał: |
Siemka może ktoś zrobić taki programik:
Utwórz klasę Zbior dla (...)
Byłbym obowiązany za pomoc.
|
prosze, oto programik :>
jezeli dziala tak jak chciales, mozesz czuc sie "obowiązany" heh
Kod: |
/////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
using namespace std;
const int N=10;
class Zbior{
public:
bool *lista;
Zbior();
~Zbior();
bool ma(int pozycja);
void operator+(int pozycja);
Zbior operator+(Zbior innyObiektKlasy);
Zbior operator*(Zbior innyObiektKlasy);
};
Zbior::Zbior(){
lista = new bool[N];
for(int i=0;i<N;i++)
lista[i]=false;
}
Zbior::~Zbior(){
delete [] lista;
}
bool Zbior::ma(int nr){
if(lista[nr-1])
return true;
else return false;
}
Zbior Zbior::operator *(Zbior elem){
Zbior temp;
for(int i=0;i<N;i++){
if(lista[i]==true && elem.lista[i]==true)
temp.lista[i]=true;
else temp.lista[i]=false;
}
return temp;
}
Zbior Zbior::operator +(Zbior elem){
Zbior temp;
for(int i=0;i<N;i++){
if(lista[i] || elem.lista[i])
temp.lista[i]=true;
else temp.lista[i] = false;
}
return temp;
}
void Zbior::operator+(int nr){
if(!lista[nr-1])
lista[nr-1]=true;
else
cout<<"na tej pozycji jest juz element"<<endl;
}
//////////////////////////////////////////////////////////////////////////////////////
int main ()
{
Zbior lista1,lista2,OR,AND;
lista2+5;
lista2+9;
lista2+7;
lista2+2;
lista1+5;
lista1+2;
lista1+1;
lista1+9;
OR=lista1+lista2;
AND=lista1*lista2;
for(int i=1;i<=N;i++)
cout<<i<<") \t"<<lista1.ma(i)<<" \t"<<lista2.ma(i)<<endl;
cout<<"\nsuma 2 obiektow\n\n";
for(int i=1;i<=N;i++)
cout<<i<<") \t"<<OR.ma(i)<<endl;
cout<<"\niloczyn (cz.wspolna) 2 obiektow\n\n";
for(int i=1;i<N;i++)
cout<<i<<") \t"<<AND.ma(i)<<endl;
getchar();
getchar();
return 0;
}
|
|
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|