Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_TO2.doc
Скачиваний:
15
Добавлен:
19.02.2016
Размер:
2.62 Mб
Скачать

3 Методичні вказівки

        1. Перед написанням програми ще раз переглянути теоретичний матеріал і приклади програм, що ілюструють особливості застосування функцій у С-програмах. Окрему увагу звернути на способи передавання даних у функції.

        2. Уважно прочитати умову задачі індивідуального завдання, продумати алгоритм її розв'язку. .

        3. Обов'язковою для оформлення програми є функція, вказана в індивідуальному завданні. В програмі можна використати й інші функції, якщо це сприятиме кращій структуризації програми.

        4. Написати головну частину програми (головну функцію main() ), використовуючи в ній звертання до функцій відповідно до запропонованої структури програми. Визначити: які дані, в якому порядку і яким способом передаються у кожну функцію і як функція повертає у головну програму результати виконання.

        5. Написати відповідну функцію (чи декілька функцій), звертаючи увагу на типи опису параметрів.

4 Приклад виконання лабораторної роботи

Написати функцію, яка обчислює проценти від числа. Параметрами функції є число і процент. Використовуючи написану функцію, обчислити і вивести на екран 19% від числа 899 і 45% від 789.

Текст програми:

# include <stdio.h>

float prozent(float ch, float proz); /* опис функції */

float l1, l2;

void main()

{

float x1=899, x2=789, p1=19, p2=45;

/* Виклик функції */

l1= prozent(x1,p1);

l2= prozent(x2,p2);

/* Вивід результату */

printf(“x1=%f\tp1=%f\tl1=%f\nx2=%f\tp2=%f\tl2=%f\n”);

}

float prozent(float ch, float proz) /* заголовок функції */

{

float r1;

r1=(ch*proz)/100;

return r1;

}

5 Контрольні запитання

  1. Що називається функцією і чим вона характеризується?

  2. Чи потрібно описувати функцію?

  3. Що таке формальні і фактичні параметри?

  4. Скільки операторів return може бути в функції?

  5. Які складові частини функції?

  6. Синтаксис виклику функції?

  7. Синтаксис опису функції?

Практична робота № 6

Тема. Складання програм для опрацювання символьної інформації

Мета: Одержання навичок обробки символьної інформації і використання бібліотечних функцій для роботи з символьними рядками..

1 Короткі теоретичні відомості

Робота з символьними змінними. Змінні типу char повинні бути описані до їх використання. При описі їх можна задавати.

char a, b, c; char d=’x’; при описі d=’x’; оператор присвоєння

Можна створювати іменовані символічні константи

const char a=’z’; Використовуються одинарні лапки

Приклад програми для виводу змінної c1 в виді числа і в виді символа

printf(«%с», с1); як символ printf(«%d», с1); як число.

Масиви символів (рядки). Опис. Рядки, які є послідовністю символів, задаються масивами символів. Синтаксис опису: char string[10];

В цьому масиві можна зберігати дев’ять символів можна зберігати і менше символів. Чому в асиві, чкий містить 10 елементів, можна зберігати 9 символів.? В мові С рядки визначаються як послідовність символів, що закінчується нульовим символом. Нульовий символ - це спеціальний символ, який позначається \0. Хоч він записується в виді двох знаків (оберненої риски і 0) компілятор сприймає його як один символ, що відповідає коду ASCII ‘0’. Це є спеціальний символ мови С. В чому ж різниця між рядками і масивами символів? По означенню рядок –це послідовність символів з завершуючим символом \0 Масив по означенню являє собою послідовність символів. Тому рядок –це масив символів з завершуючим нулем.

Наприклад в рядку

fghhjkg є 7 символів і ще нульовий символ \0 -всього вісім.

Задання символьних масивів. Масиви можуть задаватися при описі.

Char r[10]={‘a’,’b’,’c’,’d’, ‘\0’}; але вигідніше використовувати рядкові літерали, тобто послідовності символів в подвійних лапках.

Char r[10]=’’abcd’’;

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

Char r[]=’’abcd’’; В цьому рядку є масив з 5-ти елементів.

Для роботи з рядками існує бібліотека string.h. Приклади функцій для роботи з.

Функція

Прототип і короткий опис функції

strcmp

int strcmp(const char *str1, const char *str2);

Порівнює рядки str1 й str2. Якщо str1< str2, то результат від’ємний, якщо str1 = str2, то результат дорівнює 0, якщо str1> str2, то результат додатний.

strcpy

char* strcpy(char*s1, const char *s2);

Копіює рядок s2 у рядок s1

strncpy

char *strncpy(char *s1, const char *s2, int kol);

Копіює kol символів рядка s2 у рядок s1.

strlen

unsigned strlen (const char *str);

Обчислює довжину рядка str.

strcat

char *strcat(char *s1, const char *s2);

Приписує символ рядка s2 до рядка s1.

strncat

char *strncat(char *s1, const char *s2, int kol);

Приписує kol символів рядка s2 до рядка s1.

Рядки, при передачі у функцію, в ролі фактичних параметрів можуть бути визначені або як одновимірні масиви типу char[], або як вказівники типу char *. На відміну від звичайних масивів у цьому випадку немає необхідності явно вказувати довжину рядка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]