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

Void fact(int k);

{

. . .

Void fact(k);

. . .

}

Щоби функція не створила нескінчену послідовність викликів самої себе, обов’язковою є перевірка досягнення вибраним параметром гранич­ного значення (див приклад №2).

Функція в головну програму може повернути тільки одне значення. Для повернення в головну програму більше одного значення в якості аргументів функції необхідно використовувати вказівники або адреси змінних.

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

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

<тип> * <вказіввник>

де:

<тип> - тип змінної, адресу якої буде містити покажчик.

Наприклад:

Int *I; //Вказівник - змінна на дані типу int

double *Fx;/* Вказівник - змінна на дані типу double */

float *x; /*Вказівник - змінна на дані типу float */

С++ для роботи зі змінними дозволяє використовувати дві основні операцій: & та *. Ці операції служать для:

&<імя змінної> – визначення адреси розміщення значення змін­ної;

* <вказівник> – отримання значення визначеного типу за вказа­ною адресою.

Оператор присвоєння значення адреси покажчику має наступний синтаксис:

<змінна - вказівник>=&<імя змінної>

і при цьому операндом операції & повинно бути імя змінної того ж типу, що і вказівник лівої частини оператора. Наприклад:

Int k, *vk; //Опис змінної - вказівника *vk

vk=&i; /*Вказівнику присвоюється значення адреси змінної i */

Непряма адресація змінної за допомогою вказівника дозволяє отримати доступ до значення змінної. Синтаксис такої операції є наступним:

<імя змінної>=* <вказівник>

Наприклад:

i=*vk; /* Змінна і отримує значення, розташоване за заданою

вказівником *vk адресою */

В програмі для звертання до значення за допомогою вказівника його можна використовувати в операторі присвоєння скрізь, де може бути ім’я самої змінної. Фактично вказівник є «синонімом» змінної, на яку він вказує. До вказівників можуть бути застосовані операції присвоєння, цілочисельної арифметики та порівняння.

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

Приклади виконання завдання лабораторної роботи

Приклад №1

Програма знаходження числа комбінацій із елементів по за фор­мулою

.

#include <iostream>

#include <windows.h>

using namespace std;