Programowanie funkcyjne/Strumienie/Ćwiczenia: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania(Nie pokazano 4 wersji utworzonych przez 2 użytkowników) | |||
Linia 1: | Linia 1: | ||
− | == | + | == Praca domowa == |
− | Zdefiniuj | + | * Zdefiniuj strumień silni. |
+ | * Zdefiniuj przeplot elementów dwóch strumieni, tzn. strumień powstały z ułożenia naprzemian elementów danych strumieni. [można to zrobić sprytnie, zamieniając w wywołaniu rekurencyjnym miejscami argumenty.] | ||
+ | * Dany jest nieskończony strumień liczb <math>s = (s_1, s_2, s_3, \dots)</math>. Jego strumień różnicowy, to strumień postaci: <math>s' = (s_2-s_1, s_3-s_2, s_4-s_3, \dots)</math>. Strumień różnicowy drugiego stopnia, to strumień różnicowy strumienia różnicowego. Ogólniej, strumień różnicowy <math>n</math>-tego stopnia polega na <math>n</math>-krotnym wzięciu strumienia różnicowego, zaczynając od <math>s</math>. Zdefiniuj, w sposób uwikłany, strumień złożony z pierwszych elementów strumieni różnicowych kolejnych stopni <math>(s_1, s_2-s_1, (s_3-s_2)-(s_2-s_1), \dots)</math>. | ||
+ | |||
+ | ==Ćwiczenia== | ||
* Zdefiniuj procedurę <tt>for_each</tt>, która wykonuje zadaną procedurę na kolejnych elementach strumienia. | * Zdefiniuj procedurę <tt>for_each</tt>, która wykonuje zadaną procedurę na kolejnych elementach strumienia. | ||
− | * Zdefiniuj procedurę <tt>print_int_stream</tt> wypisującą elementy strumienia liczb całkowitych. | + | * Zdefiniuj procedurę <tt>print_int_stream</tt> wypisującą elementy strumienia liczb całkowitych. Użyj do tego celu procedury <tt>for_each</tt> z poprzedniego zadania. |
− | + | * Dane są dwa strumienie. Zdefiniuj strumień wszystkich par uporządkowanych zawierających po jednym elemencie z każdego z danych strumieni (w dowolnej kolejności). | |
− | * | + | * Zdefiniuj w sposób uwikłany: |
− | + | ** strumień liczb całkowitych, które w rozkładzie na liczby pierwsze mają tylko 2, 3 i 5 [R.Hamming], | |
− | + | ** strumień złożony z tych dodatnich liczb całkowitych, które w rozkładzie na czynniki pierwsze mają tylko liczby 2 i 3, oraz rozkładają się na nieparzystą liczbę czynników pierwszych, | |
− | * strumień liczb całkowitych, które w rozkładzie na liczby pierwsze mają tylko 2, 3 i 5 [R.Hamming], | + | ** strumień, którego <math>i</math>-ty wyraz jest równy <math>\frac{(2i)!}{i!}</math>, |
− | * | + | ** strumień, którego <math>i</math>-ty wyraz jest równy <math>\binom{2i}{i}</math>, |
− | * | + | ** strumień zawierający co drugi element danego strumienia. |
− | * | + | * Szereg potęgowy <math>a_0 + a_1 x + a_2 x^2 + \dots</math> możemy reprezentować jako strumień jego kolejnych współczynników. Przy takiej implementacji szeregów potęgowych zaimplementuj: |
− | |||
− | * | ||
**pochodną, | **pochodną, | ||
**całkę, | **całkę, | ||
**interpolacje wybranych funkcji (np.: <math>e^x</math>, <math>\ln x</math>, <math>\cos x</math>, <math>\sin x</math>), | **interpolacje wybranych funkcji (np.: <math>e^x</math>, <math>\ln x</math>, <math>\cos x</math>, <math>\sin x</math>), | ||
− | **mnożenie szeregów potęgowych | + | **mnożenie szeregów potęgowych. |
− | * | + | * Dany jest nieskończony strumień nieskończonych strumieni <i>s</i>. Zdefiniuj jego ,,przekątną'', tzn. głowę głowy, drugi element drugiego strumienia, trzeci element trzeciego strumienia itd. |
− | |||
− | |||
− | |||
− |
Aktualna wersja na dzień 21:29, 26 lut 2012
Praca domowa
- Zdefiniuj strumień silni.
- Zdefiniuj przeplot elementów dwóch strumieni, tzn. strumień powstały z ułożenia naprzemian elementów danych strumieni. [można to zrobić sprytnie, zamieniając w wywołaniu rekurencyjnym miejscami argumenty.]
- Dany jest nieskończony strumień liczb . Jego strumień różnicowy, to strumień postaci: . Strumień różnicowy drugiego stopnia, to strumień różnicowy strumienia różnicowego. Ogólniej, strumień różnicowy -tego stopnia polega na -krotnym wzięciu strumienia różnicowego, zaczynając od . Zdefiniuj, w sposób uwikłany, strumień złożony z pierwszych elementów strumieni różnicowych kolejnych stopni .
Ćwiczenia
- Zdefiniuj procedurę for_each, która wykonuje zadaną procedurę na kolejnych elementach strumienia.
- Zdefiniuj procedurę print_int_stream wypisującą elementy strumienia liczb całkowitych. Użyj do tego celu procedury for_each z poprzedniego zadania.
- Dane są dwa strumienie. Zdefiniuj strumień wszystkich par uporządkowanych zawierających po jednym elemencie z każdego z danych strumieni (w dowolnej kolejności).
- Zdefiniuj w sposób uwikłany:
- strumień liczb całkowitych, które w rozkładzie na liczby pierwsze mają tylko 2, 3 i 5 [R.Hamming],
- strumień złożony z tych dodatnich liczb całkowitych, które w rozkładzie na czynniki pierwsze mają tylko liczby 2 i 3, oraz rozkładają się na nieparzystą liczbę czynników pierwszych,
- strumień, którego -ty wyraz jest równy ,
- strumień, którego -ty wyraz jest równy ,
- strumień zawierający co drugi element danego strumienia.
- Szereg potęgowy
- pochodną,
- całkę,
- interpolacje wybranych funkcji (np.: , , , ),
- mnożenie szeregów potęgowych.
możemy reprezentować jako strumień jego kolejnych współczynników. Przy takiej implementacji szeregów potęgowych zaimplementuj:
- Dany jest nieskończony strumień nieskończonych strumieni s. Zdefiniuj jego ,,przekątną, tzn. głowę głowy, drugi element drugiego strumienia, trzeci element trzeciego strumienia itd.