42639

ДОСЛІДЖЕННЯ ВКАЗІВНИХ ТИПІВ ДАНИХ

Лабораторная работа

Информатика, кибернетика и программирование

Значення змінної покажчика може бути присвоєно іншому покажчикові якщо їх типи є ідентичними. Покажчикові може бути присвоєно пусте значення null яке вказує на абстрактний неіснуючий обєкт. Розіменування дозволяє отримати доступ до значення обєкту на якій вказує покажчик. Розмір значення змінної залежить від її типу.

Украинкский

2013-10-30

71.5 KB

9 чел.

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

ДОСЛІДЖЕННЯ ВКАЗІВНИХ ТИПІВ ДАНИХ

Теоретичні відомості

Програмні об’єкти розташовуються у пам’яті комп’ютера. Пам’ять комп’ютеру складається з діапазону комірок, які мають унікальні адреси, що складають адресний простір. Будь-яка комірка пам’яті, що адресується, може, як правило, зберігати один байт (8 біт) інформації. Програмні об’єкти можуть займати одну або більше комірок. Адреса першої комірки об’єкта є його адресою.

Існує спеціальний тип для зберігання адрес – вказівний. Змінна-покажчик може бути типізованою або нетипізованою. Типізований покажчик може містити тільки адресу об’єкта відповідного типу. Нетипізований покажчик можу адресувати об’єкт будь-якого типу.  

Значення змінної покажчика може бути присвоєно іншому покажчикові, якщо їх типи є ідентичними. Зміст нетипізованого покажчика може бути присвоєно будь-якому покажчику. Покажчикові може бути присвоєно «пусте» значення (null), яке вказує на абстрактний неіснуючий об’єкт.

Наприклад:

Паскаль:

ipA : ^integer; \\ опис типізованого покажчика ipA

rpB : ^real;  \\ опис типізованого покажчика rpB

pC : Pointer;  \\ опис нетипізованого покажчика pC

Сі:

int *ipA;

float *fpB;

void *pC;

Існують дві основні операції роботи з покажчиками: взяття адреси та розіменування. Адреса програмного об’єкта може бути отримана за допомогою спеціальної операції – взяття адреси. Адресу об’єкта певного типу може бути присвоєно тільки покажчику того ж типу або нетипизованому покажчику. Розіменування дозволяє отримати доступ до значення об’єкту, на якій вказує покажчик. Розіменування підтримується тільки для типізованих покажчиків.  

Розмір значення змінної залежить від її типу. Для визначення розміру певного значення змінної чи розміру будь-якого значення певного типу в мовах програмування існує спеціальна базова операція sizeof.

Наприклад:

Паскаль:

ipA := @iCount;  \\ взяття адреси цілої змінної iCount

rpB := @rR;    \\ взяття адреси дійсної змінної rR 

pC := nil;   \\ ініціалізація покажчика pC нулем

\\ розіменування ipA та збереження отриманого значення у цілій змінній iK

iK := ipA^;

\\ встановлення значення, на яке посилається ipA, рівним значенню iK

ipA^ := iK;

iSize := sizeof (integer); \\ визначення розміру значень типу integer

iSize := sizeof (iK);  \\ визначення розміру значення iK

Сі:

ipA = & iCount;

fpB = &fR;

pC = null;

iK = * ipA;

* ipA = iK;

iSize = sizeof (int);

iSize = sizeof (iK);

Використання нетипізованих вказівних змінних

Таблиця 6

pointer

void*

не можна

не можна

розіменувати

розіменувати

U = v

U = &v

можна

можна

p := @U

v = &U

p := U

v = U

p := p

v = v

new p

v = new size

U := p;

U := @p

Примітка. U – типізована вказівна змінна; p, v - нетипізовані вказівні змінні.

Завдання

Написати програми на мовах Паскаль та Сі, які складаються з наступних дій:

  1.  Опису змінних напередвизначених типів, які наведені у варіанті (табл.7).
  2.  Опису вказівних змінних відповідних типів (табл.7).
  3.  Опису нетипізованої вказівної змінної.
  4.  Ініціювання вказівних змінних адресами змінних, що описанні в п.1 даного завдання.
  5.  Ініціювання змінних, що описанні в п.1 даного завдання, значеннями з варіанта, використовуючи операцію розіменування вказівних змінних.
  6.  Визначення розміру всіх змінних вашої програми.
  7.  Ініціювання нетипізованої вказівної змінної адресами типізованих вказівних змінних.
  8.  Опису посилання (тільки в мові Сі).

Таблиця 7

№ варіанта

Word

unsigned short

Integer

int

Real

float

Double

double

п

с

п

с

п

с

п

с

1

120

-4986

234.9877775

3.4e-55

2

52

886

-414.5435

12.4e35

3

177

-189

84.353535

-2.6e13

4

87

11239

-532.98987

3.9e-41

5

1400

-386

4.4525

-7.3e23

6

6692

1226

-896.333333

6.9e-86

7

10

-528

654.9962

-4.5e25

8

380

265

-21.5437711

99.9e-220

9

612

-805

