Лабораторная работа №4
Дисциплина ОАП
Студента группы 3ПМ-210
Журина Андрея
Указатели на одномерные массивы.
1. Цель работы:
Целью лабораторной работы является получение практических навыков в работе с
указателями и с адресной арифметикой в языке C ++.
2. Темы для предварительной проработки:
· Указатели. Типизированные указатели.
· Указатели и массивы.
· Адресная арифметика.
· Динамическое выделение памяти.
3. Задания для выполнения
· Выполнить задание лабораторной работы 1 с такими дополнительными условиями:
· размер массива определяется в начале выполнения программы как случайное число в
диапазоне -50 - 50;
в тексте программы запрещается применять операцию индексации.
· Вариант 11 — Найти количество пар соседних элементов, которые имеют
· одинаковые абсолютные значения, но противоположные знаки.
4. Текст программы:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
//setlocale(LC_ALL, ".1251");
int size = rand() % 50;
int *mas = new int[size], *mas_el, kol_par = 0;
cout << "Размер массива: " << size << endl;
cout << "Массив: \n";
for(mas_el = mas; mas_el < mas + size; mas_el++) {
*mas_el = rand() % (-50) - rand() % 50;
cout << *mas_el << " ";
}
cout << "\n\n";
for(int i = 0; i < size-1; i++) {
if(abs(*(mas+i)) == abs(*(mas+i+1)) && *(mas+i) + *(mas+i+1) == 0 &&
*(mas+i) != 0)
kol_par++;
}
cout << "Кол-во пар: " << kol_par << endl;
//system("pause");
return 0;
}
5. Результат выполнения программы:
Размер массива: 33
Массив:
9 -28 -1 -7 9 -13 -4 -14 4 25 1 -3 18 6 6 -20 -11 -26 -5 13 2 -15 -11 9 7 -15
24 11 -26 26 -9 -9 -41
Кол-во пар: 1