Файл: Лабораторная работа 1 по дисциплине Программирование Вариант 15 Проверил к п. н., доцент С. Ж. Козлова Выполнил Т. В. Тепанян.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 14

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Федеральное государственное бюджетное
образовательное учреждение высшего образования
«ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ИМЕНИ М.Т. КАЛАШНИКОВА»

Факультет «информатика и вычислительная техника»

Кафедра «Информационная безопасность в автоматизированных системах»

ЛАБОРАТОРНАЯ РАБОТА №1

по дисциплине «Программирование»

Вариант 15

Проверил

к.п.н., доцент С.Ж. Козлова

Выполнил Т.В.Тепанян

студент группы С22-361-1

ИЖЕВСК, 2023

Задача №15 из 1 таблицы

Дан набор слов, разделенных точкой с запятой «;». Набор заканчивается двоеточием «:». Определить, сколько в нем слов, заканчивающихся буквой «а».

Дано: набор слов, разделенных точкой с запятой «;». Набор заканчивается двоеточием «:».

Найти: количество слов заканчивающихся буквой «а».

  1. Анализ данных

Входные данные

№п/п

Тип переменной

Имя переменной

Примечание

1

string

text

Исходный текст

Промежуточные данные

№п/п

Тип переменной

Имя переменной

Примечание

1

string

pattern

Регулярное выражение для поиска слов заканчивающихся на а

2

int

c

Переменная счетчик количества слов

3

String[ ]

words

Массив со словами из текста разделенные “;”

Выходные данные

№п/п

Тип переменной

Имя переменной

Примечание

1

string

text

Исходный текст

2

string

c

Количество слов


3. Анализ исключительных ситуаций

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

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



5. Листинг

WriteLine("Задание 15 таблица 1");

string loc = (AppDomain.CurrentDomain.BaseDirectory).Replace(@"\bin\Debug", "");
string[] words;

string text = "";
try

{

StreamReader file = new StreamReader(loc + "input.txt", encoding: Encoding.Default);
text = file.ReadToEnd();
}

catch

{

WriteLine("Ошибка при чтении файла");

}
text = text.Replace(":", "");

words = text.Split(';');
WriteLine(String.Format("Входной текст: {0}", text));

string pattern = @"[а-я]+а$";
int c = 0;
foreach (string w in words)

{

if (IsMatch(w, pattern))

{

c++;

}

}

WriteLine(String.Format("В тексте {0} слов(а/о) заканчивающихся на а", c));

Задача №15 из 2 таблицы

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

Дано: Задан текст, содержащий только буквы.

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

1. Анализ данных

Входные данные

№п/п

Тип переменной

Имя переменной

Примечание

1

string

text

Исходный текст

Промежуточные данные

№п/п

Тип переменной

Имя переменной

Примечание

1

string

pattern1

Регулярное выражение для поиска гласных букв


2

string

pattern2

Регулярное выражение для поиска согласных букв

3

string

gl

Строка для хранения гласных букв из текста

4

string

sogl

Строка для хранения согласных букв из текста

5

char [ ]

gl_char

Массив для хранения гласных букв

6

char [ ]

sogl_char

Массив для хранения согласных букв


Выходные данные

№п/п

Тип переменной

Имя переменной

Примечание

1

string

text

Исходный текст

2

string

output

Строка после сортировки

3. Анализ исключительных ситуаций

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

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



5. Листинг

static char[] sort(char[] arr)

{

for (int j = 1; j < arr.Length; j++)

{

for (int i = 0; i < arr.Length - 1; i++)

{

if (Convert.ToInt32(Convert.ToChar(Convert.ToString(arr[i]).ToLower())) > Convert.ToInt32(Convert.ToChar(Convert.ToString(arr[i + 1]).ToLower())))
{

char x = arr[i];

arr[i] = arr[i + 1];

arr[i + 1] = x;

}

}

}

return arr;

}

string loc = (AppDomain.CurrentDomain.BaseDirectory).Replace(@"\bin\Debug", "");
string text = "";

try

{

StreamReader file = new StreamReader(loc + "inp2.txt", encoding: Encoding.Default);
text = file.ReadToEnd();

WriteLine("Входной текст:\n" + text);

}

catch

{

WriteLine("Ошибка при чтении файла");

}
string sogl = "", gl = "";

string pattern1 = "[АОУЫЭЕЁИЮЯаоуыэеёиюя]?";

string pattern2 = "[^АОУЫЭЕЁИЮЯаоуыэеёиюя]?";
foreach (Match m in Matches(text, pattern1)) { gl += m.Value; }

foreach (Match m in Matches(text, pattern2)) { sogl += m.Value; }
char[] gl_char = gl.ToCharArray();

char[] sogl_char = sogl.ToCharArray();
gl_char = sort(gl_char);

sogl_char = sort(sogl_char);
string output = new String(gl_char) + new String(sogl_char);

WriteLine("текст после сортировки:\n" + output);