- •Уровни языков программирования
- •Язык c#
- •Переменные и константы
- •Числа без знака
- •Числа со знаком
- •Числа с плавающей точкой
- •Текстовые символы
- •Логический тип данных
- •Выражения и операторы с#
- •Составные операторы
- •Поразрядные операторы
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Работа с консолью
- •Преобразование типов
- •Оператор явного преобразования типов
- •Преобразование типов констант
- •Алгоритмизация и решение задач Понятие алгоритма
- •Словесное описание
- •Блок-схема
- •Описание Блоков
- •Псевдокод
- •Реализация алгоритмических конструкций в с# Следование
- •Ветвление
- •Ветвление и условный оператор
- •Вложенные условия
- •Применение логических операций
- •Цикл Пока
- •Цикл Делать-Пока
- •Цикл с параметром
- •Прерывание и возобновление цикла
- •Оператор goto
- •Особые виды циклов
- •Сложные типы данных – массивы чисел и символов Одномерные массивы
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Многомерные массивы
- •Типы задач обработки двумерных числовых массивов
- •Невыровненные (ступенчатые) массивы
- •Обработка массива символов
- •Работа с текстовыми строками
- •Базовые операции со строками
- •Методы типа string
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Массивы параметров
- •Передача параметров по ссылке и по значению
- •Выходные параметры
- •Область действия переменных
- •Глобальные переменные
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Структуры
- •Работа с текстовыми файлами
- •Работа с двоичными файлами
Структуры
Еще одним важным типом переменной, который широко используется в C#, является struct (сокращение от слова structure — "структура"). Структуры вполне соответствуют своему названию: это структуры данных, которые составлены из информации различного характера, возможно, из данных различных типов. Они позволяют программистам описывать свои собственные типы переменных, для которых данная структура является базовой.
struct point
{
public double x;
public double y;
}
Работа с текстовыми файлами
Текстовые файлы содержат символьную информацию, но, как и двоичные, тоже состоят из байтов. Поэтому потоки FileStream, BinaryWriter и BinaryReader можно использовать для записи в файлы и чтения из файлов текстовых строк, но лучше применять специально предназначенные для этого средства. Речь идет о потоках классов StreamWriter и StreamReader. Эти потоки чрезвычайно просты в использовании и удобны для работы с текстовыми файлами.
Основные приемы использования потоков StreamWriter и StreamReader демонстрируются в программе, исходный текст которой приведен ниже:
using System;
using System.IO;
namespace TextFile
{
class Program
{
static string testFile = "mydata.txt";
static void Main(string[] args)
{
if (File.Exists(testFile))
{
Console.WriteLine("Файл {0} уже существует", testFile);
Console.ReadLine();
return;
}
StreamWriter sw = File.CreateText(testFile);
sw.WriteLine("Каждый охотник желает знать, где сидит фазан!");
sw.WriteLine("Число \"Пи\" равно примерно {0}.", 3.1415926);
sw.Close();
StreamReader sr = File.OpenText(testFile);
while (true)
{
string str = sr.ReadLine();
if (str == null)
break;
Console.WriteLine(str);
}
sr.Close();
Console.WriteLine("Файл успешно создан");
Console.ReadLine();
}
}
}
Работа с двоичными файлами
Программа Binary демонстрирует некоторые приемы работы с двоичными файлами при помощи классов FileStream, BinaryWriter и BinaryReader.
using System;
using System.IO;
namespace Binary
{
class Program
{
static string testFile = "mydata.dat";
static void Main(string[] args)
{
if(File.Exists(testFile))
{
Console.WriteLine("Файл {0} уже существует", testFile);
Console.ReadLine();
return;
}
FileStream fs = new FileStream(testFile, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write("Text string");
for(uint i = 0; i < 20; i++)
{
bw.Write(i);
}
bw.Close();
fs.Close();
fs = new FileStream(testFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
string s = br.ReadString();
Console.WriteLine(s);
for (uint i = 0; i < 20; i++)
{
Console.Write("{0} ", br.ReadUInt32());
}
br.Close();
fs.Close();
Console.WriteLine("\nФайл успешно создан");
Console.ReadLine();
}
}
}
