• Nie Znaleziono Wyników

Zadania z Języka C dla grup 7. i 9. Zestaw V

N/A
N/A
Protected

Academic year: 2021

Share "Zadania z Języka C dla grup 7. i 9. Zestaw V"

Copied!
2
0
0

Pełen tekst

(1)

Zadania z Języka C dla grup 7. i 9.

Zestaw V - styczeń 2016

15. Porządkowanie alfabetyczne. Proszę napisać program, który wczytuje kolejne wiersze tekstu wprowadzanego ze standardowego wejścia, aż do napotkania znacz- nika końca pliku (przy wprowadzaniu z klawiatury: Ctrl-D), zapamiętuje je w ta- blicy char *Tekst[N_MAX]; gdzie N_MAX to pewna ustalona maksymalna liczba wierszy, a następnie porządkuje wiersze w kolejności alfabetycznej i wyprowadza wynik na standardowe wyjście. Zadanie można stosunkowo łatwo wykonać korzy- stają z funkcji qsort(...) oraz strcmp(...) zdefiniowanych w plikach nagłów- kowych <stdlib.h> i <string.h>. Do wczytywania kolejnych wierszy doskonale nadaje się funkcja standardowa gets(...); warto zadbać o to, aby puste wiersze były pomijane na etapie wczytywania.

16. Porządkowanie tabeli liczbowej. Podobnie jak wyżej, uporządkować wiersze zawierające ciągi liczb rzeczywistych według pierwszej liczby w każdym wierszu, w porządku rosnącym lub mającym (w zależności od wartości opcjonalnego para- metru wywołania funkcji main).

17. Całkowanie numeryczne. W wielu zagadnieniach z różnych dziedzin nauki za- chodzi potrzeba przybliżonego obliczania wartości całek oznaczonych, których nie da się policzyć metodami analitycznymi. W przypadku całek jednowymiarowych, jedną z najprostszych a zarazem stosunkowo efektywnych metod jest tzw. metoda trapezów, w ramach której stosujemy przybliżenie:

Z b a

f (x)dx ≈ SN =

a + b

2 +

N −1

X

j=1

f a + j b − a N

!

b − a N .

Błąd takiego przybliżenie można oszacować dla parzystego N jako |SN − SN/2|, a zatem zakładając pewną pożądaną dokładność obliczeń, np.  = 10−6, możemy podwajać N tak długo, aż |SN − SN/2| < . Warto zauważyć, że podwojeniu N wystarczy obliczyć wartości funkcji występujące w sumie po prawej stronie tylko dla nowych punktów, tj. dla nieparzystych wartości j.

Proszę napisać funkcję obliczającą całki metodą trapezów, której parametrami będą granice całkowania a i b, żądana dokładność , oraz wskaźnik na funkcje za- wierającą definicje funkcji matematycznej f (x). Warto zadbać o zwracanie infor- macji (w dodatkowych zmiennych całkowitych), czy udało się osiągnąć oczekiwaną dokładność, ile wyniosło końcowe N , itp. (Napisać także program demonstrujący działanie opisanych funkcji z wykorzystaniem standardowego wejścia i wyjścia).

Rozszerzenie informatyczne. Osoby, które napisały Kalkulator (Zadanie 14. z Ze- stawu IV) proszę takie napisanie programu głównego, aby funkcja do całkowania była wprowadzana z klawiatury w notacji odwrotnej polskiej. Dla przykładu, f (x) = (x − 2)2/2 można wprowadzić jako

(2)

x 2 - 2 ** 2 / lub równoważnie

1 2 \ x 2 - 2 ** *

Taki napis jest zapamiętywany jako tablica znakowa i przekazywany (jako argu- ment w zmiennej globalnej) funkcji obliczającej f (x). Przy każdym wywołaniu tej funkcji (dla pewnej wartości zmiennej niezależnej x) napis jest przetwarzany podobnie jak dane wejściowe kalkulatora, z tym, że w przypadku napotkania znaku

“x” aktualna wartość zmiennej niezależnej odkładana jest na stos (jest to zatem odpowiednik wprowadzenia liczby do kalkulatora), a po zakończeniu przetwarzania napisu funkcja zdejmuje ostatnią liczbę ze stosu i zwraca jako wynik (odpowiednik operatora “=” w kalkulatorze). Liczne fragmenty kodu kalkulatora, np. odpowia- dające za operatory dwuargumentowe, będzie można wykorzystać bez zmian.

Rozszerzenie matematyczne. Program można stosunkowo łatwo rozbudować tak, aby obliczał całki niewłaściwe, w przypadku których konieczne jest numeryczne wzięcie granicy z parametrem a lub b, jak na przykład:

Z 1 0

dx x = 2,

Z 1

dx

x2 = 1, itp.

18. Metoda bisekcji. Proszę napisać program znajdujący miejsce zerowe funkcji me- todą bisekcji (czyli równego podziału), o podobnej strukturze do programu z Za- dania 17. Informacje o metodzie bisekcji wyszukać samodzielnie.

Cytaty

Powiązane dokumenty

Napisa¢ równania Friedmana dla pyªu z dodatni¡ staª¡ kosmologiczn¡ i dobra¢ tak warto±ci parametrów, aby rozwi¡zanie byªo statyczne.. Pokaza¢, »e to

Proszę napisać funkcje, która mnoży dwie liczby typu unsigned (albo unsigned long), a wynik zapamiętuje w dwóch innych zmiennych, z których jedna przechowuje najmłodsze bity

W przypadku funkcji generującej liczby losowe metodą Boxa-Mullera, można zadbać o to, aby przy nieparzystym wywołaniu była wykonywana cała pro- cedura począwszy od losowania liczb x

Napisać program, który czyta ciąg liczb ze standardowego wejścia aż do wystąpie- nia znaku końca pliku (kombinacja klawiszy Ctrl–D na klawiaturze), a następnie oblicza

Dla podanych a, b, c podać takie d, aby istniał czworokąt wypukły o bokach długości (z zachowaniem kolejności) a, b, c, d, w który można wpisać okrąg. Dla podanych a, b, c

W czworokącie ABCD punkty P oraz S są środkami przekątnych BD oraz AC oraz punkt O jest punktem przecięcia prostych AD oraz BC.. (⋆) Trójkąty ABC i DEF są takie, że AD, BE oraz

Działania w zbiorze liczb zespolonych Dodawaj liczby zespolone 3+5i oraz

Pokaza´c, ˙ze det A jest liczb ˛a całkowit ˛a... Zastosowa´c indukcj˛e wzgl˛edem stopnia