Встроенные типы данных в С#. Массивы. Строки. Регулярные выражения

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    98,57 Кб
  • Опубликовано:
    2014-04-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Встроенные типы данных в С#. Массивы. Строки. Регулярные выражения










Лабораторная работа 4

ВСТРОЕННЫЕ ТИПЫ ДАННЫХ В С#. МАССИВЫ. СТРОКИ. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ


Выполнил: ст. гр. И-22

Миролюбов В.В.

Проверил:

Забаштанский А.К.







Севастополь 2014

Цель работы


Изучить классификацию типов данных и отличительные особенности синтаксических конструкций языка C# от C++;

Изучить базовые типы: Array, String, StringBuilder, а также средства стандартного ввода/вывода и возможности форматирования вывода;

Получить понятие о регулярных выражениях и их применении для поиска, замены и разбиения текста на синтаксические лексемы.

Вариант задания:

Проработать примеры программ 1-8, данные в теоретических сведениях. Создать на их основе программы. Получить результаты работы программ и уметь их объяснить. Внести их в отчет по работе с комментариями.

1.      Удалить столбец двухмерного массива вещественных чисел, в котором находится максимальный элемент этого массива.

2.      Дана строка, содержащая текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или знаком восклицания). Получить в новой строке отредактированный текст, в котором удалены подряд идущие вхождения слов в предложениях.

.        Задан текст. Выбрать из него все e-mail адреса.

1.      Ход работы

Пример 1


using System;laba

{static int Main (string [] args)

{[] firstNames={"Саша", "Маша", "Олег", "Света", "Игорь"};. WriteLine ("Here is the array: ");i;len = firstNames. Length;

i = 0;(i < len) // Цикл до конца массива

{. WriteLine (firstNames [i]); // Вывод текущего элемента

i++; // Переход на следующий

}. WriteLine ("\n");

Array. Reverse (firstNames);(i=0; i< len; Console. WriteLine (firstNames [i++]));. WriteLine ("\n");. WriteLine ("Cleared out all but one. ");

Array. Clear (firstNames,1,4); // Очистка всех элементов кроме первого

len = firstNames. Length;(i=0; i< len; i++). WriteLine (firstNames [i++] +"\n");

return 0;

}

}

Рис. 1. - Результаты работы примера 1

Пример 2


using System;laba

{static int Main (string [] args)

{[] firstNames={"Саша", "Маша", "Олег", "Света", "Игорь"};. WriteLine ("Here is the array: ");("ИМЕНА!!!", firstNames);0;

}static void PrintAr (string name, Array A)

{. WriteLine (name);(A. Rank)

{1: for (int i = 0; i<A. GetLength (0); i++). Write ("\t" + name + " [{0}] ={1}", i, A. GetValue (i) + "\n"); Console. WriteLine ();;2: for (int i = 0; i<A. GetLength (0); i++)

{(int j = 0; j<A. GetLength (1); j++). Write ("\t" + name + " [{0},{1}] ={2}",A. GetValue (i,j));. WriteLine ();

};: break;

}

}

}

Рис. 2 - Результаты работы второго примера

Пример 3


using System;laba

{static int Main (string [] args)

{[] firstNames={"Саша", "Маша", "Олег", "Света", "Игорь"};. WriteLine ("Here is the array: ");();0;

}string CharArrayToString (char [] ar)

{result = "";(int i = 0; i< ar. Length; result += ar [i++]);(result);

}void PrintCharAr (string name,char [] ar)

{. WriteLine (name);(int i=0; i < ar. Length; Console. Write (ar [i++]));. WriteLine ();

}static void TestCharArAndString ()

{hello = "Здравствуй, Мир!";[] strM1 = hello. ToCharArray ();("strM1",strM1);[] World = new char [3];

Array. Copy (strM1,12,World,0,3); // копирование подстроки

PrintCharAr ("World",World);. WriteLine (CharArrayToString (World));

}

}

Рис. 3 - Результаты работы третьего примера

Пример 4


using System;System. Text;laba

{static int Main (string [] args)

{. WriteLine ("Here is the array: ");();0;

}static void TestStringBuilder ()

{s1 =new StringBuilder ("ABC"),=new StringBuilder ("CDE"),= new StringBuilder ();= s1. Append (s2);b1 = (s1==s3);ch1 = s1 [0], ch2=s2 [0];. WriteLine ("s1={0}, s2={1}, b1={2}," + "ch1={3},ch2={4}", s1,s2,b1,ch1,ch2);s = new StringBuilder ("Zenon");[0] ='L'; Console. WriteLine (s);

}

}

Рис. 4 - Очередной пример работы программы

Пример 5


using System;System. Text. RegularExpressions;laba

{static int Main (string [] args)

}string FindMatch (string str, string strpat)

{pat = new Regex (strpat);match =pat. Match (str);found = "";(match. Success)

{=match. Value;. WriteLine ("Строка ={0}\nбразец={1}^ Найдено={2}", str,strpat,found);

}(found);

}static void TestSinglePat ()

{str, strpat, found;. WriteLine ("Поиск по образцу"); // образец задает подстроку, начинающуюся с

// символа a, далее идут буквы или цифры.

str ="start";=@"a\w+";= FindMatch (str,strpat); // art str ="fab77cd efg";= FindMatch (str,strpat); // ab77cd // образец задает подстроку, начинающуюся

// с символa а, заканчивающуюся f с возможными символами b и d в середине

strpat = "a (b|d) *f";= "fabadddbdf";= FindMatch (str,strpat); // adddbdf

}

}

