Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Упражнение 1. Работа с массивами размерных типов.Стр 1 из 2Следующая ⇒
Лабораторная работа 1: Создание и использование классов и массивов
Упражнение 1. Работа с массивами размерных типов. В этом упражнении Вы напишите программу, в которой в метод Main в качестве аргумента будет передаваться имя текстового файла. Содержимое текстового файла будет считываться в массив символов, а дальше будут производиться итерации по всему массиву для подсчета количества гласных и согласных. В итоге, на консоль будет выводиться информация об общем количестве символов, гласных, согласных и строк.
Ø Передайте в метод Main в качестве параметра имя текстового файла
· Откомпилируйте программу FileDetails.cs и исправьте ошибки, если это необходимо. Запустите программу из командной строки, не передавая никаких аргументов командной строки. Убедитесь в том, что длина массива args равна нулю. Подсказка: для запуска программы из командной строки, откройте окно командной строки и перейдите в папку work folder \Lab1\FileDetails\bin\Debug. Исполняемый файл находится в этой папке. · Запустите программу из командной строки, передав в качестве аргумента командной строки имя файла work folder \Lab1\FileDetails\README.txt. Убедитесь в том, что на этапе выполнения имя файла передается в метод Main. · Протестируйте программу, передавая различные аргументы, и убедитесь в том, что все они корректно выводятся на консоль. · В методе Main объявите переменную fileName типа string и присвойте ей значение args[0].
Ø Считайте содержимое текстового файла в массив
Подсказка: Чтобы найти соответствующее свойство класса Stream, читайте раздел “Stream class” в.NET Framework SDK Help documents.
Подсказка: воспользуйтесь методом Read, который не использует параметров и возвращает значение типа int. Read считывает 1 символ.Перед тем как сохранять результат в массиве приведите его к типу char. Подсказка: Приведение к типу char: (char)reader.Read() · В метод Main добавьте цикл foreach, в котором посимвольно будет выводиться на консоль все содержимое символьного массива. Это поможет убедиться в том, что содержимое текстового файла было успешно считано в массив contents. Код по работе с объектами FileStream и StreamReader в методе Main должен соответствовать шаблону: static void Main(string[ ] args) { //предыдущие инструкции ... FileStream stream = new FileStream(fileName, FileMode.Open); StreamReader reader = new StreamReader(stream); int size = //длина читаемого файла (“Stream class” в.NET //Framework SDK Help documents //объявление и инициализация символьного массива contents
// цикл for для чтения символов из reader и записи их в contents
foreach(char ch in contents) { Console.Write(ch); } } · Откомпилируйте программу и исправьте ошибки, если это необходимо. Запустите программу из командной строки, передав в качестве аргумента командной строки имя файла work folder \Lab1\FileDetails\README.txt.. Убедитесь в том, что содержимое файла корректно отображается на консоли. · Закройте объект Reader, вызвав подходящий метод для StreamReader. Ø Систематизируйте и резюмируйте информацию о содержимом файла
Подсказка: Чтобы определить, является ли данный символ буквой, воспользуйтесь методом IsLetter() класса Char, который возвращает значение false, если в строке встречается управляющая последовательность (например, перевод каретки). Чтобы определить, является ли символ гласной, создайте строку из всех возможных гласных и воспользуйтесь для нее методом IndexOf, который позволит определить, существует ли в данной строке указанный символ: if (" AEIOUaeiou".IndexOf(myCharacter)! = -1) { // myCharacter is a vowel } else { // myCharacter is not a vowel } · Напишите четыре инструкции для вывода на консоль следующей информации: o Общее количество символов в файле. o Общее количество гласных в файле (vowels). o Общее количество согласных в файле (consonants). o Общее количество строк в файле (lines). Подсказка: необходимо искать символ перевода каретки. Доработайте метод Summarize: static void Summarize(char[ ] contents) { int vowels = 0, consonants = 0, lines = 0; foreach (char current in contents) { // здесь необходимо написать алгоритм по поиску гласных, //согласных и символа перевода каретки. }
//4 инструкции для вывода на консоль общего кол-ва символов в //файле, гласных в файле, согласных в файле, строк в файле. } · Откомпилируйте программу и исправьте ошибки, если это необходимо. Запустите программу из командной строки для разбора файла work folder \Lab1\FileDetails\README.txt. Результат работы программы: o 1066 символов o 235 гласных o 342 согласных o 26 строк
|