Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по информатике Мезенцев Ю.Ю. ПС...docx
Скачиваний:
5
Добавлен:
23.09.2019
Размер:
1.64 Mб
Скачать
  1. Задание №6.

Описание элементов синтаксиса языка, используемых в задаче:

public – идентификатор доступа.

public Word() {} – конструктор класса.

public int numdifflett() {} – автовычисляемое поле (представленное как метод) хронящее количество различныз букв в слове.

public string ReverseWord() {} – непараметризированный метод, возвращающий словов написанное наоборот.

public void InsertLetter(string w, string st) {} – параметризированный метод, вставляющий заданную букву в заданное место в слове.

Array.Sort() – сортирует элементы в одномерных массивах Array.

Array.Reverse() – изменяет порядок элементов в одномерном массиве Array или в части массива Array на обратный.

.Insert() – метод, который позволяет вставить строку внутрь другой определенной строки

.ToCharArray() – Копирует знаки из указанной подстроки данного экземпляра в массив знаков Юникода.

В классе определить поле с максимальной длиной слова, автовычисляемое поля, хранящее число различных букв в слове, непараметризированный метод, возвращающий слово, написанное наоборот, параметризированный метод, вставляющий заданную букву в заданное место в слове.

Входные данные:

val – текст введенный пользователем, w – буква, введенная пользователем для вставки в необходимое место, st – введенная позиция для вставки буквы, тип переменных string.

Выходные данные:

maxword – максимальное слово в тексте, word – слово, написанное на оборот, maxword – слово, со вставленной буквой в нужное место, тип переменных string, numdifflett – количество различных букв в слове, тип int.

Блок-схема алгоритма:

Листинг класса «Word»:

class Word

{

char[] _addy;

public string _maxword; //Поле с максимальной длинной слова

public int _numdifflett = 0; // Автов. поле хранящее количество

различных букв в слове

string _w;

string _st;

int _t;

int _maxlen;

string _val;

public Word(string maxword, char[] addy, int maxlen, string val)

{

_maxword = maxword;

char[] _addy = addy;

addy = maxword.ToCharArray();

int j = 0;

int k = 0;

Array.Sort(addy);

while (j <= addy.Length - 2)

{

if (addy[j] != addy[j + 1])

{

k++;

}

j++;

}

_numdifflett = k + 1;

}

public string ReverseWord(string word)

{

char[] wordArray = word.ToCharArray();

Array.Reverse(wordArray);

return new string(wordArray);

}

public void InsertLetter(string w, string st)

{

string maxword = _maxword;

int t = Convert.ToInt32(st);

if (t > maxword.Length)

{

Console.WriteLine("Вы ввели некоректную позицию!");

}

maxword = maxword.Insert(t, w);

Console.WriteLine(maxword);

}

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

Console.WriteLine("Введите текст");

string val = Console.ReadLine();

string[] org = val.Split(' ');

int maxlen = org[0].Length;

string maxword = org[0];

for (int i = 1; i <= org.Length - 1; i++)

{

if (org[i].Length > maxlen)

{

maxword = org[i];

maxlen = org[i].Length;

}

}

Console.WriteLine("Максимальное слово в тексте : {0}", maxword);

char[] addy = maxword.ToCharArray();

Word word = new Word(maxword, addy, maxlen, val);

Console.WriteLine("Число различных букв в слове: " +

word._numdifflett);

Console.WriteLine("Максимальное слово написанное на оборот: {0}",

word.ReverseWord(word._maxword));

Console.WriteLine("Введите необходимую для встаки букву");

string w = Console.ReadLine();

Console.WriteLine("Введите позицию всавки буквы в слово");

string st = Console.ReadLine();

word.InsertLetter(w, st);

Console.ReadKey();

Контрольные примеры:

  1. Дано: val = «Мы люди», w = «з», st = «3». Ожидаемое сообщение на выходе: maxword = «люди» , numdifflett = 4, word = «идюл» , maxword = «людзи»

Рисунок 15 – Контрольный пример №2

  1. Дано: val = «Мы звери», w = «ж», st = «4». Ожидаемое сообщение на выходе: maxword = «звери» , numdifflett = 5, word = «иревз» , maxword = «звержи»

Рисунок 16 – Контрольный пример №2

  1. Дано: val = «Опять двойка», w = «у», st = «9». Ожидаемое сообщение на выходе: maxword = «двойка» , numdifflett = 5, сообщение «Вы ввели некорректную позицию!»

Рисунок 17 – Контрольный пример №3