Файл: Лабораторная работа 3 по дисциплине Информатика (часть 2) Вариант 8 Студенты фио гр. Ри000000 00. 00. 0000 Иванов И. И.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 87
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской ФедерацииФГАОУ ВО «Уральский федеральный университетимени первого Президента России Б.Н. Ельцина»Департамент радиоэлектроники и связиСТРОКИ. МАССИВЫ СИМВОЛОВ.Лабораторная работа №3 по дисциплине«Информатика (часть 2)»Вариант №8Студенты ФИОгр. РИ-000000 00.00.0000 Иванов И.И.дата сдачи работы роспись студ.Преподаватель _____________ __________ ФИОдата приема работы роспись препод.Екатеринбург, 2023Вариант №8Условие задачи:Вводится строка. Подсчитать сумму встречающихся в ней целых чисел."Задание на разработку программного обеспечения (техническое задание)".Название задачи: Условие задачи – “Вводится строка. Подсчитать сумму встречающихся в ней целых чисел.” Название программного комплекса – «String.cpp».Система программирования – Dev – C++, version 5.11.492 x64.Требования к аппаратному обеспечению – 48.1 МB свободного места.Описание:Условие задачи – “ Вводится строка. Подсчитать сумму встречающихся в ней целых чисел.” Работа состоит из двух частей. Первая часть – предполагает ввод строки (текста), вторая – ее обработку.Управление режимами работы программы:Основные требования к способу взаимодействия пользователя с программой: пользователь должен строго следовать инструкции, которая предоставляет ему программа.Входные данные:Вводные данные – строка;Источник данных – клавиатура;Выходные данные:Выходные данные – числовой формат;Источник отображения данных – монитор;Ошибки:Возможные ошибки пользователя при работе с программой - ошибка при вводе данных; Способы диагностики – проверка программы; Защита от ошибок на этапе проектирования – Анализ кода; Возможная реакция пользователя при совершении им ошибочных действий – недопонимание, заблуждение; Реакция программного комплекса на ошибки пользователя – программа будет выводить 0.
Метод решения задачиДля начала вводим строку. После обнулим сумму (sum=0) и число (num=0). Следующим шагом мы задаём флаг на то, что следующий символ – число. Далее начинаем цикл и смотрим, если символ равен '-', то ему присваиваем “is_negative”, иначе, если символ находится в диапазоне от 0 до 9, то число переводим в десятичную систему счисления и символу присваиваем “is_num”. Затем начинаем новый цикл, и смотрим, является ли следующий символ числом, если да, то мы к сумме (sum) прибавляем число (num), если же является отрицательным, то “num=-num”. Cледующим шагом мы обнуляем данный символ в строке и возвращаемся в основной цикл. Далее к сумме прибавляем число, обнуляем его, и в строке обнуляем символ. Потом смотрим, является ли символ числом, если да, то к сумме прибавляем число, если оно является отрицательным, то к числу присваиваем отрицательное значение, и к сумме прибавляем наше число. Далее выводим ответ.Блок – схемаТекст программы:#include <iostream>usingnamespacestd;int main() { setlocale (LC_ALL, "Russian"); string str; long long int sum = 0, num = 0; bool is_num = false, is_negative = false; cout << "Введитевстроку: "; getline(cin, str); for (int i = 0; i < str.length(); i++) { if (str[i] == '-') { is_negative = true; } else if (str[i] >= '0' && str[i] <= '9') { num = num * 10 + (str[i] - '0'); is_num = true; } else { if (is_num) { if (is_negative) { num = -num; is_negative = false; } sum += num; num = 0; is_num = false; } } } if (is_num) { if (is_negative) {
num = -num;} sum += num; } cout << "Сумма целых чисел в строке равна: " << sum << endl; return 0;}Пример работы программы:
Метод решения задачиДля начала вводим строку. После обнулим сумму (sum=0) и число (num=0). Следующим шагом мы задаём флаг на то, что следующий символ – число. Далее начинаем цикл и смотрим, если символ равен '-', то ему присваиваем “is_negative”, иначе, если символ находится в диапазоне от 0 до 9, то число переводим в десятичную систему счисления и символу присваиваем “is_num”. Затем начинаем новый цикл, и смотрим, является ли следующий символ числом, если да, то мы к сумме (sum) прибавляем число (num), если же является отрицательным, то “num=-num”. Cледующим шагом мы обнуляем данный символ в строке и возвращаемся в основной цикл. Далее к сумме прибавляем число, обнуляем его, и в строке обнуляем символ. Потом смотрим, является ли символ числом, если да, то к сумме прибавляем число, если оно является отрицательным, то к числу присваиваем отрицательное значение, и к сумме прибавляем наше число. Далее выводим ответ.Блок – схемаТекст программы:#include <iostream>usingnamespacestd;int main() { setlocale (LC_ALL, "Russian"); string str; long long int sum = 0, num = 0; bool is_num = false, is_negative = false; cout << "Введитевстроку: "; getline(cin, str); for (int i = 0; i < str.length(); i++) { if (str[i] == '-') { is_negative = true; } else if (str[i] >= '0' && str[i] <= '9') { num = num * 10 + (str[i] - '0'); is_num = true; } else { if (is_num) { if (is_negative) { num = -num; is_negative = false; } sum += num; num = 0; is_num = false; } } } if (is_num) { if (is_negative) {
num = -num;} sum += num; } cout << "Сумма целых чисел в строке равна: " << sum << endl; return 0;}Пример работы программы: