Помощь в написании студенческих работ
Антистрессовый сервис

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

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

String ishod = «При объявлении массива массива массива границы задаются выражениями. Если все все все все границы заданы заданы константами. «; Получить понятие о регулярных выражениях и их применении для поиска, замены и разбиения текста на синтаксические лексемы. Получено понятие о регулярных выражениях и их применении для поиска, замены и разбиения текста на синтаксические лексемы. Изучить… Читать ещё >

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

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

ВСТРОЕННЫЕ ТИПЫ ДАННЫХ В С#. МАССИВЫ. СТРОКИ. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ Выполнил: ст. гр. И-22

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

Проверил:

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

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

Цель работы

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

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

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

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

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

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

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

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

1. Ход работы

Пример 1

using System;

class laba

{

public static int Main (string [] args)

{

string [] firstNames={" Саша", «Маша», «Олег», «Света», «Игорь» };

Console. WriteLine («Here is the array: «);

int i;

int len = firstNames. Length;

i = 0;

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

{

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

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

}

Console. WriteLine («n»);

Array. Reverse (firstNames);

for (i=0; i< len; Console. WriteLine (firstNames [i++]));

Console. WriteLine («n»);

Console. WriteLine («Cleared out all but one. «);

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

len = firstNames. Length;

for (i=0; i< len; i++)

Console. WriteLine (firstNames [i++] +" n");

return 0;

}

}

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

Пример 2

using System;

class laba

{

public static int Main (string [] args)

{

string [] firstNames={" Саша", «Маша», «Олег», «Света», «Игорь» };

Console. WriteLine («Here is the array: «);

PrintAr («ИМЕНА!!!», firstNames);

return 0;

}

public static void PrintAr (string name, Array A)

{

Console. WriteLine (name);

switch (A. Rank)

{

case 1: for (int i = 0; i

Console. Write («t» + name + «[{0}] ={1}», i, A. GetValue (i) + «n»); Console. WriteLine ();

break;

case 2: for (int i = 0; i

{

for (int j = 0; j

Console. Write («t» + name + «[{0},{1}] ={2}», A. GetValue (i, j));

Console. WriteLine ();

}

break;

default: break;

}

}

}

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

Пример 3

using System;

class laba

{

public static int Main (string [] args)

{

string [] firstNames={" Саша", «Маша», «Олег», «Света», «Игорь» };

Console. WriteLine («Here is the array: «);

TestCharArAndString ();

return 0;

}

static string CharArrayToString (char [] ar)

{

string result = «» ;

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

return (result);

}

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

{

Console. WriteLine (name);

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

Console. WriteLine ();

}

public static void TestCharArAndString ()

{

string hello = «Здравствуй, Мир!» ;

char [] strM1 = hello. ToCharArray ();

PrintCharAr («strM1», strM1);

char [] World = new char [3];

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

PrintCharAr («World», World);

Console. WriteLine (CharArrayToString (World));

}

}

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

Пример 4

using System;

using System. Text;

class laba

{

public static int Main (string [] args)

{

Console. WriteLine («Here is the array: «);

TestStringBuilder ();

return 0;

}

public static void TestStringBuilder ()

{

StringBuilder s1 =new StringBuilder («ABC»),

s2 =new StringBuilder («CDE»),

s3 = new StringBuilder ();

s3= s1. Append (s2);

bool b1 = (s1==s3);

char ch1 = s1 [0], ch2=s2 [0];

Console. WriteLine («s1={0}, s2={1}, b1={2},» + «ch1={3}, ch2={4}», s1, s2,b1,ch1,ch2);

StringBuilder s = new StringBuilder («Zenon»);

s ='L'; Console. WriteLine (s);

}

}

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

Пример 5

using System;

using System. Text. RegularExpressions;

class laba

{

public static int Main (string [] args)

{

Console. WriteLine («Here is the array: «);

TestSinglePat ();

return 0;

}

static string FindMatch (string str, string strpat)

{

Regex pat = new Regex (strpat);

Match match =pat. Match (str);

string found = «» ;

if (match. Success)

{

found =match. Value;

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

}

return (found);

}

public static void TestSinglePat ()

d) *f" ;

str = «fabadddbdf» ;

found = FindMatch (str, strpat); // adddbdf

}

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

Пример 6

using System;

using System. Text. RegularExpressions;

class laba

{

public static int Main (string [] args)

{

Console. WriteLine («Here is the array: «);

string str, strpat;

Console. WriteLine («око и рококо»); strpat="око"; str = «рококо» ;

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

return 0;

}

static void FindMatches (string str, string strpat)

{

Regex pat = new Regex (strpat);

MatchCollection match =pat. Matches (str);

Console. WriteLine («Строка ={0}nOбразец={1}^ Найдено={2}», str, strpat, match. Count);

}

}

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

Пример 7

using System;

using System. Text. RegularExpressions;

class laba

{

public static void Main ()

{

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

// непробельным

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

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

foreach (Match theMatch in theMatches)

{

Console. WriteLine («theMatch. Length: {0}», theMatch. Length);

if (theMatch. Length! = 0)

Console. WriteLine («theMatch: {0}», theMatch. ToString ());

}

}

}

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

Пример 8

using System;

using System. Text. RegularExpressions;

class laba

{

public static void Main ()

{

string stringl = «04: 03: 27 127.0.0.0 GotDotNet.ru» ;

Regex theReg = new Regex (@" (?

using System;

class laba

{

public static void Main ()

{

int N, i, j;

N = 5;

float [,] matrix = new float [N, N];

Random rand = new Random ();

for (i = 0; i < N; i++)

for (j = 0; j < N; j++)

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

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

drawarr (matrix, N, N);

float max = matrix [0,0];

int maxj = 0;

for (i = 0; i < N; i++)

for (j = 0; j < N; j++)

if (matrix [i, j] > max)

{

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

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

}

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

if (maxj! = N)

for (i = 0; i < N; i++)

for (j = maxj; j < N-1; j++)

matrix [i, j] = matrix [i, j+1];

Console. WriteLine («Удален столбец с максимальным элементомn»);

drawarr (matrix, N, N-1);

}

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

{

int i, j;

for (i = 0; i < a; i++)

{

for (j = 0; j < b; j++)

Console. Write (arr [i, j] + ««);

Console. Write («n»);

}

}

}

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

Задание 2

using System;

using System. Text. RegularExpressions;

class laba {

static void Main ()

{

string ishod = «При объявлении массива массива массива границы задаются выражениями. Если все все все все границы заданы заданы константами. «;

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

MatchCollection theMatches = theReg. Matches (ishod);

string slovo1 = «», slovo2 = «» ;

int i = 0;

string konec = «» ;

foreach (Match theMatch in theMatches)

{

if (i == 0)

{

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

konec += slovo1;

}

else

{

slovo2 = theMatch. ToString ();

if (slovo2! = slovo1) {slovo1 = slovo2; konec += slovo1; }

}

i = 1;

}

Console. WriteLine («Исходная строка»);

Console. WriteLine (ishod + «n»);

Console. WriteLine («Отредактированная строка»);

Console. WriteLine (konec);

}

}

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

Задание 3

using System;

using System. Text. RegularExpressions;

class laba {

static 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);

string email;

foreach (Match theMatch in theMatches)

{

email = theMatch. ToString ();

Console. WriteLine (email);

}

}

}

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

Вывод

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

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

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

Показать весь текст
Заполнить форму текущей работой