Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


Device. put (char_var);, 3 страница




р + n;,

де n Ч ц≥ле значенн€, а р Ч покажчик.

÷ей вираз визначаЇ область об'Їкта, що займаЇ n -те м≥сце п≥сл€ об'Їкта, на €кий указуЇ р, при цьому n автоматично зб≥льшуЇтьс€ на коеф≥ц≥Їнт,що дор≥внюЇ в≥дпов≥дн≥й довжин≥ об'Їкта. Ќаприклад, €кщо int займаЇ 4 байти, то цей коеф≥ц≥Їнт дор≥внюЇ чотирьом.

ƒопускаютьс€ також пор≥вн€нн€ покажчик≥в, що вказують на елементи одного масиву.

Ќаприклад, €кщо р1< p2, то р2 - р1+1 Ч це число елемент≥в масиву в≥д р1 до р2 включно.

“аким чином, з покажчиками допускаютьс€ наступн≥ операц≥њ:

Ч присвоюванн€ значенн€ одного покажчика ≥ншому;

Ч додаванн€ ≥ вирахуванн€ покажчик≥в ≥ даного ц≥лого типу (р+5);

Чпор≥вн€нн€ двох покажчик≥в, що посилаютьс€ на елементи одного масиву;

Ч присвоюванн€ покажчику нул€ ≥ пор≥вн€нн€ з нулем.

≤нш≥ операц≥њ з покажчиками заборонен≥.

ƒл€ покажчика дозвол€ютьс€ вирази вигл€ду:

 

р1 = mas; або р++,

 

тут р Ч покажчик, mas Ч масив.

–озгл€немо демонстрац≥йн≥ приклади програм роботи з покажчиками.

ѕриклад 2.4 ќбчислити середнЇ значенн€ додатних елемент≥в одновим≥рного масиву.

Ќаведемо к≥лька вар≥ант≥в програмноњ реал≥зац≥њ ц≥Їњ задач≥.

// P2_7.CPP Ч обчисленн€ середнього значенн€

// додатних елемент≥в масиву

// програма без використанн€ покажчик≥в

#include < iostream>

Using namespace std;

Main()

{

const int n = 5;

float mas[n], s = 0;

int kol = 0;

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

{

cout << "¬вед≥ть" << ≥ << "елемент mas" << endl;

cin >> mas[ i ];

if (mas[ i ] > 0)

{

s += mas[ i ];

kol ++;

}

}

s / = kol;

cout << "s=" << s << endl;

Return 0;

}

¬икористовуючи ≥м'€ масиву €к покажчик на початок масиву (перший елемент), цю програму можна переписати в такий спос≥б:

 

// P2_8.CPP Ч обчисленн€ середнього значенн€

// додатних елемент≥в масиву

// використанн€ ≥мен≥ масиву €к покажчика на його початок

#include < iostream>

Using namespace std;

Main ()

{

const int n = 5;

float mas[n], s = 0;

int kol = 0;

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

{

cout << "¬вед≥ть" << ≥ << "елемент mas" << endl;

cin >> *(mas+i);

if(* (mas+i) > 0)

{

s+= *(mas+i);

kol++;

}

}

s/=kol;

cout << "s=" << s << endl;

Return 0;

}

якщо описати покажчик, зв'€зати його з масивом (адресувати на початок масиву),то використовуючи арифметику покажчик≥в, можна написати цю програму у вигл€д≥:

// P2_9. CPP ЧЧ обчисленн€ середнього значенн€

// додатних елемент≥в масиву

// використанн€ арифметики покажчик≥в

#include < iostream>

Using namespace std;

Main ()

{

int kol = 0;

const int n = 5;

float mas[n], s = 0;

float *pm = mas; // припустимийзапис pm=&mas[0]

for (int ≥ = 0; ≥ < n; ≥++)

{

cout <<"¬вед≥ть"<< ≥ <<"елемент mas" << endl;

cin >> *pm++;

cout << mas[i] << endl;

if (mas[i] > 0)

{

s+=mas[i];

kol++;

}

}

s/= kol;

cout << "s=" << s << endl;

Return 0;

}

 

” наведен≥й програм≥ при введенн≥ масиву використовувавс€ покажчик *pm, а при робот≥ з ним Ч ≥м'€ масиву з ≥ндексом. якби при робот≥ з масивом використовувавс€ покажчик *pm, то результат був би не в≥рним. ÷е по€снюЇтьс€ тим, що покажчик *pm в операц≥€х введенн€ в≥н зб≥льшуЇ свою адресу (pm++) п≥сл€ введенн€ чергового елемента масиву ≥ надал≥ вказуЇ ще не введений елемент.

