Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная строки.pdf
Скачиваний:
12
Добавлен:
15.04.2015
Размер:
123.68 Кб
Скачать

Лабораторная работа Тип string в C#

Оглавление

 

Пример выполнения задания...........................................................................................................

4

Постановка задачи.......................................................................................................................

4

Выполнение задания....................................................................................................................

5

Ответы на контрольные вопросы...............................................................................................

8

Задания для самостоятельной работы............................................................................................

9

Контрольные вопросы....................................................................................................................

10

3

Пример выполнения задания

Постановка задачи

Составить программу, которая проверяет, является ли строка, введённая с клавиатуры, палиндромом.

Код проверки реализовать в видеметода.

4

Выполнение задания

Исходя из условия задания, спроектируем методisPalindrom со следующими параметрами

Таблица 1: Параметры метода isPalindrom

№ п/п

Название

Тип

Параметр

Примечание

1

inpStr

string

Входной

Проверяемая строка

 

 

 

 

 

 

 

 

Выходной

Флаг проверки true – строка является

2

flag

bool

палиндромом, false – в противном

 

 

 

 

случае.

Для выполнения проверки необходимо:

удалить из исходнойстроки пробелы;

сформировать новую строку, которая будет являться «зеркальнойкопией» исходной;

сравнить полученныестроки;

в случае, если они совпадают, присвоить переменной flag значение true, в противном случае — false.

Кодметода isPalindrom приведёнв листинге 1.

Листинг 1

1.static bool isPalindrom(string inp_str)

2.{

3.string out_str = String.Empty;

4.bool flag = false;

5.//удаляем ведущие и ведомые пробелы

6.inp_str = inp_str.Trim();

7.//удаляем пробелы внутри строки

8.inp_str = inp_str.Replace(" ", "");

9.//переводим символы строки в нижний регистр

10.inp_str = inp_str.ToLower();

11.Console.WriteLine(inp_str);

12.//формируем "перевёрнутую" строку

13.for (int i = inp_str.Length-1; i >=0; i--)

14.{

15.out_str += inp_str[i].ToString();

16.}

17.Console.WriteLine(out_str);

18.if (inp_str == out_str)

19.{

20.

flag = true;

21.}

22.else

23.{

24.

flag = false;

25.}

26.return flag;

27.}

5

Где

в строке 6 удаляются ведомые и ведущие пробелы при помощи вызова методаTrim;

в строке 8 производится удаление пробелов внутри строки при помощи вызова метода Replace путём ихзамены назначениепустая строка;

в строке 10 символы исходной строки переводятся в нижний регистр для удобства последующегосравнения;

в строках 13 — 16 производится формирование новой строки, которая является «зеркальной» копиейисходной;

в строках 18 — 25 производится сравнение исходной строки и её копии, и если они совпадают, то значениепеременной flag устанавливается в true;

в строке 26 значениепеременной flag передаётся в основную программу, гденаоснове еёзначения принимается решениеопринадлежности исходнойстроки к палиндрому.

КодметодаMain приведёнв листинге 2.

Листинг 2

1.static void Main(string[] args)

2.{

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

4.string строка = Console.ReadLine();

5.if (isPalindrom(строка) == true)

6.{

7.Console.WriteLine("Строка является палиндромом.");

8.}

9.else

10.{

11.Console.WriteLine("Строка не является палиндромом.");

12.}

13.}

Полный текст программы приведёнв листинге 3

Листинг 3

1.using System;

2.using System.Collections.Generic;

3.using System.Linq;

4.using System.Text;

5.

6.namespace string_app

7.{

8.class Program

9.{

10.

static bool isPalindrom(string inp_str)

11.

{

 

12.

string out_str = String.Empty;

13.

bool flag

= false;

14.

//удаляем

ведущие и ведомые пробелы

15.

inp_str =

inp_str.Trim();

16.

//удаляем

пробелы внутри строки

6

17.

inp_str = inp_str.Replace(" ", "");

18.

//переводим символы строки в нижний регистр

19.

inp_str = inp_str.ToLower();

20.

Console.WriteLine(inp_str);

21.

//формируем "перевёрнутую" строку

22.

for (int i = inp_str.Length-1; i >=0; i--)

23.

{

24.

out_str += inp_str[i].ToString();

25.

}

26.

Console.WriteLine(out_str);

27.

if (inp_str == out_str)

28.

{

29.

flag = true;

30.

}

31.

else

32.

{

33.

flag = false;

34.

}

35.

return flag;

36.

}

37.

 

38.

 

39.

static void Main(string[] args)

40.

{

41.

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

42.

string строка = Console.ReadLine();

43.

if (isPalindrom(строка) == true)

44.

{

45.

Console.WriteLine("Строка является палиндромом.");

46.

}

47.

else

48.

{

49.

Console.WriteLine("Строка не является палиндромом.");

50.

}

51.

}

52.}

53.}

Результат работы программы приведённа рисунке 1.

Рисунок 1:

Как видно из результатов лабораторной работы, …..

!!!!!! Сделать самостоятельные выводы по лабораторной работе !!!!!!

7