Вы находитесь на странице: 1из 4

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ»

Тема: Связь_массивов_и_указателей. Операции_над_указателями.


Цель: Научиться выполнять операции над указателями, понять связь массивов и
указателей.

Необходимые инструменты: MS Visual Studio


Документация:
Ориентировочное время исполнения: 3 часа.

Требования к отчету: Отчет должен быть оформлен в виде электронного


документа: программный код с комментариями, выводы о результатах
выполняемых действий и копии экрана. Размер файла отчета до 2 МБ со
скриншотами.

Задание:

1. Объявить две переменные и два указателя. Присвоить указателям адреса


переменных. Сравнить два указателя. Объяснить результат сравнения.
#include <iostream>
#include <math.h>
#include <windows.h>
#include <numeric>
#include <functional>
using namespace std;
int por(int *a, int *b)
{
if (a == a)
{
cout << "pravda ";
}
else
{
cout << "nepravda ";
}
if (a < b)
{
cout << "bilshe ";
}
else
{
cout << "menshe ";
}
return *a;
}
int main()
{
КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ»

int a = 5, b = 10;
por(&a, &b);
return 0;
}

2. Для кода:
#include <iostream>
using namespace std;
void main()
{
int a=2;
int *p=&a;
//Объяснить, в чём заключается разница между операциями
(*p)++;
//и
*p++;
}
void main()
{

int a = 2;
int *p = &a;
*p += 2;
//Объяснить, в чём заключается разница между операциями
//(*p)++; - рахує число змінної та обчислює його
//и
//**p++;* - рахує адресу вказівника і додає до нього 4 байта
cout << *p << endl;

return;
}

3. Для кода:
#include <iostream>
using namespace std;
void main()
{
const int SIZE=10;
int A[SIZE]={1,2,3,4,5,6,7,8,9,10};
int *p=A;
//объяснить, что будет делать операция p++ и p--
}

4. Исправить код:
#include <iostream>
using namespace std;
КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ»

void main()
{
const int SIZE=10;
int A[SIZE]={1,2,3,4,5,6,7,8,9,10};
int *p=A;
for(int i=0; i<SIZE; i++) //выполнить вывод массива используя указатели
//максимальным количеством способов

5.Дан массив целых чисел a1,..an. Используя указатели, выяснить, какая из


трех ситуаций имеет место: все числа a1,..an равны нулю, в последовательности
a1,...,an первое ненулевое число - положительное, первое ненулевое число -
отрицательное.

6. Используя указатели, пеpенести в хвост одномеpного массива пеpвый


отpицательный элемент.

7. Используя указатели, подсчитать в одномеpном массиве максимальное количест-


во подpяд идущих нулей.

8. Используя указатели, пеpенести в начало одномеpного массива втоpой нулевой


элемент.

9. Используя указатели, подсчитать в одномеpном массиве максимальное количест-


во сеpий подpяд идущих единиц.

10. Используя указатели, исключить из массива А1..AN пеpвую сеpию


отpицательных элементов.

11. Используя указатели, исключить из массива А1..AN пеpвый четный элемент,


следующий за максимальным.

12.Дан массив целых чисел a1,..,an. Используя указатели, найти сумму двух самых
больших по значению элементов массива и напечатать ее значение.

Результат:
КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ»