Zadanie 1.1. Dla dowolnej listy o elementach z przedziału
H−
10, 10
L
i długo
ś
ci n równej losowo wybranej liczbie z przedziału
H
5, 10
L
,
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
H
wykorzysta
ć
funkcje Apply i Map
oraz instrukcj
ę
warunkow
ą
If
L
Przykładowy wynik :
proc
@
Random
@
Integer,
8
5, 10
<DD
Lista wyj
ś
ciowa :
8−
7,
−
4,
−
3,
−
9,
−
1, 8
<
Suma elementów listy :
−
16
Lista ostateczna :
8
49, 16, 9, 81, 1, 64
<
proc
@
Random
@
Integer,
8
5, 10
<DD
Lista wyj
ś
ciowa :
8
7, 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
@8
lista, suma
<
,
lista
=
Table
@
Random
@
Integer,
8−
10, 10
<D
,
8
n
<D
;
@
lista
D
;
suma
=
Apply
@
Plus, lista
D
;
@
suma
D
;
If
@
suma
>
0,
Sort
@
lista
D
,
f
@
x_
D
:
=
x ^ 2;
Map
@
f, lista
D
D
D
proc
@
Random
@
Integer,
8
5, 10
<DD
8−
7,
−
4,
−
3,
−
9,
−
1, 8
<
−
16
8
49, 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
H
wykorzysta
ć
funkjc
ę
Apply, p
ę
tl
ę
For oraz instrukcj
ę
warunkow
ą
If
L
Przykładowy wynik :
proc
@88
2, 4, 1,
−
3
<
,
8−
1,
−
2, 1, 3
<
,
8
9, 3, 10
<<D
Iloczyn podlisty 1 jest równy :
−
24
Iloczyn podlisty 2 jest równy : 6
Rozwi
ą
zanie.
proc
@
lista_
D
:
=
Module
@8
il
<
,
For
@
i
=
1, i
≤
Length
@
lista
D
, i
++
,
If
@
EvenQ
@
Length
@
lista
@@
i
DDDD
,
il
=
Apply
@
Times, lista
@@
i
DDD
;
@
"Iloczyn podlisty ", i, " jest równy: ", il
D
D
D
D
Zad_dod_el_prog_2.nb
1
proc
@88
2, 4, 1,
−
3
<
,
8−
1,
−
2, 1, 3
<
,
8
9, 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
H
wykorzysta
ć
funkcj
ę
MapAt, p
ę
tl
ę
For oraz instrukcj
ę
warunkow
ą
If
L
Przykładowy wynik :
proc
@88
2, 4, 1,
−
3
<
,
8−
1,
−
2, 1, 3
<<D
Lista ostateczna :
88
4, 4, 1,
−
3
<
,
8
1,
−
2, 1, 3
<<
Rozwi
ą
zanie.
proc
@
lista_
D
:
=
Module
@8<
,
lista1
=
lista;
If
@
EvenQ
@
Length
@
lista1
DD
,
For
@
i
=
1, i
≤
Length
@
lista1
D
, i
++
,
f
@
x_
D
:
=
x ^ 2;
lista1
@@
i
DD =
MapAt
@
f, lista1
@@
i
DD
, 1
DDD
;
@
lista1
D
D
proc
@88
2, 4, 1,
−
3
<
,
8−
1,
−
2, 1, 3
<<D
88
4, 4, 1,
−
3
<
,
8
1,
−
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
@88
0,
−
7, 3
<
,
8
10,
−
4
<
,
8−
8, 10, 3
<<D
Lista ostateczna :
8−
4, 6, 5
<
Rozwi
ą
zanie.
proc
@
lista_
D
:
=
Module
@8
lista1
= 8<<
,
For
@
i
=
1, i
≤
Length
@
lista
D
, i
++
,
AppendTo
@
lista1, Apply
@
Plus, lista
@@
i
DDDD
D
;
@
lista1
D
D
proc
@88
0,
−
7, 3
<
,
8
10,
−
4
<
,
8−
8, 10, 3
<<D
8−
4, 6, 5
<
Zad_dod_el_prog_2.nb
2