Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Oskard1
1

Вычисление выражения

27.02.2013, 19:05. Показов 967. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С клавиатуры вводится строка, содержащая знаки арифметических операций + - и заканчивающаяся =. Написать программу, вычисляющую значение полученного арифметического выражения.
Если можно, с помощью процедуры\функции.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2013, 19:05
Ответы с готовыми решениями:

Вычисление выражения
Даны числа a и b, необходимо вычислить sqrt(b+sqrt(2b+sqrt(3b+ ... +sqrt((a-1)b+sqrt(ab))))))) ...

Вычисление выражения
y=exp(5*ln(x))*exp(2*(sin(exp(3*ln(x+b))/cos(exp(3*ln(x+b)))+(x-5)/exp(3*ln(x+b)) решите...

Вычисление выражения
Даны натурально число n действительное число x. Вычислить n Ʃ x^i/i! i:=1

Вычисление арифметического выражения
Помогите пожалуйста с написанием программы. Необходимо написать программу, которая вычисляет...

3
Кодинг - это искусство...
64 / 64 / 42
Регистрация: 07.01.2013
Сообщений: 156
27.02.2013, 20:02 2
Если я правильно понял, то так
Пробелы ставить нельзя, в дробных числах стоит точка, а не запятая, не забывать про "="(сам раз 10 забыл )
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
uses crt;
var
  s:string;
  
function Otvet (fs:string):real;
var
  i,pff:integer;
  chisl:string;
  znak:char;
  x1,x2:real;
begin
  i:=0; x1:=0; x2:=0;
  chisl:=''; znak:='+';
  
  repeat
    inc(i);
    while ((fs[i]<>'+') and (fs[i]<>'-') and (fs[i]<>'=')) and (i<Length(fs)) do
      begin
        chisl:=chisl+fs[i];
        inc(i);
      end;
    Val(chisl,x2,pff);
    chisl:='';
 
    if znak='+' then
      x1:=x1+x2
    else if znak='-' then
      x1:=x1-x2;
    znak:=s[i];
  until znak='=';
  
  Result:=x1;
end;
 
{---MAIN PROGRAMM---}
BEGIN
  s:='';
  write('Vvedite virajenie: ');
  readln(s);
  write(s,Otvet(s));
END.
1
Oskard1
02.03.2013, 17:25 3
А что надо вписать, чтобы скобки распознавал? С умножением/делением разобрался, а вот скобки не знаю как делать.
Кодинг - это искусство...
64 / 64 / 42
Регистрация: 07.01.2013
Сообщений: 156
03.03.2013, 09:11 4
А Вы приоритет умножения и деления учли?))
Сейчас я не могу сделать, но может как-нибудь программно сделать что-то вроде:
12+32*3+(23-7)+4*(3+8)=
после чего "просканировав" текст на наличие скобок преобразовать в:
12+32*3+16+4*11=
то есть не в один ход, а в два Тогда уже для этой строки будет работать ваш код
0
03.03.2013, 09:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2013, 09:11
Помогаю со студенческими работами здесь

Вычисление выражения по формуле
Привет Помогите пожалуйста! Написать программу на языке паскаль для вычисления выражения по...

Вычисление выражения по формуле
прошу напишите программу

Рекурсия: вычисление выражения
Написать программу с рекурсивной функцией, вычисляющей \huge...

Вычисление арифметического выражения
составить программу для вычисления арифметического выражения при заданных данных x ,a и b. прошу...

Напишите програмку на вычисление выражения
Дано действительные числа X,Y,Z. Вычислить выражение mіn(X+Y+Z/2, X*Y*Z) + 1. Помогите пожалуйста,...

Вычисление выражения с использованием процедур
Помогите написать выражение с использованием процедур. Для организации вычислений по заданной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru