Poprawa 2 "prostych" zadań.

Programowanie w języku C i językach pochodnych, jak C++, C#
Creed

Poprawa 2 "prostych" zadań.

Post autor: Creed » 16 cze 2014, 12:44

Witam!
Proszę o pomoc w poprawieniu tych 2 kodów w oparciu o komentarze.

Kom 1: Metodę mianownik można byłoby rozbić na bool nowy_arg() dopisującą nowy argument do średniej i zwracającą false w przypadku wprowadzenia 0 oraz metodę pobierz_srednia_harm() która zwróci średnią harmoniczną.

Zadanie 1:

Kod: Zaznacz cały

#include <iostream>
using namespace std;

class class1
{
	double liczba;
	double suma = 0;
	double srednia = 0;
	int n;
public:
	void mianownik(float liczba, double suma, double srednia, int n)
	{
		for (int i = 1; i > 0; i++)
		{
			cout << "Podaj liczbe nr " << i << ": ";
			cin >> liczba;
			if (liczba != 0)
			{
				liczba = 1 / liczba;
				suma = suma + liczba;
				n++;
			}
			else break;
		}
		srednia = n / suma;
		cout << "\n" << "Srednia harmoniczna z podanych " << n << " liczb wynosi: " << srednia << endl << "\n";
	}
};

int main()
{
	cout << "...:::SREDNIA HARMONICZNA:::..." << endl << "\n";
	class1 x;
	x.mianownik(0, 0, 0, 0);

	system("pause");
	return(0);
}
Kom 2: W zasadzie na wartościowych parametrach metody nie powinno się wykonywać operacji zmieniających ich wartość (chyba że są to referencje lub zmieniamy wartość pod wskaźnikiem). Metoda 'sri' nie powinna przyjmować parametrów a wyniki liczyć na polach klasy

Zad 2:

Kod: Zaznacz cały

#include <iostream>
using namespace std;

class zad2
{
	int i;
	double suma, roznica, liczba, iloczn;

public:
	
	void sri(double suma, double roznica, double iloczyn, double liczba)
	{
		iloczyn = 1;
		for (i = 1; i > 0; i++)
		{
			cout << "Podaj " << i << " liczbe: ";
			cin >> liczba;
			if (liczba != 0)
			{
				suma = suma + liczba;
				roznica = roznica - liczba;
				iloczyn = iloczyn * liczba;
			}
			else break;
		}
		cout << "\n" << "Suma podanych liczb wynosi: " << suma << endl;
		cout << "Roznica podanych liczb wynosi: " << roznica << endl;
		cout << "Iloczyn podanych liczb wynosi: " << iloczyn << endl << "\n";
	}
};

int main()
{
	cout << "...:::SUMA, ROZNICA, ILOCZYN:::..."<< endl<< "\n";
	zad2 x;
	x.sri(0, 0, 0, 0);
	system("pause");
}
Z góry dziękuję za wskazówki!