МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

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





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

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

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

 

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

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

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

Час:

Місце:

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

 

 

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

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

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

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

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

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

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

 

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

Символьная константа (символ) – это целочисленное значение (типа 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) выводит на экран поток символов

 



 

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

На практике при обработке данных с помощью программ возникает необходимость извлечения информации из файла и записи обработанной информации в файл.

Возможностями языка С предусмотрены функции для работы с файлами.

Прежде чем начать работу с потоками данных из файла, его необходимо открыть с помощью функции fopen().Эта функция имеет следующий прототип:

Функция fopen()открывает файл с именем filenameв режиме, указанном вместо mode.Он может принимать значения, указанные в таблице 2.

Чтобы указать, что файл текстовый, к режиму добавляется t. Например, режим чтения текстового файла – “rt”.

В случае успеха функция возвращает указатель на открытый поток, в случае ошибки - NULL.

Основные функции работы с файловыми потоками

fgetc(FILE *fptr) Чтение символа из файла с указателем *fptr
fputc(int c, FILE *fptr) Запись символа с в файл с указателем *fptr
fgets(char *s, int n, FILE *fptr) Чтение строки длиной n в строку с указателем s из файла с указателем *fptr
fputs(char *s, FILE *fptr) Запись строки с указателем s в файл с указателем *fptr
fscanf(FILE *fptr, “%d(или f,или c)”, &x) Считывает из файла с указателем *fptr символ х типа %d (%f, %c)
fprintf(FILE *fptr, “%d(или f,или c)”, x) Записывает в файл с указателем *fptr символ х типа %d (%f, %c)

После окончания работы с файлом, его необходимо закрыть функцией flose(указатель на поток).

Практичне завдання

Написать программу на языке С/С++, используя функции чтения из файла и записи в файл.

Вариант 1.

Написать программу, которая дописывает в файл numbers.txt три целых числа, введенных пользователем. Убедитесь, открыв файл при помощи редактора текста, что в файле находятся введенные числа.

Вариант 2.

Написать программу, которая создает на диске компьютера файл numbers.txt и записывает в него 5 целых чисел, введенных пользователем с клавиатуры. Откройте созданный программой файл и убедитесь, что каждое число находится в отдельной строке.

 

Вариант 3.

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

 

Вариант 4.

Даны два текстовых файла. Создать третий файл из символов, которые записаны в позициях с одинаковыми номерами, и равны между собой.

 

Вариант 5.

Написать программу, которая вычисляет среднее арифметическое чисел, находящихся в файле numbers.txt. И дописать его в файл.

 

Вариант 6.

Написать программу, которая позволяет просматривать текстовые файлы (выводит на экран их содержимое), например, файлы исходных программ C++. Имя просматриваемого файла должно вводиться пользователем во время работы программы.

Вариант 7.

Написать программу, которая дописывает в находящийся на диске компьютера файл contacts.txt имя, фамилию и номер телефона, например, вашего товарища. Если файла на диске нет, то программа должна создать его. В файле каждый элемент данных (имя, фамилия, телефон) должен находиться в отдельной строке.

 

Вариант 8.

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

 

Вариант 9.

Написать программу, которая считывает из файла текст и определяет количество предложений в нем. Дописать эту информацию в файл.

 

Вариант 10.

Написать программу, которая считывает информацию из файла и определяет количество букв «а» в тексте. Дописать эту информацию в файл.

 

Вариант 11.

Написать программу, открывающую файл, название которого введено пользователем с клавиатуры, и дописывающую в него вашу фамилию, имя и отчество.

 

Вариант 12.

Написать программу, записывающую в файл матрицу 3х3, введенную с клавиатуры.

 

Вариант 13.

Написать программу, которая записывает в файл текст, введенный с клавиатуры в обратном порядке следования букв, т.е. первая буква текста должна находиться на последнем месте, а последняя – на первом.

 

Вариант 14.

Написать программу, которая считывает из файла последовательность чисел, находит их сумму и записывает информацию в файл.

 

Вариант 15.

Написать программу, которая считывает из файла последовательность чисел, находит их произведение и записывает информацию в файл.

 

Вариант 16.

Написать программу, считывающую информацию из файла и шифрующую ее. Закон шифрования: увеличить ASCII код каждого символа текста на 3. Записать шифр-текст в новый файл. Для дешифрования составить обратную программу.

 

Вариант 17.

Написать программу, считывающую текст из файла. Поменять местами первую и последнюю букву текста. Записать полученную последовательность символов в новый файл.

 

Вариант 18.

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

 

Вариант 19.

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

 

Вариант 20.

Написать программу, которая считывает информацию из файла и выводит на экран только числа, содержащиеся в тексте. Подсчитать их количество.

 

Вариант 21.

Написать программу, которая считывает информацию из файла и выводит на экран только первое предложение.

 

Вариант 22.

Написать программу, которая просчитывает значения функций sin(х) и cos(х) в диапазоне х=0..2π и записывает полученные результаты в файл.

 

Вариант 23.

Написать программу, которая считывает информацию из файла и выводит на экран количество слов в тексте.

Вариант 24.

Написать программу, которая считывает информацию из файла и выводит на экран ASCII код первой буквы текста и его двоичное представление.

 

Вариант 25.

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

 

 

Приложение 1





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.