Ќаведемо ще один вар≥ант програмноњ реал≥зац≥њ ц≥Їњ ж задач≥.

// P2_10.—–– ЧЧ обчисленн€ середнього значенн€

// додатних елемент≥в масиву

// використанн€ покажчик≥в

#include < iostream>

Using namespace std;

Main ()

{

const int n = 5;

float mas[n], s = 0;

float *pm = mas; // *pm=&mas[0]

int kol = 0;

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

{

cin >> *pm;

cout << "¬вед≥ть" << ≥ << "елемент mas" << endl;

if (*pm > 0)

{

s += *pm;

kol ++;

}

pm ++;

}

s/= kol;

cout << "s=" << s << endl;

Return 0;

}

 

ѕриклад 2.5. —класти програму сортуванн€ одновим≥рного масиву за

зменшенн€м методом вставки.

// P2_11.CPP Ч сортуванн€ методом вставки (за зменшенн€м)

// застосуванн€ покажчик≥в

#include < iostream.h >

#include < conio.h >

Main ()

{

int stc, mas [6], i, j;

int *pmas;

pmas = mas;

cout << "¬вед≥ть 6 елемент≥в масиву" << endl;

for (i = 0; i < 6; i++) cin >>*pmas++;

// Ќаступний оператор знову встановлюЇ покажчик на початок масиву

// (≥накше в≥н буде вказувати на наступну за масивом адресу)

pmas = mas;

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

{

stc = *(pmas + i);

j = i - 1;

while (j >= 0 && stc > *(pmas+j))

{

*(pmas+j+1) = *(pmas+j);

J - -;

}

*(pmas+j+1) = stc;

}

cout << "–езультат" << endl;

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

cout << i << " елемент " << *(pmas + i) << endl;

// ћожна використовувати ≥ таку конструкц≥ю оператора

// cout << i << " елемент " << * pmas++ << endl;

getch (); // ƒл€ затримки екрана виведенн€ результату

Return 0;

}

2.5 ћасиви покажчик≥в

як ≥ ≥нш≥ зм≥нн≥, покажчики можна групувати в масиви, кожен елемент €кого м≥стить адресу р€дка масиву даних у пам'€т≥. ” такий спос≥б можна збер≥гати дан≥ з "рваними" кра€ми. ÷ей масив схожий на двовим≥рну таблицю з одним виключенн€м: ус≥ р€дки в такому масив≥ можуть мати р≥зну довжину. ѕри збереженн≥ р€дк≥в це дозвол€Ї заощаджувати пам'€ть, а при виконанн≥ сортуванн€ р€дк≥в, вона виконуЇтьс€ значно швидше, тому що зм≥нююЇтьс€ т≥льки покажчики, а не значенн€ р€дк≥в.

Fio

(0) -> ѕ ќ ¬ \0  
(1) -> ¬ ј Ќ ќ ¬ \0  
(2) ->   ÷ » \0    
(3) -> ¬ ј \0    
(4) -> ё Ў   ќ \0      
(5) -> ѕ Ћ ё ў \0      

ѕриведемо програму реал≥зуючу виведенн€ под≥бноњ ≥нформац≥њ з використанн€м масиву покажчик≥в.

// P2_11.CPP

#include < iostream>

Using namespace std;

Main ()

{

char *fio [ ] = { "ѕетров",

"≤ванов",

" уций",

"¬арич",

"ёшко",

"ѕлющ " };

Int str;

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

cout << " stroka " <<(str +1) << Ф = Ф << *(fio+str) << endl;

Return 0;

}

ќсоблив≥стю масиву покажчик≥в Ї те, що кожен з цих покажчик≥в елемент≥в масиву може вказувати на масив дов≥льноњ довжини. “ак двовим≥рний масив чисел можна записати €к матрицю, ≥ €к одновим≥рний масив покажчик≥в, наприклад: int matr[5][7]; чи int *pmt [5];.

ѕри цьому двовим≥рний масив розгл€даЇтьс€ €к одновим≥рний масив р€дк≥в, кожен елемент €кого Ч це теж масив стовпц≥в, тобто масив масив≥в, тому ≥ндексуванн€ елемент≥в матриц≥ записуЇтьс€ у вигл€д≥ mas [i][j]. якщо двовим≥рний масив описаний за допомогою масиву покажчик≥в, то доступ до mas [i][j] елемента може зд≥йснюватис€ одним з≥ способ≥в:

 

