Считывание текстового файла

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

В коде, описываемом в данном параграфе, для открытия, чтения и закрытия текстового файла используется класс StreamReader. Путь к текстовому файлу можно передать конструктору StreamReader, чтобы автоматически открывать этот файл. Используется также метод ReadLine, который считывает каждую строку текста и увеличивает указатель файла на следующую строку при чтении. Когда метод ReadLine достигает конца файла, возвращается пустая ссылка.

Рассмотрим считывание информации из текстового файла на примере.

Сначала нужно создать текстовый файл, например, в Блокноте. Затем вставим в Блокнот любой текст и сохраним файл (например, с именем ttt.txt).

Создадим новый проект и добавим в шаблон программы код:

using System.IO;

Должно получиться следующее:

Добавим на интерфейс программы необходимые элементы text.Box и Button. Программа с комментариями представлена на рис. 1.

Рис. 1

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

  Запись в текстовый файл

Для записи информации в текстовый файл используется класс StreamWriter, позволяющий открыть текстовый файл, записать информацию и закрыть этот файл. Как и в классе StreamReader, путь к текстовому файлу можно передать конструктору StreamWriter, чтобы файл открыть автоматически. Метод WriteLine записывает в текстовый файл полные строки текста.

Рассмотрим запись информации в текстовый файл на примере.

Как и в предыдущем случае, сначала нужно создать текстовый файл, например, в Блокноте. Затем сохраним файл (например, с именем ttt.txt).

В начало программы добавим следующий код: using System.IO. На интерфейс программы добавим элементы управления text.Box и button.

 Программа с комментариями представлена на рис. 2.

Рис. 2

Программа откроет файл, запишет из text.Box1 информацию в 1 строку, в следующую строку запишет текст RC=50 и затем выведет сообщение о завершении программы.


 

 ЛАБ. РАБОТА № 2

 Цель. Освоитьвывод на форму и редактирование графической информации.

Задание: написать на С# программу, которая построит график функции на интервале от а до b с указанным шагом.

Варианты заданий:

Фамилия, имя Функция

Интервал изменения х

Шаг
1 Арисов Сергей y (x) = x 2+3 x –2 a = –2 b = 4 0.01
2 Гайнов Александр y (x) = exp (x) a = –5 b = 10 0.02
3 Борисова Александра y (x) =sin x + cos x a = –2p b = 5p 0.0 01p 
4 Букалов Андрей y(x) = exp (–|2 х |) a = –5 b = 3 0,02
5 Гаврилов Владислав y (x) =1/cos(x) a = –2p b = 5p 0.0 01p 
6 Грицанов Андрей y (x) = arcsin x a = –1 b = 1 0.05 p 
7 Добжанский Кирилл y (x) = arccos x a = –1 b = 1 0.05 p 
8 Жданов Владислав y (x) = 1/ х a = 0.1 b = 10 0.002
9 Журавлёв Владислав y (x) = | x | a = –5 b = 10 0.002
10 Киселёв Захар y (x) = (x –4)2+6 a = –4 b = 14 0.02
11 Козырев Никита y (x) = | cos x | a = 0 b = 8p 10-3p
12 Комиссаров Тимофей y (x) = | sin x | a = 0 b = 10p 2×10-3p
13 Котушев Эрик y (x) = | cos x | – | sin x | a = 0 b = 9p 5×10-2p
14 Макаров Артём y (x) = a = 1 b = 10 0.02
15 Мотовилкин Игорь y (x) = 2 x 2+5 x –1 a = –2 b = 4 0.02
16 Назаров Айдан y (x) = exp (x)-2 a = –5 b = 10 0.05
17 Никитин Александр y (x) =2sin x + 3cos x a = –2p b = 5p 0.01p 
18 Новиков Игорь y(x) = exp (–|1.5 х |) a = –3 b = 4 0,02
19 Орынбек Руслан y (x) =1/cos(x)-0.5 a = –3p b = 3p 0.01p 
20 Прокофьева Анастасия y (x) = 2arcsin x a = –2 b = 2 0.05 p 
21 Романов Евгений y (x) = 2arccos x a = –3 b = 3 0.1 p 
22 Стороженко Ксения y (x) = 1/ х- 1 a = 0.5   b = 10 0.05
23 Ткачева Мария y (x) = 2. | x |-3 a = –10 b = 10 0.05
24 Финогенов Никита y (x) = (x –3)2+4 a = –3 b = 10 0.02
25 Харченко Кирилл y (x) = | cos x |+0.5 a = 0 b = 6p 0,01p
26 Шпунтенков Егор y (x) = | sin x |-0.5 a = 0 b = 10p 0,02p
27 Яромский Никита y (x) = | sin x | – | cos x | a = 0 b = 10p 0,05p

 Математические функции:

