Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_7(С#).doc
Скачиваний:
8
Добавлен:
09.02.2016
Размер:
199.68 Кб
Скачать

ЗАТВЕРДЖУЮ

Начальник кафедри соціально-гуманітарних

та загальновійськових дисциплін

к. 2 р. І.С. Попроцький

"___"_______________20 р.

Лабораторна робота №7 (с#)

з навчальної дисципліни

«Інформаційні технології»

Змістовий модуль 4. Алгоритмізація інженерних задач. Мова програмування С.

Тема: Програмування алгоритмів обробки файлових даних.

Навчальний клас:

Час:

Місце:

Навчальна та виховна мета: «Формування у курсантів навичок програмування на мові С алгоритмів із використанням символьних масивів та функцій роботи із файлами».

Навчальні питання і розподіл часу:

1. Символи та строки. Функції роботи із строками ……….………20 хв.

2. Функції роботи із файлами………………………………………....20 хв.

3. Практичне завдання….………………….…………………………..40 хв.

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

Навчальна література:

  1. Подбельский В.В., Фомин С.С. Курс программирования на языке Си. ― М.: ДМК Пресс, 2012. ― 384 с.

1. Символи та строки. Функції роботи із строками.

Символьная константа (символ) – это целочисленное значение (типа int), представленное в виде символа. То есть каждому символу поставлено в соответствие его числовой код (ASCII), таблица которых хранится в компьютере. Поэтому, работая с символами, по сути, обрабатываются их ASCII коды.

Описание и инициализация символов.

При описании символьных переменных и констант используется спецификатор типа char.

Инициализация одного символа осуществляется путем его взятия в одинарные кавычки.

Например,

char x=’a’;

Эта запись означает, что переменной х типа char присвоено значение ‘а’. Для получения ASCII кода этого символа необходимо осуществить следующую операцию:

Int ascii;

ascii=(unsigned int) x;

Описание и инициализация символьных строк.

Символьная строка представляет собой массив элементов типа char, который заканчивается нулевым символом (NULL, ‘\0’). При объявлении размера массива символов необходимо учитывать наличие в конце строки нулевого символа и выделять под него место.

Инициализация символьного массива аналогична целочисленному:

char stroka[7]= {‘s’,’t’, ‘r’, ‘o’, ‘k’, ‘a’, ‘\0’};

Если все значения массива инициализированы, то его размер можно не указывать:

char stroka[ ]= {‘s’,’t’, ‘r’, ‘o’, ‘k’, ‘a’, ‘\0’};

Существует также второй способ инициализации строки:

char stroka[ ]= “stroka;

При этом нулевой символ можно не прописывать, компилятор его добавит автоматически, однако, в размере массива его наличие по-прежнему нужно учитывать.

Для размещения строки в динамической памяти необходимо описать указатель на char, а затем выделить память с помощью функции new.

Например,

char *s1=new char[m];

где m – количество символов в массиве.

Основные функции для работы со строками и их назначение представлены в таблице 1.

Таблица 1 — Функции для работы со строками и символами

Функция

Пояснение

strlen(имя_строки)

определяет длину указанной строки, без учёта нуль-символа

Копирование строк

strcpy(s1,s2)

выполняет побайтное копирование символов из строки  s2 в строку s1

strncpy(s1,s2, n)

выполняет побайтное копирование n символов из строки  s2 в строку s1. возвращает значения s1

Конкатенация строк

strcat(s1,s2)

объединяет строку s2 со строкой s1. Результат сохраняется в s1

strncat(s1,s2,n)

объединяет n символов строки s2 со строкой s1. Результат сохраняется в s1

Сравнение строк

strcmp(s1,s2)

сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2,  <0  — если s1>s2 С учётом регистра

strncmp(s1,s2)

сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2,  <0  — если s1>s2 С учётом регистра

stricmp(s1,s2)

сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2,  <0  — если s1>s2 Без учёта регистра

strnicmp(s1,s2)

сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2,  <0 — если s1>s2 Без учёта регистра

Обработка символов

isalnum(c)

возвращает значение true, если с является буквой или цифрой, и false в других случаях

isalpha(c)

возвращает значение true, если с является буквой,  и false в других случаях

isdigit(c)

возвращает значение true, если с является цифрой, и false в других случаях

islower(c)

возвращает значение true, если с является буквой нижнего регистра, и false в других случаях

isupper(c)

возвращает значение true, если с является буквой верхнего регистра, и false в других случаях

isspace(c)

возвращает значение true, если с является пробелом, и false в других случаях

toupper(c)

если символ с, является символом нижнего регистра, то функция возвращает преобразованный символ с в верхнем регистре, иначе символ возвращается без изменений.

Функции поиска

strchr(s,c)

поиск первого вхождения символа с в строке sВ случае удачного поиска возвращает указатель на место первого вхождения символа сЕсли символ не найден, то возвращается ноль.

strcspn(s1,s2)

определяет длину начального сегмента строки s1, содержащего те символы, которые не входят в строку s2

strspn(s1,s2)

возвращает длину начального сегмента строки s1, содержащего только те символы, которые входят в строку s2

strprbk(s1,s2)

Возвращает указатель  первого вхождения любого символа строки s2 в строке s1

Функции преобразования

atof(s1)

преобразует строку s1 в тип double

atoi(s1)

преобразует строку s1 в тип int

atol(s1)

преобразует строку s1 в тип long int

Функции стандартной библиотеки ввода/вывода <stdio>

getchar(с),

getc(c)

считывает символ с со стандартного потока ввода, возвращает символ в формате int

gets(s)

считывает поток символов со стандартного устройства ввода в строку s до тех пор, пока не будет нажата клавиша ENTER

puts(s)

выводит на экран поток символов

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