Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная_работа_№4_РИ-111-09-05-12.docx
Скачиваний:
1
Добавлен:
10.09.2019
Размер:
1.44 Mб
Скачать

Міністерство освіти і науки, молоді та спорту України

Одеський національний політехнічний університет

Кафедра ІТПЕТ

Лабораторна работа №4

з дисципліни «Алгоритмізація та програмування»

«Використання вказивників у програмах на мові С++»

Варіант 9

Виконав:

студент групи РІ-111

Степаненко А. В.

Перевірив:

Доц. Андріянов А. В.

2012 рік

Цель: использование указателей в программах на языке C++

Исходный код программы

Задание 1

#include<iostream>

using namespace std;

void main()

{

setlocale(LC_ALL,"russian");

int iNum1;

int iNum2;

int iResult;

int *pNum1;

int *pNum2;

iNum1=2;

iNum2=3;

pNum1=&iNum1;

pNum2=&iNum2;

iResult=*pNum1+*pNum2;

cout << "Рузультат=" << iResult << endl;

system("pause");

}

Задание 2

#include <iostream>

using namespace std;

Void main()

{

setlocale(LC_ALL,"russian");

const char SIZE=10;

float numbers[SIZE]={0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9};

float *nPtr;

int i;

/*п.3. Напечатать элементы массива numbers используя запись индексов*/

cout << "п.3. Напечатать элементы массива numbers используя запись индексов" << endl;

for(i=0;i<10;i++)

cout << numbers[i] << " ";

cout << endl<< endl;

//п.4. Приведите 2 различных оператора, которые присваивают начальный адрес переменной указателю

nPtr=&numbers[0];

cout << "Адрес numbers[0]: " << nPtr << endl;

nPtr=(numbers+0); // или nPtr=numbers;

cout << "Адрес (numbers+0): " << nPtr << endl;

cout << endl;

/*п.5. Напечатать элементы массива numbers используя указатель nPtr*/

cout << "п.5. Напечатать элементы массива numbers используя указатель nPtr" << endl;

for(i=0;i<10;i++)

{

cout << *(nPtr+i) << " ";

}

cout << endl<< endl;

/*п.6. Напечатать элементы массива numbers используя запись указатель-смещение с именем массива как указателем*/

cout << "п.6. Напечатать элементы массива numbers используя запись указатель-смещение с именем массива как указателем" << endl;

for(i=0;i<10;i++)

cout << *(numbers+i) << " ";

cout << endl<< endl;

/*п.7. Напечатать элементы массива numbers используя индексацию указателя nPtr*/

cout << "п.7. Напечатать элементы массива numbers используя индексацию указателя nPtr" << endl;

for(i=0; i<10; i++)

cout << nPtr[i] << " ";

cout << endl<< endl;

/*п.8. Напечатать элементы массива numbers используя запись индексов*/

cout << numbers[3] << endl;

/*п.8. Напечатать элементы массива numbers используя запись указатель-смещение с именем массива как указателем*/

cout << *(numbers+3) << endl;

/*п.8. Напечатать элементы массива numbers используя индексацию указателя nPtr*/

cout << nPtr[3] << endl;

/*п.8. Напечатать элементы массива numbers используя указатель nPtr*/

cout << *(nPtr+3) << endl << endl;

/*п.9. Определить на какой адресс ссылается nPtr*/

cout << "Адрес nPtr сейчас: " << nPtr << endl<< endl;

/*п.10. Предположить что nPtr указывает на начало массива numbers, определить адрес nPtr+8, определить значение*/

cout << "Адрес nPtr+8: " << nPtr << endl << "Значение nPtr+8: " << *(nPtr+8)<< endl<< endl;

/*Предпологая что nPtr=&numbers[5] определите на какой адрес будет ссылаться nPtr после выполнения nPtr-=4. Определить значение на этом адресе*/

nPtr=&numbers[5];

nPtr-=4;

cout << "nPtr-=4: " << nPtr << endl << "Значение nPtr-=4: " << *(nPtr)<< endl<< endl;

system("pause");

}

Задание 3

#include <iostream>

#include <stdio.h>

using namespace std;