Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions lesson_3/lesson3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,17 @@ extern int ae, be, ce, de;//goto lesson3_ext.cpp

int variable_inint();

int main()
{
int main(){
/*Задание 1
Написать программу, вычисляющую выражение a * (b + (c / d)) и
выводящую результат с плавающей точкой, где a, b, c, d – целочисленные константы

1 есть ещё пара решений без явного приведения типов
*/
const int a = 2, b = 3, c = 4, d = 23;
printf("a * (b + (c / d)) = %f\n", a * (b + ((float)c / d)));
float ff = a * (b + (c / d));
printf("a * (b + (c / d)) = %f | %f\n", a * (b + ((float)c / d)), ff);

/*Задание 2
Дано целое число, выведите на экран разницу между этим числом и числом 21.
Если же заданное число больше, чем 21, необходимо вывести удвоенную разницу
Expand All @@ -38,6 +41,10 @@ int main()
/*Задание 4*
Описать трёхмерный целочисленный массив, размером 3х3х3, указатель на значения внутри массива
и при помощи операции разыменования вывести на экран значение центральной ячейки получившегося куба [1][1][1]


4 не очень удобно будет индексировать другие значения в массиве,
нужно будет придумывать и описывать специальную математику, считающую индекс
*/
int arr[3][3][3], *arrptr;
arrptr = &arr[0][0][0];//в методичке сказано, что arrptr = arr[0] корректная инициализация, но мой компилятор ругается на невозможность присвоить 'int [3][3][3]' указателю 'int*'
Expand All @@ -46,10 +53,18 @@ int main()
for (int k = 0; k < 3; k++){
arr[i][j][k] = i * 100 + j * 10 + k;
// *(arrptr + i*9 + j*3 + k) = i * 100 + j * 10 + k;//или с использованием указателя
// printf("Cube (arr[%d][%d][%d]) = %d, %d\n", i, j, k, arr[i][j][k], *(arrptr + i*9 + j*3 + k));
printf("Cube (arr[%d][%d][%d]) = %d, %d\n", i, j, k, arr[i][j][k], *(arrptr + i*9 + j*3 + k));
}
}
}
printf("Center of Cube (arr[1][1][1]) = %d\n", *(arrptr + 13));//*arrptr + 1*9 + 1*3 + 1
printf("Center of Cube (arr[1][1][1]) = %d\n", *(*(*(arr + 1) + 1) + 1));
/* std::cout << *(*(*(arr))) << std::endl;//222
std::cout << *(*(*(arr))+1) << std::endl;//222
std::cout << *(*(*(arr)+1)) << std::endl;//222
std::cout << *(*(*(arr+1))) << std::endl;//222
std::cout << *(*(*(arr+1))+1) << std::endl;//222
std::cout << *(*(*(arr+1)+1)) << std::endl;//222
*/
return 0;
}
3 changes: 1 addition & 2 deletions lesson_3/lesson3_ext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@

int ae, be, ce,de;

int variable_inint()
{
int variable_inint(){
ae = 10;
be = 20;
ce = 30;
Expand Down