Skip to content

Instantly share code, notes, and snippets.

@Ruthenus
Created April 30, 2025 22:21
Show Gist options
  • Save Ruthenus/6acc1240eee960e5f3884286415fc06b to your computer and use it in GitHub Desktop.
Save Ruthenus/6acc1240eee960e5f3884286415fc06b to your computer and use it in GitHub Desktop.
Week 19 Classwork in IT STEP Academy (practice on pointers)
#include <iostream>
#include <windows.h>
using namespace std;
double power(double* base, int* exp);
int main()
{
SetConsoleOutputCP(1251);
int x = 10;
int y = 15;
const int* const px = &x;
// px = &y;
// E0077
// это объявление не содержит класс хранения или спецификатор типа
// *px = 29;
// E0077
// E0144
// значение типа "int" нельзя использовать для инициализации
// сущности типа "int *"
// Створити дві змінні одного типу, і визначити «відстань» між ними
// в пам'яті. Відстань показати у змінних того ж типу (відняти від
// одного покажчика інший). Потім показати відстань уже в байтах.
double pi = 3.1415926;
double* ptrPi = &pi;
double e = 2.7182818;
double* ptrE = &e;
cout << "Відстань у змінних типу double дорівнює "
<< ptrE - ptrPi << ".\n"
<< "Відстань між змінними становить "
<< (ptrE - ptrPi) * sizeof(double) << " байт.\n\n";
// Користувач вводить значення у дві змінні A і B. Показати на
// екрані, скільки буде, якщо піднести А до степеня В. Підрахунки
// здійснюються за допомогою покажчиків!
double a;
int b;
cout << "Введіть значення А (основа степеня): ";
cin >> a;
cout << "Введіть значення B (цілочисельний показник степеня): ";
cin >> b;
cout << "Результат піднесення до степеня: " << power(&a, &b) << "\n";
return 0;
}
double power(double* base, int* exp)
{
if (*exp == 0) return 1.0;
if (*exp < 0) {
*exp = -(*exp);
return 1.0 / power(base, exp);
}
if (*exp > 0) {
--(*exp);
return *base * power(base, exp);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment