GRY-Online.pl --> Archiwum Forum

Czy zna sie ktos na porgramowaniu C++

23.03.2006
16:12
smile
[1]

Gandalf-biały [ Mithrandir ]

Czy zna sie ktos na porgramowaniu C++

Witam mogłby ktoś pomóc zrobic te zadania ?? Bede wdzieczny za zrobienie 2 pierwszych gdyz to wystarczy na zaliczenie... a reszta na lepsza ocene

1. Wykonać i przetestować klasy z listy zadań na ćwiczenia.
2. Napisać klasę Ulamek, pamiętającą ułamek zwykły jako licznik i mianownik. Przeładować operatory dodawania, odejmowania, dzielenia, mnożenia dla tej klasy. Przeładować również operator strumieniowy "<<".
3. Napisać klasę podobną jak w zadaniu 2, ale pamiętającą część całkowitą oraz licznik i mianownik pozostałej części (wówczas zawsze licznik < mianownik).
4. Napisać klasę Macierz do pamiętania macierzy prostokątnej o dowolnej liczbie wierszy i kolumn. Przeładować odpowiednie operatory dla operacji macierzowych. Operator mnożenia może mieć argumenty Macierz*Macierz, ale też Macierz*float. Stworzyć odpowiednie konstruktory i inne niezbędne metody (jakie?).

Jeśli osoba umie wykonać powyższe zadania i zrozumiała treści prezentowane na ćwiczeniach, to nie powinna mieć problemu z rozwiązaniem zadań, które będą do wykonania na laboratorium.

23.03.2006
16:16
smile
[2]

Regis [ ]

Pwr->Eka->Inf 2 sem. z prof. Kisilewiczem? :D

23.03.2006
16:30
[3]

wuluk [ blind in darkness ]

Posta wcielo wiec tym razem tylko wklejam:

//#include <cstdlib>
#include <iostream>

using namespace std;

class ulamek‹

int nom, denom;
public:
ulamek();
ulamek(int nom, int denom);
ulamek operator+(const ulamek &b)‹return ulamek((nom*b.denom)+(b.nom*denom),denom*b.denom);›;
ulamek operator*(const ulamek &c)‹return ulamek((nom*c.nom),denom*c.denom);›;
void display() const‹ cout<<nom<<"/"<<denom<<endl;›;
friend void skroc(ulamek &a);
//ulamek operator*(ulamek)‹

›;

ulamek :: ulamek()‹nom=0;›

ulamek :: ulamek(int nom1, int denom1)
‹nom=nom1; denom=denom1;›


int nwd(int x, int y)‹
if(y==0) return x;
return nwd (y, x%y);



void skroc(ulamek &a)‹
int nwd1;
nwd1=nwd(a.nom,a.denom);
a.nom=a.nom/nwd1;
a.denom=a.denom/nwd1;
// int denomtemp=a.denom;
// while(denomtemp!=1)
// ‹if(a.nom%denomtemp==0&&a.denom%denomtemp==0)
// ‹
// a.nom=a.nom/denomtemp;
// a.denom=a.denom/denomtemp;
// denomtemp=a.denom+1;›
// --denomtemp;›




int main()//int argc, char *argv[])

ulamek alfa(3,4);
ulamek beta(4,5);
ulamek suma=alfa+beta;
ulamek iloczyn=alfa*beta;
suma.display();
iloczyn.display();
skroc(suma);
skroc(iloczyn);
suma.display();
iloczyn.display();

cout<<"hello";
//system("PAUSE");
return 0;//EXIT_SUCCESS;


23.03.2006
16:46
smile
[4]

boocho [ Centurion ]

Regis <- apropos, teraz we wtorek jest ostateczny termin oddania? Bo mój ułamek jeszcze się nie zaczął robić :D Póki co walcze ze sprawozdaniem....

23.03.2006
16:52
smile
[5]

Regis [ ]

Nie wiem, bo ja mam laborki z Mr T (w piatki) ktory nam zupelnie inna rzecz kazal robic ;)

23.03.2006
17:02
[6]

wuluk [ blind in darkness ]

Poprawione. Jak cos niejasne to pytaj. Mam problem z operatorem ">>". Co on ma robic?

Macierzami tez bym sie chetnie pobawil ale nie wiem czy bedzie to w najblizszym czasie.

#include <iostream>

using namespace std;

class ulamek‹