Рис. 5 - Результаты работы пятого примера

Пример 6


using System;System. Text. RegularExpressions;laba

{static int Main (string [] args)

{. WriteLine ("Here is the array: ");str, strpat;. WriteLine ("око и рококо"); strpat="око"; str = "рококо";

FindMatches (str, strpat); // найдено одно соответствие

return 0;

}void FindMatches (string str, string strpat)

{pat = new Regex (strpat);match =pat. Matches (str);. WriteLine (" Строка ={0}\nOбразец={1}^ Найдено={2}", str,strpat,match. Count);

}

}

Рис. 6 - Результаты работы программы 6

Пример 7


using System;System. Text. RegularExpressions;laba

{static void Main ()

{si = "Это строка для поиска"; // найти любой пробельный символ следующий за

// непробельнымtheReg = new Regex (@" (\S+) \s"); // получить коллекцию результата поиска

MatchCollection theMatches = theReg. Matches (si); // перебор всей коллекции(Match theMatch in theMatches)

{. WriteLine ("theMatch. Length: {0}", theMatch. Length);(theMatch. Length! = 0). WriteLine ("theMatch: {0}", theMatch. ToString ());

}

}

}

Рис. 7 - Результаты выполнения программы примера 7

Пример 8


using System;System. Text. RegularExpressions;laba

{static void Main ()

{stringl = "04: 03: 27 127.0.0.0 GotDotNet.ru";theReg = new Regex (@" (? <time> (\d |:) +\s)" + @" (? <ip> (\d |.) +) \s" + @" (? <url>\S+)");

// группа time - одна и более цифр или двоеточий, за которыми сле¬дует пробельный символ

// группа ip адрес - одна и более цифр или точек, за которыми сле¬дует пробельный символ

// группа url - один и более непробельных символов

MatchCollection theMatches = theReg. Matches (stringl);(Match theMatch in theMatches)

{(theMatch. Length! = 0)

{ // выводим найденную подстроку

Console. WriteLine ("\ntheMatch: {0}", theMatch. ToString ()); // выводим группу "time". WriteLine ("time: {0}", theMatch. Groups ["time"]); // выводим группу "ip". WriteLine ("ip: {0}", theMatch. Groups ["ip"]); // выводим группу "url". WriteLine ("url: {0}", theMatch. Groups ["url"]);

}

}

}

}

Рис. 8 - Результат работы программы 8, совпадений нет

Задание 1


using System;laba

{static void Main ()

{N, i, j;= 5;[,] matrix = new float [N, N];rand = new Random ();(i = 0; i < N; i++) (j = 0; j < N; j++)

matrix [i,j] = rand. Next (10, 50); // заполнение массива случайными числами от 0 до 50

Console. WriteLine ("Исходная Матрица\n");

drawarr (matrix, N, N);max = matrix [0,0];maxj = 0;(i = 0; i < N; i++)(j = 0; j < N; j++)(matrix [i,j] > max)

{

max = matrix [i,j]; // поиск максимального элемента

maxj = j; // запоминание столбца с этим элементом

}

Console. WriteLine ("Столбец с макс. элементом {0}", maxj+1);

if (maxj! = N)(i = 0; i < N; i++)(j = maxj; j < N-1; j++)[i,j] = matrix [i,j+1];. WriteLine ("Удален столбец с максимальным элементом\n");

drawarr (matrix, N, N-1);

}

public static void drawarr (float [,] arr, int a, int b) // функция вывода матрицы на экран

{i, j;(i = 0; i < a; i++)

{(j = 0; j < b; j++). Write (arr [i,j] + " ");. Write ("\n");

}

}

Рис. 9 - Результаты выполнения программы по заданию 1

Задание 2


using System;System. Text. RegularExpressions;laba {void Main ()

{ishod = "При объявлении массива массива массива границы задаются выражениями. Если все все все все границы заданы заданы константами. ";theReg = new Regex (@" (\S+) (\s)"); // выделение из строки каждого отдельного слова

MatchCollection theMatches = theReg. Matches (ishod);slovo1 = "", slovo2 = "";i = 0;konec = "";(Match theMatch in theMatches)

{(i == 0)

{= theMatch. ToString (); // первое слово+= slovo1;

}

{= theMatch. ToString ();(slovo2! = slovo1) {slovo1 = slovo2; konec += slovo1; }

}= 1;

}. WriteLine ("Исходная строка");. WriteLine (ishod + "\n");. WriteLine ("Отредактированная строка");. WriteLine (konec);

}

}

массив синтаксическая конструкция язык

Рис. 10 - Результаты выполнения программы номер 3

Задание 3


using System;System. Text. RegularExpressions;laba {void Main ()

{

string ishod = "Дело было так lslk@dsf.com и sssmonstr@com.com пошли к DEMENTOR@AZKABAN. DETH";

Regex theReg = new Regex (@"\w+@\w+. \w+"); // выделение из строки каждого отдельного слова

MatchCollection theMatches = theReg. Matches (ishod);email;(Match theMatch in theMatches)

{= theMatch. ToString ();. WriteLine (email);

}

}

}

Рис.11 - Результаты выполнения программы по пункту 3

Вывод


изучена классификация типов данных и отличительные особенности синтаксических конструкций языка C# от C++;

изучены базовые типы: Array, String, StringBuilder, а также средства стандартного ввода/вывода и возможности форматирования вывода;

получено понятие о регулярных выражениях и их применении для поиска, замены и разбиения текста на синтаксические лексемы.

Похожие работы на - Встроенные типы данных в С#. Массивы. Строки. Регулярные выражения

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!