1
Zadanie 1.1. Dla dowolnej listy o elementach z przedziału H−10, 10L
i długości n równej losowo wybranej liczbie z przedziału H5, 10L, wykonać czynności : sprawdzić czy suma wszystkich elementów jest dodatnia, jeśli tak to posortować listę rosnąco, jeśli nie, to posortować listę melejąco Hwykorzystać funkcje Apply i Map oraz instrukcję warunkową If L
Przykładowy wynik :
proc@Random@Integer, 85, 10<DD
Lista wyjściowa : 8−7, −4, −3, −9, −1, 8<
Suma elementów listy : −16
Lista ostateczna : 849, 16, 9, 81, 1, 64<
proc@Random@Integer, 85, 10<DD
Lista wyjściowa : 87, 2, −1, 8, 3, 3, −8<
Suma elementów listy : 14
Lista ostateczna : 8−8, −1, 2, 3, 3, 7, 8<
Rozwiązanie.
proc@n_D := Module@8lista, suma<,
lista = Table@Random@Integer, 8−10, 10<D, 8n<D;
Print@listaD;
suma = Apply@Plus, listaD;
Print@sumaD;
If@suma > 0,
Sort@listaD,
f@x_D := x ^ 2;
Map@f, listaD
D
D
proc@Random@Integer, 85, 10<DD
8−7, −4, −3, −9, −1, 8<
−16
849, 16, 9, 81, 1, 64<
Zadanie 2.1. Dla dowolnej listy złożonej wykonać
czynności : obliczyć iloczyn elementów podlist o parzystej długości Hwykorzystać funkjcę Apply, pętlę For oraz instrukcję warunkową If L
Przykładowy wynik :
proc@882, 4, 1, −3<, 8−1, −2, 1, 3<, 89, 3, 10<<D
Iloczyn podlisty 1 jest równy : −24
Iloczyn podlisty 2 jest równy : 6
Rozwiązanie.
proc@lista_D := Module@8il<,
For@i = 1, i ≤ Length@listaD, i ++,
If@EvenQ@Length@lista@@iDDDD,
il = Apply@Times, lista@@iDDD;
Print@"Iloczyn podlisty ", i, " jest równy: ", ilD
D
D
D
2
proc@882, 4, 1, −3<, 8−1, −2, 1, 3<, 89, 3, 10<<D
Iloczyn podlisty 1 jest równy: −24
Iloczyn podlisty 2 jest równy: 6
Zadanie 3.1. Dla dowolnej listy złożonej
wykonac czynności : jeśli ilość podlist jest parzysta,
to pierwszy element każdej podlisty podnieść do kwadratu
Hwykorzystać funkcję MapAt, pętlę For oraz instrukcję warunkową If L
Przykładowy wynik :
proc@882, 4, 1, −3<, 8−1, −2, 1, 3<<D
Lista ostateczna : 884, 4, 1, −3<, 81, −2, 1, 3<< Rozwiązanie.
proc@lista_D := Module@8<,
lista1 = lista;
If@EvenQ@Length@lista1DD,
For@i = 1, i ≤ Length@lista1D, i ++,
f@x_D := x ^ 2;
lista1@@iDD = MapAt@f, lista1@@iDD, 1DDD;
Print@lista1D
D
proc@882, 4, 1, −3<, 8−1, −2, 1, 3<<D
884, 4, 1, −3<, 81, −2, 1, 3<<
Zadanie 4.1. Dla dowolnej listy złożonej utworzyc nową listę, której elementami będą sumy poszczególnych podlist
Przykładowy wynik :
proc@880, −7, 3<, 810, −4<, 8−8, 10, 3<<D
Lista ostateczna : 8−4, 6, 5<
Rozwiązanie.
proc@lista_D := Module@8lista1 = 8<<,
For@i = 1, i ≤ Length@listaD, i ++,
AppendTo@lista1, Apply@Plus, lista@@iDDDD
D;
Print@lista1D
D
proc@880, −7, 3<, 810, −4<, 8−8, 10, 3<<D
8−4, 6, 5<