Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

W fizyce istnieje zasada mówiąca o tym, że pęd izolowanego układu (czyli takiego, na który nie działają siły z zewnątrz) musi być stały. Dla naszego układu cząstek oznacza to, że suma pędów wszystkich cząstek musi być stała, a więc nie może zmieniać się wraz z upływem czasu.

W wybranym języku programowania napisz program, który sprawdzi, czy w stusekundowej symulacji została zachowana zasada zachowania pędu. Do generowania kolejnych iteracji tablic prędkości cząstek wykorzystaj funkcję oblicz.

Funkcja oblicz ma trzy parametry: tablice VXVY, zawierające składowe prędkości cząstek oraz n - liczbę elementów tablicy VX i VY. Wynikiem funkcji są tablice VXVY, zawierające nowe wartości wygenerowane po sekundzie.

Swój program przetestuj dla dwóch czternastoelementowych tablic:

Linia 1. int VX otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 5 przecinek 2 przecinek 3 przecinek 4 przecinek 2 przecinek 3 przecinek 2 przecinek 1 przecinek 2 przecinek 3 przecinek 8 przecinek 7 przecinek 3 przecinek 6 zamknij nawias klamrowy. Linia 2. int VY otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 6 przecinek 1 przecinek 2 przecinek 3 przecinek 5 przecinek 1 przecinek 3 przecinek 5 przecinek 3 przecinek 6 przecinek 3 przecinek 6 przecinek 7 przecinek 3 zamknij nawias klamrowy.

Specyfikacja problemu:

Dane:

  • n – liczba cząstek w symulacji

  • VIndeks dolny x – tablica prędkości cząstek wzdłuż osi X (liczby całkowite)

  • VIndeks dolny y – tablica prędkości cząstek wzdłuż osi Y (liczby całkowite)

Załóż, że masa każdej cząstki wynosi dokładnie 1.

Wynik:

  • Program zwraca wartość prawda, jeśli pęd został zachowany. W innym wypadku zostanie zwrócona wartość fałsz.

Ważne!

Wzór fizyczny na pęd:

p = V x V x + V y V y m

p – pęd,
m – masa.

Natomiast pęd układu to suma pędów wszystkich cząstek.

11
Pokaż ćwiczenia:
1

JĘZYK C++

21
Ćwiczenie 1
RJoVJmJZIh43T
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Twoje zadanie: Napisz funkcję, która dokona sprawdzenia, czy została zachowana zasada zachowania pędu dla symulacji zawartej w programie.

Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny. Linia 2. kratka include otwórz nawias ostrokątny stdlib kropka h zamknij nawias ostrokątny. Linia 3. kratka include otwórz nawias ostrokątny cmath zamknij nawias ostrokątny. Linia 5. using namespace std średnik. Linia 7. void oblicz otwórz nawias okrągły int asterysk VX przecinek int asterysk VY przecinek int n zamknij nawias okrągły otwórz nawias klamrowy. Linia 8. int sumaX znak równości 0 średnik. Linia 9. int sumaY znak równości 0 średnik. Linia 10. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 11. sumaX plus znak równości VX otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik. Linia 12. sumaY plus znak równości VY otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik. Linia 13. VX otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0 średnik. Linia 14. VY otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0 średnik. Linia 15. zamknij nawias klamrowy. Linia 17. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny sumaX średnik i plus plus zamknij nawias okrągły. Linia 18. VX otwórz nawias kwadratowy rand otwórz nawias okrągły zamknij nawias okrągły procent n zamknij nawias kwadratowy plus plus średnik. Linia 19. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny sumaY średnik i plus plus zamknij nawias okrągły. Linia 20. VY otwórz nawias kwadratowy rand otwórz nawias okrągły zamknij nawias okrągły procent n zamknij nawias kwadratowy plus plus średnik. Linia 21. zamknij nawias klamrowy. Linia 23. bool czyPedZachowany otwórz nawias okrągły int asterysk VX przecinek int asterysk VY przecinek int n zamknij nawias okrągły otwórz nawias klamrowy. Linia 24. prawy ukośnik prawy ukośnik uzupełnij treść funkcji oraz. Linia 25. prawy ukośnik prawy ukośnik stwórz nowe w razie potrzeby. Linia 26. zamknij nawias klamrowy. Linia 28. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 29. int n znak równości 14 średnik. Linia 30. int VX otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 5 przecinek 2 przecinek 3 przecinek 4 przecinek 2 przecinek 3 przecinek 2 przecinek 1 przecinek 2 przecinek 3 przecinek 8 przecinek 7 przecinek 3 przecinek 6 zamknij nawias klamrowy średnik. Linia 31. int VY otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 6 przecinek 1 przecinek 2 przecinek 3 przecinek 5 przecinek 1 przecinek 3 przecinek 5 przecinek 3 przecinek 6 przecinek 3 przecinek 6 przecinek 7 przecinek 3 zamknij nawias klamrowy średnik. Linia 33. if otwórz nawias okrągły czyPedZachowany otwórz nawias okrągły VX przecinek VY przecinek n zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 34. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów prawda cudzysłów średnik. Linia 35. zamknij nawias klamrowy else otwórz nawias klamrowy. Linia 36. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów fałsz cudzysłów średnik. Linia 37. zamknij nawias klamrowy. Linia 38. zamknij nawias klamrowy. Linia 39. at at at. Linia 40. language znak równości cpp17. Linia 41. at at at. Linia 42. Napisz funkcję przecinek która dokona sprawdzenia przecinek czy została zachowana zasada zachowania pędu dla symulacji zawartej w programie kropka. Linia 43. at at at. Linia 44. at at at. Linia 45. at at at. Linia 46. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 47. import sys. Linia 48. 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 49. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 50. 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 52. if 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 znak równości znak równości apostrof fałsz apostrof dwukropek. Linia 53. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
1

JĘZYK JAVA

21
Ćwiczenie 2
R16H45JwAx9U1
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Twoje zadanie: Napisz funkcję, która sprawdzi, czy została zachowana zasada zachowania pędu dla symulacji zawartej w programie.

Linia 1. import java kropka util kropka concurrent kropka ThreadLocalRandom średnik. Linia 2. import java kropka lang kropka Math średnik. Linia 4. public class Main otwórz nawias klamrowy. Linia 5. private static boolean czyPedZachowany otwórz nawias okrągły int otwórz nawias kwadratowy zamknij nawias kwadratowy vx przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy vy przecinek int n zamknij nawias okrągły otwórz nawias klamrowy. Linia 6. prawy ukośnik prawy ukośnik uzupełnij treść funkcji oraz. Linia 7. prawy ukośnik prawy ukośnik stwórz nowe w razie potrzeby. Linia 8. zamknij nawias klamrowy. Linia 10. public static void oblicz otwórz nawias okrągły int otwórz nawias kwadratowy zamknij nawias kwadratowy vx przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy vy przecinek int n zamknij nawias okrągły otwórz nawias klamrowy. Linia 11. int sumaX znak równości 0 średnik. Linia 12. int sumaY znak równości 0 średnik. Linia 13. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 14. sumaX plus znak równości vx otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik. Linia 15. vx otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0 średnik. Linia 16. sumaY plus znak równości vy otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik. Linia 17. vy otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0 średnik. Linia 18. zamknij nawias klamrowy. Linia 19. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny sumaX średnik i plus plus zamknij nawias okrągły. Linia 20. vx otwórz nawias kwadratowy Math kropka abs otwórz nawias okrągły ThreadLocalRandom kropka current otwórz nawias okrągły zamknij nawias okrągły kropka nextInt otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły procent n zamknij nawias kwadratowy plus znak równości 1 średnik. Linia 21. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny sumaY średnik i plus plus zamknij nawias okrągły. Linia 22. vy otwórz nawias kwadratowy Math kropka abs otwórz nawias okrągły ThreadLocalRandom kropka current otwórz nawias okrągły zamknij nawias okrągły kropka nextInt otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły procent n zamknij nawias kwadratowy plus znak równości 1 średnik. Linia 23. zamknij nawias klamrowy. Linia 25. 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 26. int n znak równości 14 średnik. Linia 27. int otwórz nawias kwadratowy zamknij nawias kwadratowy vx znak równości otwórz nawias klamrowy 5 przecinek 2 przecinek 3 przecinek 4 przecinek 2 przecinek 3 przecinek 2 przecinek 1 przecinek 2 przecinek 3 przecinek 8 przecinek 7 przecinek 3 przecinek 6 zamknij nawias klamrowy średnik. Linia 28. int otwórz nawias kwadratowy zamknij nawias kwadratowy vy znak równości otwórz nawias klamrowy 6 przecinek 1 przecinek 2 przecinek 3 przecinek 5 przecinek 1 przecinek 3 przecinek 5 przecinek 3 przecinek 6 przecinek 3 przecinek 6 przecinek 7 przecinek 3 zamknij nawias klamrowy średnik. Linia 30. if otwórz nawias okrągły czyPedZachowany otwórz nawias okrągły vx przecinek vy przecinek n zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 31. System kropka out kropka println otwórz nawias okrągły cudzysłów prawda cudzysłów zamknij nawias okrągły średnik. Linia 32. zamknij nawias klamrowy else otwórz nawias klamrowy. Linia 33. System kropka out kropka println otwórz nawias okrągły cudzysłów fałsz cudzysłów zamknij nawias okrągły średnik. Linia 34. zamknij nawias klamrowy. Linia 35. zamknij nawias klamrowy. Linia 36. zamknij nawias klamrowy. Linia 38. at at at. Linia 39. language znak równości java11. Linia 40. at at at. Linia 41. Napisz funkcję przecinek która sprawdzi przecinek czy została zachowana zasada zachowania pędu dla symulacji zawartej w programie kropka. Linia 42. at at at. Linia 43. at at at. Linia 44. at at at. Linia 45. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 46. import sys. Linia 47. 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 48. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 49. 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 51. if 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 znak równości znak równości apostrof fałsz apostrof dwukropek. Linia 52. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
1

