Другие языки программирования и технологии
Вопрос по ПАСКАЛЮ!!!!ХЕЛП МИ !!!
Помогите с этой задачей парюсь битый час!!!!завтра здавать надо ! у мя практика ! Програмисты вооружитесь и помогите мне ! ХЕЕЛЛППП ОПЕРАТОР ВЫБОРА!!!! Ввести два числа, знак арифмитического действия (+ - * \ ) вывести на экран результат соответствующего действия!!!!
Если просто
program xxx;
var
st:string;
a,b,c:real;
begin
WriteLn('Ââåäèòå ïåðâîå ÷èñëî');
readln(a);
WriteLn('Ââåäèòå çíàê îïåðàöèè * + -/ ');
readln(st);
WriteLn('Ââåäèòå âòîðîå ÷èñëî');
readln(b);
if st='*' then c:=a*b;
if st='-' then c:=a-b;
if st='+' then c:=a+b;
if st='/' then c:=a/b;
WriteLn('Ðåçóëüòàò', a,st,b,'=',c );
end.
program xxx;
var
st:string;
a,b,c:real;
begin
WriteLn('Ââåäèòå ïåðâîå ÷èñëî');
readln(a);
WriteLn('Ââåäèòå çíàê îïåðàöèè * + -/ ');
readln(st);
WriteLn('Ââåäèòå âòîðîå ÷èñëî');
readln(b);
if st='*' then c:=a*b;
if st='-' then c:=a-b;
if st='+' then c:=a+b;
if st='/' then c:=a/b;
WriteLn('Ðåçóëüòàò', a,st,b,'=',c );
end.
var a,b,d:real; c:char;
begin
readln(a); readln(b); readln(c);
case c of '+': d:=a+b; '-': d:=a-b; '*': d:=a*b; '/': d:=a/b end;
writeln(d:10:2); readln
end.
begin
readln(a); readln(b); readln(c);
case c of '+': d:=a+b; '-': d:=a-b; '*': d:=a*b; '/': d:=a/b end;
writeln(d:10:2); readln
end.
var
a,b: integer;
c: char;
z:real;
begin
read(a);
read(c);
read(b);
case с of
' + ' : z:= x + y;
' - ' : z:= x - y;
' * ' : z : = x * y;
' / ' : z : = x / y;
end;
writeln;
writeln(z);
readln;
end.
a,b: integer;
c: char;
z:real;
begin
read(a);
read(c);
read(b);
case с of
' + ' : z:= x + y;
' - ' : z:= x - y;
' * ' : z : = x * y;
' / ' : z : = x / y;
end;
writeln;
writeln(z);
readln;
end.
1)вводишь данный вида 10/2 в строку
readln(s);
2)делаешь проверку корректности введённых данных, чтобы было обязательно число, потом знак, потом число
3)выясняешь позицию знака в строке
j:=1;
while not (с in ['+','-',*',/']) do
begin
c:=s [j] ;
n:=j;
end;
4)далее копируешь подстроку до знака и переводишь её в числовой формат
substr:=copy(s,1,n-1);
val(s,number1,er);
5)заносишь знак в отдельную переменную типа char
znak:=copy(s,n,1);
6)аналогично пункту 4 копируешь второе число и переводишь его в числовой формат
7)производишь арифметическое действие используя свой любимый оператор выбора
case znak of
'+': result:=number1+number2;
'-': result:=number1-number2;
'*': result:=number1*number2;
'/': result:=number1/number2;
end;
8) выводишь результат на экран
writeln(result);
readln(s);
2)делаешь проверку корректности введённых данных, чтобы было обязательно число, потом знак, потом число
3)выясняешь позицию знака в строке
j:=1;
while not (с in ['+','-',*',/']) do
begin
c:=s [j] ;
n:=j;
end;
4)далее копируешь подстроку до знака и переводишь её в числовой формат
substr:=copy(s,1,n-1);
val(s,number1,er);
5)заносишь знак в отдельную переменную типа char
znak:=copy(s,n,1);
6)аналогично пункту 4 копируешь второе число и переводишь его в числовой формат
7)производишь арифметическое действие используя свой любимый оператор выбора
case znak of
'+': result:=number1+number2;
'-': result:=number1-number2;
'*': result:=number1*number2;
'/': result:=number1/number2;
end;
8) выводишь результат на экран
writeln(result);
Александр Гужников
На самом деле такой вариант маленько сложнее, можно сделать и проще как тебе написали выше...
Уточни, каким именно образом делать ввод? Если ввод делать подобным оборазом: 10 \ 2 то программа очень простая ;)
-------------------------
Добавлено спустя 5 минут
Ну и думай дальше, если уточнять нехочешь ;) офф с темы, так бы накалякал программу.
-------------------------
Добавлено спустя 5 минут
Ну и думай дальше, если уточнять нехочешь ;) офф с темы, так бы накалякал программу.
Похожие вопросы
- Антивирусник NOD перестал обновляться, на антивирусные сайты не выйти. Вирус, блин! Хелп ми!!!
- Хелп ми
- delphi хелп ми))
- Хелп ми) выкл. комп, на экране-поврежден файл Windows32.Что теперь?
- программирование хелп ми
- Вопрос по паскалю и его применению.
- Нубские вопросы по паскалю. *)
- Вопросы про паскаль
- Вопрос по паскалю
- возник вопрос по паскалю