Мова програмування С++

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?кщо ch є буквою, інакше falseint isspace(int ch)Перевіряє чи є символ ch пропуском (пробіл, табуляція, символ нового рядка, нової сторінки). isspace(ch);Повертається true, якщо ch є узагальненим пробілом, інакше falseint isdigit(int ch)Перевіряє чи є символ цифрою (0-9).

isdigit(ch);Повертається true, якщо ch є цифрою, інакше falseint islower(int ch)Перевіряє чи є символ буквою нижнього регістру (a-z).

islower(ch);Повертається true, якщо ch є буквою нижнього регістру, інакше falseint isupper(int ch)Перевіряє чи є символ буквою верхнього регістру (A-Z).

isupper(ch);Повертається true, якщо ch є буквою верхнього регістру, інакше falseint ispunct(int ch)Перевіряє чи є символ символом пунктуації (. , : ; ? ! тощо).

ispunct(ch);Повертається true, якщо ch є символом пунктуації, інакше falseint tolower (int ch)Повертає символ у нижньому регістрі.

tolower (int ch);Одержує символ ch і повертає його у нижньому регістріint toupper(int ch)Повертає символ у верхньому регістрі.

toupper(int ch);Одержує символ ch і повертає його у верхньому регістрі

Приклад 1:

Дано рядок символів, що складається зі слів, слова відокремлені пропусками. Видалити з рядка всі слова, що починаються з цифри.

#include

#include

#include

void main()

{const int n=250;// розмірність рядкового масиву

char s[n], // вихідний рядок

w[25], // проміжний масив для збереження слова з рядка

*mas[10];// масив вказівників для збереження слів з рядка

cout<<“\nBведiть рядок:\n”;

cin.getline(s, n);

int k=0, t=0, i, len, j;

len=strlen(s);

while(t<len)

{ for(j=0,i=t; isspace(s[i])==0; i++,j++)

w[j]=s[i]; // виокремлюємо слово до пробілу

w[j]=\0;// формуємо кінець слова

strcpy(mas[k],w);// копіюємо слово у масив

k++;// збільшуємо лічильник слів у рядку

t=i+1;// перехід через пробіл до наступного слова у

// вихідному рядку s

}

strcpy(s,” ”);// очищуємо вихідний рядок

for(t=0; t<k; t++)// заповнюємо рядок

if(isalpha(mas[t][0])!=0){// якщо перший символ не цифра

{strcat(s,mas[t]);// дописуємо слово в оновлений рядок

strcat(s,” “);// додаємо пробіл після слова

}

cout<<”\nНовий рядок:\n”<< s;// виводимо результат

}

Приклад 2:

Програма яка підраховує скільки разів задане слово зустрічається у тексті файлу. Наприклад, у англійській поговірці “Dont trouble trouble until trouble troubles you” слово “trouble” у чистому вигляді зустрічається 3 рази.

#include

#include

# include

void main()

{const int len=81;

char word[len], line [len];// масиви для слова і рядка

cout word;

int_lword=strlen(word);// визначення довжини слова

ifstream fin (“text.txt”, ios:: in | ios:: nocreate);

if(!fin) {cout<< “Помилка відкриття файлу.”<<endl;return 1;}

int count=0;

// поки не досягнуто нуль-символу

while(fin.getline(line, len))

{char *p=line;// вказівникові присвоєно адресу рядка

while(p=strstr(p,word))/* якщо слово знайдено

вказівник стає на позицію

початку слова у рядку*/

{ // адреса початку входження слова передається с

char * c=p;

p+=l_word;// перехід вказівника р через слово

// слово не на початку рядка

if(c!=line)

/* Чи є символ перед словом розділювачем? Інакше

перейти до наступної ітерації */

if(!ispunct(*(c-2))&& isspace(*(c-1))) continue;

// Чи є символ після слова розділювачем?

if (ispunct(*p)|| isspace(*p)|| (*p==\0)) count ++;

}

}

cout << “Слово зустрічається в тексті ”<< count;

<<” разів”<<endl;

}

 

9. Функції користувача

 

9.1 ФУНКЦІЇ: ВИЗНАЧЕННЯ, ОПИС, ВИКЛИК

 

Функцію в С++ можна розглядати:

  • як один з похідних типів даних (поряд з масивами і вказівниками);
  • як мінімальний виконуваний модуль програми (підпрограму).

Всі функції мають однаковий формат визначення:

)

,

де - тип результату, який повертається функцією; в разі, якщо функція не повертає ніякого значення, її специфікують типом void і називають “порожньою”. Найчастіше, це функції, які виводять на екран повідомлення чи виконують деякі зміни параметрів, проте не можуть передати певний результат іншим змінним при виклику.

- або main для головної функції, або довільний ідентифікатор;

- або порожній ( ), або список, кожен елемент якого записується як:

Наприклад:

(int k )

(char i, char j, int z)

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

Для передачі результату з функції у функцію, що її викликала, використовується оператор return. Його можна використовувати у двох формах:

  1. return 0; - завершує функцію, яка не повертає ніякого значення (тобто перед її іменем вказано тип void);
  2. return ; - повертає значення виразу, тип виразу повинен співпадати з типом функції.

Приклад 1:

int op (char c, int x, int y)

{switch (c)

{case + : return x+y;

case - : return x-y;

case * : return x*y;

case / : return x/y;

default: cout<<“\nОперація не визначена!”;

return 0;

}

}

Приклад 2.

float cube(float d)

{return d*d*d;}

Після визначення функцію можна багаторазово використовувати у програмі для виконання однотипних дій над різними змінними.

Виклик функції має наступний вигляд:

);

<список фактичних параметрів - або сигнатура, є переліком виразів, кількість яких дорівнює кількості формальних параметрів функції. Між формальними і фактичними параметрами повинна бути відповідність за типами. ?/p>