Вопрос задан 25.02.2019 в 05:32. Предмет Информатика. Спрашивает Добрых Дима.

С клавиатуры вводится строка, содержащая целые числа, отделённые друг от друга знаками

арифметических операций + - * /. Подсчитать и вывести значение этого выражения. Операции выполняются последовательно (как на калькуляторе) без учёта приоритета операций. Pascal Abc
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гусейнов Камил.
Var
   A,R:real;
   i,L,z:integer;
   S:string;
Begin
Read(S);
L:=Length(S);
i:=1;
R:=0;
While (S[i]in['0'..'9'])and(i<L) do
   Begin
   R:=R*10+StrToInt(S[i]);
   i:=i+1
   End;
While i<L do
   Begin
   Case S[i] of
      '+':z:=0;
      '-':z:=1;
      '*':z:=2;
      '/':z:=3;
   End;
   i:=i+1;
   A:=0;
   While (S[i]in['0'..'9'])and(i<L) do
      Begin
      A:=A*10+StrToInt(S[i]);
      i:=i+1
      End;
   if i=L then A:=A*10+StrToInt(S[L]);
   Case z of
      0:R:=R+A;
      1:R:=R-A;
      2:R:=R*A;
      3:R:=R/A;
   End;
   End;
WriteLn('R = ',R);
End.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

```pascal program Calculator;

var inputString: string; i: integer; currentValue, nextValue: real; currentOperation: char;

begin // Ввод строки с выражением writeln('Введите строку с арифметическим выражением:'); readln(inputString);

// Инициализация начальных значений currentValue := 0; currentOperation := '+';

// Обработка каждого символа строки for i := 1 to length(inputString) do begin case inputString[i] of '+', '-', '*', '/': begin // Выполнение операции с предыдущим значением case currentOperation of '+': currentValue := currentValue + nextValue; '-': currentValue := currentValue - nextValue; '*': currentValue := currentValue * nextValue; '/': currentValue := currentValue / nextValue; end;

// Установка новой операции currentOperation := inputString[i];

// Сброс значения для следующего числа nextValue := 0; end; else begin // Формирование числа из цифр nextValue := nextValue * 10 + strToInt(inputString[i]); end; end; end;

// Выполнение последней операции case currentOperation of '+': currentValue := currentValue + nextValue; '-': currentValue := currentValue - nextValue; '*': currentValue := currentValue * nextValue; '/': currentValue := currentValue / nextValue; end;

// Вывод результата writeln('Результат выражения: ', currentValue); end. ```

Программа предлагает ввести строку с арифметическим выражением, после чего она обрабатывает эту строку, выполняя операции последовательно без учета приоритета. Результат выводится на экран.

Примечание: Эта программа представляет собой простой пример и не включает в себя обработку ошибок или другие дополнительные функции.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос