
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.

Regis [ ]
Pwr->Eka->Inf 2 sem. z prof. Kisilewiczem? :D
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;

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....

Regis [ ]
Nie wiem, bo ja mam laborki z Mr T (w piatki) ktory nam zupelnie inna rzecz kazal robic ;)
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;
›
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...
wuluk [ blind in darkness ]
Hmm, prostsza wersja to nie wielki problem. Wrzuce za chwile, a potem sprobuje sie wskaznikami pobawic.

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;
›