ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной 
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Описание и инициализация символьных строк. Лабораторна робота №7 (С#) З навчальної дисципліни «Інформаційні технології» Змістовий модуль 4. Алгоритмізація інженерних задач. Мова програмування С. Тема: Програмування алгоритмів обробки файлових даних. Навчальний клас: Час: Місце: Навчальна та виховна мета: «Формування у курсантів навичок програмування на мові С алгоритмів із використанням символьних масивів та функцій роботи із файлами». Навчальні питання і розподіл часу: 1. Символи та строки. Функції роботи із строками ……….………20 хв. 2. Функції роботи із файлами………………………………………....20 хв. 3. Практичне завдання….………………….…………………………..40 хв. Навчально-матеріальне забезпечення: проектор, слайди. Навчальна література: - Подбельский В.В., Фомин С.С. Курс программирования на языке Си. ― М.: ДМК Пресс, 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 |