Задать вопрос
17 сентября, 20:07

Program mm;

var o, oo, v, n, n1, q1, r1, y1:string;

l, x, b, z, y, r, q:integer;

begin

v:='вычислить ';

read (n);

n1:=n;

q:=pos (' + or - ', n);

q1:=copy (n, 1, q-1);

val (q1, x, r);

Delete (n, 1, q);

r:=pos (' - or + ', n);

r1:=copy (n, 1, r-1);

val (r1, b, r);

delete (n, 1, r);

y:=pos ('=', n);

y1:=copy (n, 1, y-1);

val (y1, z, r);

delete (n, 1, y);

if n[q]=' + 'then l:=x+b else l:=x-b;

if n[r]='-' then l:=l+z else l:=l-z;

o:=v+n1;

oo:='ответ='+' '+l;

writeln (o);

write (oo);

end.

пишет, что в этой строке (if n[q]=' + 'then l:=x+b else l:=x-b; ) Ошибка времени выполнения: Индекс находился вне границ массива.

+1
Ответы (1)
  1. 17 сентября, 23:42
    0
    Программа вычисляет значение выражения, состоящего из целых чисел и знаков "+"/"-" между ними. (Контроля правильности ввода нет!)

    var s, t:string; i, a, b, c:integer;

    begin

    write ('Введите выражение: ');

    readln (s);

    a:=0;

    t:='';

    for i:=1 to length (s) do

    begin

    if (s[i]'-') and (s[i]'+') and (s[i]'=')

    then t:=t+s[i]

    else begin val (t, b, c); a:=a+b; t:=s[i]; end;

    end;

    writeln (s, a);

    end.

    Пример:

    Введите выражение: 12+34-10=

    12+34-10=36
Знаешь ответ?
Не уверен в ответе?
Найди верный ответ на вопрос ✅ «Program mm; var o, oo, v, n, n1, q1, r1, y1:string; l, x, b, z, y, r, q:integer; begin v:='вычислить '; read (n); n1:=n; q:=pos (' + or - ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы