42623

ДОСЛІДЖЕННЯ ПРОГРАМНИХ ОБ'ЄКТІВ НАПЕРЕДВИЗНАЧЕНИХ ТИПІВ ТА ОПЕРАЦІЙ НАД НИМИ

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

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

Декларація об’єкта включає його ідентифікатор та індикатор типу. Опис програмних обєктів Паскаль: опис константи ::=const ідентифікатор = статичний вираз опис змінної ::= vr ідентифікатор : індикатор типу { базування }01 індикатор типу ::= ідентифікатор індикатор напередвизначеного типу базування ::=bsolute зображення значення вказівного типу bse ідентифікатор Наприклад: const PI = 3.14; опис константи PI vr sum : integer; опис змінної sum опис змінної mult розташованої в тому місті памяті що і sum vr mult: longint bse sum; опис...

Украинкский

2013-10-30

215.5 KB

4 чел.

Лабораторна  робота  2

ДОСЛІДЖЕННЯ ПРОГРАМНИХ ОБ'ЄКТІВ

НАПЕРЕДВИЗНАЧЕНИХ ТИПІВ ТА ОПЕРАЦІЙ НАД НИМИ

Мета лабораторної роботи - дослідити та вивчити систему напередвизначених типів мов Паскаль та Сі, устрій значень напередвизначених типів та операції над значеннями цих типів.

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

Програмні об’єкти використовуються для зберігання даних під час виконання програм і можуть розглядатися як контейнери для даних. Програмними об’єктами є літерали, константи, змінні, та інш.

Кожний програмний об’єкт має тип. Тип об’єкту визначає набір значень, які він може зберігати, та множину операцій над ними.

Програмний об’єкт повинний бути визначений та описаний (задекларований) перед використанням. Програмні об’єкти в мові Паскаль декларуються у спеціальній секції програми. Програма на мові С не має будь-якої спеціальної секції для декларування об’єктів, тому об’єкти можуть бути задекларовані у різних частинах програми. Декларація об’єкта включає його ідентифікатор та індикатор типу. Ідентифікатор є іменем об’єкту, яке дозволяє оперувати з ним. Програміст складає ідентифікатор відповідно до певних правил.

В мовах програмування існують певні набори напередвизначених типів об’єктів. Вони є стандартними типами мови і можуть використовуватися при описі об’єктів без будь-яких додаткових визначень.

Опис програмних обєктів

Паскаль:

<опис константи>::=const< ідентифікатор >=< статичний - вираз>

<опис змінної> ::= var< ідентифікатор >:< індикатор типу>>{<базування>}01

<індикатор типу> ::= <ідентифікатор>|<індикатор напередвизначеного типу>

<базування>::=absolute<зображення значення вказівного типу>|

  base< ідентифікатор >

Наприклад:

const PI = 3.14; \\ опис константи PI

var sum : integer; \\ опис змінної sum

\\ опис змінної mult, розташованої в тому місті памяті, що і  sum

var mult: longint base sum;

\\ опис змінної avg, розташованої в памяті за адресою $DSEG:$000F

var avg : real absolute $DSEG:$000F;

Сі:

<опис константи>::=const< індикатор типу >< ідентифікатор >=< статичний вираз >

<опис змінної>::=< індикатор типу ><ідентифікатор>

<опис посилання>::=< індикатор типу >&< ідентифікатор >=< ідентифікатор >

Наприклад:

const  int PI = 3.14;

int sum;

int &ref_sum =sum; \\ опис посилання ref_sum  

Літерали та константи є об’єктами з незмінним значенням. Змінні є програмними об’єктами, які зберігають дані, що можуть змінюватись під час виконання програм.

Описані програмні об’єкти повинні бути ініціалізовані перед використанням шляхом надання їм початкового значення при створенні або за допомогою оператора привласнення.

Ініціалізація змінних  при створенні

Паскаль:

ініціалізація::=const< ідентифікатор >:< індикатор типу >=< статичний вираз >

Наприклад:

const r : real  = 5;   \\ опис та ініціалізація змінної r

const db_pi : real  = 2 * PI; \\ опис та ініціалізація змінної db_pi

Сі:

Ініціалізація::=< індикатор типу >< ідентифікатор >=< статичний вираз >

Наприклад:

float r = 5;

float db_pi  = 2 * PI;

Оператор привласнення

Паскаль:

<оператор привласнення>::=< ідентифікатор >:=<вираз >

Наприклад:

len := db_pi   *  r ;

Сі:

<оператор привласнення >::=<ідентифікатор>=<вираз >

Наприклад:

len = db_pi   *  r ;

Загальна спрощена структура програми

Паскаль:

програма::=program<позначка>;{<описи>}0begin{<оператори>}0end.

Program <Program_Name>;     

{Секція опису типів та програмних об’єктів }

 Type

  {Секція визначень типів}

 Const

 {Секція визначень констант}

 Var

 {Секція визначень змінних}

{Виконуюча секція}

 Begin

 { Тіло програми, що включає оператори програми}

 end.

 

Сі

програма::=main(){{<оператор>}0}

// Рівень опису глобальних програмних об’єктів

main()

{ // Тіло програми, що включає оператори програми

}

Методичні вказівки

Правила складання ідентифікаторів

а) Smalltalk- стиль.

Для написання позначок використовуйте малі літери. Якщо позначка складається з декількох слів, тоді кожне слово починайте з великої літери.

 

б) Написання префіксів. Угорська нотація

Таблиця 3

Тип

Приставка

Приклад

Char

c

cDriveName

Int

n

nIndex

Long

l

lFileSise

Double

f

fVolume

Long pointer

p

lpszDirName

Член структурних даних

m_

m_NIndex

Позначка константи

Нижній регістр

ONE,TWO

ASCIIZ-строка

sz

szName

Правила опису об’єктів у програмі

1. Не розташовуйте в одному рядку більше одного ідентифікатора при описі об'єктів.

2. Розташовуйте описи за алфавітом та вирівнюйте розташування описів за стовбчиками, наприклад,

int  ab,

bcd,

z;

3. Супроводжуйте позначки пробілами (за винятком: перед та після дужок,  перед комою,  крапкою,  крапкою з комою).

4. Використовуйте позначки з сенсом, якщо у позначці є цифри,  розташовуйте їх в кінці.

5. Не використовуйте одну позначку для декількох цілей.

6. Уникайте литералів, а використовуйте константи.

7. Для позначок використовуйте Smalltalk – стиль та Угорську нотацію.

8. Вирівнюйте усі оператори привласнення вертикально.

 9. Не розташовуйте на одному рядку більше одного оператору привласнення.

Частина 1

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

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

Цілі змінні можуть зберігати значення цілих чисел у визначеному діапазоні (див. Додаток 1).

Правила складання зображення значень цілих типів в мовах Паскаль та Сі представлено в Додатку 2.

Завдання

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

  1.  Опису констант цілого типу.
  2.  Опису змінних цілого типу.
  3.  Ініціювання об'єктів при описі.
  4.  Ініціювання об'єктів оператором привласнення, використовуючи значення з варіантів (табл.1). Дослідити входження даних з варіанта до діапазону подання значень відповідного типу.

Примітка: При написанні програми дослідити опис літералів у 10-й, 8-й, 16-й системах числення.

    Таблиця1

варіанта

Цілі типи

Shortint

short

Integer

int

Longint

long

Byte

Word

unsigned

short

п

с

п

с

п

с

п

п

с

1

54

789

3d

800

67.8

-1275978

3475898789

-45.78

567

4

-20

500

288

156378

-40

2

-70

657

7a

-745

20.78

228597

14756987897

71.8

-57

-15

78

320

135

351362

-34

3

20

387

5b

456

74.8

-428557

2568912795

43.3

-45

78

-32

600

70

456239

-37

4

1c

-88

510

1024

-61.37

337752

4015642735

-97.8

2768

125

-54

406

438

74234

-65

5

32

-566

2f

31.55

-3689

99771

231456

47.9

21345678901

111

267

-52

-453

12

135790

6

5d

-100

398

89

23.7

-45621

9876543210

5.5

-42764

-90

200

300

7532

-10

68909

7

-44

3b

157

8.9

40876

-865

-39.1

3152748507

907

17

-17

411

-77

456

100543

8

8a

64

-136

-5.67

98

209754

361

78.9

-2973738122

588

63

-99

87654

-13

67

9

607

3d

-58

903

12.4

-43956

-832

5301090804

39.5

-4

69

288

-45321

90

6543

10

23

150

7a

-53

9.9

42985

-24.8

740

11435684900

56

-43

312

78

-34

68355

11

-409

2e

13

-0.06

2050

153896

38

-3344556677

51.6

547

189

-22

293

71098

-5

12

6c

-67

256

89761

-53

82.4

-37

44.9

6785940321

65

731

-50

123654

-456

879

13

90

379

1f

-753

4.23

51806

-12.47

2918467325

9080

351

-70

16

-75

98765

37

14

135

4e

-86

9.63

-42659

163

10003254761

36.8

472

-37

102

283

1703

403070

-5

15

7b

-64

465

35642

905

-57.91

-2431587690

33578

7.12

73

379

-66

-54

314

69653

Примітка: п – Паскаль, с – Сі.

Частина 2

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

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

Змінні дійсного типу можуть містити числа з дробовою частиною. Такі дані можуть бути представлені у двох формах: стандартної десятинній або експоненціальній. Зображення стандартної десятинної форми включає цілу частину, десятинну крапку та дробову частину (наприклад: 6.768, 0.0012, -45.789, 23.0).

Експоненціальна форма (або наукова нотація) використовується для написання дуже великих або дуже малих чисел. Експоненціальна форма включає три частини:

  1.  коефіцієнт, який виглядає як стандартна десятинна форма дійсного числа;
  2.  буква E або e;
  3.  експонента, яка має ту ж форму, як ціла константа.

Наприклад:

Десятинна форма

Звичайна експоненціальна форма

Експоненціальна форма у мовах Pascal та C

-12345000000

0.00000467

-1.12345 x 1010

4.67 x 10-6

-1.2345E+10

4.67e-6

Отже, експоненціальна форма у мовах програмування зв’язана з науковою нотацією наступним чином:

(коефіцієнт)E(експонента) = (коефіцієнт) x 10 (експонента)

Точність дійсних змінних обмежена кількістю цифр коефіцієнта (наприклад, 11-12 цифр для типу Real Pascal).

Дійсні змінні можуть зберігати значення дійсних чисел у визначеному діапазоні (див. Додаток 1).

Правила складання зображення значень дійсних типів в мовах Паскаль та Сі представлено в Додатку 2.

Завдання

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

  1.  Опису змінних дійсного типу.
  2.  Опису констант дійсного типу.
  3.  Ініціювання об'єктів при опису.
  4.  Ініціювання об'єктів оператором привласнення, використовуючи значення з варіанта (табл.2). Дослідити входження даних з варіанта до діапазону подання значень відповідного типу.

Примітка: При написанні програми дослідити опис дійсних літералів.

   Таблиця 2

№ варіанта

Дійсні типи

Real

float

Double

double

п

с

п

с

1

-23564567894.76

0.000000984879

345.541051

-345.541051

0.876710-329

2

0.0000000078234

-0.56781062

3465787652.98

-0.46810500

567.6710-90

3

-45.67810-43

25167876500.01

0.120002312

-45.67810-1333

0.7671065

4

765.231029

-123456789086.9

76.510-400

-0.43510-432

9876.45610201

5

35678932109.67

-0.0000007654

98.12310-61

-64.87321099

0.543210-396

6

0.02000405434

-374.121043

98765432753.76

-0.321101097

98.7610-86

7

-408.34110-40

0.876500023

6574839201.998

456.2310-3048

-0.35781052

8

-0.002345087

2938485763.12

786.321042

0.438510-111

-49.765104125

9

0.2327218654

-8694032167.9

786.321054

-0.2531099

854.10110-895

10

-0.00330044982

214.5610-63

10243657043.55

0.73110-3408

-452.111045

11

0.000010001001

-342.9871074

62413879012.45

-0.842107041

124.83210-212

12

0.0908070605

-116655773377.99

78.5210-49

0.13210-273

-943.14104867

13

-0.58123109845

23864561254.93

612.381046

-0.74810301

425.7310-2322

14

0.6891354328

362514748596.84

-52.2910-73

0.89910-5320

-743.610189

15

0.0000000002222

-61879153264.89

473.51091

-0.0210-300

365.1102581

Примітка: п – Паскаль, с – Сі.

Частина 3

ДОСЛІДЖЕННЯ АРИФМЕТИЧНИХ ОПЕРАЦІЙ НАД ЗНАЧЕННЯМИ ЦІЛИХ ТА ДІЙСНИХ ТИПІВ

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

Існує декілька операцій у мовах Pascal та C, які мають звичайний арифметичний сенс, і які можуть розглядатися як ідентичні для цілих та дійсних даних: додавання, віднімання, множення та ділення (real division).

Також, існують спеціальні операції для цілих чисел: цілочисельне ділення (integer division) та взяття решти від цілочисельного ділення (modular division).

Цілочисельне ділення є обчисленням цілої частини результату ділення двох чисел. Символ, які використовується для позначення цієї операції у мові Pascal - "div". Наприклад, 7 div 3 = 2, 17 div 5 = 3.

Взяття решти від цілочисельного ділення – це операція, яка дає ціле число, що отримується як решта від цілочисельного ділення двох позитивних цілих чисел. Ця операція позначається символом "mod" у мові Pascal та " % " у мові C:  7 mod 3 = 1,  15 mod 2 = 3, 23 % 8 = 7, 78 % 15 = 3.

Треба відмітити, що дійсне ділення ( / ) завжди дає результат дійсного типу, в незалежності від того, що один або обидва операнди є цілими. Тому при необхідності застосування дійсного ділення його результат має бути присвоєним змінній дійсного типу.

Результат дійсного ділення може бути присвоєним змінної цілого типу шляхом його перетворення у цілий тип. Є спеціальні функції для такого перетворення у мові Pascal - "Round()" та "Trunc()". Функція "Round()" округлює результат виразу між дужками звичайним математичним чином (наприклад, round(5.67) дорівнюється 6). Функція "Trunc()" просто відкидає дробову частину (наприклад, trunc(3.75) дорівнюється 3).

Мова С передбачає те, що дробова частина дійсного числа зажди відкидається, якщо змінна, який присвоюється результат, має цілій тип.

Перелік операцій над значеннями цілого та дійсного типів в мовах Паскаль та Сі представлено в Додатку 1.

Завдання

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

  1.  Опису змінних цілого та дійсного типів.
  2.  Використання арифметичних унарних операцій над змінними цілого (табл.3) та дійсного типів. Значення дійсних типів обираються  довільно.
  3.  Використання арифметичних бінарних операцій над змінними цілого (табл.3) та дійсного типів. Значення дійсних типів обираються  довільно.

Таблиця 3

№ варіанта

Опе-ран-ди

Операції

Збере-ження знаку

Запере-чення знаку

Дода-вання

Відні-мання

Мно-ження

Ціло-чисель-не ділення

Зали-шок від ділення

Ділення

1

1

67

-23

-47

999

34

12

12

19

30

2

-

-

98

-765

3

3

5

3

7

2

1

-8

890

235

78

97

15

15

17

48

2

-

-

-655

34

20

5

4

3

7

3

1

76

-32

-117

-65

18

16

16

28

44

2

-

-

68

99

4

4

3

5

5

4

1

-34

98

345

43

7

18

18

19

81

2

-

-

-55

87

23

6

5

4

10

5

1

56

-73

46

-79

13

20

20

32

18

2

-

-

87

12

3

5

6

6

4

6

1

-23

802

231

48

12

10

10

24

45

2

-

-

-57

207

9

2

4

5

9

7

1

75

-54

271

-78

17

18

18

38

50

2

-

-

112

190

5

3

4

4

9

8

1

-44

86

45

63

14

21

21

27

102

2

-

-

-256

27

3

3

2

7

9

9

1

112

-31

65

-95

18

8

8

53

94

2

-

-

13

209

4

4

3

9

8

10

1

-69

154

203

-184

20

9

9

46

35

2

-

-

32

84

7

3

4

4

9

11

1

70

-13

37

98

33

15

15

29

134

2

-

-

-87

130

4

3

6

5

10

12

1

-29

91

173

-47

46

20

20

74

24

2

-

-

34

95

3

2

7

7

5

13

1

34

-25

17

293

26

24

24

82

72

2

-

-

-68

86

5

6

5

9

7

14

1

-59

101

136

-43

15

12

12

16

52

2

-

-

-57

63

7

6

7

5

8

15

1

78

-49

23

245

22

18

18

36

81

2

-

-

64

192

11

9

5

7

6


 

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

22285. ВОСПАЛЕНИЕ. Морфогенез 40.5 KB
  Этилогия Агенты воспаления факторы вызывающие воспаление: биологические агенты – бактерии вирусы иммунные комплексы физические агенты – травмы высокие и низкие температуры химические агенты – токсины и яды бактериальные и не бактериальные яды. Морфогенез Воспаление состоит из трех стадий: альтерация экссудация пролиферация. Гепатит – воспаления печени плеврит – воспаление плевры гастрит – воспаление желудка.
