Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
30.10.2024
Размер:
43.91 Кб
Скачать

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»

Центр заочного обучения по программам бакалавриата

Кафедра «Математической кибернетики и информационных технологий»

Дисциплина: Технологии программирования

Лабораторная работа №7

Обработка текстовых строк

Выполнил: Иванов И.И., студент группы БСТ17XX Вариант №7

Проверил: Клешнин Н.Г.

Москва, 2021

Введение

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

Задание

Требуется выделить в строке-предложении s все слова, разделенные символами-разделителями «_.,;:\n\t!?», и обработать выделенные слова в соответствии с вариантом задания.

Определения:

  • Регулярное слово – слово, состоящее только из больших латинских букв.

  • Палиндром – это слово, которое одинаково читается слева направо и справа налево.

  • Алфавитный порядок задается таблицей ASCII.

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

Уровень A

A7. Напечатать все слова, состоящие только из цифр.

Код программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace lab7

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите строку-предложение s: ");

string s = Console.ReadLine();

char[] charArr = s.ToCharArray();

List<string> wordsList = new List<string>();

string memory = "";

for(int i = 0; i < charArr.Length; i++)

{

if (isSeparator(charArr[i]))

{

if (memory.Length > 0)

{

wordsList.Add(memory);

memory = "";

}

}

else

{

memory += charArr[i];

}

}

if (memory.Length > 0) //необходимо, чтобы не терять последнее слово, если нет разделителя в конце строки.

{

wordsList.Add(memory);

}

string[] strArr = wordsList.ToArray();

showString(strArr);

string[] taskArr = taskCheck(wordsList);

showString(taskArr);

Console.ReadKey();

}

static bool isSeparator(char curr)

{

char[] separator = {' ', '_', '.', ',', ';', ':', '\n', '\t', '!', '?'};

for(int i = 0; i < separator.Length; i++)

{

if (curr == separator[i])

return true;

}

return false;

}

static void showString(string[] strArr)

{

Console.WriteLine(String.Join(" | ", strArr));

}

static string[] taskCheck (List<string> wordsList)

{

List<string> task = new List<string>();

int firstASCIIcode = 48;

int lastASCIIcode = 57;

for (int i = 0; i < wordsList.Count; i++)

{

char[] currWord = wordsList[i].ToArray();

for (int j = 0; j < currWord.Length; j++)

{

if (currWord[j] < firstASCIIcode || currWord[j] > lastASCIIcode)

break;

else

if (j == currWord.Length - 1)

task.Add(wordsList[i]);

}

}

return task.ToArray();

}

}

}

Результаты работы программы

Заключение

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

Соседние файлы в папке Лабораторные работы