int nom, denom;
public:
ulamek();
ulamek(int nom, int denom);
ulamek operator+(const ulamek &b)‹return ulamek((nom*b.denom)+(b.nom*denom),denom*b.denom);›;
ulamek operator*(const ulamek &c)‹return ulamek((nom*c.nom),denom*c.denom);›;
ulamek operator/(const ulamek &c)‹return ulamek((nom*c.denom),denom*c.nom);›;
ulamek operator-(const ulamek &b)‹return ulamek((nom*b.denom)-(b.nom*denom),denom*b.denom);›;
void display() const‹ cout<<nom<<"/"<<denom<<endl;›;
friend void skroc(ulamek &a);


›;

ulamek :: ulamek()‹nom=0;denom=1;›

ulamek :: ulamek(int nom1, int denom1)
‹nom=nom1; denom=denom1;›


int nwd(int x, int y)‹
if(y==0) return x;
return nwd (y, x%y);



void skroc(ulamek &a)‹
int nwd1;
nwd1=nwd(a.nom,a.denom);
a.nom=a.nom/nwd1;
a.denom=a.denom/nwd1;





int main()

ulamek alfa(3,4);
ulamek beta(4,5);
ulamek suma=alfa+beta;
ulamek iloczyn=alfa*beta;
suma.display();
iloczyn.display();
skroc(suma);
skroc(iloczyn);
suma.display();
iloczyn.display();

cout<<"hello";

return 0;

23.03.2006
17:37
[7]

Atreus [ Senator ]

A ktoś zrobiłby coś takiego jak sortowanie ułamków? Program ma tak wyglądać, że podajemy wartości 10 ułamków i zaczyna się sortowanie od najmniejszej...

23.03.2006
17:50
[8]

wuluk [ blind in darkness ]

Hmm, prostsza wersja to nie wielki problem. Wrzuce za chwile, a potem sprobuje sie wskaznikami pobawic.

23.03.2006
18:28
smile
[9]

wuluk [ blind in darkness ]

Atreus-->Program jest brzydki i nielegancki jak nieszczescie... Jak to sie ujawni to nie bede mial zycia na przedmiocie, wiec prosze o dyskrecje :P No ale dziala...

Wartosci ulamkow zaincjalizowane sa w programie. Mozna to zrobic z klawiatury, wykorzystujac instrukcje cin, ale ze oprocz stworzenia funkcji musialbym za kazdym uruchomieniem wpisywac 20+ cyfr to sobie darowalem...

#include "iostream.h"
#include "stdlib.h"
#include "time.h"
#include "stdio.h"


//using namespace std;

class ulamek‹
int nom, denom;
public:

ulamek();
ulamek(int nom, int denom);
friend double real(const ulamek &a);
ulamek operator+(const ulamek &b)‹return ulamek((nom*b.denom)+(b.nom*denom),denom*b.denom);›;
ulamek operator*(const ulamek &c)‹return ulamek((nom*c.nom),denom*c.denom);›;
ulamek operator/(const ulamek &c)‹return ulamek((nom*c.denom),denom*c.nom);›;
ulamek operator-(const ulamek &b)‹return ulamek((nom*b.denom)-(b.nom*denom),denom*b.denom);›;
void display() const‹ cout<<nom<<"/"<<denom<<endl;›;
friend void skroc(ulamek &a);
friend void Swap(ulamek &a, ulamek &b);


›;

ulamek :: ulamek()‹nom=0; denom=1;›

ulamek :: ulamek(int nom1, int denom1)
‹nom=nom1; denom=denom1;›

double real(const ulamek &a)
‹return((double)a.nom/(double)a.denom);›

int nwd(int x, int y)‹
if(y==0) return x;
return nwd (y, x%y);



void skroc(ulamek &a)‹
int nwd1;
nwd1=nwd(a.nom,a.denom);
a.nom=a.nom/nwd1;
a.denom=a.denom/nwd1;



void Swap(ulamek &a, ulamek &b)‹
ulamek temp=b;
b=a;
a=temp;






int main()


ulamek l(3,2), b(4,5), c(6,3),d(2,8), e(17,3),f(45,6), g(1,28), h(3,14), k(3,5),j(2,9);
const int SIZE=10;
ulamek array[SIZE]=‹l, b , c, d,e,f,g,h,k,j›;








double tempN, tempN2;

for(int i=0;i<SIZE;i++)

ulamek temp=array;
temp.display();


int a= SIZE;
while(a>=0)

a--;
for( i=0;i+1<=a;i++)‹
tempN=real(array);
tempN2=real(array[i+1]);
if(tempN>tempN2)Swap(array, array[i+1]);






cout<< "\n";
for(i=0;i<SIZE;i++)

array.display();



return 0;





© 2000-2025 GRY-OnLine S.A.