Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Операції * і &, їх використання, призначення і взаємозв"язок

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

Вираз suit визначає масив з 4-х елементів. Специфікацією char * цей масив об’являється як масив вказівників на тип char. В масиві розміщені 4 значення: «Hearts», «Diamonds», «Clubs» і «Spades» як символьні лінійки, які зберігаються в пам’яті і в кінці яких значення «нуль» фіксує кінець кожної символьної лінійки. Тобто кожна лінійка вміщає на 1 символ більше. Відповідно, ці символьні лінійки… Читати ще >

Операції * і &, їх використання, призначення і взаємозв"язок (реферат, курсова, диплом, контрольна)

Курсова робота з дисципліни програмування на тему «Операції * і &, їх використання, призначення і взаємозв'язок»

Вступ Дуже потужним засобом розробки програм мови С++ є вказівники. У даній курсовій роботі описано використання та призначення операцій * та &, які використовуються при роботі з вказівниками. & дозволяє отримати адресу елемента в пам’яті, а * - отримати значення змінної за відомою адресою.

Також в курсовій роботі частково розглядаються вказівники, а саме використання вище згаданих операцій. Наведені приклади програм з використанням вказівників.

1. Теоретична частина

1.1 Вказівники Вказівники — це змінні, значеннями яких є адреси пам’яті. Якщо змінна безпосередньо посилається на своє значення, то вказівник посилається на значення змінної не безпосередньо або непрямо. Він тільки володіє значенням пам’яті імені відповідної йому змінної. Посилання на значення змінної через вказівник називається непрямою адресацією.

Вказівники, перед тим як будуть використовуватися в ході програми, повинні бути визначені. Наприклад:

int *countPtr, count;

Вище визначається змінна countPtr типу int * (вказівник на цілочисельне значення). Крім того також визначається змінна count типу int, проте символ «*» відноситься тільки до змінної countPtr. Спочатку вказівник ініціалізується нульом, або макросом NULL, який знаходиться в директиві процесора стандартної бібліотеки С —, яка включається в інші директиви, наприклад: в директиву. Коли значення 0 присвоюється змінній-вказівнику то здійснюється його перетворення до вказівника відповідного типу і значення 0 — це єдине значення яке може бути присвоєне вказівнику безпосередньо.

1.2 Операції & і *

Операція взяття адреси «&» являється унарою, яка повертає адресу свого операнда. Наприклад, якщо об’явити змінні:

int y=5; i int *yPtr;

то оператор yPtr=&y; присвоїть змінній-вказівнику yPtr адресу змінної у. Така операція називається розіменуванням і повертає значення об'єкту на який посилається вказівник (операнд). В даному прикладі оператор

printf («%d», *yPtr);

виведе значення змінної у рівне 5. При вказівниках операції «*» і «&» доповнюють одна одну. В такому разі установку адреси змінної можна здійснювати так:

yPtr = &y; і лінійка програми

printf («вивід змінної yPtrn», *&yPtr)

виведе те саме значення вказівникової змінної. Нижче наведено фрагмент програми, який демонструє застосування операцій над вказівниками.

/*Застосування операцій * і & для вказівників*/

#include

int main ()

{

int a; //a — ціле число

int *aPtr; // aPtr — вказівник на ціле а=7;

aPtr = &a; // aPtr встановлений на адресу а

printf («The address of a is %pn»

" The value of aPtr is %d", a, aPtr);

printf («nnThe value of a is %dn»

" The value of *aPtr is %d", a, aPtr);

printf («nnShowing that * and & are complements of each other. n»

" &*aPtr = %pn*&aPtr = %pn", &*aPtr, *&aPtr);

return 0;

} // кінець main.

Виконання програми представить нам наступні результати:

The address of a is 0012FF88

The value of aPtr is 0012FF88

The value of a is 7

The value of *aPtr is 7

Showing that * and & are complements of each other.

&*aPtr =0012FF88

*&aPtr =0012FF88

Існують випадки, коли операція взяття адреси змінної «&» може бути незастосовна. Це трапляється, коли програміст намагається передавати не одне значення змінної, а намагається передати масив або змінювати значення змінної при обчисленні і виводити її уже із обчисленим значенням, а не з первинним. Для того в С здійснюється операція «імітації виклику по посиланню». Нехай задається прототип функції обчислення куба:

void cubeVolum (int *nVol);

в функції main відповідно ініціалізується змінна сторони куба b і передається її значення у функцію cubeVolum на обчислення об'єму куба, а при поверненні значення змінної повинно відповідати значенню об'єму куба. Для цієї мети в головній функції здійснюється:

int b = 5;

cubeVolum (&b); /*звернення до функції обчислення об'єму*/

printf («значення об'єму куба%dn», b); /*b-виводить значення об'єму*/

В функції обчислення об'єму, відповідно, здійснюється так:

Void cubeVolum (int *nVol){

*nVol=*nVol**nVol**nVol; /*обчислення об'єму куба*/}

Нижче наведено приклад обчислення об'єму куба через піднесення числа до кубу.

/*Програма обчислення кубу через піднесення до третього степеня числа, застосовуючи передавання числа аргументом-вказівником*/

#include

void cubeByReference (int nPtr); // прототип

int main ()

{

int number = 5; // ініціалізувати число

printf («The original value of number is %d», number);

//Передати cubeByReference адресу числа

cubeByReference (number);

printf («nThe new value of number is %d», number);

return 0;//Успішне завершення функції main

}//кінець програми.

/*Обчислити куб *nPtr; модифікує змінну number в main*/

void cubeByReference (int nPtr)

{

*nPtr = *nPtr* *nPtr* *nPtr; // піднести до кубу *nPtr

}//кінець функції

Результат виконання програми представиться у вигляді.

The original value of number is 5

The new value of number is 125.

1.3 Вказівники і масиви За допомогою вказівників можна також передавати масиви. В цьому випадку розробники програм часто використовують функцію sizeof. Вказівник може бути інкрементований (++), декрементований (—), до вказівника може бути додане ціле число (+ або +=) і з вказівника може бути відняте ціле число (- або -=). Припустимо, що є казівник типу int, під який резервується 4 байти. Нехай вказівник yPtr приймає значення адреси пам’яті 3000. Тоді оператор yPtr +=2 дасть результат: 3000+2*4=3008. Дії ++yPtr або yPtr++ та — yPtr або yPtr — при застосуванні в масивах будуть давати можливість вказівнику отримувати значення пам’яті на наступний і попередній елементи масиву. Якщо існує масив b[10] теж типу int, наприклад, то вказівник bPtr[1] буде вказувати на 1-ий елемент масиву b. Аналогічно можна виявити дії інших згаданих арифметичних операцій.

Масиви також можуть складатися із вказівників, які часто можуть утворювати масив символьних лінійок. При ініціалізації масиву:

char *suit[4] = {" Hearts" ," Diamonds" ," Clubs" ," Spades" };

вираз suit[4] визначає масив з 4-х елементів. Специфікацією char * цей масив об’являється як масив вказівників на тип char. В масиві розміщені 4 значення: «Hearts», «Diamonds», «Clubs» і «Spades» як символьні лінійки, які зберігаються в пам’яті і в кінці яких значення «нуль» фіксує кінець кожної символьної лінійки. Тобто кожна лінійка вміщає на 1 символ більше. Відповідно, ці символьні лінійки займають в пам’яті 7, 9, 6, і 7 байт. І хоча здається, що в указаний масив заносяться лінійки символів, проте елементами масиву являються вказівники. Для прикладу наведено програму перетворення нижнього регістру символів у верхній.

/*Програму перетворення нижнього регістру символів у верхній*/

#include

#include

void convertToUppercase (char *sPtr); //прототип функції

int main ()

{

char string[] = «characters and $ 32.98»; //масив симолів

printf («The string before convertion is:%s», string);

convertToUppercase (string);

printf («nThe string after convertion is:%sn», string);

return 0;//завершення програми

}//кінець main

/*Перетворити лінійку в символи верхнього регістра*/

void convertToUppercase (char *sPtr);

{

while (*sPtr≠'') { //текучий символ не ''

if (islower (sPtr)) {//якщо символ нижнього регістра,

*sPtr = toupper (*sPtr); //перетворити в верхній

}//кінець if

++sPtr //перемістити sPtr на наступний символ

}//кінець while

}//кінець функції convertToUppercase.

Результат виконання програми буде поданий у вигляді:

The string before convertion is: characters and $ 32.98

The string after convertion is: CHARACTERS AND $ 32.98

Нижче наведена програма бульбашкового сортування, яка демонструє використання операцій * і &, а також передання аргументів неявно.

/*Програма бульбашкового сортування*/

//програма заносить значення в масив, сортує їх у висхідному порядку

//і друкує масив, що отримався

#include

#define SIZE 10

void bubbleSort (int* const array, const int size); // прототип

int main ()

{

//ініціалізувати масив

int a[size] = {2,6,4,8,10,12,89,68,45,37};

int i; //лічильник

printf («Data items on original ordern»);

for (i=0; i

printf («%4d», a[i]);

}//кінець for

bubbleSort (a, SIZE);//сортувати масив

printf («nData items in ascending ordern»);

for (i=0; i

printf («%4d», a[i]);

}//кінець for

printf («n»);

return 0;//завершення програми

}//кінець функції main

/*Cортувати масив цілих даних шляхом бульбашкового сортування*/

void bubbleSort (int* const array, const int size)

{

void swap (int *element1Ptr, int * element2Ptr);//прототип

int pass; //лічильник проходів

int j; // лічильник порівнянь

for (pass=0; pass

for (j=0; j

//поміняти сусідні значення, якщо їх порядок порушений

if (array[j]>array[j+1]) {

swap (&array[j], &array[j+1]);

}//end if

}//кінець внутрішнього for

}//кінець внутрішнього for

}//кінець функції bubbleSort

/*Обміняти значення в комірках, на які вказують *element1Ptr, і *element2Ptr */

void swap (int *element1Ptr, int * element2Ptr)

{

int hold = *element1Ptr;

*element1Ptr=*element2Ptr;

*element2Ptr=hold;

}//кінець функції

Результат виконання програми поданий нижче.

Data items on original order

2,6,4,8,10,12,89,68,45,37

Data items in ascending order

2,4,6,8,10,12,37,45,68,89

2. Практична частина Задача № 1

ЛІНІЙНІ ПРОГРАМИ Скласти програму для обчислення значення функції

#include

#include

#include

main ()

{

const float U1=12.3,T2=3.856,n0=840,n1=610;

float x=1.485,T1,U;

T1=T2*sqrt (n0/n1);

U=(U1*x)/(T1/T2+1);

printf («T1=%fnU=%f», T1, U);

getch ();

return 0;

}

Задача № 2

ПРОГРАМИ З РОЗГАЛУЖЕННЯМ Скласти програму для обчислення значення функції

a=0.854; b=3.625;

s=1.326; s=3.906

#include

#include

#include

main ()

{

const float a=0.854, b=3.625, pi=3.14;

float s, i;

scanf («%f» ,&s);

if (s>1.5&&s<=b-a)

{

i=(sqrt (b)+pow (cos (a*a*s), 2))/log (fabs (s-5));

printf («ns=%f i=%f», s, i);

}

else if (s>b)

{ i=a*b+tan (s/3+pi/12);

printf («ns=%f i=%f», s, i);

}

getch ();

return 0;

}

Задача № 3

вказівник операнд аргумент програма ЦИКЛІЧНІ ПРОГРАМИ З РЕГУЛЯ РНОЮ ЗМІНОЮ АРГУМЕНТУ Скласти програму для обчислення таблиці значень функції

Аргумент y змінюється від початкового значення y=-4.8 до кінцевого y=0.1, кількість значень функції n=8.

Крок зміни параметра циклу визначається за формулою:

?y=(|yk-yn|)/n-1=(-4.8−0.1)/7=0.7

#include

#include

#include

void main ()

{

const float a=3.2,pi=3.14;

float y=-4.8, z;

for (;y<=0.1;y+=0.7)

{

z=atan (a+y*y)/pow (log (a), 2)+pi/6*a;

printf («z=%f y=%fn», z, y);

}

getch ();

return;

}

Задача № 4

ЦИКЛІЧНІ ПРОГРАМИ З РЕГУЛЯРНОЮ ЗМІНОЮ АРГУМЕНТУ, ЯКІ МІСТЯТЬ РОЗГАЛУЖЕННЯ Вивести на друк значення функції, які лежать в межах a>b>c, підрахувати їх кількість.

Аргумент х змінюється від початкового значення 3.4 з кроком 0.11 до кінцевого 6.6.

#include

#include

#include

void main ()

{

const float y=28.3,z=4.21,a=5.5,c=2.8;

float b, x;

for (x=3.4;x<=6.7;x+=0.11)

{

b=5*(y-x)*sqrt (y-z*x)/(1+(y+x*x)*log (z));

if (bc)

{

printf («b=%-12f x=%.2fn», b, x);

}

}

getch ();

return;

}

Задача № 5

ОДНОВИМІРНІ МАСИВИ Дано одновимірний масив В, який складається з 15 елементів. Сформувати вектор А, першим елементом якого є найменше число, а наступні елементи вектора, А — числа, які знаходяться за найменшим елементом масиву В.

#include

#include

main ()

{

int i, n=0,k, b[15], min, a[15];

for (i=0;i<15;i++)

scanf («n%d» ,&b[i]);

min=b[0];

for (i=0;i<15;i++)

if (b[i]

{

min=b[i];

n=i;

}

k=15-n;

a[0]=min;

n++;

for (i=1;n<15;i++, n++)

a[i]=b[n];

for (i=0;i

printf («%d», a[i]);

getch ();

return 0;

}

Задача № 6

ЦИКЛІЧНІ ПРОГРАМИ З НАКОПИЧЕННЯМ СУМИ АБО ДОБУТКУ Дано два одновимірні вектори Х і Т, кожний з яких складається з 10 елементів. Обчислити їх скалярний добуток.

#include

#include

main ()

{

int x[10], t[10], i, s=0;

printf («X: n»);

for (i=0;i<10;i++)

scanf («%d» ,&x[i]);

printf («T: n»);

for (i=0;i<10;i++)

scanf («%d» ,&t[i]);

clrscr ();

printf («X: «);

for (i=0;i<10;i++)

printf («%d «, x[i]);

printf («nT: «);

for (i=0;i<10;i++)

printf («%d «, t[i]);

for (i=0;i<10;i++)

{

s+=x[i]*t[i];

}

printf («nSkalarnyi dobutok = %d», s);

getch ();

return 0;

}

Задача № 7

ВКЛАДЕНІ ЦИКЛИ х змінюється від 12,4 до 19,4 з кроком 3,5

Значення індексної змінної:

b1=-3.46 b2=1.852

b3=3.03 b4=-2.57

#include

#include

#include

main ()

{

float b[4]={-3.46,1.852,3.03,-2.57}, x, a;

int i;

for (x=12.4;x<=19.4;x+=3.5)

{

printf («x=%.1fn», x);

for (i=0;i<4;i++)

{

a=1+pow (sin (b[i]*b[i]+x/(i+1)), 2);

printf («a=%.3fn», a);

}

}

getch ();

return 0;

}

Задача № 8

ДВОВИМІРНІ МАСИВИ, СОРТУВАННЯ МАСИВІВ Для кожного рядка заданої матриці А розміром 8×5 знайти та надрукувати номери стовбців, які містять нульові елементи, і їх кількість.

#include

#include

#include

void main ()

{

int a[8][5], i, j, k;

randomize ();

for (i=0;i<8;i++)

for (j=0;j<5;j++)

a[i][j]=random (9);

for (i=0;i<8;i++)

{

k=0;

printf («line %d: «, i);

for (j=0;j<5;j++)

if (a[i][j]==0)

{

printf («%d «, j);

k++;

}

printf («tkilkist 0: %dn», k);

}

getch ();

}

Задача № 9

ПРОЦЕДУРИ-ФУНКЦІЇ

Обчислити значення перших n (n<30) елементів геометричної прогресії з допомогою підпрограми, якщо відомий перший елемент прогресії а та знаменник прогресії q. Кожний наступний елемент геометричної прогресії утворюється множенням попереднього на знаменник прогресії. Для розміщення в пам’яті обчислених елементів їх слід оголосити як одновимірний масив.

#include

#include

void funkt (float, float, float x[20]);

void main ()

{

float a, q, x[20];

int i;

cout<<" a= «;

cin>>a;

cout<<" nq= «;

cin>>q;

funkt (a, q, x);

for (i=0;i<20;i++)

cout<

getch ();

}

void funkt (float a, float q, float x[20])

{

int i;

x[0]=a;

for (i=1;i<20;i++)

{

x[i]=x[i-1]*q;

}

}

Задача № 10

ПІДПРОГРАМИ-ФУНКЦІЇ

Скласти програму для визначення величини

де a=1, b=32.

Обчислення інтегралу оформити у вигляді процедури-функції, використовуючи метод Сімпсона:

Де h=(b-a)/n=0.5

#include

#include

#include

float integ ();

void main ()

{

const int a=1,b=32;

float q;

q=integ ();

q+=pow ((a+b), 0.3 333 333);

cout<<" nQ="<

getch ();

}

float integ ()

{

const float h=0.5, n=62;

float q, x=0;

int i;

q=x*x*x*exp (x+sin (x));

x=n;

q+=x*x*x*exp (x+sin (x));

for (i=1;i<62;i++)

{

if (i%2≠0)

q+=4*i*i*i*exp (i+sin (i));

else

q+=2*i*i*i*exp (i+sin (i));

}

q*=h/3;

return q;

}

Задача № 11

ОБРОБКА ТЕКСТІВ Дано текст, який містить букви і пропуски. Знайти слова, які закінчуються буквосполученням «ати», і замінити буквосполучення на «али». Словом вважати послідовність букв розділених пропусками.

#include

#include

main ()

{

char text[64]="atu iatu atuf atu" ;

char *t=text, *temp;

while (*t)

{

if (*t=='a')

{

t++;

if (*t=='t')

{

temp=t;

t++;

if (*t=='u')

}

}

t++;

}

printf («%s», text);

getch ();

return 0;

}

Задача № 12

ФАЙЛИ Сформувати файл «В», що містить інформацію про книги з програмування в бібліотеці: прізвище автора, назва видавництва, рік видання, алгоритмічна мова. Записати у файл «ВІ» список книг, виданих видавництвом «Просвіта» після 1990 року, а також кількість книг з мови БЕЙСІК. Ці дані також вивести на друк.

#include

#include

#include

struct biblioteka

{

char avtor[15];

char vyd[15];

int year;

char mova[10];

};

void main ()

{

int i;

biblioteka book;

FILE *bPtr, *biPtr;

char s[10]={" prosvita" }, s1[10]={" beisik" };

if ((bPtr=fopen («B.txt» ," w+")) == NULL)

printf («Error»);

else

{

printf («vvedit' avtor, vydavnyctvo, rik i algor. movyn»);

for (i=0;i<5;i++)

{

printf («? «);

scanf («%s %s %d %s», &book.avtor,&book.vyd,

&book.year,&book.mova);

fwrite (&book, sizeof (struct biblioteka), 1, bPtr);

}

}

rewind (bPtr);

if ((biPtr=fopen («BI.txt» ," w")) == NULL)

printf («Error»);

else

{

while (!feof (bPtr))

{

fread (&book, sizeof (struct biblioteka), 1, bPtr);

if ((strcmp (s, book. vyd)==0&&book.year>1990)||strcmp (s1,book.mova)==0)

{

printf («%-15s%-15s%-10d%-10sn», book. avtor, book. vyd, book. year, book. mova);

fwrite (&book, sizeof (struct biblioteka), 1, biPtr);

}

}

}

fclose (bPtr);

fclose (biPtr);

getch ();

}

Задача № 13

РОЗВ’ЯЗАННЯ СИСТЕМИ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ МЕТОДОМ ГАУССА Розв’язання системи лінійних алгебраїчних рівнянь методом Гаусса.

Числові значення коефіцієнтів системи

аі1

аі2

аі3

bі

0.71

0.1

0.12

0.1

0.34

— 0.04

0.12

— 0.04

0.1

0.29

0.32

— 0.1

#include

#include

void main ()

{

float a[3][4];

int i, j;

float det, x1, x2,x3,k;

cout<<" Vvedit' systemu rivnan' po radkah: n" ;

for (i=0;i<3;i++)

{

for (j=0;j<3;j++)

{

cout<<" Vvedit' a[" <<(i+1)<<" ][" <<(j+1)<<" ]: «;

cin>>a[i][j];

}

cout<<" Vvedit' b[" <<(i+1)<<" ]: «;

cin>>a[i][3];

}

for (i=0;i<3;i++)

{

cout<

for (j=0;j<4;j++)

cout<

<<" t" ;

}

cout<

det=a[0][0]*a[1][1]*a[2][2]+a[1][0]*a[2][1]*a[0][2]+a[0][1]*a[1][2]*a[2][0];

a[2][0]*a[1][1]*a[0][2]-a[1][0]*a[0][1]*a[2][2]-a[2][1]*a[1][2]*a[0][0];

if (det==0) cout<<" systema ne sumisna!!!/n" ;

else

{

k=a[1][0]/a[0][0];

for (j=0;j<4;j++)

a[1][j]-=a[0][j]*k;

k=a[2][0]/a[0][0];

for (j=0;j<4;j++)

a[2][j]-=a[0][j]*k;

k=a[2][1]/a[1][1];

for (j=1;j<4;j++)

a[2][j]-=a[1][j]*k;

x3=a[2][3]/a[2][2];

x2=(a[1][3]-a[1][2]*x3)/a[1][1];

x1=(a[0][3]-a[0][1]*x2-a[0][2]*x3)/a[0][0];

for (i=0;i<3;i++)

{

cout<

for (j=0;j<4;j++)

cout<<<" t";

}

cout<<" nnX1="<<" nX2="<<" nX3="<

}

getch ();

}

Задача № 14

ІТЕРАЦІЙНІ ЦИКЛІЧНІ ПРОЦЕСИ Розв’язати рівняння методом ітерацій

Інтервал ізоляції кореня: [2;3]

Похибка обчислення: 0.001

#include

#include

#include

#define E 0.001

void main ()

{

double x=2,y, t;

int k=0;

do

{

y=2/log (fabs (x));

t=fabs (x-y);

x=y;

k++;

}

while (t>E);

cout<<" X="<<" nKilkist' iteracyi = «<

getch ();

}

Задача № 15

РОЗВ’ЯЗАННЯ СИСТЕМИ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ МЕТОДОМ ПРОСТОЇ ІТЕРАЦІЇ АБО МЕТОДОМ ЗЕЙДЕЛЯ Розв’язати системи лінійних алгебраїчних рівнянь методом простої ітерації або методом Зейделя.

аі1

аі2

аі3

bі

0.71

0.1

0.12

0.1

0.34

— 0.04

0.12

— 0.04

0.1

0.29

0.32

— 0.1

#include

#include

#include

#define E 0.001

void main ()

{

int i, j;

double a[3][3], x[3]={0,0,0}, y[3], b[3], var, temp;

cout<<" Vvedit' systemu rivnan' po radkah: n" ;

for (i=0;i<3;i++)

{

for (j=0;j<3;j++)

{

cout<<" Vvedit' a[" <<(i+1)<<" ][" <<(j+1)<<" ]: «;

cin>>a[i][j];

}

cout<<" Vvedit' b[" <<(i+1)<<" ]: «;

cin>>b[i];

}

for (i=0;i<3;i++)

{

cout<

for (j=0;j<3;j++)

cout<

<<" t" ;

cout<

}

cout<

do

{

temp=0;

for (int i=0; i<3; i++)

{

y[i]=x[i];

var=0;

for (int j=0; j<3; j++)

if (j≠i) var+=(a[i][j]*x[j]);

x[i]=(b[i]-var)/a[i][i];

temp+=fabs (y[i]-x[i]);

}

}

while (temp>E);

for (int i=0; i<3; i++)

cout<<" nX[" <<(i+1)<<" ]="<<<" t" ;

getch ();

}

Задача № 16

ОСНОВИ ООП. ПРИНЦИПИ ПОБУДОВИ КЛАСІВ Створити клас з полями та методами. Оголосити кілька об'єктів цього класу, використовуючи різні конструктори.

КОРАБЕЛЬ поля:

ім'я — char*

водотоннажність — int

прізвище власника — char*

методи:

введення назви корабля введення водотоннажності

зміна власника виведення інформації про об'єкт

#include

#include

#include

class sudno

{

char name[20];

int tonag;

char vlasnuk[20];

public:

sudno ();

sudno (char*, int, char*);

void SetName (char*);

void SetTonag (int);

void SetVlasnuk (char*);

void Show ();

};

void main ()

{

clrscr ();

sudno S;

sudno S1(«Pobeda», 3000," Klimyuk");

cout<<" #1:" <

S.Show ();

cout<<" #2:" <

S1.Show ();

S.SetName («Beda»);

cout<<" #1:" <

S.Show ();

S.SetTonag (20 000);

S.SetVlasnuk («Darmovis»);

cout<<" #1:" <

S.Show ();

getch ();

}

sudno:sudno ()

{

strcpy (name," NO");

tonag=0;

strcpy (vlasnuk," NO");

}

sudno:sudno (char *a, int b, char *c)

{

strcpy (name, a);

tonag=b;

strcpy (vlasnuk, c);

}

void sudno: SetName (char *a)

{

strcpy (name, a);

}

void sudno: SetTonag (int a)

{

tonag=a;

}

void sudno: SetVlasnuk (char *a)

{

strcpy (vlasnuk, a);

}

void sudno: Show ()

{

cout<<" t" <<" t" <

}

Список використаної літератури

1. Основи програмування і алгоритмічні мови. Методичні вказівки до лабораторних занять для студентів спеціальності «Професійна освіта. Комп’ютерні технології в управлінні та навчанні» для денної та заочної форм навчання / В. М. Мельник Луцьк: ЛНТУ, 2011. 62 с.

2. Харви Дейтел, Пол Дейтел. — Как програмировать на С

3. Архангельский А. Я. Приемы программирования в Borland C++. М.: ООО «БИНОМ-ПРЕСС», 2003. 784 с.

4. Б. Страуструп. Язык программирования C++ = The C++ Programming Language / Пер. с англ. — 3-е изд. — СПб.;

5. Страуструп Б. Язык программирования C++. Специальное издание = The C++ programming language. Special edition. — М.: Бином-Пресс, 2007. — 1104 с. — ISBN 5−7989−0223−4

6. Страуструп Б. Программирование: принципы и практика использования C++, исправленное издание = Programming: Principles and Practice Using C++. — М.: Вильямс, 2011. — С. 1248. — ISBN 978−5-8459−1705−8

7. Герберт Шилдт. Полный справочник по C++ = C++: The Complete Reference. — 4-е изд. — М.: Вильямс, 2011. — С. 800. — ISBN 978−5-8459−0489−8

Показати весь текст
Заповнити форму поточною роботою