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

Классификация типов данных, отличия синтаксических конструкций языков C# и C++. Базовые типы: Array, String, StringBuilder. Средства стандартного ввода и вывода и возможности форматирования вывода. Понятие о регулярных выражениях и их применении.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 13.05.2014
Размер файла 148,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Лабораторная работа 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<A. GetLength (0); i++)

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

break;

case 2: for (int i = 0; i<A. GetLength (0); i++)

{

for (int j = 0; j<A. GetLength (1); 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 [0] ='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 ()

{

string str, strpat, found;

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

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

str ="start";

strpat =@"a\w+";

found = FindMatch (str,strpat); // art str ="fab77cd efg";

found = FindMatch (str,strpat); // ab77cd // образец задает подстроку, начинающуюся

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

strpat = "a (b|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 (@" (? <time> (\d |:) +\s)" + @" (? <ip> (\d |.) +) \s" + @" (? <url>\S+)");

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

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

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

MatchCollection theMatches = theReg. Matches (stringl);

foreach (Match theMatch in theMatches)

{

if (theMatch. Length! = 0)

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

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

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

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

Console. WriteLine ("url: {0}", theMatch. Groups ["url"]);

}

}

}

}

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

Задание 1

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, а также средства стандартного ввода/вывода и возможности форматирования вывода;

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

Размещено на Allbest.ru


Подобные документы

  • Сущность понятия "тип данных". Объектно-ориентированный стиль программирования. Простые типы данных в языке Паскаль: порядковые, вещественные, дата-время. Булевский (логический) тип. Синтаксис определения ограниченного типа. Регулярные типы (массивы).

    реферат [24,1 K], добавлен 01.12.2009

  • Использование программой функции ввода-вывода данных для реализации дружественного интерфейса с пользователем. Функции консоли и особенности их применения для обеспечения аккуратного ввода информации и упорядоченного вывода. Обзор стандартных функций.

    лабораторная работа [40,4 K], добавлен 06.07.2009

  • Организация типов данных. Записи, оператор присоединения. Множества, операции над ними. Строки, стандартные процедуры и функции, работающие со строками. Совместимость типов. Явное и неявное преобразование типов. Многомерные массивы. Операции отношения.

    презентация [30,8 K], добавлен 13.10.2013

  • Использование пользовательских регистров. Регистры общего назначения. Элементарные и базовые типы данных. Язык микроопераций, ассемблер. Директивы резервирования памяти. Система команд, организация вычислений. Сложные структуры данных. Схемы ввода-вывода.

    курс лекций [280,7 K], добавлен 02.12.2009

  • Элементарные конструкции языка ПАСКАЛЬ: имена, числа и строки. Стандартные типы данных. Организация ввода и вывода данных с терминального устройства. Разработка программы, изменяющей первоначальную матрицу по заданной схеме и выводящей ее на экран.

    курсовая работа [68,6 K], добавлен 09.07.2015

  • Анализ операторов ввода и вывода, а также характеристика форматов, используемых в этих операторах. Оформление законченной программы с применением этих операторов. Структура программы. Алфавит языка и типы данных. Ввод и вывод информации. Форматный вывод.

    лабораторная работа [62,0 K], добавлен 15.07.2010

  • Основные составляющие системного блока. Назначение материнской платы. Базовая система ввода-вывода – Bios. Понятие периферийного устройства. Запоминающие устройства и их виды. Открытая архитектура в устройстве ПК. Устройства для ввода и вывода данных.

    реферат [478,5 K], добавлен 18.12.2009

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

    контрольная работа [50,1 K], добавлен 30.10.2009

  • Программирование линейных алгоритмов. Процедуры ввода READ и READLN и вывода WRITE и WRITELN. Примеры решения задач на языке Паскаль. Оператор присваивания и выражения. Основные способы формирования структурных операторов. Операторы вызова процедур.

    курсовая работа [44,3 K], добавлен 18.03.2013

  • Сущность и основные свойства алгоритмов, принципы их составления. Скалярные типы данных в языке Pascal. Тождественность и совместимость типов данных. Понятие и основные этапы развития, а также движущие силы эволюции языков программирования, типы.

    презентация [85,8 K], добавлен 18.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.