Created
April 30, 2025 22:21
-
-
Save Ruthenus/6acc1240eee960e5f3884286415fc06b to your computer and use it in GitHub Desktop.
Week 19 Classwork in IT STEP Academy (practice on pointers)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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 = π | |
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