42626

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

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

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

Теоретичні відомості Оператор Паскаль Сі: оператори базису ::= оператор опису оператор привласнення структурний оператор оператор ::= оператор привласнення структурний оператор Структурні оператори а Складений оператор Паскаль: складений оператор ::= begin{ оператор }2end; Сі: складений оператор ::={{ оператор }2} б Оператор вибору умовна форма Паскаль: оператор вибору ::=if вираз відношення then оператор Наприклад: if flg = true then { flg – змінна...

Украинкский

2013-10-30

148 KB

8 чел.

Лабораторна  робота 9

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

БАЗИСУ МОВ ПРОГРАМУВАННЯ ПАСКАЛЬ ТА СІ

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

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

Оператор

Паскаль, Сі:

<оператори базису>::= <оператор опису>|<оператор привласнення>|

                                     <структурний оператор>

<оператор>::=<оператор привласнення>|<структурний оператор>

Структурні оператори

а) Складений оператор

Паскаль:

<складений оператор>::= begin{<оператор>}2end;

Сі:

<складений оператор>::={{<оператор>}2}

б) Оператор вибору (умовна форма)

Паскаль:

<оператор вибору>::=if<вираз відношення>then<оператор>

Наприклад:

if flag = true then   { flag – змінна логічного типу}

 begin

 iA := iA + 10; { iA – змінна цілого типу}

 flag := false;

 end;

Сі:

<оператор вибору>::=if (<вираз відношення>)<оператор>

<вираз відношення>::=<вираз><операция відношеня><вираз>

Наприклад:

if (flag == 1)   // flag – змінна цілого типу

{

iA = iA + 10;

 flag = 0;

} 

в) Оператор вибору (альтернативна форма)

Паскаль:

<оператор вибору>::=if<вираз відношення>then<оператор>else<оператор>

Наприклад:

if flag = true

iA:= iA * 10;

else

begin

 iA := iA + 10;

 flag := true;

end;

Сі:

<оператор вибору>::=if (<вираз відношення>)<оператор>;else<оператор>

Наприклад:

if (flag == 1)

{

iA = iA * 10;

flag = 0;

};

else

{

iA = iA + 10;

flag = 1;

}

г) Оператор вибору (охоронна форма/перемикач)

Паскаль:

<оператор вибору>::= case< вираз >of{<вариант вибору>}0  

                                    {else<оператор>}01  end

<вариант вибору>::={<літерал {..<літерал>}0 {,}0 }1: <оператор>

Наприклад:

case cB of     { cB – змінна символьного типу}

‘A’:   iA := iA +10;

‘B’, ‘C’: iA := iA +20;

‘D’:   iA := iA +30;

else  iA := iA +100;

end;

Сі:

<оператор вибору>::= switch (< вираз >){{ case<вариант вибору> }1

                                        {default: <оператор>}01  }

<вариант вибору>::=<R - вираз>: <оператор> break;

Наприклад:

switch cB

{

case ‘A’:  {iA = iA +10;  break;}

case ‘B’: {iA = iA +20;  break;}

case ‘C’:  {iA = iA +30;  break;}

default:  iA = iA +100;

}

д) Оператор повторення (форма repeat-until / do-while)

Паскаль:

<оператор повторення>::= repeat <оператор>until<вираз відношення>

Наприклад:

iMounth := 1;  { iMounth – змінна цілого типу}

repeat    { iAccount – змінна дійсного типу}

 iAccount := iAccount + iAccount/100;

iMounth := iMounth + 1;

until iMounth<=12;

            

Сі:

<оператор повторення>::= do<оператор>while(<вираз відношення>)

Наприклад:

iMounth = 1;  

do

{    

 iAccount = iAccount + iAccount/100;

iMounth = iMounth + 1;

}

while (iMounth<=12);

е) Оператор повторення (форма while-do)

Паскаль:

<оператор повторення>::= while<вираз відношення>do<оператор>

Наприклад:

iMounth := 1;

while iMounth <= 12 do

