Programowanie i algorytmy

Liczby parzyste i kwadratowe

Zad. 1. W pliku dane.txt znajduje się w kolejnych wierszach 1000 liczb z przedziału [0;999999].

a) do pliku a.txt wpisz ilość liczb parzystych znajdujących się w pliku dane.txt w następującej postaci: "Liczb parzystych jest [ilość liczb]"

b) do pliku b.txt skopiuj wszystkie liczby z pliku dane.txt, w których cyfra dziesiątek jest równa 7 lub 0

c) do pliku c.txt skopiuj wszystkie liczby, które są kwadratami liczb całkowitych, np. taką liczbą jest liczba 225, ponieważ

 

{tex}225 = 15^2{/tex}.

 

Rozwiązanie

Dodawanie wielkich liczb

Zad. 2. Napisz program, który doda do siebie dwie duże liczby naturalne.

Wejście

Dwie liczby naturalne składające się z maksymalnie 1000 cyfr.

Wyjście

Wynik sumy liczb podanych na wejściu.

 

Rozwiązanie

Ciągi znaków - prawdopodobieństwo

Zad. 3. W pliku ciagi.txt znajduje się tysiąc wierszy, a w każdym wierszu ciąg o długości trzech liter ze zbioru {A, B, C}(litery mogą się powtarzać). Napisz program, który:

 

a) obliczy prawdopodobieństwo, że w wybranym wierszu będzie ciąg składającym się z takich samych znaków. Odpowiedź zapisz do pliku a.txt

 

b) obliczy prawdopodobieństwo, że  w wybranym wierszu będzie palindrom lub litera po prawej stronie ma wartość "A". Odpowiedź zapisz do pliku b.txt.

c) skopiuje do pliku c.txt wszystkie wiersze, w których pojawił się podciąg "AC", np.:

AAC, ACB, ACC, itd.

Wskazówka. W podpunkcie a i b, należy zastosować prawdopodobieństwo klasyczne ze wzoru:

{tex}P(A) = \frac{|A|}{|\Omega|}{/tex},

gdzie |A| - ilość wierszy spełniających kryteria zadania, |Ω| - wszystkie wiersze.

 

Rozwiązanie