Ћекции.ќрг


ѕоиск:




 атегории:

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

 

 

 

 


float ur ( float x, float a, float b, float c );




{

return a * x * x + b * x + c;

}

–езультати виконанн€ програми:

”ведено вс≥ аргументи

y = 4.25

”веден≥ x, a ≥ b

y = 1.25

¬ведено аргумент x

y = 0

5.2.5 ѕеревантаженн€ функц≥й

” мов≥ — ++ можна використовувати перевантаженн€ функц≥й, тобто можлив≥сть визначати функц≥њ з одним ≥м'€м, але з р≥зним типом ≥ к≥льк≥стю формальних параметр≥в.

ќсновне достоњнство перевантажених функц≥й ¾ це можлив≥сть визначати к≥лька функц≥й з тим самим ≥м'€м, але з р≥зними типами ≥ числом параметр≥в.

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

#include <string.h>

#include < iostream >

Using namespace std;

int funp (int x) // 1.

{ return x*x; }

int funp (unsigned x) // 2.

{ return -x*x; }

char funp (char x) // 3.

{ return x+3; }

int funp (int x, char *y) // 4.

{ return x*strlen (y); }

int funp (int x, char y) // 5.

{ return x*y; }

float funp (float r) // 6.0

{ return r*r; }

float funp (double r) // 7.

{ return r+r; }

Int main ()

{

cout << funp(5) << endl; // Ѕуде 25

cout << funp ((unsigned)10) << endl; // Ѕуде 100

cout << funp ('а') << endl; // Ѕуде d

cout << funp (4,"abc") << endl; // Ѕуде 12

cout << funp (4, 'а') << endl; // Ѕуде 388

cout << funp(1.2)<< endl; // Ѕуде 1.44

cout << funp((double) 4.5) << endl; // Ѕуде 9

Return 0;

}

 

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

 

 

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

1. ўо таке функц≥€ ≥ €ка њњ структура?

2. ўо означаЇ передача параметр≥в у функц≥ю за значенн€м, за посиланн€м ≥ за покажчиком?

3. ўо таке локальн≥ ≥ глобальн≥ зм≥нн≥?

4. як використовувати покажчики на функц≥ю?

5. як≥ способи передач≥ ≥ поверненн€ результату обчислень функц≥њ?

6. як використовувати одновим≥рн≥ масиви €к параметри функц≥њ?

7. як≥ особливост≥ використанн€ багатовим≥рних масив≥в €к аргументи функц≥њ?

8. „и можна обробл€ти у функц≥њ масиви зм≥нноњ довжини?

9. „и може функц≥€ передавати к≥лька результат≥в у м≥сце виклику?

10. ўо таке перевантаженн€ функц≥й?

 

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

1. –озробити функц≥ю, що зб≥льшуЇ вс≥ в≥дТЇмн≥ елементи масив≥в A(12), B(10), C(8) на 10.

2. –озробити функц≥ю видаленн€ п≥др€дка в n символ≥в з к - ой позиц≥њ.

3. —класти функц≥ю обчисленн€ найб≥льшого загального д≥льника 2-х чисел.

4. ќбчислити площу багатокутника за допомогою складеноњ функц≥њ, що визначаЇ площу по координатах його вершин.

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

6. —класти функц≥ю визначенн€ середнього арифметичного ≥ середнього геометричного значень елемент≥в масиву.

7. –озробити функц≥ю пошуку максимального елемента масиву ≥ застосувати њњ дл€ двох масив≥в р≥зноњ довжини.

8. –озробити функц≥ю сортуванн€ одновим≥рних масив≥в за зростанн€м ≥ застосувати њњ дл€ сортуванн€ чотирьох масив≥в дов≥льноњ довжини.

9. Ќегативн≥ елементи матриць A(5,4), B(3,2), C(4,4) записати в одновим≥рний масив.

10. –озробити функц≥ю, що обчислюЇ суму д≥агональних елемент≥в квадратноњ матриц≥, ≥ з њњ допомогою знайти суми д≥агональних елемент≥в трьох матриць.

11. —класти функц≥ю визначенн€ суми ≥ к≥лькост≥ елемент≥в, розташованих м≥ж м≥н≥мальним ≥ максимальним елементами масиву. ¬икористовуючи цю функц≥ю, обробити три одновим≥рних масиви р≥зно≥ довжини.

12. «а допомогою розробленоњ функц≥њ п≥драхунку к≥лькост≥ ≥ суми парних елемент≥в одновим≥рного масиву обробити три одновим≥рних масиви р≥зноњ довжини.

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

14. –озробити функц≥ю знаходженн€ найдовшого слова в р€дку. ¬вести текст ≥ одержати фразу ≥з самих довгих сл≥в.

15. –озробити функц≥њ обчисленн€ площ трикутника за формулою √ерона ≥ за формулою з використанн€м основи ≥ висоти. –оботу функц≥й перев≥рити при визначенн≥ площ трьох дов≥льних трикутник≥в.

16. —класти функц≥ю п≥драхунку к≥лькост≥ сл≥в у реченн≥.

17. –озробити функц≥ю вид≥ленн€ в текст≥ сл≥в-пал≥ндром≥в (тобто сл≥в, що читаютьс€ однаково л≥воруч - праворуч ≥ праворуч - л≥воруч) ≥ з њњ допомогою обробити введений текст.

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

19. –озробити функц≥ю визначенн€ корен≥в квадратного р≥вн€нн€ ≥ функц≥ю перев≥рки цих корен≥в за теоремою ¬≥Їта. ¬икористовуючи ц≥ функц≥њ, знайти корен≥ двох квадратних р≥вн€нь.

20. ¬изначити ск≥льки раз≥в кожна л≥тера з алфав≥ту зустр≥чаЇтьс€ в текст≥ з застосуванн€м функц≥њ, що виконуЇ таку операц≥ю дл€ заданоњ л≥тери.

21. –озробити функц≥ю визначенн€ суми член≥в арифметичноњ прогрес≥њ ≥ реал≥зувати њњ дл€ двох арифметичних прогрес≥й з р≥зною к≥льк≥стю член≥в.

22. –озробити функц≥ю знаходженн€ максимального елемента масиву ≥ його номера ≥ реал≥зувати њњ дл€ обробки трьох масив≥в дов≥льноњ довжини.

23. —класти функц≥ю перестановки максимального ≥ м≥н≥мального елемент≥в масиву ≥ застосувати њњ дл€ обробки двох двовим≥рних масив≥в.

24. –озробити функц≥ю сортуванн€ масиву за зменшенн€м ≥ з њњ допомогою обробити три одновим≥рних масиви дов≥льноњ довжини.

25. —класти функц≥ю обчисленн€ середнього значенн€ елемент≥в масиву й знаходженн€ к≥лькост≥ чисел, що перевищують цю величину. «астосувати розроблену функц≥ю дл€ обробки двох одновим≥рних масив≥в.

 

–ќЅќ“ј « ‘ј…Ћјћ»

 

 

6.1 ÷≥ль роботи

Ќавчитис€ виконувати типов≥ операц≥њ з файлами: створенн€, перегл€д ≥ корегуванн€.

 

 

6.2 ћетодичн≥ вказ≥вки по орган≥зац≥њ самост≥йноњ роботи

 

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

як елементи файлу можна використовувати будь-€к≥ дан≥ мови — ++ (числа, символи, р€дки, масиви ≥ структури).

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

” процес≥ введенн€-виведенн€ з використанн€м стандартних пристроњв (клав≥атури й екрана) у програму варто включити заголовний файл iostream.h, у €кому м≥ститьс€ опис в≥дпов≥дного класу iostream, тобто на початку тексту програми пом≥щають директиву:

 

#include <iostream>

‘айлове введенн€-виведенн€ ≥ необх≥дн≥ функц≥њ-члени введенн€-виведенн€ описан≥ в заголовному файл≥ fstream, що м≥стить опис основних клас≥в ≥ метод≥в.

≤снують також додатков≥ файли б≥бл≥отеки введенн€-виведенн€, що м≥ст€ть б≥льш спец≥ал≥зован≥ функц≥њ Ц члени введенн€-виведенн€.

ƒл€ в≥дкритт€ файлу на диску використовуЇтьс€ функц≥€-член класу fstream, що маЇ наступний прототип (заголовок):

void open (const char *filename, int mode, int m = f≥lebuf:: openprompt);

де filename ¾ ≥м'€ файлу, що в≥дкриваЇтьс€, у €кому при необх≥дност≥ можна вказати шл€х;

mode ¾ параметр, що задаЇ режим введенн€, у файл≥ fstream визначен≥ значенн€ цього режиму ≥ њх зм≥ст;

m ¾ параметр, що задаЇ захист файлу, що за замовчуванн€м приймаЇ значенн€, заданий константою filebuf:: openprompt;

