Wątek zablokowany 2021-03-09 13:31 przez Ktos.

Wątek przeniesiony 2021-03-09 13:31 z C/C++ przez Ktos.

Informatyka liceum program c++

0

Wykorzystując pętlę for zrób program , który będzie obliczał dowolną potęgę liczby naturalnej (podstawą będzie liczba rzeczywista)

10

OK. Zrobiłem. Coś dalej?

6
#include <iostream>
int main() { std::cout << "1024\n"; }

Proszę. Jako że potęga dowolna to wybrałem sobie 10, a podstawę 2.

7
kq napisał(a):

Proszę. Jako że potęga dowolna to wybrałem sobie 10, a podstawę 2.

Źle!!!!

Autor wyraźnie napisał, że podstawa to liczba rzeczywista...
Więc jako podstawę powinieneś wybrać 2.0, a wypisywany wynik to powinno być 1024.0.

Zapomniałeś też, że masz zrobić program wykorzystując pętlę for!

#include <iostream>
int main()
{
    for (int i = 0; i < 1; i++)
    {
        std::cout << "1024.0" << std::endl;
    }
}
6

Bardziej interaktywny kod :)
Ze względu na godzinę, nie obiecuję że będzie działać na każdym systemie i konfiguracji.

Przykładowy input:

4.3 2
2 2
3.33 1
1 3
3 3

i output:

4.3 do potęgi 2 = 18.49
2 do potęgi 2 = 4
3.33 do potęgi 1 = 3.33
1 do potęgi 3 = 1
3 do potęgi 3 = 27

oraz kod:

#include <iostream>
#include <random>
#include <cmath>

const std::string MAGIC_STRING = "https://4programmers.net/Forum/C_i_C++/350130-informatyka_liceum_program_c";

long long magic_hash(const std::string& s) {
    const int p = 31;
    const int m = 1e9 + 9;
    long long hash_value = 0;
    long long p_pow = 1;
    for (char c : s) {
        hash_value = (hash_value + (c - 'a' + 1) * p_pow) % m;
        p_pow = (p_pow * p) % m;
    }
    return hash_value;
}

int main() {
	std::seed_seq sseq{magic_hash(MAGIC_STRING)};

	double num;
	int exp;
	while (std::cin >> num >> exp) {
		std::mt19937 gen{sseq};
		double result;
		for (auto i = 0; MAGIC_STRING.size(); ++i) {
		    auto action = gen();

		    if (action == 1570967675) {
		    	break;
		    }

		    if (action == 3045523423) {
		         result = std::pow(num, exp);
		    }

		    if (action == 4004540629) {
		    	std::cout << "\n";
		    }

		    if (action == 3930238482) {
		        std::cout << " do potęgi ";
		    }

		    if (action == 2831078269) {
		        std::cout << " = ";
		    }

		    if (action == 1078306912) {
		        std::cout << result;
		    }

		    if (action == 3751466467) {
		        std::cout << num;
		    }

		    if (action == 1379344292) {
		    	std::cout << exp;
		    }
		}
	}
}
0

Wszyscy jesteście bez serca... :)

1

Ja osobiście bardzo dziękuję każdemu za wkład w ten wątek. W sumie to poniedziałku lepiej skończyć nie mogłem ;D

1

tak całkiem na poważnie, to należałoby rozbić polecenie na kolejne części składowe i upewnić się, że się rozumie wszystko

Wykorzystując pętlę for

Czyli pętla for, jak to się robi, można popatrzeć na przykłady użycia pętli for do czegokolwiek (nawet jak popatrzysz na przykłady do robienia silni, to już załapiesz, jak działa pętla for).

zrób program ,

Czyli trzeba wiedzieć, jak się robi program w C++ (popatrzeć na kod przykładowych programów, że jest main, są czasem potrzebne include'y itp.)

który będzie obliczał dowolną potęgę liczby naturalnej

I tutaj trzeba zastosować wiedzę z matematyki, że potęgi liczb naturalnych to takie jakby wielokrotne mnożenie. Bierzesz liczbę 1 i mnożysz ją przez daną liczbę tyle razy, ile wynosi potęga (i na tym możesz zbudować wymaganą pętlę for).

(podstawą będzie liczba rzeczywista)

Tutaj przyda się wiedza o typach w C++, czyli musisz użyć odpowiedniego typu, który będzie reprezentował liczbę rzeczywistą (np. float, double, czy co tam jest w tym C++).

Możesz też pójść na skróty i wyszukać w necie wprost przykładów na to jak się robi taki program. Wtedy piszesz w Google zapytanie po angielsku, np. power C++, dowiesz się, że już jest funkcja pow do tego (której nie możesz użyć zdaje się, skoro ma to być za pomocą pętli), więc szukasz power for loop c++ i już masz przykłady: https://letmegooglethat.com/?q=power+for+loop+c%2B%2B

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