Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lr_hw_IZDN.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
1.12 Mб
Скачать

Адресна арифметика в Сі

Типізовані покажчики мови С дозволяють виконувати з ними наступні операції:

  • додавання цілого літералу;

  • віднімання цілого літералу;

  • віднімання вмісту покажчика від вмісту іншого покажчика;

  • порівняння покажчиків.

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

Приклад:

int * pIntSq ; // оголошення покажчика на ціле

pIntSq = new int [10]; // захоплення пам’яті в «купі» для

// зберігання десяти цілих значень

for ( i = 0; i < 10; i ++ )

{

* ( pIntSq + i ) = i + 1; // створення послідовності 1 .. 10

}

delete [] pIntSq; // звільнення пам’яті в «купі»

Елементи індексованої послідовності значень розташовуються у певному безперервному просторі пам’яті. Наприклад, вираз *(pIntSq + 1) забезпечує доступ до другого елементу послідовності (третя адресна комірка після той, на яку вказує покажчик “pIntSq”).

Правила написання програм

При написанні складених операторів розташовуйте операторні дужки та оператори, які входять у складений, в окремих рядках програми, розміщуючи вміст складеного оператора всередину операторних дужок.

При написанні операторів вибору розташовуйте частини “then” і “else” окремо, розміщуючи їхній вміст окремо, кожний оператор на окремому рядку програми.

Розташовуйте кожний оператор у варіанті вибору (охоронна форма) на окремому рядку.

При написанні операторів повторення (циклу) розташовуйте тіло циклу окремо від заголовку, а в тілі циклу кожний оператор розташовуйте на окремому рядку.

Не використовуйте, якщо не потрібно, дужок складеного оператора.

Не ставте однакових операторів у гілці операторів вибору.

Не використовуйте охоронну форму оператора вибору, замінюйте її альтернативною.

Не пишіть вироджених циклів, таких що не виконуються ані разу або можуть бути замінені явним повторенням (вибором).

Не вводьте у цикл операторів, не зв'язаних з повторенням.

Завдання

Написати програму на мові Сі, яка складається з наступних дій:

  1. Створення числової послідовності згідно з варіантом (табл. 12) шляхом використання адресної арифметики.

  2. Обробка послідовності згідно з варіантом (табл. 12).

Таблиця 12

№ варіанта

Тип

даних

Кількість елементів

Вираз для обчислення елементу послідовності

Знайти

парного

непарного

1

Дійсний

10

i + 5.8

i – 2.0

Мінімальний елемент

2

Цілий

12

2 * i + 4

7 * i - 3

Максимальний

Елемент

3

Дійсний

5

i + 1.0

10 / i + 2.0

Добуток елементів

4

Цілий

7

i * i + 1

i – 8

Суму елементів

5

Дійсний

6

15.5 - i

7.2 + i

Суму елементів, значення яких більше 10

6

Цілий

10

i + 5

i – 5

Середнє арифметичне

Елементів

7

Дійсний

9

-6.2 + i

i + 5.1

Суму елементів, значення яких менше 4.0

8

Цілий

11

i + 5

2 * i + 3

Добуток елементів, значення яких більше 15

9

Дійсний

8

1.5 - i

7.3 - i

Суму додатних елементів

10

Цілий

6

23 + i

25 - i

Добуток елементів, значення яких менше 24

11

Дійсний

7

6 * i - 9

-9 / i

Суму від’ємних елементів

11

Дійсний

7

6 * i - 9

-9 / i

Суму від’ємних елементів

12

Цілий

8

2 * i - 44

i -3

Добуток додатних елементів

13

Дійсний

9

2.3 + i

4.6 – i

Середнє арифметичне додатних елементів

14

Цілий

11

i - 7

7 + i

Середнє арифметичне від’ємних елементів

15

Дійсний

10

15.68 + 3 * i

15.68 – 3 * i

Кількість додатних елементів

Примітка: при обчисленні виразу позначка і відповідає індексу елемента послідовності.

Контрольні питання

  1. Як здійснюється подання адресних значень?

  2. Які існують операції адресної арифметики?

Література: [1]; [6]; [7].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]