Функция Прототип и краткое описание действий
Abs int abs(int i); Возвращает абсолютное значение целого аргумента I
Acos double асоs (double х); Функция арккосинуса. Значение аргумента должно находиться в диапазоне от -1до +1
Asin double asin(double х);Функция арксинуса. Значение аргумента должно находиться в диапазоне от -1 до +1
atan double atan(double x); Функция арктангенса
cabs double cabs(struct complex znum); Вычисляет абсолютное значение комплексного числа znum. Определение структуры (типа) complex - в файле math.h
cos double cos(double x); Функция косинуса. Угол (аргумент) задается в радианах
cosh double cosh(double x); Возвращает значение гиперболического косинуса х
exp double exp(double x); Вычисляет значение еx (экспоненциальная функция)
fmod double fmod(double x, double y); Возвращает остаток от деления нацело х на у
log double log(double x); Возвращает значение натурального логарифма (In x)
log10 double log10(double x); Возвращает значение десятичного логарифма (log10 х)
pow double pow(double x, double у); Возвращает значение xy, т.е. х в степени у
pow10 double pow10(int p); Возвращает значение 10p
sin double sin(double x); Функция синуса. Угол (аргумент) задается в радианах
sinh double sinh(double x); Возвращает значение гиперболического синуса для х
sqrt double sqrt(double x); Возвращает положительное значение квадратного корня
tan double tan(double x); Функция тангенса. Угол (аргумент) задается в радианах
tanh double tanh(double x); Возвращает значение гиперболического тангенса для х

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 ПОСТРОЕНИЕ ГРАФИКОВ ФУНКЦИЙ

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

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

При этом построение графика (диаграммы) производится по вычисленным значениям координат точек х и функции y = f(x), которые с помощью метода AddXY передаются в специальный двухмерный массив Series[k] компоненты Сhart (k = 0,1,2,... – номер используемого графика).

   Рис. 3

Установив компоненту Chart1 на форму, для изменения ее параметров двойным щелчком кнопкой мыши вызываем окно редактирования EditingChat1 Для создания Series1 нажимаем кнопку Add на странице Series (рис. 4).

Рис. 4

Для создания графиков функций необходимо разместить объект Сhart на форме, выбрать Свойства объекта series, и открыть его, затем в появившемся окне выбрать функцию с именем series1.

В рассматриваемом примере изменено имя функции - с series1 на график 1.

Затем в правой части окна найти свойство Charttype и изменить его на Spline. Индекс функции указан в квадратике рядом с названием (рис. 5).

Рис. 5

При необходимости можно изменить цвет графика (свойство Color) и имя графика (свойство Name). В левой части окна можно добавлять новые функции.

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

chart1.Series[0].Points.AddXY(x, y);

Здесь Series[0] – добавление точки в график с индексом 0; x, y – координаты точки.

Для построения графика очень удобно использовать оператор цикла for. Следующий пример демонстрирует программу, которая построит график функции y = x2 (рис. 6).

Рис. 6. Программа построения графика

В данном коде от пользователя скрыты кнопки и textBox, необходимые для работы с графиком, они появятся только после построения графика.

График будет построен на интервале x [-5; 5], с шагом 0,1 - это задано в цикле for.

Вид формы, полученный после нажатия кнопки «Построить график» представлен на рис. 7.

Рис. 7

Иногда необходимо увеличить фрагмент графика. Для этого можно применять функции масштабирования. Они реализуются в данном примере при нажатии кнопки Button2 «Масштабировать по оси Х». При этом вводятся начало и конец интервала масштабирования (рис. 8).

Рис. 8. График после масштабирования

Если возникает необходимость удалить один из графиков, можно использовать следующую функцию: chart1.Series[0].Points.Clear();

В данном случае будет удален график с индексом 0.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: