Главная страница

программирование_c#_работа со строками и файлами. программы_отчет. Решение Листинг программы using System using System. Collections. Generic using System. Linq using System. Text


Скачать 150.64 Kb.
НазваниеРешение Листинг программы using System using System. Collections. Generic using System. Linq using System. Text
Анкорпрограммирование_c#_работа со строками и файлами
Дата23.06.2022
Размер150.64 Kb.
Формат файлаdocx
Имя файлапрограммы_отчет.docx
ТипРешение
#612550

Задание 1

Разработать программу, которая для заданной строки s:

9) подсчитывает количество цифр в строке;
Решение:

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace ConsoleApp_z1

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите строку, содержащую в тексте цифры:");

string s = Console.ReadLine(); //строка, в которой считаем цифры

int count = 0; //счетчик цифр

for (int i = 0; i < s.Length; i++) //проходим по строке в цикле

{

if (char.IsDigit(s[i])) // если текущий символ является цифрой

count++; // увеличиваем счетчик на единицу

}

Console.WriteLine("Количество цифр в строке {0} - {1}", s, count); //выводим результат

Console.ReadKey();

}

}

}
Результат работы программы:


Задание 2

Разработать программу, которая:

9) заменяет все вхождения подстроки str1 на подстроку str2 (при этом str1 может являться частью str2);
Решение:

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace ConsoleApp_z2

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите строку s: ");

StringBuilder s = new StringBuilder(Console.ReadLine()); // задаем исходную строку

Console.WriteLine("Введите подстроку str1: ");

StringBuilder str1 = new StringBuilder(Console.ReadLine()); // задаем подстроку-искомое

Console.WriteLine("Введите подстроку str2: ");

StringBuilder str2 = new StringBuilder(Console.ReadLine()); // задаем подстроку-заменитель

s.Replace(str1.ToString(), str2.ToString()); // заменяем все подстроки str1 на str2

Console.WriteLine("Измененная строка s: {0}", s);

Console.ReadKey(true); // выход из программы

}

}

}
Результат работы программы:


Задание 3

Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания.

9. Подсчитать, сколько раз заданное слово встречается в сообщении.
Решение:

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace ConsoleApp_z3

{

class Program

{

static void Main(string[] args)

{

// задаем строку

Console.WriteLine("Введите строку с осмысленным сообщением: ");

string s = Console.ReadLine();

// задаем искомое слово

Console.WriteLine("\nВведите искомое слово: ");

string word = Console.ReadLine(); //искомое слово

int count = 0; //счетчик наличия искомого слова в строке

// разбиваем строку на слова и помещаем в массив

string[] mas = s.Split(' ', '.', ',', '-', '!', '?',':',';');

// проходим по массиву слов и сравниваем

foreach (string p in mas)

{

if (p.ToUpper() == word.ToUpper())

{

count++; //если текущее слово равно искомому, увеличиваем счетчик

}

}

// вывод результата работы программы

Console.WriteLine("\r\nСлово {0} встречается в тексте {1} раз(а)", word, count);

Console.ReadKey(true); // выход из программы

}

}

}
Результат работы программы:



Задание 1

9. Дан текстовый файл. Напечатать символы с k1 по k2 в каждой строке.
Решение:

Листинг программы:

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace ConsoleApp_z1_2