begin    

 iAccount := iAccount + iAccount / 100;

iMounth := iMounth + 1;

end;

Сі:

<оператор повторення>::= while(<вираз відношення>)<оператор>

Наприклад:

iMounth = 1;

while (iMounth <= 12)

{    

 iAccount = iAccount + iAccount/100;

iMounth = iMounth + 1;

}

ж) Оператор повторення (форма for-step-do)

Паскаль:

<оператор повторення>::=  for < оператор привласнення >to|downto

                                               <вираз> {step<вираз> }01do<оператор>

Наприклад:

for iMounth := 1 to 12 do

begin    

 iAccount := iAccount + iAccount / 100;

if iMounth > 6 then

 iAccount := iAccount + iAccount * 0.05;

end;

        

Сі:

<оператор повторення>::=  for ({< оператор привласнення >}01;

                {<вираз відношення>}01;{< оператор привласнення >}01){<оператор>}01

Наприклад:

for (iMounth = 1; iMounth <= 12; iMounth = iMounth + 1)

{    

 iAccount = iAccount + iAccount / 100;

if (iMounth > 6)

 iAccount = iAccount + iAccount * 0.05;

}

Правила написання програм

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

При написанні операторів вибору розташовуйте частини “then” і “else” окремо, розміщуючи їхній вміст окремо, кожний оператор на окремому рядку програми.

Розташовуйте кожний оператор у варіанті вибору (охоронна форма) на окремому рядку.

При написанні операторів повторення (циклу) розташовуйте тіло циклу окремо від заголовку, а в тілі циклу кожний оператор розташовуйте на окремому рядку.

Не використовуйте, якщо не потрібно, дужок складеного оператора.

Не ставте однакових операторів у гілці операторів вибору.

Не використовуйте охоронну форму оператора вибору, замінюйте її альтернативною.

Не пишіть вироджених циклів, таких що не виконуються ані разу або можуть бути замінені явним повторенням (вибором).

Не вводьте у цикл операторів, не зв'язаних з повторенням.

Завдання

  1.  Вивчити устрій (синтаксис та семантику) наступних операторів Паскаль та Сі: складеного, вибору і повторення.
  2.  Написати програми на мовах Паскаль та Сі, що демонструють застосування різноманітних форм операторів вибору та повторення.

4. Написати програми на мовах Паскаль та Сі, які моделюють на бітовому рівні операції згідно з варіантом (табл.1). Для перевірки вірності роботи програм використати значення з варіанта.

Таблиця 1

варіанта

Мова

Операція

Операнд

Значення для перевірки

1

Паскаль

Лічильник збільшення на 1

1

31

56

-25

Сі

Операція відношення >

1

44

46

15

2

44

-7

30

2

Паскаль

Лічильник зменшення на 1

1

16

61

-37

Сі

Операція відношення  = =

1

100

-8

132

2

100

125

131

3

Паскаль

Операція відношення <

1

84

-77

63

2

83

-77

127

Сі

Операція додавання +

1

-10

15

31

2

12

41

32

4

Паскаль

Операція відношення >

1

88

34

23

2

88

2

57

Сі

Лічильник збільшення на 1

1

63

-18

92

5

Паскаль

Операція відношення  = =

1

11

84

61

2

11

-2

107

Сі

Лічильник зменшення на 1

1

-255

94

46

6

Паскаль

Операція додавання +

1

-52

31

111

2

18

32

49

Сі

Операція відношення <

1

-2

35

62

2

2

53

62

7

Паскаль

Лічильник збільшення на 1

1

-87

511

183

Сі

Операція відношення <

1

100

-8

132

2

100

125

131

8

Паскаль

Лічильник зменшення на 1

1

-24

128

13

Сі

Операція відношення >

1

0

36

16

2

-7

136

16

9

Паскаль

Операція відношення <

1

33

-6

26

2

117

-10

26

Сі

Лічильник збільшення на 1

1

-128

45

63

10

Паскаль

Операція відношення >

1

-1

94

537

2

-12

305

537

Сі

