Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сука лаби.docx
Скачиваний:
17
Добавлен:
12.05.2015
Размер:
848.39 Кб
Скачать

Порядок виконання роботи

А.При пiдготовцi

1.Ознайомитися з додатком , у якому наведені усі потрібні для виконання роботи відомості , та програмою (файл LAB1.C або файл LAB1.CРР). 2.Пiдготувати для введення в ПК числа як початковi значення для змiнних:

2.1. десяткове цiле без знака (тип unsigned long ) для цiлоi змiнноi x1;

2.2. вiсiмкове цiле без знака (тип unsigned int ) для цiлоi змiнноi x2;

2.3. шiстнадцяткове цiле без знака (тип unsigned int ) для цiлоi змiнноi x3;

2.4. дiйсне десяткове без показника степеня (тип float) для дiйсноi змiнноi x4;

2.5. дiйсне десяткове з показником степеня (тип float ) для дiйсноi змiнноi x5.

2.6.дiйсне десяткове без показника степеня (тип double) для дiйсноi змiнноi подвiйноi точностi x6;

2.7. десяткове цiле від’ємне (тип int ) для цiлоi змiнноi x7;

3.Числа перевести в двiйкову систему числення та записати у форматах ПК

4.Пiдготувати програмнi вставки для

4.1. здiйснення додавання та вiднiмання x2 i x3,x1 i x2, x2 i x6,x4 i x5,x6 i x5;

В.У лабораторii:

1.Транслювати,редагувати та пускати на виконання програму

2.Ввести в ПК пiдготовленi числа.Порiвняти отриманi резуль­тати з пiдготовленими у двiйковiй системi числення.

3.Оцiнити дiапазони зображення чисел.Перевiрити реакцiю ПК на введення чисел,якi виходять за припустимi границi.

4.Внести змiни до програми для додавання та вiднiмання вибраних чисел .

5.Звернути увагу на доповняльний код х7 та обернений код х8 .

Змiст звiту:

1.Числа в рiзних системах числення та у форматах ПК.

2.Програмнi вставки та результати iх виконання з поясненнями.

3.Результати виконання п.В.3,п.В.4.

4.Висновки по роботi.

Контрольний приклад:

1.Початковi значення змiнних (мова С++):

x1 = 131123 x2 = 200 x3 = 64

x4 = 2.333 x5 = 0.7098e1

x6 = 7.098 x7 = -13

2.Початковi значення у двiйковiй системi числення:

x1 = 100000000000110011

x2 = 10000000

x3 = 1100100

x4 = 10.0101010100111111011111

x5 = 111.000110010001011010001

x6 = 111.00011001000101101000011100101011000000100000110001

x7 = 1111111111110011 (доповняльний код)

3.Початковi значення змiнних у форматах ПК (запис у шiстнадцятьковiй системi числення):

x1 = 00 02 00 33 x2 = 00 80 x3 = 00 64

x4 = 40 15 4F DF

x5 = 40 E3 22 D1

x6 = 40 1C 64 5A 1C AC 08 31 x7 = FF F3

Програми

/*Лабораторна робота 1 (файл LAB1.C) */

/*Вивчення типiв та структури даних*/

#include <stdio.h>

#include <conio.h>

