Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бичков - Основи сучасного програмування.doc
Скачиваний:
69
Добавлен:
07.03.2016
Размер:
2.67 Mб
Скачать

Завдання для самостійної роботи

1. Цілочисельний масив упорядкувати за спаданням a1  a2  ...  an і знайти сукупність елементів ai, ..., ak, сума яких дорівнює заданому числу m. Якщо такої сукупності не знайдено, то видати відповідне повідомлення (використайте за можливістю рекурсивні процедури).

2. Скласти програму для з'ясування, чи є серед a1, a2, ..., an принаймні одна пара збіжних за величиною елементів.

3. Написати програми, після виконання яких у масиві a1, a2, ..., an визначається кількість сусідств:

а) двох додатних чисел;

б) двох чисел різного знака;

в) двох чисел одного знака, причому абсолютна величина першого числа має бути більше абсолютної величини другого.

4. Обчислити значення багаточлена

використовуючи формулу Горнера.

5. Обчислити значення полінома

Якщо коефіцієнти полінома – числа натурального ряду, то зводити їх у масив не має сенсу. Обчислення їх доцільно робити в процесі розв’язання. Тоді формула для обчислення поточного значення полінома буде мати вигляд

6. Обчислити значення використовуючи формулу Горнера:

Множник, на який множиться будь-яка дужка, можна подати як

де m  8.

7. Обчислити суму членів ряду використовуючи формулу Горнера

5

Зображення чисел у комп'ютері

Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного

Програми обробляють дані, змінюючи стан інформаційного середовища. Тому велике значення має зображення інформації усередині комп'ютера. Неможливо грамотно використовувати його можливості, не знаючи способу зображення, – це може призвести до помилок. Розглянемо таку програму:

#include <iostream.h>

Int main(void)

{

float h,x;

int i,m;

m=512;

for(i=m–1; i<=m+1;i++)

{

h=1./i;

x=0.;

for(int j=1;j<=i;j++)

x=x+h;

printf("x=%10.8f\n",x);

}

return 0;

}

Неважко бачити, що програма для трьох сусідніх значень підсумовує i разів величину 1/i. Здавалося б, кінцевий результат її роботи –і*(1/і) – має дорівнювати одиниці. Перевіримо. Запустивши програму, побачимо на екрані

511

0.99999666

512

1.00000000

513

0.99999666

Точним є лише значення i==512. Тому необхідно розібратися із зображенням чисел усередині комп'ютера.

5.1. Системи числення

Числа, якими ми звикли користуватися, називаються десятковими, тому арифметика дій з ними також називається десятковою. Кожне число можна скласти з набору цифр, що містить 10 символів – цифр. Якщо припустити, що алфавітом є множина {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, а число – це слово, то зрозуміло, що назва "десяткове" походить від кількості літер алфавіту.

Візьмемо, наприклад, число 358. Цей запис означає, що в числі три сотні, п'ять десятків і вісім одиниць. Отже, можна записати таку рівність: 358  300  50  8  3 * 102  5 * 101  8 * 100.

Цифри, які утворюють наше число, множаться на послідовні степені числа 10. Вони збільшуються на десять у степені, який на одиницю менше порядкового номера цифри, при нумерації справа наліво. Таким чином, кожне написане нами число може бути зображене у вигляді спеціального розкладу за степенями числа 10, а для запису використовується набір з десяти цифр.

Позначимо i-ту цифру числа через ai. Тоді число можна записати у вигляді anan-1…...a2a1. Запис числа можна зобразити так:

 anan-1…...a2a1 an х10n-1 an-1 х 10n-2 …... a2 х 101 a1 х 100, (6.1)

де ai – символ з алфавіту {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

Число 10 є основою утворення числа, яка називається основою системи числення, а сама система числення називається десятковою.

Під системою числення розуміється спосіб зображення будь-якого числа за допомогою деякого алфавіту символів, що називаються цифрами.

Наочність зображення чисел і порівняльна простота виконання арифметичних операцій характерні для позиційних систем числення.

Система числення називається позиційною, якщо цифра має різні значення, залежно від того, яку позицію вона займає в послідовності цифр, що зображують число. Прикладом непозиційної системи числення є римська система зображення чисел.

Кількість р символів алфавіту, що використовуються в позиційній системі числення, називається її основою.

У загальному випадку в системі з основою р будь-яке число можна зобразити у вигляді полінома з основоюр:

тоді саме число у вигляді послідовності літер алфавіту записується як

У цій послідовності крапка відокремлює цілу частину числа від дробової, тобто коефіцієнти при позитивних степенях основи, включаючи нуль, – від коефіцієнтів при негативних степенях.

Технічно реалізувати десяткову систему числення на комп'ютері дуже складно: для збереження десяткової цифри потрібен пристрій з десятьма стійкими станами.

У комп'ютерах застосовують позиційні системи числення з недесятковою основою: двійкову, вісімкову, шістнадцяткову.

Технічно досить просто реалізувати двійковий елемент: є сигнал – немає сигналу. Крім того, у двійковій системі найпростіше реалізуються всі арифметичні операції: наприклад, двійкова таблиця множення складається лише із чотирьох рядків:

0  0  0 0  1  0 1  0  0 1  1  1

Вивчати принципи роботи комп'ютера без двійкової системи числення неможливо. Для двійкової системи числення формулу (6.1) можна записати у вигляді

,

де – або 0, або 1.

У вісімковій системі застосовуються вісім цифр: 0, 1, 2, 3, 4, 5, 6, 7. Для неї формула (6.1) має вигляд

де коефіцієнти набувають значень від0 до 7.

Аналогічне зображення справедливе і для шістнадцяткової системи. Алфавіт складається з 16 літер: десяти цифр і шести літер – A, B, C, D, E, F, що позначають числа 10, 11, 12, 13, 14, 15, відповідно.

У табл. 5.1 подано відповідність чисел у різних системах числення.

Таблиця 5.1

Десяткова

Двійкова

Вісімкова

Шістнадцяткова

00

0000

00

0

01

0001

01

1

02

0010

02

2

03

0011

03

3

04

0100

04

4

05

0101

05

5

06

0110

06

6

07

0111

07

7

08

1000

10

8

09

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

Розглянемо процес зображення чисел у різних системах числення.