JĘZYK PYTHON

21
Ćwiczenie 3
R1VdISUSjEd5H
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.

Twoje zadanie: Napisz funkcję, która sprawdzi, czy została uwzględniona zasada zachowania pędu dla symulacji zawartej w programie.

Linia 1. from random import randrange. Linia 2. from math import sqrt. Linia 4. def oblicz otwórz nawias okrągły VX przecinek VY przecinek n zamknij nawias okrągły dwukropek. Linia 5. sumaX znak równości sum otwórz nawias okrągły VX zamknij nawias okrągły. Linia 6. sumaY znak równości sum otwórz nawias okrągły VY zamknij nawias okrągły. Linia 7. for i in range otwórz nawias okrągły n zamknij nawias okrągły dwukropek. Linia 8. VX otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0. Linia 9. VY otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0. Linia 10. for i in range otwórz nawias okrągły sumaX zamknij nawias okrągły dwukropek. Linia 11. VX otwórz nawias kwadratowy randrange otwórz nawias okrągły n zamknij nawias okrągły zamknij nawias kwadratowy plus znak równości 1. Linia 12. for i in range otwórz nawias okrągły sumaY zamknij nawias okrągły dwukropek. Linia 13. VY otwórz nawias kwadratowy randrange otwórz nawias okrągły n zamknij nawias okrągły zamknij nawias kwadratowy plus znak równości 1. Linia 15. def czy podkreślnik zachowany podkreślnik ped otwórz nawias okrągły VX przecinek VY przecinek n zamknij nawias okrągły dwukropek. Linia 16. kratka uzupełnij treśc funkcji oraz. Linia 17. kratka stwórz nowe w razie potrzeby. Linia 20. n znak równości 14. Linia 21. VX znak równości otwórz nawias kwadratowy 5 przecinek 2 przecinek 3 przecinek 4 przecinek 2 przecinek 3 przecinek 2 przecinek 1 przecinek 2 przecinek 3 przecinek 8 przecinek 7 przecinek 3 przecinek 6 zamknij nawias kwadratowy. Linia 22. VY znak równości otwórz nawias kwadratowy 6 przecinek 1 przecinek 2 przecinek 3 przecinek 5 przecinek 1 przecinek 3 przecinek 5 przecinek 3 przecinek 6 przecinek 3 przecinek 6 przecinek 7 przecinek 3 zamknij nawias kwadratowy. Linia 24. if czy podkreślnik zachowany podkreślnik ped otwórz nawias okrągły VX przecinek VY przecinek n zamknij nawias okrągły dwukropek. Linia 25. print otwórz nawias okrągły cudzysłów prawda cudzysłów zamknij nawias okrągły. Linia 26. else dwukropek. Linia 27. print otwórz nawias okrągły cudzysłów fałsz cudzysłów zamknij nawias okrągły. Linia 29. at at at. Linia 30. language znak równości python37. Linia 31. at at at. Linia 32. Napisz funkcję przecinek która sprawdzi przecinek czy została uwzględniona zasada zachowania pędu dla symulacji zawartej w programie kropka. Linia 33. at at at. Linia 34. at at at. Linia 35. at at at. Linia 36. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 37. import sys. Linia 38. 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 39. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 40. 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 42. if 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 znak równości znak równości apostrof fałsz apostrof dwukropek. Linia 43. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.