
Вариант 18 / ПР-4
.docx
-
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МИРЭА – Российский технологический университет»
РТУ МИРЭА
Институт информационных технологий
Кафедра вычислительной техники
ОТЧЕТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ №4 |
|
по дисциплине |
|
«Алгоритмические основы обработки данных»
|
|
|
|
Выполнил студент группы
|
|
Принял старший преподаватель
|
Ю.С. Асадова |
Практическая работа выполнена |
«__»_______2024г. |
|
|
«Зачтено» |
«__»_______2024г. |
Москва 2024
-
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МИРЭА – Российский технологический университет»
РТУ МИРЭА
Институт информационных технологий
Кафедра вычислительной техники
Выполнено ____________________/ /
Зачтено ____________________/А.С. Асадова/
Задание на практическую работу №4
Дисциплина: «Алгоритмические основы обработки данных»
Студент Шифр Группа
1. Тема: «Обработка символьной информации».
2. Срок сдачи студентом законченной работы: 05.10.2024г.
3. Исходные данные: Разработать программу, которая вводит адрес электронной почты и проверяет синтаксис введенного адреса. Результат проверки выводится в виде сообщения на экран.
4. Задание: Имя пользователя может начинаться только на букву и заканчиваться только на букву или цифру.
5. Содержание отчета:
титульный лист;
задание;
оглавление;
введение;
основные разделы отчета;
заключение;
список использованных источников;
Руководитель работы Ю.С. Асадова ____________ «___» ____________ 2024г.
подпись
Задание принял к исполнению ____________ «___» ____________ 2024г.
подпись
СОДЕРЖАНИЕ
Y
ВВЕДЕНИЕ 4
1 ОСНОВНОЙ РАЗДЕЛ 5
2 БЛОК–СХЕМА АЛГОРИТМА 6
3 ИСХОДНЫЙ КОД 7
4 ПРИМЕР РАБОТЫ ПРОГРАММЫ 8
Заключение 9
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 10
ВВЕДЕНИЕ
В данной практической работе требуется применить обработка символьной информации на примере правильной записи адресов электронной почты.
Постановка задачи:
Разработать программу, которая вводит адрес электронной почты и проверяет синтаксис введенного адреса. Результат проверки выводится в виде сообщения на экран.
В качестве параметров выступают индекс i , также отдельно храниться знаки «собака» и точка которые являются целочисленными , email имеет тип string.
Необходима реализация проверки ввода на логичность введенных данных.
При успешном вводе данных пользователю должен быть выдано сообщение о корректности выеденного почтового адреса.
1 ОСНОВНОЙ РАЗДЕЛ
Во время работы программы пользователь вводит адрес электронной почты, который сохраняется в переменной email.
После ввода вызывается функция isValidEmail(email) для проверки корректности, если длина адреса менее 5 символов, функция возвращает ложь.
Программа находит @. Если символ не найден или расположен неверно, возвращается ложь, проверяется, начинается ли адрес с буквы. Если нет, возвращается ложь.
Программа ищет первую точку после @. Если точки нет, возвращается ложь. Символы в доменной части проверяются на допустимость (буквы и цифры).
Если все проверки пройдены, функция возвращает истинно и выводит результат о корректности адреса, в ином случае о некорректности адреса.
2 БЛОК–СХЕМА АЛГОРИТМА
Представим описание алгоритма в графическом виде на рисунке 2.1.
Рисунок 2.1 – Блок-схема алгоритма программы
3 ИСХОДНЫЙ КОД
Программная реализация алгоритма для решения задачи представлена ниже.
Листинг 3.1 – Процедура нахождение наиболее часто встречающееся число массива
#include <iostream> #include <string> using namespace std; bool isValidEmail(string email) { if (email.size() < 5) return false; // Минимальная длина int atPos = email.find('@'); if (atPos == string::npos || atPos == 0 || atPos == email.size() - 1) { return false; } if (!isalpha(email[0])) { return false } for (int i = 0; i < atPos; i++) { if (!isalnum(email[i]) && email[i] != '.' && email[i] != '-') { return false; } } int dotPos = email.find('.', atPos); if (dotPos == string::npos || dotPos == atPos + 1 || dotPos == email.size() - 1) { return false; } for (int i = atPos + 1; i < email.size(); i++) { if (!isalnum(email[i]) && email[i] != '-') { return false; // Домен может содержать только буквы и цифры } } return true; int main() { string email; cout << "Введите адрес электронной почты: "; cin >> email; if (isValidEmail(email)) { cout << "Адрес электронной почты является корректным." << endl; } else { cout << "Адрес электронной почты является некорректным." << endl; } return 0; } |
4 ПРИМЕР РАБОТЫ ПРОГРАММЫ
Пример работы программы, когда ввод некорректен 2010anton@cs mcgill.ca, представлен на рисунке 4.1.
Рисунок 4.1– Пример работы программы – Ввод некорректен
Пример работы программы, когда ввод некорректен ant-@csmcgill.ca, представлен на рисунке 4.2.
Рисунок 4.2 – Пример работы программы – Ввод некорректен
Пример работы программы, когда ввод некорректен igramen03yandexru представлен на рисунке 4.3.
Рисунок 4.3 – Пример работы программы – Ввод некорректен
Пример работы программы, когда ввод корректен la2010@mail.ru представлен на рисунке 4.4.
Рисунок 4.4 – Пример работы программы – Ввод корректен
Заключение
В ходе выполнения данной практической работы была реализована программа, обрабатывающая символьную информацию. Также были приобретены навыки работы с математическими и логическими выражениями на языке программирования C++.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Лозовский В.В. Алгоритмические основы обработки данных: учебное пособие / Лозовский В.В., Платонова О.В., Штрекер Е.Н. — М.: МИРЭА – Российский технологический университет, 2022. – 337 с.
Платонова О.В. Алгоритмические основы обработки данных: методические указания / Платонова О.В., Асадова Ю.С., Расулов М.М. — М.: МИРЭА – Российский технологический университет, 2022. — 73 с.
Белик А.Г. Алгоритмы и структуры данных: учебное пособие / А.Г. Белик, В.Н. Цыганенко. — Омск: ОмГТУ, 2022. — 104 с. — ISBN 978-5-8149-3498-7. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/343688 (дата обращения: 17.09.2024)
Павлов Л.А. Структуры и алгоритмы обработки данных / Л.А. Павлов, Н.В. Первова. — 2-е изд., стер. — Санкт-Петербург: Лань, 2022. — 256 с. — ISBN 978- 5-507-44105-1. — Текст: электронный // Лань: электронно-библиотечная система.
Пантелеев Е.Р. Алгоритмы и структуры данных: учебное пособие / Е.Р. Пантелеев, А.Л. Алыкова. — Иваново: ИГЭУ, 2018. — 142 с. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/154576 (дата обращения: 23.09.2024)