Встроенные типы данных в С#. Массивы.
Строки.
Регулярные выражения
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, а также средства стандартного ввода/вывода и возможности форматирования вывода;
получено понятие о регулярных выражениях и их применении для поиска, замены и разбиения текста на синтаксические лексемы.