Другие языки программирования и технологии
Помогите сделать задачу по информатике (Pascal)
Условия задачи: Дана последовательность символов, имеющая следующий вид: p1q1p2q2p3...q(n-1)pn, где p(i)-цифра, а q(i)-знак арифмитического действия из набора (+,-,*). Вычислите значение выражения, предпологая, что действия выполняются согласно правилам арифметики. На вход программе подается строка указанного вида, состоящая не более чем из 9 цифр, разделенных символами арифметических операций. Выведите значение арифметического выражения. Пример входных данных: 5-2*3 Пример выходных данных: -1 P.S. Программа должна работать с файлами input и output.
итак, сделаю доброе дело, но может быть будут ошибки, если таковые будут, то пиши на мейл, исправим вместе
program imya(input, ounput);
uses crt;
var s,str:string;
i,n,m,znach,code:integer;
a:array [1..9] of integer;
b:array [1..8] of byte;
begin
asign(input,'input.txt');
reset(input);
read(s);
close(input);
n:=1;
m:=1;
str:=s[1];
for i:=2 to length(s) do
begin
if (s [ i ] <> '+') and (s [ i ] <> '-') and (s [ i ] <> '*') then str:=str+s [ i ];
if s [ i ] = '+') then
begin b [ m ]:=1;
val(str, a [ n ], code); {in a[ n ] hranitsya + chislo }
inc(n);
inc(m);
str:=s [ i ];
end;
if s [ i ] = '-') then
begin b [ m ]:=2;
val(str, a [ n ], code); {in a[ n ] hranitsya - chislo }
inc(n);
inc(m);
str:=s [ i ];
end;
if s [ i ] = '*') then
begin b [ i ]:=3;
val(str, a [ n ], code);
inc(n);
inc(m);
str:='';
end;
for i:=1 to 8 do
if b[ i ]=3 then begin a[ i ]:=a [ i ]*a[ i+1 ]; a[ i+1 ]:=0;
znach:=0;
for i:=1 to 9 do znach:=znach+ a[ i ];
assign (output,'output.txt');
rewrite(output);
write(znach);
close(output);
end.
ps fallout forever!!!
program imya(input, ounput);
uses crt;
var s,str:string;
i,n,m,znach,code:integer;
a:array [1..9] of integer;
b:array [1..8] of byte;
begin
asign(input,'input.txt');
reset(input);
read(s);
close(input);
n:=1;
m:=1;
str:=s[1];
for i:=2 to length(s) do
begin
if (s [ i ] <> '+') and (s [ i ] <> '-') and (s [ i ] <> '*') then str:=str+s [ i ];
if s [ i ] = '+') then
begin b [ m ]:=1;
val(str, a [ n ], code); {in a[ n ] hranitsya + chislo }
inc(n);
inc(m);
str:=s [ i ];
end;
if s [ i ] = '-') then
begin b [ m ]:=2;
val(str, a [ n ], code); {in a[ n ] hranitsya - chislo }
inc(n);
inc(m);
str:=s [ i ];
end;
if s [ i ] = '*') then
begin b [ i ]:=3;
val(str, a [ n ], code);
inc(n);
inc(m);
str:='';
end;
for i:=1 to 8 do
if b[ i ]=3 then begin a[ i ]:=a [ i ]*a[ i+1 ]; a[ i+1 ]:=0;
znach:=0;
for i:=1 to 9 do znach:=znach+ a[ i ];
assign (output,'output.txt');
rewrite(output);
write(znach);
close(output);
end.
ps fallout forever!!!
Похожие вопросы
- Задача по информатики PASCAL
- Помогите решить задачу по информатике 9 класс. Pascal ABC
- Непойму почему программа не работает (Задача по информатике(Pascal))
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- помогите сделать задачу по Pascal Указать минимальный нечетный элемент в последовательности, содержащей целые числа.
- Мне задали сделать задачу по Turbo Pascal, но я забыл что нужно писать в var и READ. подскажите пожалуйста.
- Помогите с задачей по информатике. Срочно прошу.
- Помогите решить задачу через процедуры PASCAL
- Помогите решить задачу по Turbo Pascal пожалуста
- Помогите решить задачу на языке Pascal