- •Алгоритмічні мови та програмування Методичні вказівки
- •Алгоритмічні мови та програмування Методичні вказівки
- •03056, Київ, вул..Політехнічна, 12, корп. 17
- •Порядок виконання роботи
- •Загальні відомості для виконання лабораторної роботи
- •0X число (шістнадцяткове),
- •0 Число(число (вісімкове),
- •Результат виконання
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Додаток 1
- •Додаток 2
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Доступ до елемента масиву
- •Запис вектора у стовпець (рядок) масиву
- •Зміна стовпців масиву
- •Додаткові засоби
- •Теоретична частина
- •Порядок виконання роботи
- •Теоретична частина
- •Порядок виконання роботи
- •Додаток
- •Порядок виконання роботи
- •Результати виконання програми
- •Результати виконання програми
- •Порядок виконання роботи
- •Добирання формул за дослiдними даними згiдно методу найменших квадратiв
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Порядок виконання роботи
- •//Функція
- •//Динамічні масиви
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Порядок виконання роботи
Порядок виконання роботи
А.При п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);
}
Додаток