Лічильник зменшення на 1

1

0

-15

138

11

Паскаль

Операція відношення =

1

-57

124

1

2

-57

-10

2

Сі

Операція додавання +

1

82

229

-3

2

46

110

151

12

Паскаль

Операція додавання +

1

141

-12

173

2

115

205

347

Сі

Операція відношення =

1

-21

79

115

2

-21

80

41

13

Паскаль

Лічильник збільшення на 1

1

-43

75

63

Сі

Операція відношення =

1

48

69

24

2

48

78

25

14

Паскаль

Лічильник зменшення на 1

1

-92

16

62

Сі

Операція відношення <

1

54

38

143

2

54

40

129

15

Паскаль

Операція відношення >

1

211

183

86

2

211

182

134

Сі

Операція додавання +

1

69

48

53

2

-73

24

19

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

Для моделювання на бітовому рівні арифметичних операцій та операцій відношення необхідно вміти вирішувати наступні задачі:

- визначати значення окремих бітів операнду(ів);

- формувати результат шляхом встановлення в 0 чи 1 певних бітів результуючого значення.

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

Для визначення значення окремого n-го біту (sizeof(тип значення) >= n >= 0) операнду необхідно використовувати маску, що дорівнює 1, та бітові операції «І» та «зсув ліворуч». Наприклад, щоб дізнатись значення п’ятого біту вмісту цілої змінної iA необхідно виконати наступні перетворення:

iBitA := iA and (1 shl 5)  (Паскаль) або iBitA = iA & (1 << 5) (Сі).

Якщо значення iBitA дорівнюється 0, п’ятий біт числа iA також є рівним 0, якщо будь якому додатному значенню, біт дорівнюється 1.

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

Наприклад:

Операція відношення  = =

iA = 2510 = 110012

iBitA = iA and (1 shl 4) = 16 => 1

=> 1<>0 => iA<>iB

iB =   910 = 010012

iBitB = iB and (1 shl 4) = 0 => 0

Для вирішення завдання моделювання операцій додавання та лічильника недостатньо вміти визначати значення окремих бітів операндів, але потрібно формувати результуюче значення, використовуючи його бітове представлення. Для цього використовуються маска та бітові операції «зсув ліворуч», «АБО», «АБО, що виключає»:

Наприклад:

Операція додавання +

iA  = 2510 =   110012

iB  =   910 =   010012

iSum  = 3410 = 1000102

Результат iSum формується встановленням в 1 першого та п’ятого бітів, тобто:

1) iSum = 0,    iSum = 010 = 02

2) iSum = iSum or (1 shl 1), iSum = 210 = 000102

3) iSum = iSum or (1 shl 5), iSum  = 3410 = 1000102

Лічильник, або операції зменшення чи збільшення на одиницю не зводяться до операції додавання. Для отримання результату лічильника необхідно використовувати певні закономірності перетворення значень та застосовувати їх при побудові алгоритму для вирішення задачі.

Наприклад, при зменшені числа на одиницю в результуючому значенні всі біти, що дорівнюються 0, починаючи з молодшого, та перший слідуючий за ними біт, що дорівнюється 1, інвертуються, а старші залишаються незмінними. Для інвертування відповідних бітів використовується операція «АБО, що виключає».

Наприклад:

Лічильник зменшення на 1

iA  = 2510 =   110012

iA – 1  = 2410 =   110002

1) iA = iA xor (1 shl 0),  iA = 2410 = 110002

iA  = 2410 =   110002

iA – 1  = 2310 =   101112

1) iA = iA xor (1 shl 0),  iA = 2510 = 110012

2) iA = iA xor (1 shl 1),  iA = 2710 = 110112

3) iA = iA xor (1 shl 2),  iA = 3110 = 111112

4) iA = iA xor (1 shl 3),  iA = 2310 = 101112

Контроль знань та вмінь

Таблиця вмінь

Таблиця 2

Бінарні операції

лічильник

відношення

додавання

+

-

=

>

<

+

с

п

с

п

с

п

с

