Napisz program, który obliczy wartość wielomianu, zgodnie ze schematem Hornera (metoda iteracyjna). Przetestuj jego działanie dla następującego wielomianu dla argumentu .
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int horner otwórz nawias okrągły int wsp otwórz nawias kwadratowy zamknij nawias kwadratowy przecinek int stopien przecinek int x zamknij nawias okrągły.
Linia 5. otwórz nawias klamrowy.
Linia 6. int wynik znak równości wsp otwórz nawias kwadratowy 0 zamknij nawias kwadratowy średnik.
Linia 8. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny znak równości stopien średnik i plus plus zamknij nawias okrągły.
Linia 9. otwórz nawias klamrowy.
Linia 10. wynik znak równości wynik asterysk x plus wsp otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 11. zamknij nawias klamrowy.
Linia 13. return wynik średnik.
Linia 14. zamknij nawias klamrowy.
Linia 16. int main otwórz nawias okrągły zamknij nawias okrągły.
Linia 17. otwórz nawias klamrowy.
Linia 18. int wsp otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 5 przecinek 2 przecinek 1 przecinek 10 zamknij nawias klamrowy średnik.
Linia 19. int stopien znak równości 3 średnik.
Linia 20. int x znak równości 5 średnik.
Linia 21. cout otwórz nawias ostrokątny otwórz nawias ostrokątny horner otwórz nawias okrągły wsp przecinek stopien przecinek x zamknij nawias okrągły średnik.
Linia 23. return 0 średnik.
Linia 24. zamknij nawias klamrowy.
#include<iostream>
using namespace std;
int horner(int wsp[], int stopien, int x)
{
int wynik = wsp[0];
for (int i = 1; i <= stopien; i++)
{
wynik = wynik * x + wsp[i];
}
return wynik;
}
int main()
{
int wsp[] = {5, 2, 1, 10};
int stopien = 3;
int x = 5;
cout << horner(wsp, stopien, x);
return 0;
}
21
Ćwiczenie 2
Napisz program, który obliczy wartość wielomianu, zgodnie ze schematem Hornera (metoda rekurencyjna). Przetestuj jego działanie dla wielomianu dla argumentu .
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int horner otwórz nawias okrągły int wsp otwórz nawias kwadratowy zamknij nawias kwadratowy przecinek int stopien przecinek int x zamknij nawias okrągły.
Linia 5. otwórz nawias klamrowy.
Linia 6. if otwórz nawias okrągły stopien znak równości znak równości 0 zamknij nawias okrągły.
Linia 7. otwórz nawias klamrowy.
Linia 8. return wsp otwórz nawias kwadratowy 0 zamknij nawias kwadratowy średnik.
Linia 9. zamknij nawias klamrowy.
Linia 11. return x asterysk horner otwórz nawias okrągły wsp przecinek stopien minus 1 przecinek x zamknij nawias okrągły plus wsp otwórz nawias kwadratowy stopien zamknij nawias kwadratowy średnik.
Linia 12. zamknij nawias klamrowy.
Linia 14. int main otwórz nawias okrągły zamknij nawias okrągły.
Linia 15. otwórz nawias klamrowy.
Linia 16. int wsp otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 1 przecinek 0 przecinek 7 przecinek 0 przecinek 1 przecinek 1 zamknij nawias klamrowy średnik.
Linia 17. int stopien znak równości 5 średnik.
Linia 18. int x znak równości 10 średnik.
Linia 19. cout otwórz nawias ostrokątny otwórz nawias ostrokątny horner otwórz nawias okrągły wsp przecinek stopien przecinek x zamknij nawias okrągły średnik.
Linia 20. return 0 średnik.
Linia 21. zamknij nawias klamrowy.
#include<iostream>
using namespace std;
int horner(int wsp[], int stopien, int x)
{
if (stopien==0)
{
return wsp[0];
}
return x * horner(wsp, stopien - 1, x) + wsp[stopien];
}
int main()
{
int wsp[] = {1, 0, 7, 0, 1, 1};
int stopien = 5;
int x = 10;
cout << horner(wsp, stopien, x);
return 0;
}
31
Ćwiczenie 3
Napisz program, który obliczy, a następnie wyświetli kolejne współczynniki wielomianu podzielonego przez dwumian. Przetestuj działanie programu dla wielomianu podzielonego przez dwumian .
y – tablica liczb całkowitych; kolejne współczynniki wielomianu podzielonego przez dwumian
RrRO7ujrHWHp7
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. void horner otwórz nawias okrągły int wsp otwórz nawias kwadratowy zamknij nawias kwadratowy przecinek int stopien przecinek int x przecinek int wynik otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 5. otwórz nawias klamrowy.
Linia 6. wynik otwórz nawias kwadratowy 0 zamknij nawias kwadratowy znak równości wsp otwórz nawias kwadratowy 0 zamknij nawias kwadratowy średnik.
Linia 8. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny znak równości stopien średnik i plus plus zamknij nawias okrągły.
Linia 9. otwórz nawias klamrowy.
Linia 10. wynik otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości x asterysk wynik otwórz nawias kwadratowy i minus 1 zamknij nawias kwadratowy plus wsp otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 11. zamknij nawias klamrowy.
Linia 12. zamknij nawias klamrowy.
Linia 14. int main otwórz nawias okrągły zamknij nawias okrągły.
Linia 15. otwórz nawias klamrowy.
Linia 16. int wsp otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 6 przecinek minus 1 przecinek 5 przecinek 12 zamknij nawias klamrowy średnik.
Linia 17. int stopien znak równości 3 średnik.
Linia 18. int dwumian znak równości 5 średnik.
Linia 20. int wynik otwórz nawias kwadratowy 4 zamknij nawias kwadratowy średnik.
Linia 22. horner otwórz nawias okrągły wsp przecinek stopien przecinek dwumian przecinek wynik zamknij nawias okrągły średnik.
Linia 24. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny 4 średnik i plus plus zamknij nawias okrągły.
Linia 25. otwórz nawias klamrowy.
Linia 26. cout otwórz nawias ostrokątny otwórz nawias ostrokątny wynik otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów średnik.
Linia 27. zamknij nawias klamrowy.
Linia 29. return 0 średnik.
Linia 30. zamknij nawias klamrowy.
#include<iostream>
using namespace std;
void horner(int wsp[], int stopien, int x, int wynik[])
{
wynik[0] = wsp[0];
for (int i = 1; i <= stopien; i++)
{
wynik[i] = x * wynik[i - 1] + wsp[i];
}
}
int main()
{
int wsp[] = { 6, -1, 5, 12 };
int stopien = 3;
int dwumian = 5;
int wynik[4];
horner(wsp, stopien, dwumian,wynik);
for (int i = 0; i < 4; i++)
{
cout << wynik[i] << " ";
}
return 0;
}
31
Ćwiczenie 4
Aby obliczyć wartość liczby podanej w systemie liczbowym o podstawie , możemy obliczyć wartość wielomianu
w którym to -ta cyfra liczby (gdzie to cyfra najbardziej znacząca liczby ), a to liczba cyfr w liczbie pomniejszona o 1.
Napisz program, który dokona zamiany liczby podanej w systemie liczbowym z przedziału [2, 9] na liczbę w systemie dziesiętnym zaprezentowanym sposobem. W celu obliczenia wartości wielomianu zastosuj algorytm wykorzystujący schemat Hornera.
Przetestuj działanie programu dla liczby w systemie trójkowym o wartości 21012211.
Specyfikacja:
Dane:
liczba – ciąg znaków; liczba całkowita zapisana w systemie liczbowym z przedziału [2, 9]
Wynik:
wynik – liczba całkowita; liczba w systemie decymalnym
RJQVL3DobAS5i
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 3. using namespace std średnik.
Linia 5. int dec otwórz nawias okrągły string liczba przecinek int podstawa zamknij nawias okrągły.
Linia 6. otwórz nawias klamrowy.
Linia 7. int wynik znak równości liczba otwórz nawias kwadratowy 0 zamknij nawias kwadratowy minus apostrof 0 apostrof średnik.
Linia 9. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny liczba kropka length otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły.
Linia 10. otwórz nawias klamrowy.
Linia 11. wynik znak równości podstawa asterysk wynik plus liczba otwórz nawias kwadratowy i zamknij nawias kwadratowy minus apostrof 0 apostrof średnik.
Linia 12. zamknij nawias klamrowy.
Linia 14. return wynik średnik.
Linia 15. zamknij nawias klamrowy.
Linia 17. int main otwórz nawias okrągły zamknij nawias okrągły.
Linia 18. otwórz nawias klamrowy.
Linia 19. string liczba znak równości cudzysłów 21012211 cudzysłów średnik.
Linia 21. cout otwórz nawias ostrokątny otwórz nawias ostrokątny dec otwórz nawias okrągły liczba przecinek 3 zamknij nawias okrągły średnik.
Linia 23. return 0 średnik.
Linia 24. zamknij nawias klamrowy.
#include <iostream>
#include <string>
using namespace std;
int dec(string liczba, int podstawa)
{
int wynik = liczba[0] - '0';
for (int i = 1; i < liczba.length(); i++)
{
wynik = podstawa * wynik + liczba[i] - '0';
}
return wynik;
}
int main()
{
string liczba = "21012211";
cout << dec(liczba, 3);
return 0;
}