Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра інформаційних
систем та мереж
Лабораторна робота №4
на тему:
Операції та вирази мови Cі
Львів-2009
Мета роботи: Навчитись записувати та інтерпретувати вирази на основі форматів машинного зображення даних, визначеної множини операцій мови С/C++ та їх пріоритетів.
Завдання:
У завданнях першої частини необхідно:
1) розставити пріоритети операцій та обчислити значення заданого виразу, використовуючи формати машинного зображення даних та правила виконання операцій; послідовність обчислень навести у звіті про виконання лабораторної роботи;
2) написати програму для обчислення заданого виразу;
3) результат обчислення вивести на екран;
4) порівняти обчислене значення виразу з отриманим результатом програми;
5) при неспівпаданні значень переглянути послідовність та результати виконання операцій.
У завданнях другої частини необхідно:
1) утворити вираз, використовуючи оголошення типів змінних, операції та бібліотечні функції мови Сі.
2) написати програму на мові Сі, задати або ввести вхідні дані та вивести на
екран результат обчислення виразу;
3) оформити звіт за результатами виконання обох завдань лабораторної оботи.
Виконання завдання
2. Пріоритети операцій:
~a|--b>>-c--!=--d*sizeof(long)
sizeof( long) ;
~a;
--b;
–c--;
--d;
--d*sizeof(long);
--b>>
–c--!=
~a|
10) ~a|--b>>-c--!=--d*sizeof(long) = -197
Текст програми:
#include<stdio.h>
#include<math.h>
#include<conio.h>
void main()
{
clrscr();
long a=197;
unsigned long b=2;
short c=43;
int d=47;
int f;
f=~a|--b>>-c--!=--d*sizeof(long);
printf("f=%d",f);
getch();
}
Блок-схема:
Результат виконання програми:
Завдання 2:
Текст програми:
#include<stdio.h>
#include<math.h>
#include<conio.h>
void main()
{
clrscr();
long a, mina, maxa;
long pmax,pmin;
scanf("%ld",&a);
long buf=a;
long pcur=1;
mina=maxa=buf%10;
pmin=pmax=1;
buf/=10;
while(buf){
pcur++;
if(buf%10>maxa){
maxa=buf%10;
pmax=pcur;
}
if(buf%10<mina){
mina=buf%10;
pmin=pcur;
}
buf/=10;
}
long right=10;
right=pow(right,pmin-1);
a=a-mina*right+maxa*right;
right=10;
right=pow(right,pmax-1);
a=a-maxa*right+mina*right;
printf("%ld",a);
getch();
}
Блок-схема:
Результат виконання програми:
Висновок: на цій лабораторній роботі я працював з операторами на мові Сі. Вони мають досить великі можливості, особливо порозрядні оператори.