main(

{

unsigned long x1; /* цiле довге без знака */

unsigned int x2, x3; /* цiлi короткi без знака */

float x4, x5; /* дiйснi одинарноi точностi */

double x6; /* дiйсна подвiйноi точностi */

int x7, x8; /* цiлi короткi зi знаком*/

union byte /* об'еднання */

{

float a;

long b;

double c;

unsigned long d[2];

} p;

extern void display_bits(unsigned long number,int max_position);

clrscr();

printf ("Введiть значення змiнних\ndecimal integer x1=");

scanf ("%D", &x1);

printf (" octave integer x2= ");

scanf ("%o",&x2);

printf (" hexadecimal integer x3= ");

scanf ("%x",&x3);

printf (" real x4= ");

scanf ("%e",&x4);

printf (" real x5= ");

scanf ("%e",&x5);

printf (" double real x6=");

scanf ("%le",&x6);

printf (" decimal negative integer x7= ");

scanf ("%d",&x7);

printf (" Початковi значення змiнних \n");

printf (" x1= %lu x2= %u x3= %u x7=%d\n",x1,x2,x3,x7);

printf (" x4= %16.8f\n x5= %16.8e\n x6=%24.16e\n",x4,x5,x6);

getch (); clrscr ();

printf (" Змiст комiрок пам'ятi для змiнних");

printf ("\n Шiстнадцятеричне зображення \n");

printf (" x1= %lX %u bytes\n x2= %x %u bytes\n",x1,sizeof x1,

x2, sizeof x2);

p.a = x4;

printf (" x3= %x %u bytes\n x4= %lX %u bytes\n",\

x3,sizeof x3,p.b,sizeof p.b);

p.a = x5;

printf (" x5= %lX 4 bytes\n",p.b);

p.c = x6;

printf (" x6= %lX%lX 8 bytes\n",p.d[1],p.d[0]);

printf (" x7= %x %d bytes -- bit complement\n",x7,sizeof x7);

x8 = ~x2;

printf (" x8= %x %u bytes -- bit inverse for x2 \n ",x8,sizeof x8);

printf (" Двiйкове зображення для x1 \n");

display_bits(x1, 31);

printf ("\n Двiйкове зображення для x2 \n");

display_bits(x2, 15);

printf ("\n Двiйкове зображення для x8 \n");

display_bits(x8,15);

printf ("\n Двiйкове зображення для x3 \n");

display_bits (x3,15);

printf ("\n Двiйкове зображення для x7 \n");

display_bits (x7,15);

printf ("\n Двiйкове зображення для x4 \n");

p.a = x4;

display_bits (p.b,31);

printf ("\n Двiйкове зображення для x5 \n");

p.a = x5;

display_bits (p.b, 31);

p.c = x6;

printf ("\n Двiйkoве зображення для x6\n");

display_bits(p.d[1],31);display_bits(p.d[0],31);

getch(); clrscr();

}

/* функцiя виведення двiйкового зображення чисел */

void display_bits(unsigned long number,int max_position)

{

int bit_position;

for (bit_position = max_position;

bit_position >= 0; bit_position--)

printf ("%d", (number>>bit_position) & 1);

}

/*Лабораторна робота 1 (файл LAB1.CPP) */

/*Вивчення типiв та структури даних*/

#include <iostream.h>

#include <conio.h>

main()

{

extern void display_bits(unsigned long number,int max_position);

unsigned long x1; /* цiле довге без знака */

unsigned int x2, x3; /* цiлi короткi без знака */

float x4, x5; /* дiйснi одинарноi точностi */

double x6; /* дiйснe подвiйноi точностi */

int x7, x8;

clrscr();

cout << "\n\nВведiть значення змiнних \n decimal integer x1=";

cin >> x1;

cout << " octave integer x2= ";

cin >> oct >> x2;

cout << " hexadecimal integer x3= ";

cin >> hex >> x3;

cout << " real x4= ";

cin >> dec >> x4;

cout << " real x5= ";

cin >> x5;

cout << " double real x6=";

cin >> x6;

cout << " decimal negative integer x7= ";

cin >> x7;

cout << "\n\n Початковi значення змiнних \n";

cout << " x1=" <<x1<<" x2="<<x2<<" x3="<<x3<<" x7="<<x7;

cout << "\n x4=" << x4 << " x5= " << x5 << " x6=" << x6;

getch (); clrscr();

union byte /* об'еднання */

{

float a;

long b;

double c;

unsigned long d[2];

};

byte p;

cout << " Змiст комiрок пам'ятi для змiнних \n";

cout << " Шiстнадцятеричне зображення \n";

// cout.setf(ios::showbase);

cout.setf(ios::uppercase);

cout << hex<<" x1="<<x1<<dec<<" "<<sizeof x1<<" bytes";

cout << hex<<"\n x2="<<x2<<dec<<" "<<sizeof x2<<" bytes";

cout << hex<<"\n x3="<<x3<<dec<<" "<<sizeof x3<<" bytes";

cout << hex<<"\n x7="<<x7<<dec<<" "<<sizeof x7\

<<" bytes -bit complement";

p.a = x4;

cout << hex<<"\n x4="<<p.b<<dec<<" "<<sizeof x4<<" bytes";

p.a = x5;

cout <<hex <<"\n x5="<<p.b<<dec<<" "<<sizeof x5<<" bytes ";

p.c = x6;

cout << hex<<"\n x6="<<p.d[1]<<p.d[0]<<dec<<" "<<

sizeof x6<<" bytes";

x8 = ~x2; //отримання оберненого коду для х2

cout << hex << "\n x8="<<x8<<dec<<" "<<sizeof x8\

<<" bytes - bit inverse for x2";

cout << "\n Двiйкове зображення для x1 \n";

display_bits(x1, 31);

cout << "\n Двiйкове зображення для x2 \n";

display_bits(x2,15);

cout << "\n Двiйкове зображення для x8 \n";

display_bits(x8,15);

cout << "\n Двiйкове зображення для x3 \n";

display_bits (x3,15);

cout << "\n Двiйкове зображення для x7 \n";

display_bits (x7,15);

cout << "\n Двiйкове зображення для x4 \n";

p.a = x4;

display_bits (p.b,31);

cout << "\n Двiйкове зображення для x5 \n";

p.a = x5;

display_bits (p.b,31);

p.c = x6;

cout << "\n Двiйkoве зображення для x6\n";

display_bits(p.d[1],31); display_bits(p.d[0],31);

getch(); clrscr();

return 0;

}

// функцiя виведення двiйкового зображення чисел

void display_bits(unsigned long number,int max_position)

{

int bit_position;

for (bit_position=max_position;

bit_position>=0;bit_position--)

cout<<((number>>bit_position) & 1);

}

Додаток