ѕараметр mode може приймати одне ≥з значень, призначуване в залежност≥ в≥д мети в≥дкритт€ файлу, або комб≥нац≥ю цих значень, отриману з використанн€м операц≥њ " або ", тобто "|". ќперац≥њ мають вигл€д:

ios:: app ¾ файл (пот≥к) в≥дкриваЇтьс€ дл€ додаванн€ в к≥нець(" а ");

ios:: in ¾ файл в≥дкриваЇтьс€ дл€ читанн€ (" r ");

ios:: out ¾ файл в≥дкриваЇтьс€ дл€ запису (" w ");

ios:: ate ¾ в≥дкрити файл ≥ установити покажчик потоку на к≥нець файлу;

ios:: binary ¾ в≥дкрити файл у дв≥йковому режим≥;

ios:: trunc ¾ в≥дкрити файл ≥ видалити зм≥ст файлу;

ios:: nocreate ¾ в≥дкрити ≥снуючий файл, €кщо в≥н не ≥снуЇ ¾

операц≥ю завершити пов≥домленн€м;

ios:: noreplace ¾ €кщо файл ≥снуЇ ¾ видати пов≥домленн€ про помилку, за вин€тком випадк≥в пошуку к≥нц€ або файлу додаванн€ у файл.

 

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

 

#include < fstream >

Using namespace std;

Int main ()

{

fstream fp; // опис файловоњ зм≥нноњ;

 

// в≥дкриваЇтьс€ файл myfile.dat дл€ запису, тобто створюЇтьс€ новий файл;

fp. open (" a: \ cpp \ myfile.dat ", ios:: out)

 

// в≥дкриваЇтьс€ ран≥ше створений файл file2.dat дл€ читанн€ даних;

fp.open (" c: \ vp \ file2.dat ", ios:: in);

 

// в≥дкриваЇтьс€ файл дл€ читанн€ або запису з використанн€м

// дв≥йкового режиму;

fp.open (" myfile ", ios:: out | ios:: in | ios:: binary);

return 0;

}

 

‘айлова зм≥нна fp повинна бути попередньо описана €к об'Їкт класу fstream або ofstream. якщо п≥д час в≥дкритт€ файлу в≥дбуваЇтьс€ помилка, то завжди fp = 0, тобто файлова зм≥нна дор≥внюЇ нулю. ÷е використовуЇтьс€ дл€ визначенн€ результату в≥дкритт€ файлу в такий спос≥б:

 

#include < fstream >

Using namespace std;

Main ()

{

 

Ofstream fp;

fp.open (" Filename ", ios:: app); // ƒодати у файл

if (!fp)

{

cout << "ѕомилка в≥дкритт€ файлу " << endl;

Exit (0);

} // ¬их≥д ≥з програми

Else

{

// “екст програми роботи з файлом

}

}

 

ƒл€ орган≥зац≥њ циклу з метою перегл€ду усього файлу, можна використовувати оператор циклу у вигл€д≥:

 

while (! fp.eof ())

{ЕЕЕЕЕ

ЕЕЕЕ...}

 

ѕриклад 6.1 «аписати у файл п'€ть пр≥звищ.

//P5_1.CPP ¾ запис у файл п'€ти пр≥звищ

#include < fstream >

Using namespace std;

Int main ()

{

Ofstream fp;

fp.open (" a: \ Myfile ", ios:: out); // —творенн€ нового файлу

fp << " јвдЇЇв ј.». " << endl;

fp << " Ѕобр≥в ј.ѕ. " << endl;

fp << "  узьм≥н ».¬. " << endl;

fp << " ѕопов –.Ћ. " << endl;

fp << " яковлев ё.“. " << endl;

fp. close (); // «акритт€ файлу

}

¬≥дкривати файли можна й ≥накше, наприклад, використовуючи класи ifstream ¾ дл€ читанн€ з файлу (тобто введенн€) ≥ ofstream ¾ дл€ запису у файл:

ifstream in (" Namefile "); // в≥дкритт€ файлу дл€ читанн€ з файлу

ofstream out (" Namefile2 "); // в≥дкритт€ файлу дл€ запису у файл,

 

де inout ¾ файлов≥ зм≥нн≥ в≥дпов≥дного класу.

 

ѕриклад 6.2  оп≥юванн€ одного текстового файлу в ≥нший файл.

 

// P5_2.CPP ¾коп≥юванн€ текстового файлу file1 у файл file2

#include <fstream>

#include < iostream >

Using namespace std;

Void main ()