22286. ПРОДУКТИВНОЕ ВОСПАЛЕНИЕ 36 KB
  Виды продуктивного воспаления: межуточное интерстициальное воспаление гранулематозное воспаление воспаление вокруг животных паразитов воспаление с образованием папиллом и кондилом. МЕЖУТОЧНОЕ ВОСПАЛЕНИЕ Определение. ГРАНУЛЕМАТОЗНОЕ ВОСПАЛЕНИЕ Определение.
22287. ГАСТРИТ 44 KB
  По патогенезу: Гастрит типа А аутоиммунный характеризуется поражением фундального отдела желудка Гастрит типа В неиммунный локализуется в антральном отделе желудка. При этой форме происходит атрофия желез желудка. Макро – слизистая желудка бледная тонкая складки сглажены.
22288. Гипертоническая болезнь 46 KB
  Гипертоническая болезнь ГБ – хроническое заболевание характеризующееся длительным и постоянным повышением артериального давления АД что связано со спазмом артериол а затем и со склерозом артериол артериолосклероз. Это связано с кратковременным спазмом артериол. В эту стадию происходит гипертрофия мышечной оболочки артериол и незначительная рабочая гипертрофия миокарда левого желудочка. В основе этого состояния – склероз и гиалиноз стенки артериол.
22289. ДИСГОРМОНАЛЬНЫЕ БОЛЕЗНИ И ОПУХОЛИ ПОЛОВЫХ ОРГАНОВ 34.5 KB
  ГИПЕРТРОФИЯ ПРОСТАТЫ Определение: дисгормональная болезнь простаты которая возникает у мужчин в пожилом и старческом возрасте и характеризуется разрастанием железистого эпителия мышечной и соединительной ткани в виде узлов. Осложнения: на фоне гиперплазий молочной железы может развиться рак. Особенно часто рак развивается на фоне цистоаденопапилломы. Первые две формы не являются предраковыми состояниями.
22290. ДИАГНОСТИКА УМСТВЕННОГО РАЗВИТИЯ И ОБЩИХ СПОСОБНОСТЕЙ 268.5 KB
  Другая причина умения и навыки полученные индивидами на ранних этапах своей жизни и обеспечившие их быстрое развитие сохраняются и служат предпосылками развития и в дальнейшем. Все это важные характеристики когнитивного развития человека однако они не являются показателями интеллектуальных способностей. На современном этапе несмотря на то что по проблеме интеллекта было опубликовано более 900 000 работ психология интеллекта стоит лишь в самом начале своего развития.
22291. ПСИХОДИАГНОСТИКА РАЗВИТИЯ МЛАДЕНЦЕВ И ДОШКОЛЬНИКОВ 92.5 KB
  Рассмотрим некоторые шкалы развития младенцев. Гезелл и его коллеги подготовили таблицы развития охватывающие четыре основные сферы поведения: моторику язык адаптивное и личностносоциальное поведение. Они обеспечивают стандартизированную процедуру для наблюдения и оценки хода развития поведения ребенка в обыденной жизни.
22292. ПСИХОЛОГИЧЕСКАЯ ГОТОВНОСТЬ К ОБУЧЕНИЮ В ШКОЛЕ 85 KB
  Поэтому важно заранее еще до начала школьного обучения выяснить насколько психические возможности ребенка соответствуют требованиям школы. Показателями развития мышления до уровня готовности к школьному обучению является способность ребенка осуществлять мыслительные операции анализа синтеза сравнения обобщения в знакомом материале сформированность нагляднообразного мышления до уровня позволяющего выполнять учебные задания характерные для начального периода обучения. Личностная готовность предполагает зрелость мотивов учебной...
22293. СОЦИАЛЬНЫЕ И ЭТИЧЕСКИЕ АСПЕКТЫ ПСИХОЛОГИЧЕСКОЙ ДИАГНОСТИКИ. ЭТИЧЕСКИЙ КОДЕКС ПСИХОЛОГА-ДИАГНОСТА 69 KB
  Следует также заметить что студенты которые участвуют в учебном тестировании обычно не готовы к самостоятельному проведению диагностического обследования других людей и к интерпретации тестовых оценок. Неверные представления о характере и цели обследования а также неправильные интерпретации диагностических результатов лежат в основе многих распространенных ошибок и критических замечаний в адрес психологической диагностики. Полезный зарубежный опыт состоит также в том что для повышения профессиональных норм и улучшения качества...