Natalimis416024
?>

Впаскале я написал программу что бы 3 значное число разбилось на единицы, десятки и сотни, а потом написал что бы эти 3 цифры перемножились, а он перемножает не только эти 3 цифры, но и цифры 10 и 100 которые я использовал что бы разбить число на десятки сотни и единицы, как исправить? (вот если что program qq; var x: integer; a, b: real; begin readln(x); writeln('разряд единиц: ', x mod 10); writeln('разряд десятков: ', x mod 100 div 10); writeln('разряд сотен: ', x div 100); a: =x+x+x; b: =x*x*x; writeln ('сумма = ', a); writeln ('произведение = ', b); end; )

Информатика

Ответы

fancy-decor67
Ты просто вывел на экран разряды, но никуда их не записал. Поэтому переменная x по прежнему хранит все число. Из за этого ты просто производил действия сложения и умножения с одним и тем же числом.
Что бы все заработало присвой каким-нибудь переменным, значения которые ты выводил, и проводи действия уже над ними.
evgeniy1988486
Вот рабочая программа:
var
x,a,b,c,proiz,sum:integer;
begin
WriteLn('Введите 3-ех значное число');read(x);
a:=x mod 10;
b:= (x div 10) mod 10;
c:=x div 100;
sum:=a+b+c;
proiz:=a*b*c;
WriteLn('Произведение разрядов=', proiz);
WriteLn('Сумма разрядов=', sum);
end.
MaratФам

c = 15   c = 2.00     c = 25              c = 9

c = 3    c = 1            c = 100             100

'qm'     c = ''   c = school2      error

Объяснение:

+ сложение(если строку str складывают с другой они просто скрепляются

// деление с выделением целой части

/ обычное деление чисел (происходит в формате float) даже если ответ целое число мы показывает десятые и сотые числа

% деление с выделением остатка

* умножение (если строка str умножается на целое число, то эта строка пишется несколько раз БЕЗ ПРОБЕЛА

** возведение в степень

max функция которая ищет максимум

строку на строку перемножать нельзя программа ложиться и выдаёт ошибку

Agadzhanyan-Ekaterina

Итак, целевой язык - C++. Это значит мы - радостные обладатели технологии потоков, с коей мы будем производить весь ввод/вывод как при работе с файлами, так и при работе со стандартным вводом/выводом (консолью).

Ну а раз уж мы работаем с потоками, то будем делать это красивенько: создадим класс-обёртку для потока ввода, цель которого - поиск в этом потоке цитат и отправка их на поток вывода (который мы передаём).

[!] Стоит отметить, что по заданию не сказано, что есть разница между ' и ". Поэтому будем считать их одинаковыми.

[!] Внимание! Рядом с исполняемым файлом надо создать текстовый файл data.txt c текстом и цитатами.

Код

С++11

#include <iostream>#include <fstream>using std::cout;class QuotesFinder {    std::istream &in_stream;    bool is_it_in_quote = false;public:    QuotesFinder() = delete;    QuotesFinder(QuotesFinder&&) = default;    QuotesFinder(QuotesFinder const&) = default;    explicit QuotesFinder(std::istream &is) : in_stream(is) {}    [[nodiscard]]    bool eof() const {        return in_stream.eof();    }    // Вот тут происходит вся магия    QuotesFinder& operator >> (std::ostream& out_stream) {        char buffer;        in_stream.get(buffer); //Получаем очередной символ из потока        if (buffer == '\"' || buffer == '\'') {            if (is_it_in_quote) {                is_it_in_quote = false;                out_stream << buffer;                out_stream << "\n";                return *this;            }            is_it_in_quote = true;        }        if (is_it_in_quote) {            out_stream << buffer;        }        return *this;    }};int main() {    std::ifstream file("data.txt");  // Открываем файл    if (!file.is_open()) {        cout << "File is not exits!";        return 1;    }    QuotesFinder finder(file);  // Создаём обёртку из файлового потока    while (!finder.eof()) // Пока не достигли конца потока        finder >> cout; // переправляем очередной кусок информации в поток вывода}
Написать программу на С++. Задача - Считать текст из файла и вывести на экран только цитаты, т. е. п

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Впаскале я написал программу что бы 3 значное число разбилось на единицы, десятки и сотни, а потом написал что бы эти 3 цифры перемножились, а он перемножает не только эти 3 цифры, но и цифры 10 и 100 которые я использовал что бы разбить число на десятки сотни и единицы, как исправить? (вот если что program qq; var x: integer; a, b: real; begin readln(x); writeln('разряд единиц: ', x mod 10); writeln('разряд десятков: ', x mod 100 div 10); writeln('разряд сотен: ', x div 100); a: =x+x+x; b: =x*x*x; writeln ('сумма = ', a); writeln ('произведение = ', b); end; )
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ЕвгенияСергеевна
ольга1801
Faed_Arakcheeva
muzaffarovich-Sergei1777
porotikova1004
borisova-valeriya
dashafox8739
artemkolchanov24
mariavayda88734
Shtorm-Shoe
lukur2005
kisuhakisa
silviya
jim2k
Шитенков