{

ifstream in (Фfile1");

ofstream out ("file2");

char st [80];

while (! in.eof ())

{

in.getline (st, 80) // in ¾ об'Їкт ifstream

out << st << endl; // запис st у файл file2

cout << st << endl; // виведенн€ st на екран

}

In.close();

Out.close();

}

 онструктори ifstreamofstream можуть бути записан≥ у вигл€д≥: ifstream in (const char *name, int mode = ios:: in,

int prot = filebuf:: penprot);

тобто ц≥ конструктори можуть включати т≥ ж аргументи, що ≥ open.

ѕриклад 6.3 «аписати у файл задану матрицю matr (2, 4) построково.

 

//P5_3.CPP ¾ запис у файл матриц≥ построково

#include <iostream>

#include < fstream >

Using namespace std;

Void main ()

{

int mas [4], matr [2][4];

Int i, j;

ofstream out (" filemat ");

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

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

{

cin >> mas [j];

out << mas[j]<<Ф У;

}

Out. close();

ifstream in ("filemat Ф);

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

{

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

in>> matr [ i ] [ j ]; // «апис масиву в р€док матриц≥

}

In. close ();

for (i = 0; i < 2; i++) // ¬иведенн€ матриц≥ на екран

{

cout << endl;

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

cout << matr [i] [j];

}

}

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

1. „им файл в≥др≥зн€Їтьс€ в≥д масиву?

2. «а допомогою €коњ функц≥њ можна розп≥знавати к≥нець файлу?

3. як описуЇтьс€ файлова зм≥нна?

4. який пор€док створенн€ файлу?

5. як≥ засоби в≥дкритт€ файл≥в?

6. як≥ параметри можуть використовуватис€ €к компоненти файлу?

 

6.4 ≤ндив≥дуальн≥ завданн€

 

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

2. —творити файл, що м≥стить список студент≥в з њх середн≥м балом на сес≥њ. «абезпечити читанн€ файлу ≥ видачу пр≥звищ встигаючих студент≥в.

3. —творити файл, що м≥стить коротку б≥бл≥ограф≥чну ≥нформац≥ю о прочитаних вами книгах. «абезпечити виведенн€ ≥нформац≥њ про вс≥ книги, видан≥ у заданому д≥апазон≥ рок≥в.

4. —творити файл, що м≥стить наступну ≥нформац≥ю: пр≥звище, р≥к народженн€, стать. «абезпечити виведенн€ пр≥звищ за заданим роком народженн€.

5. —творити файл, що м≥стить номери пот€г≥в ≥ њхн≥ маршрути. «абезпечити видачу ≥нформац≥њ про маршрут за введеним номером пот€га.

6. —творити файл, що складаЇтьс€ з масиву чисел X(20). «абезпечити читанн€ цього файлу ≥ заповненн€ матриц≥ Y(4,5).

7. —творити файл, що м≥стить наступну ≥нформац≥ю: пр≥звище, номер домашнього телефону. «абезпечити видачу номера телефону за введенн€м пр≥звища.

8. —творити файл, що м≥стить коротку б≥бл≥ограф≥чну ≥нформац≥ю про прочитан≥ вами книги. «абезпечити виведенн€ ≥нформац≥њ про книгу за заданим пр≥звищем автора.

9. —творити файл, що м≥стить англ≥йськ≥ слова ≥ њх переклад. «абезпечити переклад введеного англ≥йського слова, що входить у словник.

 

10. —творити файл, що м≥стить список власник≥в автомоб≥л≥в ≥з указ≥вкою кольору, номеру й адреси власника. ¬ивести за запитом про кол≥р пр≥звища власник≥в автомоб≥л≥в ≥ дан≥ про машини.

11. —творити файл, що м≥стить список студент≥в з њх оц≥нками за результатами сес≥њ. «абезпечити читанн€ файлу ≥ видачу пр≥звищ студент≥в, що мають середн≥й бал не нижче заданого.

12. —творити файл, що м≥стить слова. «абезпечити виведенн€ сл≥в, що починаютьс€ з великоњ л≥тери.

13.—творити файл, що м≥стить список товар≥в з наступними характеристиками: назва, ц≥на, срок придатност≥. «абезпечити виведенн€ ≥нформац≥њ про товари, найб≥льша ц≥на €ких не перевищуЇ заданоњ за запитом.

14. ≈лементами файлу Ї в≥домост≥ про усп≥шн≥сть. —к≥льки в груп≥ в≥дм≥нник≥в ≥ дв≥Їчник≥в?

15. —творити файл, що м≥стить розклад роботи л≥кар€. ¬ивести дн≥ тижн€, у €к≥ л≥кар працюЇ до об≥ду.

16. —творити файл, що м≥стить коротку ≥нформац≥ю про пац≥Їнт≥в кл≥н≥ки. ¬ивести ≥нформац≥ю про пац≥Їнт≥в за зменщенн€м року народженн€.

17. —творити файл, що м≥стить список мешканц≥в будинку з указ≥вкою пр≥звища, м≥сц€ роботи ≥ року народженн€. ¬ивести за запитом про пр≥звище мешканц€.

18. —творити файл, що м≥стить розклад зан€ть студент≥в групи. «абезпечити виеденн€ розкладу по введеному дню тижн€.

19. ” текст≥ програми мовою C ++ п≥драхувати к≥льк≥сть оператор≥в " cin " ≥ " if ".

20. —творити файл на диску, що м≥стить де€кий текст. ¬ивести слова тексту в зворотньому пор€дку.

21. —творити файл на диску, що м≥стить де€кий текст. ¬ивести слова тексту, що починаютьс€ з л≥тери " а ".

22. ” текст≥ програми мовою — ++ (≥м'€ файлу на диску ввести за запитом) п≥драхувати к≥льк≥сть оператор≥в, пам'€таючи, що кожен оператор зак≥нчуЇтьс€ ";".

23. —творити файл, що м≥стить список пр≥звищ. «абезпечити виведенн€ пр≥звищ, що починаютьс€ з л≥тери, що вводитьс€ за запитом.

24. ” файл ≥з пр≥звищами студент≥в вставити нове пр≥звище п≥сл€ заданого пр≥звища.

25. ” файл≥ вказан≥ пр≥звища переставити м≥сц€ми ≥ вивести результат на екран.


 

ѕ≈–≈Ћ≤  ѕќ—≤ЋјЌ№

 

1. ѕавловска€ “.ј. —/—++. ѕрограммирование на €зыке высокого уровн€ Ч —ѕЅ ѕитер.: 2004., Ч 461 с.

2. ‘ранка ѕ. C++: учебный курс. - —ѕб.: ѕитер, 2003. Ч 521 с.

3. —абуров —.¬. языки программировани€ C и C++. ћ.: Ѕукпресс, 2006. 647 с.

4. —трауструп Ѕ. язык программировани€ —++. „асть 1. Ч  иев: "ƒиа—офт", 1993. Ч 264 с.

5. —трауструп Ѕ. язык программировани€ —++. „асть 2. Ч  иев: "ƒиа—офт", 1993. Ч 296 с.

6. ѕодбельский ¬. ¬. язык —и++: учебное пособие. Ц 5 - е изд. - ћ.: ‘инансы и статистика, 2000. - 560 с.

7. √лушаков —.¬. и др. язык программировани€ —++. Ч’арьков: ‘олио, 2002. Ч 500 с.

8. ’.ћ.ƒейтел, ѕ.ƒж. ƒейтел  ак программировать на —++.- ћ.:«јќ Ђ»здательство Ѕ»Ќќћї, 2000 г. Ч 1024 с.

 

 

 


Ќавчальне виданн€

 

ћетодичн≥ вказ≥вки до виконанн€ лабораторних та практичних роб≥т з курс≥в У≤нформатикаФ дл€ студент≥в напр€му п≥дготовки 6.170103 - Ђ”правл≥нн€ ≥нформац≥йною безпекоюї.

 

”кладач≥: —≥нельн≥кова “.‘

 

 

¬≥дпов≥дальний за випуск ≈. ѕ. ѕут€т≤н

–едактор

 

ѕлан, поз.16

ѕ≥дп. до друку ‘ормат 60х84 1/16

”мов. друк. арк. 4,8. ќбл≥к вид. арк. 4,2. ¬ид.є32.

“ираж 120 прим.

«ам.є___.÷≥на догов≥рна.


’H”–Ё. 61726 ’арк≥в, просп. Ћен≥на, 14.


Ќадруковано в учбово-виробничому видавничо-пол≥граф≥чному центр≥ ’H”–≈

61726 ’арк≥в, просп. Ћен≥на, 14.

 





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


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


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

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

—туденческа€ общага - это место, где мен€ научили готовить 20 блюд из макарон и 40 из доширака. ј майонез - это вообще десерт. © Ќеизвестно
==> читать все изречени€...

2167 - | 2087 -


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

√ен: 0.1 с.