Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСТИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра інформаційних
систем та мереж
Лабораторна робота №4
на тему:
«Операції та вирази мови Cі»
Львів - 2009
Мета роботи: Навчитись записувати та інтерпретувати вирази на основі форматів машинного зображення даних, визначеної множини операцій мови С/C++ та їх пріоритетів.
Методичні вказівки:
Кожне завдання складається із двох варіантів, розміщених у частинах 1 та 2.
У завданнях першої частини необхідно:
розставити пріоритети операцій (див. табл. 3) та обчислити значення заданого виразу, використовуючи формати машинного зображення даних та правила виконання операцій; послідовність обчислень навести у звіті про виконання лабораторної роботи;
написати програму для обчислення заданого виразу;
результат обчислення вивести на екран;
порівняти обчислене значення виразу з отриманим результатом програми;
при неспівпаданні значень переглянути послідовність та результати виконання операцій.
У завданнях другої частини необхідно:
утворити вираз, використовуючи оголошення типів змінних, операції та бібліотечні функції мови Сі;
написати програму на мові Сі, задати або ввести вхідні дані та вивести на екран результат обчислення виразу;
оформити звіт за результатами виконання обох завдань лабораторної роботи.
Пріоритети операцій мови Сі
Операція
Найменування операції
Порядок виконання
НАЙВИЩИЙ ПРІОРИТЕТ
()
Виклик функції
Зліва направо
[]
Виділення елементу масиву
.
Виділення елемента структури
або об’єднання
->
Виділення елемента структури
за допомогою вказівника
!
Логічне заперечення
Зправа наліво
~
Порозрядне доповнення
-
Мінус (зміна знаку)
++
Збільшення на одиницю (інкремент)
--
Зменшення на одиницю (декремент)
&
Отримання адреси
*
Звертання по визначеній адресі (розіменування вказівника)
(тип)
Явне перетворення типу
sizeof
Визначення розміру в байтах
*
Множення
Зліва направо
/
Ділення
%
Ділення за модулем (залишок)
+
Додавання
Зліва направо
-
Віднімання
<<
Арифметичний зсув вліво
Зліва направо
>>
Арифметичний зсув вправо
<
Менше
Зліва направо
<=
Менше або дорівнює
>
Більше
>=
Більше або дорівнює
==
Дорівнює
Зліва направо
!=
Не дорівнює
&
Порозрядне логічне множення (I)
Зліва направо
^
Порозрядна сума за модулем два
Зліва направо
|
Порозрядне логічне додавання (АБО)
Зліва направо
&&
Логічне множення (I)
Зліва направо
||
Логічне додавання (АБО)
Зліва направо
?:
Умовна операція
Зправа наліво
=
Присвоєння
Зправа наліво
*= /= %= += -= <<= >>= &= |= ^=
Комбіноване присвоєння
,
Кома
Зліва направо
Н А Й Н И Ж Ч И Й П Р І О Р И Т Е Т
Примітка: операції, охоплені контуром жирних ліній, мають однаковий рівень пріоритетів.
Варіанти індивідуальних завдань
Частина 1. Вивчення пріоритетів операцій мови Сі
char a=77; char b=177; short
c=161; int d=12; int e=-2;
!a--%++b>!c++>>++d>>-e
#include<stdio.h>
#include<conio.h>
void main()
{char a=77;
char b=177;
short c=161;
int d=12;
int e=-2;
int z;
z=!a--%++b>!c++>>++d>>-e;
int f=!a--;
int g=f%++b;
int h=!c++;
int j=++d;
int k=h>>j>>-e;
int l=g>k;
clrscr();
printf("My result = %d\n\n", l);
printf("Real result = %d", z);
getch();}
Частина 2. Побудова виразів мови Сі
Ввести два цілих числа. Написати вираз, який приймає істинне значення, якщо остання цифра більшого числа не дорівнює 5.
#include<stdio.h>
#include<conio.h>
void main()
{int x,y,c;
clrscr();
printf("Vveditj zminni x y:\n");
scanf("%d %d",&x,&y);
c=((((x>y)?x:y)%10)!=5);
if(c)
printf("Yes");
else
printf("No");
getch();}
Висновок: На цій лабораторній роботі я навчився записувати та інтерпретувати вирази на основі форматів машинного зображення даних, визначеної множини операцій мови С/C++ та їх пріоритетів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!