Опубликован: 19.02.2009 | Доступ: свободный | Студентов: 3073 / 803 | Оценка: 4.35 / 4.11 | Длительность: 16:28:00
ISBN: 978-5-94774-401-9
Лекция 11:

Организация С#-системы ввода-вывода

< Лекция 10 || Лекция 11: 123 || Лекция 12 >

Практикум

  1. Работа с двоичными файлами:
    1. Создать файл и записать в него вещественные числа из диапазона от a до b с шагом h. Вывести на экран все компоненты файла с нечетными порядковыми номерами.

      Пример:

      using System;
      using System.Text;
      using System.IO; 
      
      namespace MyProgram
      {
       class Program
       {
        static void Main()
        {
          Console.Write("a= ");
          double a=double.Parse(Console.ReadLine());
          Console.Write("b= ");
          double b=double.Parse(Console.ReadLine());
          Console.Write("h= ");
          double h=double.Parse(Console.ReadLine());
          //Записываем в файл t.dat вещественные числа из заданного диапазона 
          FileStream f=new FileStream("t.dat",FileMode.Open);
          BinaryWriter fOut=new BinaryWriter(f);
          for (double i=a; i<=b; i+=h) 
          {
           fOut.Write(i);
          }
          fOut.Close();
          //Объекты f и fIn связаны с одним и тем же файлом 
          f=new FileStream("t.dat",FileMode.Open);
          BinaryReader fIn=new BinaryReader(f);
          long m=f.Length; //определяем количество байт в потоке
          //Читаем данные из файла t.dat начиная с элемента с номером 1, т.е с 8 байта,
          //перемещая внутренний указатель на 16 байт, т.е. на два вещественных числа
          for (long i=8; i<m; i+=16)
          {
           f.Seek(i,SeekOrigin.Begin); 
           a=fIn.ReadDouble();
           Console.Write("{0:f2} ",a);
          }
          fIn.Close();
          f.Close();
         }
       }
      }
    2. Создать файл и записать в него степени числа 3. Вывести на экран все компоненты файла с четным порядковым номером.
    3. Создать файл и записать в него обратные натуральные числа 1,1/2,...,1/n. Вывести на экран все компоненты файла с порядковым номером, кратным 3.
    4. Создать файл и записать в него n первых членов последовательности Фибоначчи. Вывести на экран все компоненты файла с порядковым номером, не кратным 3.
    5. Дана последовательность из n целых чисел. Создать файл и записать в него все четные числа последовательности. Вывести содержимое файла на экран.
    6. Дана последовательность из n целых чисел. Создать файл и записать в него все отрицательные числа последовательности. Вывести содержимое файла на экран.
    7. Дана последовательность из n целых чисел. Создать файл и записать в него числа последовательности, попадающие в заданный интервал. Вывести содержимое файла на экран.
    8. Дана последовательность из n целых чисел. Создать файл и записать в него числа последовательности, не кратные заданному числу. Вывести содержимое файла на экран.
    9. Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Вывести на экран все компоненты, не попадающие в данный диапазон.
    10. Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Вывести на экран все компоненты файла с нечетными номерами, большие заданного числа.
    11. Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Вывести на экран все компоненты файла с четными номерами, меньшие заданного числа.
    12. Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Вывести на экран все положительные компоненты файла.
    13. Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Подсчитать среднее арифметическое компонентов файла, стоящих на четных позициях.
    14. Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Найти максимальное значение среди компонентов файла, стоящих на нечетных позициях.
    15. Дано предложение. Создать файл и записать в него все символы данного предложения, отличные от знаков препинания. Вывести содержимое файла на экран.
    16. Дано предложение. Создать файл и записать в него все символы данного предложения, отличные от цифр. Вывести содержимое файла на экран.
    17. Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются на заданную букву.
    18. Создать файл, состоящий из слов. Вывести на экран все слова, длина которых равна заданному числу.
    19. Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются и заканчиваются одной буквой.
    20. Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются на ту же букву, что и последнее слово.
  2. Работа с текстовым (символьным) файлом.
    1. Дан текстовый файл. Найти количество строк, которые начинаются с данной буквы.

      Пример:

      Замечание: Напоминаем, что файл text.txt должен содержать английский текст
      using System;
      using System.Text;
      using System.IO; 
      using System.Text.RegularExpressions;
      
      namespace MyProgram
      {
       class Program
       {
        static void Main()
        {
          Console.Write("Введите заданную букву: ");
          char a=char.Parse(Console.ReadLine());
          StreamReader fileIn = new StreamReader("text.txt");
          string text=fileIn.ReadToEnd(); //считываем из файла весь текст
          fileIn.Close();
          int k=0;
          //разбиваем текст на слова используя регулярные выражения
          string []newText=Regex.Split(text,"[ ,.:;]+"); 
          //подсчитываем количество слов, начинающихся на заданную букву 
          foreach( string b in newText)
           if (b[0]==a)++k;
          Console.WriteLine("k= "+k);
         }
       }
      }
    2. Дан текстовый файл. Найти количество строк, которые начинаются и заканчиваются одной буквой.
    3. Дан текстовый файл. Найти самую длинную строку и ее длину.
    4. Дан текстовый файл. Найти самую короткую строку и ее длину.
    5. Дан текстовый файл. Найти номер самой длинной строки.
    6. Дан текстовый файл. Найти номер самой короткой строки.
    7. Дан текстовый файл. Выяснить, имеется ли в нем строка, которая начинается с данной буквы. Если да, то напечатать ее.
    8. Дан текстовый файл. Напечатать первый символ каждой строки.
    9. Дан текстовый файл. Напечатать символы с k1 по k2 в каждой строке.
    10. Дан текстовый файл. Напечатать все нечетные строки.
    11. Дан текстовый файл. Напечатать все строки, в которых имеется хотя бы один пробел.
    12. Дан текстовый файл. Напечатать все строки, длина которых равна данному числу.
    13. Дан текстовый файл. Напечатать все строки, длина которых меньше заданного числа.
    14. Дан текстовый файл. Напечатать все строки с номерами от k1 до k2.
    15. Дан текстовый файл. Получить слово, образованное k-ыми символами каждой строки.
    16. Дан текстовый файл. Переписать в новый файл все его строки, вставив в конец каждой строки ее номер.
    17. Дан текстовый файл. Переписать в новый файл все его строки, вставив в конец каждой строки количество символов в ней.
    18. Дан текстовый файл. Переписать в новый файл все его строки, длина которых больше заданного числа.
    19. Дан текстовый файл. Переписать в новый файл все его строки четной длины.
    20. Дан текстовый файл. Переписать в новый файл все его строки, удалив из них символы, стоящие на четных местах.

Самостоятельная работа

Используя дополнительную литературу и Интернет рассмотреть использование:

  1. класса MemoryStream ;
  2. классов StringReader и StringWriter.
< Лекция 10 || Лекция 11: 123 || Лекция 12 >