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.  Визначте десяткову, вісімкову, шістнадцяткову, двійкову системи обчислення?

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

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

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

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

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

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

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

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

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


 

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

40979. Поняття заробітної плати і методи її правового регулювання 177 KB
  Оплата праці. З економічної точки зору заробітною платою вважається вартість або ціна праці в грошовій формі як частка працівника в національному доході що на еквівалентній основі виплачується йому за виконану роботу. Для правового визначення заробітної плати має значення обов'язок роботодавця виплачувати працівникові винагороду за його працю з одного боку і наявність у працівника суб'єктивного права на одержання цієї винагороди за попередньо встановленими нормами праці з другого. Політика винагороди за працю організовується так щоб...
40980. ТРУДОВИЙ ДОГОВІР 233.5 KB
  Відсторонення працівника від роботи. Така угода характеризується наступними ознаками: працівник особисто виконує свої трудові функції; працівник повинен в ході виконання своєї трудової функції підпорядковуватись правилам внутрішнього трудового розпорядку; власник або уповноважений ним орган повинен організувати працю працівникастворити необхідні та належні умови праці виплачувати йому заробітну плату і т. До них слід віднести взаємне волевиявлення сторін про прийняття влаштування працівника на роботу визначення трудової функції...
40981. Медична арахноеитомологія. Членистоногі та комахи-збудники і переносники збудників захворювань людини 46.5 KB
  Клас павукоподiбнi rchnoide Медичне значення мають представники скорпіонів павуків та кліщів. Медичне значення кліщів як збудників хвороб та переносниківзбудників захворювань людини :Розміри кліщівcrinдрібні .У багатьох кліщів голово груди і черевце зливаються в єдине ціле втрачаючи сегментацію .Ротовий отвір кліщівколючосисний або гризучесисний .
40982. Взаємовідношення мови й гендера 89.5 KB
  Мовна картина світу як результат пізнання та концептуалізації обєктивної дійсності Мові належить активна роль у культурі й пізнанні. Вона є унікальною здатністю людини що відрізняє її від будьяких інших живих істот і решти світу. Кожен народ посвоєму розчленовує фрагменти світу і посвоєму називає їх. Формується світ тих хто говорить цією мовою тобто формується концептуальна картина світу як сукупність знань про світ що є зафіксованими у лексиці граматиці фразеології.
40983. Охорона праці. Нагляд і контроль за дотриманням законодавства про працю і правил з охорони праці 218.5 KB
  Охорона праці. Нагляд і контроль за дотриманням законодавства про працю і правил з охорони праці. Поняття охорони праці за трудовим правом Загальновідомо що економічне зростання автоматично ще не веде до збалансованого економічного і соціального розвитку. Зміни що відбуваються у структурі зайнятості й попиту на робочу силу як і до становища працівника на робочому місці умов його праці ставлять підвищені вимоги до безпеки праці.
40984. Конфлікти в колективі 40.5 KB
  Тому проблема здебільшого полягає не в наявності самого факту конфлікту а в тому який характер він носить деструктивний чи конструктивний і яким чином розвязується. Конструктивна та деструктивна суть конфліктів Деструктивний конфлікт переводить причини що призвели до конфлікту на “особистостіâ€. Дана установка не веде до вирішення конфлікту а навпаки його загострює зростає упередженість проти партнера напруга у взаємостосунках посилюються неприємні почуття та переживання виникають стреси та ін. Прикладом деструктивного...
40985. Трудові спори і порядок розв’язання 183.5 KB
  Поняття трудових спорів та їх класифікація При здійсненні відносин людей під час трудової діяльності між працівниками і власниками підприємств або уповноваженими ними органами можуть виникати й часто виникають різного роду непорозуміння. Перебудова виробничих і трудових відносин нові форми застосування і використання праці істотно вплинули не тільки на індивідуальні трудові відносини а й на структуру і зміст організаційноуправлінських відносин що виникають між власником підприємства або уповноваженою ним особою з одного боку і трудовим...
40986. 4-х комнатный жилой дом мансардного типа 103.5 KB
  Расширился ассортимент, и повысилось качество применяемых в отечественном строительстве отделочных материалов — всех видов керамической плитки, покрытий для пола и стен, а также керамических санитарных и санитарно-технических изделий.
40987. Мова і культура 148.5 KB
  Однак з іншого боку у самій матерії мови у ряду істотних характеристик мовної структури позначилася біологічна природа людини. Психофізіологічні можливості знакової діяльності людини зумовили багаторівневу організацію мови визначили кількісні параметри окремих рівнів наприклад обсяг фонологічної системи що коливається в різних мовах в інтервалі від 10 до 100 одиниць; обсяг словника в інтервалі від 10 тисяч до півмільйона слів; вияв надмірності в мові. Культура визначає план змісту мови. У молекулярній біології і семіотиці був виявлений...