* (pm[i]+j) або *(*(pm+i)+j).

ѕриклад 2.6 ƒо елемент≥в матриц≥, що мають парн≥ значенн€, додати число ≥ вивести отриману матрицю в природному вигл€д≥.

ѕерший вар≥ант програмноњ реал≥зац≥њ Ч матриц€ описуЇтьс€ €вним способом ≥ робота ведетьс€ з њњ елементами.

 

// P2_12.CPP Ч робота ведетьс€ без покажчик≥в.

#include < iostream>

Using namespace std;

Void main()

{

int mat [2][3];

int ≥, j;

cout << " ¬вед≥ть матрицю "<< endl;

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

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

cin >> mat [i] [j];

// ќбробка ≥ виведенн€ матриц≥

cout << " ћатриц€ mat " << endl;

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

{

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

{

if ((mat [i][j] %2 == 0)

mat[i][j] = mat[i][j] + 5;

cout << mat [i][j] << " ";

}

cout << endl; // ѕереведенн€ р€дка при виведенн≥ матриц≥

}

}

ƒругий вар≥ант програмноњ реал≥зац≥њ Ч матриц€ описана €к масив покажчик≥в.

 

//P2_13.CPP Ч матриц€ описана €к масив покажчик≥в:

#include < iostream>

Using namespace std;

Main ()

{

int ≥, j, *pm[2];

cout << "¬вед≥ть матрицю "<< endl;

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

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

cin >> *(pm[i] + j);

cout << " ћатриц€ ћј“R "<< endl;

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

{

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

{

if (*(pm[i] + j) %2 == 0)

*(pm [i] + j) += 10;

cout << *(pm [i] + j) << " ";

}

cout << endl;

}

Return 0;

}

” розгл€нут≥й програм≥ дл€ виведенн€ матриц≥ можна використовувати ≥нший вигл€д оператора:

 

сout << ((j == 0)? '\t':' ') << *(pm[i]+j) << ((j == 2)? '\n':' ');

≤м'€ двовим≥рноњ матриц≥ Ї покажчиком-константою на масив покажчик≥в-констант, кожний з €ких указуЇ на початок в≥дпов≥дноњ р€дка матриц≥, наприклад дл€ матриц≥ mat [2] [2] маЇмо:

mat [0] Ч покажчик-константа на нульовий р€док матриц≥;

mat [1] Ч покажчик-константа на перший р€док матриц≥;

mat [2] Ч покажчик-константа на другий р€док матриц≥;

тобто: mat[0] == &mat[0][0];

mat[1] == &mat[1][0];

mat[2] == &mat[2][0];

¬иведенн€ матриц≥ можна реал≥зувати в такий спос≥б:

 

cout << mat [i] [j];

cout << *(mat [i] +j);

cout << *(* (mat +i)+j);

” — ++ можна описати зм≥нну, що маЇ тип "покажчик на покажчик". ќзнакою такого типу Ї повторенн€ символу "*" при опис≥ зм≥нноњ, наприклад int ** pmt; при цьому пам'€ть дл€ такоњ зм≥нноњ не вид≥л€Їтьс€. ѓњ треба привести до в≥дпов≥дного масиву. ѕри опис≥ покажчик на покажчик можна ≥н≥ц≥ал≥зувати, наприклад:

 

int x = 20;

int *px1 = &x;

int** px2 = &px1;

int ***px3 = &px2;

ƒоступ до зм≥нноњ x тепер можна зд≥йснити одним ≥з трьох способ≥в: *px1; **px2; ***px3;.

ƒл€ доступу до пам'€т≥ через покажчики на покажчики можна використовувати €к ≥ндекси так ≥ символи "*", наприклад, екв≥валентними будуть посиланн€ на зм≥нну x:

Px1 [0] *px1;

Px2 [0][0] **px2;

Px3 [0][0][0] ***px3;

2.6  онтрольн≥ питанн€

1. ўо таке масив?

2. як зд≥йснюЇтьс€ опис масив≥в у програм≥?

3. як вибираЇтьс€ елемент масиву з пам'€т≥?

4. як≥ ще оператори мови C++ можна використовувати дл€ введенн€ елемент≥в масиву в пам'€ть комп'ютера?

5. —к≥льки цикл≥в треба використовувати дл€ введенн€, виведенн€ ≥ перебору елемент≥в матриц≥?

6. як звернутис€ до дов≥льного елемента масиву?

7. як≥ обмеженн€ ≥снують у C++ на розм≥р ≥ розм≥рн≥сть масив≥в?

8. як вивести на друк матрицю в природному вигл€д≥?

 

2.7. ¬ар≥анти ≥ндив≥дуальних завдань

” запропонованих нижче вар≥антах завдань конкретн≥ значенн€ масив≥в задаютьс€ дов≥льно.

1. ќбчислити добуток ≥ к≥льк≥сть негативних елемент≥в масиву ћ(15).

2. «найти максимальний елемент масиву ’(12) ≥ його ≥ндекс.

3. ”с≥ в≥дТЇмн≥ елементи масиву ћ(15) записати в масив ћќ, а додатн≥ Ч у ћ–. ¬ивести отриман≥ масиви на екран.

4. «найти м≥н≥мальний елемент масиву ’(17) ≥ його ≥ндекс.

5. √рупа учн≥в з 20 чолов≥к здавала ≥спит. ¬ивести пор€дков≥ номери учн≥в, що одержали У5Ф ≥ У4Ф.

6. ќбчислити суму ≥ к≥льк≥сть парних елемент≥в масиву ’(15).

7. ¬≥дсортувати елементи масиву ћ(17) за зменшенн€м значень.

8. ”с≥ негативн≥ елементи масиву H(15) розд≥лити на його м≥н≥мальний елемент.

9. ≈лементи масиву ’(15), що мають непарн≥ значенн€, записати в масив ’1, а парн≥ Ч у масив ’2.

10. ¬≥дсортувати елементи масиву Y(20) за зростанн€м.

11. ¬с≥ елементи масиву ћ(15), що знаход€тьс€ ран≥ш його м≥н≥мального елемента, записати в масив ћ1, а ≥нш≥ Ч у ћ2.

12. ќбчислити ≥ знайти максимальне значенн€ ц≥Їњ функц≥њ, €кщо a = 10,5; а хi Ч масив чисел, що маЇ 10 значень.

13. «найти м≥н≥мальний елемент матриц≥ K(3,5) ≥ його ≥ндекс.

14. ¬с≥ елементи матриц≥ ћ(4,5) з непарними значенн€ми зам≥нити на 1, а з парними Ч на 0.

15. ”с≥ в≥дТЇмн≥ елементи матриц≥ –(3,4) записати в масив –ќ, а додатн≥ Ч у масив ––.

16. ¬с≥ елементи матриц≥ Matr(3,5), що мають непарн≥ значенн€, записати в масив ћ1, а парн≥ Ч у масив ћ2.

17. «адано два масиви X(10) ≥ Y(10), обчислити Z(i,j) = Xi+Yj, де j,j=10..1.

18. «найти максимальний елемент головноњ д≥агонал≥ матриц≥ ’ (5,5).

19. ќбчислити к≥льк≥сть в≥дТЇмних елемент≥в, що знаход€тьс€ вище головноњ д≥агонал≥ матриц≥ ћ (5,5).

20. «найти максимальний елемент у третьому р€дку матриц≥ –(5,5) ≥ його ≥ндекс.

21. ѕом≥н€ти м≥сц€ми елементи першого ≥ третього р€дка матриц≥ Q(3,5).

22. «найти м≥н≥мальний елемент ≥ його ≥ндекс серед елемент≥в, що знаходитьс€ вище головноњ д≥агонал≥ матриц≥   (5,5).

23. ѕом≥н€ти м≥сц€ми елементи першого ≥ другого стовпц≥в матриц≥ — (5,4).

24. –озд≥лити вс≥ елементи матриц≥ –(4,4) на суму додатних елемент≥в њњ головноњ д≥агонал≥.

25. ѕомножити вс≥ елементи матриц≥ ћ(5,5) на суму додатних елемент≥в, що знаход€тьс€ на њњ головн≥й д≥агонал≥.


3 ¬»–≤Ў”¬јЌЌя «јƒј„ « ¬» ќ–»—“јЌЌяћ ƒјЌ»’ —»ћ¬ќЋ№Ќќ√ќ “»ѕ”

 

3.1 ÷≥ль роботи

¬ивченн€ засоб≥в опису символьних тип≥в даних ≥ використанн€ структур дл€ обробки даних.

 

3.2 ћетодичн≥ рекомендац≥њ з орган≥зац≥њ самост≥йноњ

роботи студент≥в

 

ѕри п≥дготовц≥ до даноњ лабораторноњ роботи рекомендуЇтьс€ повторити типи даних, звернувши увагу на символьний тип, способи завданн€ р€дк≥в ≥ на застосуванн€ структурних тип≥в даних дл€ вир≥шуванн€ практичних задач.

¬ ус≥х попередн≥х роботах використовувалис€ числов≥ типи даних. ќднак ефективн≥сть мови — ++ багато в чому визначаЇтьс€ на€вн≥стю в ньому розвитих засоб≥в дл€ обробки символьноњ ≥нформац≥њ. ” стандартн≥й б≥бл≥отец≥ — ++ передбачено багато функц≥й, що виконують прост≥ д≥њ ≥з символьними даними. “ому ц€ мова найкраще п≥дходить дл€ системноњ роботи: написанн€ комп≥л€тор≥в, ≥нтерпретатор≥в, операц≥йних систем, редактор≥в тексту ≥ т.п.

” мов≥ — ++ розр≥зн€ють символьн≥ константи ≥ р€дки.

—имвольна константа Ч це одиночний символ, укладений в апострофи.  еруюч≥ посл≥довност≥ розгл€даютьс€ €к одиночний символ, наприклад: С С Ч пром≥жок, С аТ Ч л≥тера а, С\Т Ч зворотна коса риса.

“ип char використовуЇтьс€ дл€ зображенн€ символу. «наченн€м об'Їкта типу char Ї код у набор≥ символ≥в персонального комп'ютера, що в≥дпов≥даЇ даному символу. “ип char за замовчуванн€м ≥нтерпретуЇтьс€ €к однобайтова ц≥ла величина з≥ знаком (д≥апазон значень перем≥нноњ в≥д -128 до 127). «м≥нна типу unsigned char може запам'€товувати значенн€ в д≥апазон≥ в≥д 0 до 255.

–€док Ч це посл≥довн≥сть символ≥в, укладена в лапки ("), наприклад: "÷е р€док". ¬≥н збер≥гаЇтьс€ в посл≥довн≥й област≥ пам'€т≥, у к≥нець €коњ комп≥л€тором додаЇтьс€ нульовий символ (С\0Т), що подаЇтьс€ керуючою посл≥довн≥стю С \0Т ≥ Ї символьним масивом. –€дки мають тип char [ ]. „исло елемент≥в масиву дор≥внюЇ числу символ≥в у р€дку плюс 1, тому що нульовий символ також Ї елементом масиву. –€дки можуть розташовуватис€ на дек≥лькох р€дках. ” цьому випадку ставитьс€ зворотна дробова риса ≥ натискаЇтьс€ клав≥ша ENTER. «воротна риса ≥з символом нового р€дка ≥гноруЇтьс€ комп≥л€тором, ≥ наступний р€док вважаЇтьс€ продовженн€м поточного.

3.2.1 ќрган≥зац≥€ символьного введенн€ - виведенн€

 

‘ункц≥њ символьного введенн€ - виведенн€ мови — ++ Ї базовими функц≥€ми, необх≥дними дл€ написанн€ могутн≥х п≥дпрограм введенн€-виведенн€ даних.

ћова — ++ сприймаЇ все введенн€-виведенн€ €к потоки символ≥в. ѕот≥к символ≥в може бути орган≥зований: ≥з клав≥атури, файлу, модему ≥ т.д. ќперац≥йна система забезпечуЇ стикуванн€ пристроњв, а — ++ може використовувати т≥ сам≥ функц≥њ дл€ введенн€ - виведенн€, наприклад, €к ≥з клав≥атури, так ≥ з модему. ќт чому таке велике значенн€ прид≥л€Їтьс€ обробц≥ символьних тип≥в даних. ƒл€ обслуговуванн€ операц≥й над р€дками використовуЇтьс€ файл <string.h>. ѕри орган≥зац≥њ введенн€-виведенн€ в мов≥ — ++ завжди передбачаЇтьс€, що введенн€ буде зд≥йснюватис€ з stdin, що означаЇ стандартний пристр≥й введенн€ (звичайно клав≥атура), а виведенн€ зд≥йснюЇтьс€ на стандартний пристр≥й виведенн€ (звичайно дисплей) з ≥м'€м stdout. ÷≥ потоки можна перепризначити на роздрук Ч ≥м'€ stdprn, посл≥довний порт Ч ≥м'€ stdaux, пов≥домленн€ про помилки Ц ≥м'€ stderr. ќператор cout зд≥йснюЇ виведенн€ на екран т≥льки тому, що б≥льш≥сть комп'ютер≥в за замовчуванн€м stdout направл€Ї виведенн€ на екран, а оператор cin зд≥йснюЇ введенн€ з клав≥атури за тою же причиною, тому що клав≥атура Ї стандартним пристроЇм введенн€ (stdin).

–озгл€немо пор€док д≥й при перепризначенн≥ потоку виведенн€ даних на принтер:

¾ п≥дключенн€ файлу заголовка ofstream;

¾ виконанн€ перепризначенн€ виведенн€ на принтер за допомогою оператор≥в

ofstream prn ("PRN");

prn << " ¬иведенн€ до роздруку пов≥домленн€ "<< endl;

prn << name1 << name2... <<endl;

“акий пор€док д≥й застосовуЇтьс€ при комп≥л€ц≥њ €к задача DOS ≥ нижче приведена його програмна реал≥зац≥€.

 

ѕриклад3.1 ¬ивести дан≥ (пр≥звище й ≥м'€) на принтер.

// P3_1.—PP Ч виведенн€ пр≥звища й ≥мен≥ на принтер

#include < fstream>

#include < iostream>

Using namespace std;

Main ()

{

char fio [15];

char name [10];

cout << "¬вед≥ть пр≥звище ";

cin >> fio;

cout << "¬вед≥ть ≥м'€ ";

cin >> name;

// ѕосилка ≥мен fioname на принтер

ofstream prn ("PRN");

prn << " ¬иведенн€ ≥мен≥ ≥ пр≥звища " << endl;

prn << name << fio << endl;

Return 0;

}

ƒл€ орган≥зац≥њ символьного введенн€ - виведенн€ використовуютьс€ функц≥њ буферизированого (get () ≥ put ()) ≥ небуферизированого (getch () ≥ (putch ()) введенн€ Ц виведенн€, формати цих функц≥й наступн≥:

 

Device. get (char_var);

device. put (char_var);,

де device може бути будь-€ким стандартним пристроЇм введенн€Цвиведенн€.

як видно з формат≥в функц≥й вони ввод€ть або вивод€ть по одному символу з≥ стандартних пристроњв. ‘ункц≥€ get() припин€Ї виконанн€ програми, сприймаЇ один символ, що попадаЇ спочатку в буфер ≥ п≥сл€ натисканн€ ENTER передаЇ вм≥ст буфера в програму. ‘ункц≥€ getch() при одержанн≥ символу, що вводитьс€, не виводить його на екран. ƒл€ в≥дображенн€ њх на екран≥ використовують функц≥ю getche (). ” функц≥€х get()put () може бути перепризначений пристр≥й введенн€ - виведенн€. “ак дл€ в≥дкритт€ модему €к пристрою введенн€ - виведенн€ ≥ читанн€ з нього треба використовувати заголовний файл ifstream.

ѕриклад 3.2 —класти програму, що реал≥зуЇ введенн€ п'€ти символ≥в ≥ збереженн€ њх у вигл€д≥ масиву.

 

// P3_2.CPP Ч робота з масивами символ≥в

// ¬икористанн€ функц≥њ getch()put ()

#include < fstream>

#include < iostream>

Using namespace std;

#include < conio.h >

Main ()

{

Int str;

char slovo [5];

cout << "¬вед≥ть 5 символ≥в " << endl;

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

{

slovo [str] = getch ()

}

// ѕосилка масиву символ≥в на принтер

ofstream prn ("PRN");

prn << " ¬иведенн€ масиву символ≥вФ << endl;

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

{

prn.put (slovo [str]);

}

Return 0;

}

” ц≥й програм≥ використовуЇтьс€ файл заголовка < conio.h >, у €кому описан≥ getch ()put() ≥ програма буде працювати п≥сл€ комп≥л€ц≥њ њњ в DOS.

 

3.2.2 –€дки €к символьн≥ масиви





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-11-05; ћы поможем в написании ваших работ!; просмотров: 529 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

ѕобеда - это еще не все, все - это посто€нное желание побеждать. © ¬инс Ћомбарди
==> читать все изречени€...

2021 - | 1877 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.157 с.