obliczanie wartości podanej funkcji (funkcja opisana graficznie)

0

Witam mam problem z zadaniem, a bardziej nie rozumiem o co w nim chodzi mam do zrobienia prosty program obliczający potęgowanie , dzielenie itp. Mam wykorzystać w nim funkcje z argumentami przekazywanymi przez wartość. Czy ktoś może mi wytłumaczyć o co chodzi w działaniu -obliczanie wartości podanej funkcji (funkcja opisana graficznie) ?

0

Może chodzi o to, że to użytkownik ma mieć możliwość wpisania dowolnej funkcji? (np. tak jak w Wolfram|Alpha, tylko rzecz jasna znacznie prostsze)

Przerabialiście już parsery?

0

Nie przerabialiśmy jeszcze parserów.

0

@lion137: na wejściu dwie liczby i wybór działania wprowadzane przez użytkownika, na wyjściu wynik działania funkcji.

#include<iostream>
#include<cmath>
using namespace std;
double a, b;
string wybor;
double dzielenie(double a, double b) {
	double dzielWynik;
	dzielWynik = a / b;
	return dzielWynik;
}
double potegowanie(double a, double b) {
	double potegWynik;
	potegWynik = pow(a,b);
	return potegWynik;
}
double wartoscBezwzglednaA(double a) {
	return abs(a);
}
double wartoscBezwzglednaB(double b) {
	return abs(b);
}
double czyPodzielna(int a, int b) {
	int podzielnaWynik;
	podzielnaWynik = a % b;
	return podzielnaWynik;
}
int main() {
	cout << "Podaj dwie liczby"<<endl;
	cin >> a >> b;
	cout << "Ktore dzialanie chcesz wykonac ?" << endl;
	cout << "/ - dzielenie" << endl << "x2 - potegowanie" << endl << "|x| - wartosc bezwzgledna" << endl << "x/y - czy liczby są podzielne przez siebie" << endl;
	cin >> wybor;
	if (wybor == "/") {
		cout << "Wynik: " << dzielenie(a, b);
	}
	else if (wybor == "x2") {
		cout << "Wynik: " << potegowanie(a, b);
	}
	else if (wybor == "|x|") {
		cout << "Wartosc bezwzgledna z pierwszej liczby: " << wartoscBezwzglednaA(a) << endl;
		cout << "Wartosc bezwzgledna z drugiej liczby: " << wartoscBezwzglednaB(b);
	}
	else if (wybor == "x/y") {
		if (czyPodzielna(a, b) == 0) {
			cout << "Podzielne sa przez siebie";
		}
		else {
			cout << "Nie sa podzielne przez siebie";
		}
	}
	else {
		// obliczanie wartości podanej funkcji (funkcja opisana graficznie)
	}
	return 0;
}
0
  1. W funkcji dzielenie brak sprawdzenia, czy liczba b jest równa 0.
  2. std::pow nie jest dobrym rozwiązaniem, wystarczy podać liczby 5 i 3.
    (no dobra, w tym wypadku działa prawidłowo, ale trzeba uważać na typy, żeby nie zwróciło przypadkiem 124)
0
SnaaPP napisał(a):
  1. W funkcji dzielenie brak sprawdzenia, czy liczba b jest równa 0.
  2. std::pow nie jest dobrym rozwiązaniem, wystarczy podać liczby 5 i 3.
    (no dobra, w tym wypadku działa prawidłowo, ale trzeba uważać na typy, żeby nie zwróciło przypadkiem 124)
  1. To prawda powinno się sprawdzać jednak w moim przypadku nie jestem zmuszony do tego
  2. Typ double nie jest odpowiedni do potęgowania ? Nie za bardzo rozumiem w jakim przypadku miałoby mi zwrócić 124(rozumiem, że to by wynikało z błędnego potęgowania) ?
0

@Raloseq: "na wejściu dwie liczby i wybór działania wprowadzane przez użytkownika, na wyjściu wynik działania funkcji. " Ok, jaki jest z tym problerm?

0
lion137 napisał(a):

@Raloseq: "na wejściu dwie liczby i wybór działania wprowadzane przez użytkownika, na wyjściu wynik działania funkcji. " Ok, jaki jest z tym problerm?

Problem jest taki, że nie rozumiem znaczenia podpunktu "-obliczanie wartości podanej funkcji (funkcja opisana graficznie) ?"

0

@Raloseq: "Problem jest taki, że nie rozumiem znaczenia podpunktu "-obliczanie wartości podanej funkcji (funkcja opisana graficznie) ?"". Ja też tego nie rozumiem, więcej szczegółów proszę...

0
lion137 napisał(a):

@Raloseq: "Problem jest taki, że nie rozumiem znaczenia podpunktu "-obliczanie wartości podanej funkcji (funkcja opisana graficznie) ?"". Ja też tego nie rozumiem, więcej szczegółów proszę...

Dobra to może będzie łatwiej jak po prostu wyślę treść zadania. Wszystko zrobiłem tylko zatrzymałem się na ostatnim podpunkcie więcej informacji nie mogę podać bo już ich nie ma.
Napisać program, wykonujący następujące działania:

  • dzielenie
  • potęgowanie
  • wartość bezwzględna
  • sprawdzenie czy dostarczone dwie liczby są podzielne przez siebie
  • obliczanie wartości podanej funkcji (funkcja opisana graficznie)
    Wybór operacji należy zaimplementować za pomocą instrukcji warunkowych. Działania zaimplementować za pomocą funkcji z argumentami przekazywanymi przez wartość. Funkcje powinny zwracać wynik w miejscu wywołania. Wykonać przykładowe obliczenia wywołując każdą z w/w funkcji przynajmniej raz.
0

To Opisz nam jakąś funkcję "graficznie" i zobaczymy co się da zrobić.

0

Jak mam to zrobić jak nie wiem jak to zrobić.

0
  1. Typ double nie jest odpowiedni do potęgowania ? Nie za bardzo rozumiem w jakim przypadku miałoby mi zwrócić 124(rozumiem, że to by wynikało z błędnego potęgowania) ?

Wynika to z tego, że std::pow() zwraca typ zmiennoprzecinkowy, przez to nie jest w pełni dokładna i gdybyś np. zrobił coś takiego:

int example = std::pow(5, 3);
std::cout << example;

to zwróci ci nie 125, tylko 124

0

@Raloseq: Proste, Wróć do autora zadania i Poproś o więcej szczegółów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1