§ 11. Структураваны тып даных масіў

Практыкаванні

    

1. Напішыце праграму, якая запіша масіў з n выпадковых лікаў з адрэзка [–10; 10] у тэкставы файл. Выведзіце: першы элемент; апошні элемент; элемент, які стаіць на сярэднім месцы.

2. Запішыце ў масіў n радкоў, прачытаўшы іх з тэкставага файла. Выведзіце элементы масіву ў адваротным парадку.

3. Для атрымання рэчыўных выпадковых лікаў можна паасобку атрымліваць цэлую і дробавую часткі, а затым знаходзіць іх суму. Напрыклад, атрымаць лік з прамежку [0; 1) з трыма лічбамі пасля коскі можна з дапамогай каманды:

double x = 1. * rand() % 1000  / 1000;

Напішыце праграму, якая згенеруе масіў са 100 рэчыўных лікаў і запіша іх у тэкставы файл. Знайдзіце сярэдняе арыфметычнае гэтых лікаў.

4. Для масіву, апісанага ў прыкладзе 11.6, задайце значэнні выпадковымі рэчыўнымі лікамі з інтэрвалу (–20; 10) з адным знакам пасля коскі. Запішыце атрыманыя даныя ў тэкставы файл. Выведзіце ў іншы тэкставы файл значэнні тэмператур для зададзенага дыяпазону дат. Вывад для дыяпазону дат ад 1 снежня да 8 снежня можа быць такім:

1 снежня тэмпература была = 9.4
2 снежня тэмпература была = –11.8
3 снежня тэмпература была = –16.6
4 снежня тэмпература была = 8
5 снежня тэмпература была = 0.9
6 снежня тэмпература была = –9.3
7 снежня тэмпература была = –11.5
8 снежня тэмпература была = 6.6

5. Для задачы з прыкладу 11.24 выканайце наступныя заданні:

1. Запоўніце табліцу.

N

n

a

S

P

1

3

-2 -3 -5

 

 

2

5

1 2 3 4 5

 

 

3

10

1 -3 -2 3 4 3 2 4 3 2

 

 

2. Дабаўце ў табліцу свае значэнні n і a.
3. Паспрабуйце падабраць такія значэнні элементаў масіву, каб S = P, для n = 2 і n = 5.
4. Для n = 10 увялі ўсе элементы масіву, роўныя 9. Які вынік атрымалі? Чаму? Што трэба выправіць у праграме для атрымання правільнага выніку?

6. Напішыце праграмы, якія для зададзенага масіву вылічаць: 

    1. .begin mathsize 16px style square root of open vertical bar a subscript 0 space asterisk times space a subscript 1 space asterisk times... asterisk times a subscript n space – space 1 end subscript close vertical bar end root end style
    2. a0 + 2a1 + 3a2 + ... + nan – 1.
    3. a0*a1 + a* a2 + a* a3 + ... + a– 2 * an  – 1.
    4. a0 a1 + a2 a3 +... + (–1)n - 1a– 1.
    5. a0 2a1 + 4a2 8a3 ... + (–2)na– 1.
    6. a0 + a1 – 2a2 + 6a3 – 24a4 ... + (n 1)!(–1)nan 1.

7. У ходзе хакейнага матча выдаляліся гульцы абедзвюх каманд. Для кожнага выдаленага гульца вядомы час яго адсутнасці на полі. Напішыце праграму для вызначэння, якая вызначыць, якая з каманд правяла больш часу на лаўцы штрафнікоў

8. Для задачы з прыкладу 11.26 выканайце наступныя заданні.

1. Увядзіце лік 5557. Чаму з’явілася памылка?
2. Дапоўніце масіў канстант простымі лікамі так, каб праграма магла выдаваць адказ для лікаў, меншых за 10 000. (Для гэтага можна выкарыстаць саму праграму або табліцу простых лікаў.)