{

class Program

{

static void Main(string[] args)

{

int k1 = 0;

int k2 = 0;

//открываем текстовый файл

try

{

StreamReader sr = new StreamReader("text.txt", Encoding.Default);

Console.WriteLine("Текстовый файл:");

//пока файл не закончился

while (sr.EndOfStream != true)

{

string str = sr.ReadLine(); //считываем строку

Console.WriteLine(str); //выводим строку

}

sr.Close();//закрываем текстовый файл

Console.WriteLine("\nВывод части строки");

bool f = false;

do

{

Console.Write("Введите номер начальной позиции k1= ");

k1 = int.Parse(Console.ReadLine());

if (k1 >= 0)

{

Console.Write("Введите номер конечной позиции k2= ");

k2 = int.Parse(Console.ReadLine());

if (k1 < k2)

{ f = true; }

else

Console.WriteLine("Конечная позиция не может быть меньше начальной!");

}

else

{ Console.WriteLine("Конечная позиция не может быть меньше начальной!"); }

}

while (f!=true);

sr = new StreamReader("text.txt", Encoding.Default);

Console.WriteLine("\nВывод с {0}-й позициии по {1}-ю позицию в строке:\n",k1,k2);

//пока файл не закончился

while (sr.EndOfStream != true)

{

string str = sr.ReadLine(); //считываем строку

for (int i = 0; i < str.Length; i++)

{

if (i >= k1 && i <= k2) //если символ попадает между k1 и k2

Console.Write(str[i]); //выводим его

}

Console.Write("\n");//перевод строки

}

sr.Close();//закрываем текстовый файл

}

catch

{

//если файл отстутствует или повреждён, программа продолжит свою работу без

//исключения, но выведет сообщение о том, что произошла ошибка

Console.WriteLine("При загрузке файла произошли ошибки!");

}

Console.ReadKey(true); //выход из программы

}

}

}
Результат работы программы:


Задание 2

9. Даны два файла с числами. Получить новый файл, в котором на четных местах будут стоять компоненты, которые стоят на четных местах в первом файле, а на нечетных – компоненты, которые стоят на нечетных во втором (количество компонентов в исходных файлах одинаковое).
Решение:

Листинг программы:

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace ConsoleApp_z2_2

{

class Program

{

static Random rnd = new Random(); //Создание объекта для генерации чисел
static void CreateFiles(string fname, int n)

{

//открываем двоичный поток

BinaryWriter fOut = new BinaryWriter(new FileStream(fname, FileMode.Create));

//записываем данные в двоичный поток

for (int i = 0; i < n; i++)

{

fOut.Write(rnd.Next(0, 25));

}

fOut.Close(); //закрываем двоичный поток

}
static void Main(string[] args)

{

//Создание объекта для генерации чисел, если требуется создать новые

Console.WriteLine("Создать файлы перед выполнением - 1, использовать готовые - 2:");

int k = int.Parse(Console.ReadLine());

if (k == 1)

{

Console.WriteLine("Введите количество чисел в файле:");

int m = int.Parse(Console.ReadLine());

CreateFiles("t1.dat", m);

CreateFiles("t2.dat", m);

}

//чтение данных из двоичного потока

FileStream f = new FileStream("t1.dat", FileMode.Open);

Console.WriteLine("Первый файл:");

long n = f.Length; //определяем количество байт в байтовом потоке

int a;

BinaryReader fIn = new BinaryReader(f);

n = f.Length / 4; //определяем количество чисел в двоичном потоке

int[] MyArray = new int[n]; //задаем массив для сохранения чисел из файлов

//n определяем один раз, так как количество чисел в файлах одинаковое

for (int i = 0; i < n; i++)

{

a = fIn.ReadInt32();

if (i % 2 == 0) MyArray[i] = a;

Console.Write(a + " ");

}

fIn.Close();

f.Close();

Console.WriteLine();

Console.WriteLine("Второй файл:");

fIn = new BinaryReader(new FileStream("t2.dat", FileMode.Open));

for (int i = 0; i < n; i++)

{

a = fIn.ReadInt32();

if (i % 2 == 1) MyArray[i] = a;

Console.Write(a + " ");

}

fIn.Close();

Console.WriteLine();

Console.WriteLine("Результат:");

BinaryWriter fOut = new BinaryWriter(new FileStream("t3.dat", FileMode.Create));

for (int i = 0; i < n; i++)

{

fOut.Write(MyArray[i]);

Console.Write(MyArray[i] + " ");

}

fOut.Close();

Console.ReadKey(true);

}

}

}


Результат работы программы:





написать администратору сайта