п

с

п

с

п

Контрольні запитання

  1.  Що таке система обчислення, позиційна система обчислення?
  2.  Визначте десяткову, вісімкову, шістнадцяткову, двійкову системи обчислення?

Як здійснюється перетворення значень, наведених у різних системах обчислення?

Наведіть загальні поняття подання значень в ЕОМ.

Наведіть подання значень з фіксованою точкою.

Наведіть подання негативних значень.

Що таке доповнення і для чого воно використовується?

Що таке плаваюча точка, дайте загальне поняття?

Наведіть точність арифметики в системі з плаваючою точкою.

Як здійснюється подання шістнадцяткових значень?

Як здійснюється подання символьних значень?


 

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

16034. Виктимологическая детерминанта торговли людьми 660 KB
  Цель и задачи: В ходе исследования предполагается выявить структуру и особенности торговли людьми, совершаемой посредством модельного бизнеса в республике Мордовия. Одной из основных задач данного исследования является выявление причин отсутствия уголовных дел по статье 127.1 (торговля людьми) УК РФ
16035. Виконавча влада і адміністративне право 3.81 MB
  У книзі, яка є черговою публікацією в серії наукових видань Адміністративно-правова реформа в Україні, висвітлюються науково-теоретичні засади і актуальні проблеми функціонування виконавчої влади та її правового регулювання в Україні
16036. Державне управління в Україні 1.35 MB
  Державне управління — надзвичайно важлива сфера реалізації державної влади. За своїм змістом воно органічно поєднано з виконавчої гілкою державної влади. Сьогодні вихід нашого суспільства із системної кризи потребує такої організації виконавчої влади, яка б забезпечувала істотне підвищення дієвості державного управління
16037. Державне управління проблеми адміністративно-правової теорії та практики 2.23 MB
  У книзі розглядаються найважливіші інститути державного управління, що є пред-метом вивчення адміністративне-правової науки. Вирішальне місце відведено аналізу малодосліджених теоретичних аспектів взаємодії державного управління та адміністративного права
16038. Криминология 1.65 MB
  Преступность — основной объект криминологического изучения. Одновременно преступность — главный объект воздействия разрабатываемых криминологией мер. Все выводы криминологии, рекомендации и предложения, вырабатываемые в рамках этой науки, направлены на достижение главной цели...
16039. Екологічне право 2.81 MB
  Передмова Забезпечення екологічної безпеки за сучасних умов є важливою проблемою державної екологічної політики та невідємною умовою сталого економічного та соціального розвитку України. Це обумовлено значним антропогенним порушенням та техногенною перевантажен
16040. Екологічне право. Підручник 1.62 MB
  ВСТУП Екологічні відносини одна з найважливіших складових суспільних відносин. Вони виникають між окремими субєктами і з приводу надзвичайно важливих обєктів. Екологічні відносини складаються між суспільством і природою між людиною та навколишнім середов
16041. ПОСОБИЕ по латинскому языку 299.98 KB
  ПОСОБИЕ по латинскому языку для II курса Московской Духовной Семинарии первые 10 уроков Сергиев Посад 2000 ПРЕДИСЛОВИЕ По новым программам Московских духовных школ древним языкам отводится значительно большее количество часов чем ранее. Преподавание латыни н...
16042. Учебник латинского языка из программы Latrus 1.2 199.67 KB
  Учебник латинского языка из программы Latrus 1.2 Содержание: АЛФАВИТ ИМЯ СУЩЕСТВИТЕЛЬНОЕ ИМЯ ПРИЛАГАТЕЛЬНОЕ УПОТРЕБЛЕНИЕ ПАДЕЖЕЙ ГЛАГОЛ СИНТАКСИС ГЛАГОЛА НАРЕЧИЯ ПРЕДЛОГИ МЕСТОИМЕНИЯ ЧИСЛИТЕЛЬНЫЕ КОНЪЮНКТИВ ВЕКГОДСЕЗОНЫМЕСЯЦЫДНИЧАСЫ СИНТАКС...