Napisz program, który wygeneruje obraz smoka Heighwaya składający się z N punktów. Współrzędne punktu początkowego wynoszą (X, Y). Następnie program powinien obliczyć stosunek szerokości tej konstrukcji w układzie współrzędnych do jej wysokości. Wyniki zaokrąglij do jednego miejsca po przecinku.
Przetestuj działanie swojego programu dla N = 100000, X = 0.0, Y = 0.0.
Specyfikacja:
Dane:
N – liczba punktów do wygenerowania; liczba naturalna
X – współrzędna x punktu startowego; liczba rzeczywista
Y – współrzędna y punktu startowego; liczba rzeczywista
Wynik:
Program na standardowym wyjściu wypisuje stosunek szerokości smoka Heighwaya do jego wysokości, zaokrąglony do jednego miejsca po przecinku.
RD3TokE6pcGHw
Twoje zadanie: Program oblicza stosunek szerokości smoka Heighwaya do jego wysokości w układzie współrzędnych.
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int n znak równości 100000 średnik.
Linia 4. double x znak równości 0 kropka 0 przecinek y znak równości 0 kropka 0 średnik.
Linia 5. prawy ukośnik prawy ukośnik W tym miejscu dodaj implementację swojego rozwiązania.
Linia 6. zamknij nawias klamrowy.
Linia 7. zamknij nawias klamrowy.
Linia 8. at at at.
Linia 9. language znak równości java11.
Linia 10. at at at.
Linia 11. Program oblicza stosunek szerokości smoka otwórz nawias ostrokątny span lang znak równości apostrof en apostrof zamknij nawias ostrokątny Heighwaya otwórz nawias ostrokątny prawy ukośnik span zamknij nawias ostrokątny do jego wysokości w układzie współrzędnych kropka.
Linia 12. at at at.
Linia 13. at at at.
Linia 14. at at at.
Linia 15. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 16. import sys.
Linia 18. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 21. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 22. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 25. expected podkreślnik output znak równości cudzysłów cudzysłów cudzysłów.
Linia 26. 1 kropka 5.
Linia 27. cudzysłów cudzysłów cudzysłów.
Linia 28. input znak równości sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły.
Linia 29. if input znak równości znak równości expected podkreślnik output kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 30. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 1. import java kropka util kropka Random średnik.
Linia 3. public class Main otwórz nawias klamrowy.
Linia 4. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. Random generator znak równości new Random otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 6. int n znak równości 100000 średnik.
Linia 7. double x znak równości 0 kropka 0 przecinek y znak równości 0 kropka 0 średnik.
Linia 9. double x podkreślnik max znak równości x przecinek x podkreślnik min znak równości x przecinek y podkreślnik max znak równości y przecinek y podkreślnik min znak równości y średnik.
Linia 11. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. prawy ukośnik prawy ukośnik losowa liczba całkowita z przedziału otwórz nawias ostrokątny 0 przecinek 1 zamknij nawias ostrokątny.
Linia 13. int q znak równości generator kropka nextInt otwórz nawias okrągły 2 zamknij nawias okrągły średnik.
Linia 15. prawy ukośnik prawy ukośnik kopia zmiennej x.
Linia 16. double x0 znak równości x średnik.
Linia 18. if otwórz nawias okrągły q otwórz nawias ostrokątny 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 19. x znak równości 0 kropka 5 asterysk x minus 0 kropka 5 asterysk y średnik.
Linia 20. y znak równości 0 kropka 5 asterysk x0 plus 0 kropka 5 asterysk y średnik.
Linia 21. zamknij nawias klamrowy.
Linia 22. else otwórz nawias klamrowy.
Linia 23. x znak równości minus 0 kropka 5 asterysk x minus 0 kropka 5 asterysk y plus 1 średnik.
Linia 24. y znak równości 0 kropka 5 asterysk x0 minus 0 kropka 5 asterysk y średnik.
Linia 25. zamknij nawias klamrowy.
Linia 27. if otwórz nawias okrągły x zamknij nawias ostrokątny x podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 28. x podkreślnik max znak równości x średnik.
Linia 29. zamknij nawias klamrowy.
Linia 30. if otwórz nawias okrągły x otwórz nawias ostrokątny x podkreślnik min zamknij nawias okrągły otwórz nawias klamrowy.
Linia 31. x podkreślnik min znak równości x średnik.
Linia 32. zamknij nawias klamrowy.
Linia 33. if otwórz nawias okrągły y zamknij nawias ostrokątny y podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 34. y podkreślnik max znak równości y średnik.
Linia 35. zamknij nawias klamrowy.
Linia 36. if otwórz nawias okrągły y otwórz nawias ostrokątny y podkreślnik min zamknij nawias okrągły otwórz nawias klamrowy.
Linia 37. y podkreślnik min znak równości y średnik.
Linia 38. zamknij nawias klamrowy.
Linia 39. zamknij nawias klamrowy.
Linia 41. double stosunek znak równości otwórz nawias okrągły x podkreślnik max minus x podkreślnik min zamknij nawias okrągły prawy ukośnik otwórz nawias okrągły y podkreślnik max minus y podkreślnik min zamknij nawias okrągły średnik.
Linia 42. System kropka out kropka println otwórz nawias okrągły Math kropka round otwórz nawias okrągły stosunek asterysk 10 kropka 0 zamknij nawias okrągły prawy ukośnik 10 kropka 0 zamknij nawias okrągły średnik.
Linia 43. zamknij nawias klamrowy.
Linia 44. zamknij nawias klamrowy.
1
Ciekawostka
Wyznaczony w ćwiczeniu 1. stosunek jest stały i wynosi 1,5. Jego wartość została obliczona matematycznie. Na poniższym obrazku możesz zaobserwować rozmiary jego poszczególnych części.
RDrnLIfrXiqBW
31
Ćwiczenie 2
W programie umieszczono tablicę przeksztalcenia zawierającą N losowo wybranych numerów kolejnych przekształceń służących generacji paproci Barnsleya. Przekształcenia, z których należy skorzystać to:
Napisz program, który przeprowadzi generację N punktów paproci Barnsleya według kolejnych numerów przekształceń zawartych w tablicy przeksztalcenia. Współrzędne punktu startowego to (X, Y). Współrzędne każdego z wygenerowanych punktów wypisz w osobnej linii z dokładnością do dwóch miejsc po przecinku.
Przetestuj działanie swojego programu dla N = 10, X = 0.0, Y = 0.0, przeksztalcenia = {2, 3, 1, 1, 1, 1, 2, 4, 1, 1}.
Specyfikacja:
Dane:
N – liczba punktów do wygenerowania; liczba naturalna
X – współrzędna x punktu startowego; liczba rzeczywista
Y – współrzędna y punktu startowego; liczba rzeczywista
przeksztalcenia – tablica zawierająca N liczb naturalnych z przedziału <1, 4>, oznaczająca numery kolejnych przekształceń
Wynik:
Program na standardowym wyjściu wypisuje N linii, w każdej linii współrzędne x oraz y kolejnych punktów, oddzielone spacjami; współrzędne zaokgrąlone są do dwóch miejsc po przecinku.
R1U2uHfyFnjMk1
Program generuje punkty paproci Barnsleya według kolejnych numerów przekształceń.
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int otwórz nawias kwadratowy zamknij nawias kwadratowy przeksztalcenia znak równości otwórz nawias klamrowy 2 przecinek 3 przecinek 1 przecinek 1 przecinek 1 przecinek 1 przecinek 2 przecinek 4 przecinek 1 przecinek 1 zamknij nawias klamrowy średnik.
Linia 4. double x znak równości 0 kropka 0 przecinek y znak równości 0 kropka 0 średnik.
Linia 5. int N znak równości 10 średnik.
Linia 6. prawy ukośnik prawy ukośnik W tym miejscu dodaj implementację swojego rozwiązania.
Linia 7. zamknij nawias klamrowy.
Linia 8. zamknij nawias klamrowy.
Linia 9. at at at.
Linia 10. language znak równości java11.
Linia 11. at at at.
Linia 12. Program generuje punkty paproci otwórz nawias ostrokątny span lang znak równości apostrof en apostrof zamknij nawias ostrokątny Barnsleya otwórz nawias ostrokątny prawy ukośnik span zamknij nawias ostrokątny według kolejnych numerów przekształceń kropka.
Linia 13. at at at.
Linia 14. at at at.
Linia 15. at at at.
Linia 16. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 17. import sys.
Linia 19. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 22. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 23. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 26. expected podkreślnik output znak równości cudzysłów cudzysłów cudzysłów.
Linia 27. 0 kropka 0 0 kropka 44.
Linia 28. minus 0 kropka 12 1 kropka 69.
Linia 29. minus 0 kropka 03 3 kropka 04.
Linia 30. 0 kropka 09 4 kropka 19.
Linia 31. 0 kropka 25 5 kropka 15.
Linia 32. 0 kropka 41 5 kropka 97.
Linia 33. 1 kropka 61 1 kropka 98.
Linia 34. 0 kropka 0 0 kropka 31.
Linia 35. 0 kropka 01 1 kropka 86.
Linia 36. 0 kropka 08 3 kropka 18.
Linia 37. cudzysłów cudzysłów cudzysłów.
Linia 38. input znak równości sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły.
Linia 39. if input znak równości znak równości expected podkreślnik output kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 40. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int otwórz nawias kwadratowy zamknij nawias kwadratowy przeksztalcenia znak równości otwórz nawias klamrowy 2 przecinek 3 przecinek 1 przecinek 1 przecinek 1 przecinek 1 przecinek 2 przecinek 4 przecinek 1 przecinek 1 zamknij nawias klamrowy średnik.
Linia 4. double x znak równości 0 kropka 0 przecinek y znak równości 0 kropka 0 średnik.
Linia 5. int N znak równości 10 średnik.
Linia 6. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny przeksztalcenia kropka length średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. prawy ukośnik prawy ukośnik kopia zmiennej x.
Linia 8. double x0 znak równości x średnik.
Linia 10. if otwórz nawias okrągły przeksztalcenia otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. x znak równości 0 kropka 85 asterysk x plus 0 kropka 04 asterysk y średnik.
Linia 12. y znak równości minus 0 kropka 04 asterysk x0 plus 0 kropka 85 asterysk y plus 1 kropka 6 średnik.
Linia 13. zamknij nawias klamrowy.
Linia 14. else if otwórz nawias okrągły przeksztalcenia otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości 2 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. x znak równości minus 0 kropka 15 asterysk x plus 0 kropka 28 asterysk y średnik.
Linia 16. y znak równości 0 kropka 26 asterysk x0 plus 0 kropka 24 asterysk y plus 0 kropka 44 średnik.
Linia 17. zamknij nawias klamrowy.
Linia 18. else if otwórz nawias okrągły przeksztalcenia otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości 3 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 19. x znak równości 0 kropka 2 asterysk x minus 0 kropka 26 asterysk y średnik.
Linia 20. y znak równości 0 kropka 23 asterysk x0 plus 0 kropka 22 asterysk y plus 1 kropka 6 średnik.
Linia 21. zamknij nawias klamrowy.
Linia 22. else otwórz nawias klamrowy.
Linia 23. x znak równości 0 średnik.
Linia 24. y znak równości 0 kropka 16 asterysk y średnik.
Linia 25. zamknij nawias klamrowy.
Linia 27. double x podkreślnik 2 znak równości Math kropka floor otwórz nawias okrągły x asterysk 100 zamknij nawias okrągły prawy ukośnik 100 średnik.
Linia 28. double y podkreślnik 2 znak równości Math kropka floor otwórz nawias okrągły y asterysk 100 zamknij nawias okrągły prawy ukośnik 100 średnik.
Linia 30. System kropka out kropka println otwórz nawias okrągły x podkreślnik 2 plus cudzysłów cudzysłów plus y podkreślnik 2 zamknij nawias okrągły średnik.
Linia 31. zamknij nawias klamrowy.
Linia 32. zamknij nawias klamrowy.
Linia 33. zamknij nawias klamrowy.