14.4328

-30.22e100

10

45671

167

-3.9412

-6.8e-6

11

27

-4852

135.7907

7.4e66

12

503

98

-247.11113

5.8e-336

13

9040

-267

0.007642

-1.11e99

14

43

5124

-8976.04

3.5e-4

15

524

-61

25.7295

-0.53e-707


 

А также другие работы, которые могут Вас заинтересовать

22536. Механические характеристики конструкционных материалов 110 KB
  ДИАГРАММЫ УПРУГОПЛАСТИЧЕСКОГО ДЕФОРМИРОВАНИЯ КОНСТРУКЦИОННЫХ МАТЕРИАЛОВ Основным опытом для определения механических характеристик конструкционных материалов является опыт на растяжение призматического образца центрально приложенной силой направленной по продольной оси; при этом в средней части образца реализуется однородное напряженное состояние. Форма размеры образца и методика проведения испытаний определяются соответствующими стандартами например ГОСТ 34643 81 ГОСТ 149773. Физический смысл коэффициента Е определяется как...
22537. Влияние различных факторов на механические характеристики материалов 54.5 KB
  Влияние процентного содержания углерода Влияние температуры окружающей среды. Повышенные температуры оказывают существенное влияние на такие механические характеристики конструкционных материалов как ползучесть и длительная прочность. Скорость релаксации напряжений возрастает при повышении температуры. Прочность углеродистых сталей с повышением температуры до 650 700oС снижается почти в десять раз.
22538. Основные понятия теории надежности конструкций 79.5 KB
  Условие прочности по существу есть условие обеспечения прочностной надежности. Например предельное напряжение входящее в условие прочности по своей природе является случайным. Если стечение обстоятельств приводящее к нарушению условия прочности редкое событие то приходим к вероятностной трактовке условия прочности с позиций теории надежности. Вместо условия прочности 1 записывается условие Р=Р 2 где Р заданное достаточно высокое значение вероятности которое называется нормативной вероятностью безотказной работы.
22539. Прочность и перемещения при центральном растяжении или сжатии 136 KB
  Напомним что под растяжением сжатием понимают такой вид деформации стержня при котором в его поперечном сечении возникает лишь один внутренний силовой фактор продольная сила Nz. Поскольку продольная сила численно равна сумме проекций приложенных к одной из отсеченных частей внешних сил на ось стержня для прямолинейного стержня она совпадает в каждом сечении с осью Oz то растяжение сжатие имеет место если все внешние силы действующие по одну сторону от данного поперечного сечения сводятся к равнодействующей направленной вдоль...
22540. Расчет статически неопределимых систем по допускаемым нагрузкам 116.5 KB
  Расчет статически неопределимых систем по допускаемым нагрузкам. Применение к статически определимым системам. Расчетная схема статически определимой стержневой системы Рассчитывая эту систему обычным путем найдем усилия N1 = N2 no формуле: из равновесия узла А. Это всегда имеет место для статически определимых конструкций при равномерном распределении напряжений когда материал по всему сечению используется полностью.
22541. Учет собственного веса при растяжении и сжатии 102 KB
  Длина стержня l площадь поперечного сечения F удельный вес материала и модуль упругости Е. Подсчитаем напряжения по сечению АВ расположенному на расстоянии от свободного конца стержня. Эти напряжения будут нормальными равномерно распределенными по сечению и направленными наружу от рассматриваемой части стержня т. Наиболее напряженным опасным будет верхнее сечение для которого достигает наибольшего значения l; напряжение в нем равно: Условие прочности должно быть выполнено именно для этого сечения: Отсюда необходимая площадь стержня...
22542. Расчет гибких нитей 148.5 KB
  Это так называемые гибкие нити. Обычно провисание нити невелико по сравнению с ее пролетом и длина кривой АОВ мало отличается не более чем на 10 от длины хорды АВ. В этом случае с достаточной степенью точности можно считать что вес нити равно мерно распределен не по ее длине а по длине ее проекции на горизонтальную ось т. Расчетная схема гибкой нити.
22543. Моменты инерции относительно параллельных осей 119.5 KB
  Моменты инерции относительно параллельных осей. Задачу получить наиболее простые формулы для вычисления момента инерции любой фигуры относительно любой оси будем решать в несколько приемов. Если взять серию осей параллельных друг другу то оказывается что можно легко вычислить моменты инерции фигуры относительно любой из этих осей зная ее момент инерции относительно оси проходящей через центр тяжести фигуры параллельно выбранным осям. Расчетная модель определения моментов инерции для параллельных осей.
22544. Главные оси инерции и главные моменты инерции 157 KB
  Главные оси инерции и главные моменты инерции. Как уже известно зная для данной фигуры центральные моменты инерции и можно вычислить момент инерции и относительно любой другой оси. Именно можно найти систему координатных осей для которых центробежный момент инерции равен. В самом деле моменты инерции и всегда положительны как суммы положительных слагаемых центробежный же момент может быть и положительным и отрицательным так как слагаемые zydF могут быть разного знака в зависимости от знаков z и у для той или иной площадки.