Файл: Лабораторная работа 3 по дисциплине Информатика (часть 2) Вариант 12 Студенты фио гр. Ри121151 25. 05. 2023 Дудин Н. С. Вонненберг Я. О.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 13
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерации
ФГАОУ ВО «Уральский федеральный университет
имени первого Президента России Б.Н. Ельцина»
Департамент радиоэлектроники и связи
СТРОКИ. МАССИВЫ СИМВОЛОВ.
Лабораторная работа №3 по дисциплине
«Информатика (часть 2)»
Вариант №12
Студенты ФИО
гр. РИ-121151 25.05.2023 Дудин Н.С.
Вонненберг Я.О.
дата сдачи работы роспись студ.
Преподаватель _____________ __________ ФИО
дата приема работы роспись препод.
Екатеринбург, 2023
Вариант №12
Условие задачи:
“Для введенной строки, которая содержит буквы, цифры и иные символы, требуется удалить все символы, не являющиеся цифрами. Получившуюся строку цифр преобразовать в натуральное число”
Название задачи:
Условие задачи – “Для введенной строки, которая содержит буквы, цифры и иные символы, требуется удалить все символы, не являющиеся цифрами. Получившуюся строку цифр преобразовать в натуральное число.”
Название программного комплекса – «String.cpp».
Система программирования – Dev – C++, version 5.11.492 x64.
Требования к аппаратному обеспечению – 48.1 МB свободного места.
Описание:
Условие задачи – “Для введенной строки, которая содержит буквы, цифры и иные символы, требуется удалить все символы, не являющиеся цифрами. Получившуюся строку цифр преобразовать в натуральное число”
Работа состоит из двух частей. Первая часть – предполагает ввод строки (текста), вторая – ее обработку.
Управление режимами работы программы:
Основные требования к способу взаимодействия пользователя с программой: пользователь должен строго следовать инструкции, которая предоставляет ему программа.
Входные данные:
Вводные данные – строка;
Источник данных – клавиатура;
Выходные данные:
Выходные данные – числовой формат;
Источник отображения данных – монитор;
Ошибки:
Возможные ошибки пользователя при работе с программой - ошибка при вводе данных; Защита от ошибок на этапе проектирования – Анализ кода; Возможная реакция пользователя при совершении им ошибочных действий – недопонимание, заблуждение; Реакция программного комплекса на ошибки пользователя – программа будет выводить 0.
Метод решения задачи
Для начала вводим строку. Затем ищем в строке первое встреченное целое число. Далее объявляется переменная типа `string` для хранения введенной строки, а также две переменные `num` и `digit_count`, для хранения найденного целого числа и количества цифр в этом числе.
Далее происходит циклический перебор всех символов в строке `str` с помощью перебора от 0 до `str.length()`.
Если символ `c` является цифрой, то программа добавляет эту цифру к переменной `num`. Для этого значение переменной `num` сначала умножается на 10 (для учета разрядности), а затем к этому результату прибавляется значение кода символа `c` за вычетом кода символа '0', т.е. `(c - '0')`. потому что числовые символы в ASCII-кодировке расположены последовательно, начиная с '0'. Таким образом, полученное значение `num` соответствует целому числу. Каждый раз, когда цифра найдена и добавлена в число `num`, программа добавляет 1 к переменной `digit_count` для подсчета количества цифр в найденном числе.
После окончания цикла программа проверяет, были ли в строке найдены какие-либо цифры. Если переменная `digit_count` равна 0, выводится сообщение, что в строке нет цифр. В противном случае выводится найденное число.
Таким образом, код ищет первое встреченное целое число в строке, и, если таковое имеется, сохраняет его в переменную `num`. Если в строке нет цифр, выводится сообщение об этом.
Блок – схема
Текст программы:
#include
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
string str;
cout << "Введите строку: ";
cin >> str;
int num = 0;
int digit_count = 0;
for (int i = 0; i < str.length(); i++) {
char c = str[i];
if (isdigit(c)) {
num = num * 10 + (c - '0');
digit_count++;
}
}
if (digit_count == 0) {
cout << "В строке нет цифр\n";
} else {
cout << "Число: " << num << endl;
}
return 0;
}
Пример работы программы: