- •Алгоритмічні мови та програмування Методичні вказівки
- •Алгоритмічні мови та програмування Методичні вказівки
- •03056, Київ, вул..Політехнічна, 12, корп. 17
- •Порядок виконання роботи
- •Загальні відомості для виконання лабораторної роботи
- •0X число (шістнадцяткове),
- •0 Число(число (вісімкове),
- •Результат виконання
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Додаток 1
- •Додаток 2
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Доступ до елемента масиву
- •Запис вектора у стовпець (рядок) масиву
- •Зміна стовпців масиву
- •Додаткові засоби
- •Теоретична частина
- •Порядок виконання роботи
- •Теоретична частина
- •Порядок виконання роботи
- •Додаток
- •Порядок виконання роботи
- •Результати виконання програми
- •Результати виконання програми
- •Порядок виконання роботи
- •Добирання формул за дослiдними даними згiдно методу найменших квадратiв
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Порядок виконання роботи
- •//Функція
- •//Динамічні масиви
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Порядок виконання роботи
- •Порядок виконання роботи
//Функція
int function (int *x )
{
int s = 0, n; int* z;pt;pt; //об'ява простих змiнних та вказiвника
pta(s); pta(z); ptv(s); ptv(z); pt; //їх параметри
cout << " input value for n =";
cin >> n; //введення розмiру масиву
z = new int[n]; //створення динамiчного масиву z у пам'ятi
ptv(z); ptvp(z); pt; //новi параметри вказiвника z
for(int і = 0; і < n; і ++)
{
z[i] = x[i]; //iнiцiалiзацiя масиву z
s += z[i]; // розрахунок суми елементiв
}
delete[]z;
return s;
}
/*Лабораторна робота 14 (файл LAB14A.CPP)*/
/*Вивчення розподiлу пам"ятi */
#include <conio.h>
#include <iostream.h>
// макрокоманди
#define pt cout << "\n"
#define pta(z) cout << " Address "#z" = "<<&z
#define ptv(v) cout << " Value "#v"= "<<v
#define ptvp(p) cout << " Value at pointer "#p" = "<<*p
//Глобальнi змiнна y1 та вказiвник на змiнну цiлого типу y2
int y1 = 1,*y2;
main ()
{
clrscr(); pt;
//Адреси та значення глобальних даних
pta(y1); ptv(y1); pt; pta(y2); ptv(y2); pt;
y2 = &y1; //встановлення вказiвника у2 на змiнну у1
pta(y2); ptv(y2); ptvp(y2); pt; // новi параметри вказiвника у2
// auto variables and pointers
int x = 10, *x1, **x2, *x3;
pta(x); ptv(x); pt; //address and value of локальної змiнної x
pta(x1); ptv(x1); ptvp(x1); pt; //address and value of вказiвника x1
x1 = &x; //встановлення вказiвника х1 на змiнну х
pta(x1); ptv(x1); ptvp(x1); pt; //новi параметри вказiвника х1
pta(x3); ptv(x3); ptvp(x3); pt; //параметри вказiвника х3
x3 = new int; //резервування мiсця для змiнної
pta(x3); ptv(x3); ptvp(x3); pt; //новi параметри вказiвника х3
x3 = x1; //вказiвники вказують на ту ж саму змiнну х
pta(x3); ptv(x3); ptvp(x3); pt; //новi параметри вказiвника х3
pta(x2); ptv(x2); ptvp(x2); pt; // параметри вказiвника х2
ptv(x3); //значення змiнної х
++x3; //змiна адреси у вказiвниковi
ptv(x3); pt; //значення у пам'ятi за цiєю адресою
*x3 = 100; //запис туди нового значення
x2 = &x3; //запис адреси вказiвника х3 у вказiвник х2-
// створення подвiйної (непрямої) вказiвки на нову змiнну
// iз значенням 100 , у якої немає iменi
pta(x2); ptv(x2); pt; //звернення за значенням до нової змiнної
delete x3;
//Динамічні масиви
int a[4] = {1, 2, 3, 4 }, *a1, i; //описи змiнних
pta(a); pta(a1); pt; //адреси масиву та вказiвника а1 ptvp(a); ptvp(a1); pt; // значення за цими адресами
a1 = a; //встановлення вказiвника а1 на початок масиву
ptv(a1); ptvp(a1); pt; //новi параметри вказiвника а1
int *b; pta(b); ptv(b); ptvp(b); pt; // параметри вказiвника b
b = new int[4]; //створення динамiчного масиву b у пам'ятi
pta(b); ptv(b); ptvp(b); pt; //новi параметри вказiвника b
//запис значень у масив b та виведення на екран
cout << "\n array b \n";
for(i =0; i < 4; i ++)
{
// b[i] = a[i]; //класична адресацiя елементiв масиву
// *b++=*a1++;// адресацiя через вказiвники,змiна значень вказiвникiв
*b++ = a[i];
// b[i] = *a1++;
// *(b+i)=*(a+i); //адресацiя через вказiвники,але без змiни їх значень
}
b -= 4; //повернення звернення на початок массиву
for(i = 0; i < 4; i ++)
{
cout << " " << b[i]; //контроль створення масиву b
}
delete []b; getch();
int a2[3][3] = {1,2,3,4,5,6,7,8,9}, a3[3][3], *a4, j;
pt; pta(a2); pta(a3); pta(a4); pt; //адреси масивiв та вказiвника а4
ptv(a2); ptvp(a2); pt; //значення за цими адресами
ptv(a2[0][0]); ptv(a3[0][0]); pt; //значення перших елементiв масивiв
a4 = new int[9]; //створення динамiчного масиву а4 у пам'ятi
pta(a4); ptvp(a4); pt; //новi параметри вказiвника а4
// iнiцiалiзацiя масивiв а3 та а4
cout << "\n array a3 \n";
for(i = 0; i < 3 ; i ++)
for(j = 0; j < 3; j ++)
{
// a3[i][j] = *(*(a2+i)+j);
*(*(a3+i)+j) = *(*(a2+i)+j);
// a3[i][j] = a2[i][j];
cout << " " << a3[i][j];
*a4++ = a3[i][j];
}
a4 = a4 - 9; pt; //повернення звернення на початок масиву
for(i = 0; i < 3; i ++)
for(j = 0; j < 3; j ++)
{
cout << " " << *(a4+i*3+j);
}
int function(int *x ); //прототип функцiї
int s1;
//розрахунок суми заданої iз клавiатури кiлькостi елементiв n
//s1 = function(&a2[0][0]);
s1 = function(a4);
cout << " s1 = " << s1;
delete []a4; getch(); return 0;
}
/*Лабораторна робота 14 (файл LAB14B.CPP)*/
/*Вивчення розподiлу пам"ятi */
#include <iostream.h>
// макрокоманди
#define pt cout << "\n"
#define pta(z) cout << " Address "#z" = " << &z
#define ptv(v) cout << " Value "#v"= " << v
#define ptvp(p) cout << " Value at pointer "#p" = " << *p
int function(int *x )
{
int s = 0, n; int * z; //об'ява простих змiнних та вказiвника
pt; pt; pta(s); pta(z); ptv(s); ptv(z); pt; //їх параметри
cout << " input value for n =";
cin >> n; //введення розмiру масиву
z = new int[n]; //створення динамiчного масиву z у пам'ятi
ptv(z); ptvp(z); pt; //новi параметри вказiвника z
for(int i = 0 ; i < n; i ++)
{
z[i] = x[i]; //iнiцiалiзацiя масиву z
s += z[i]; // розрахунок суми елементiв
}
delete[]z;
return s;
}
Лабораторна робота №18
РОБОТА З СИМВОЛАМИ ТА РЯДКАМИ
Мета роботи: ознайомлення зі стандартними функціями обробки символьної інформації , оволодіння методами обробки на прикладах створення відповідних комп’ютерних програм.