Как написать программу вычисления выражения

Как написать программу, которая будет получать на входе строку, содержащую числовое выражение, например (10 — 5) * 3, и выдавать соответствующий результат? Если среди программистов и есть «высшие священники», то это те, кто знает, как решить подобную задачу. Многие, притом высококвалифицированные в других областях программисты не имеют представления о том, как трансляторы, разработанные для компиляции программ, написанных на языках высокого уровня, преобразовывают алгебраические выражения в команды, выполняемые компьютером. Эта процедура называется синтаксический разбор выражений (expression parsing) и является основой всех компиляторов и интерпретаторов языков, электронных таблиц и всех остальных программ, в которых требуется превращать числовые выражения в форму, понятную компьютеру.

Несмотря на свою загадочность, синтаксический разбор выражений является довольно прямолинейным процессом и во многих аспектах проще, чем некоторые другие задачи программирования. Это обусловлено тем, что задача синтаксического разбора четко определена и решается в соответствии со строгими правилами алгебры. В настоящей главе будет разработан рекурсивный нисходящий синтаксический анализатор , или синтаксический анализатор методом рекурсивного спуска (recursive-descent parser), a также все функции, необходимые для вычисления выражений. Освоив принцип действия этой программы, вы с легкостью сможете доработать и модифицировать ее в соответствии со своими задачами.

Урок 3. Изучаем Python. Запись математических выражений. Библиотека Math

  • Выражения
  • Разбиение выражения на лексемы
  • Разбор выражений
  • Простая программа синтаксического анализа выражений
  • Работа с переменными в анализаторе
  • Проверка синтаксиса в рекурсивном нисходящем анализаторе

Источник: t-r-o-n.ru

Как написать программу вычисления выражения

Составить программу для вычисления заданного математического выражения на основе реализации указанной функции

Хелп пж,а то даже понятия не имею что да как.
Это все 1 задание.
1. Составить программу для вычисления заданного математического выражения на основе реализации указанной функции
2. Разработать и реализовать процедуру обработки элементов массива

Читайте также:
На какой программе в мультиварке готовить овощное рагу

1.выражение
2.функция
Безымянный (1).png
Составить программу для вычисления заданного математического выражения на основе реализации указанной функции

Процедура должна определить среднее арифметическое значение и
количество положительных элементов одномерного массива с n целых
элементов

Регистрация: 17.11.2010
Сообщений: 19,042

Вы не перепутали «помогите» и «сделайте за меня»?

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.

Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

ОПЕРАТОРЫ. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ С ЧИСЛАМИ В C# | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | Урок # 8

Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,919

function cth(p:real):real; begin Result:=(Exp(p)+Exp(-p))/(Exp(p)-Exp(-p)); end; var a,b,x,y:real; begin Write(‘a = ‘); Readln(a); Write(‘b = ‘); Readln(b); Write(‘x = ‘); Readln(x); Write(‘y = ‘); Readln(y); y:=(cth(a*x)+cth(b*y))/Sqrt(Sqr(cth(b*y))+Sqr(cth(a*x))); Writeln(y:5:8); Readln; end.
const n=10; procedure mmm(p:array of integer; var sr:real; var c:integer); var i:integer; begin sr:=0; c:=0; For i:=0 to n-1 do begin sr:=sr+p[i]; If p[i]>0 then c:=c+1; end; sr:=sr/n; end; var p:array[0..n-1] of integer; i,c:integer; sr:real; begin Randomize; For i:=0 to n-1 do begin p[i]:=-10+Random(21); Write(p[i]:3,’ ‘); end; Writeln; Writeln; mmm(p,sr,c); Writeln(sr:1:2,’ ‘,c); Readln; end.

Источник: www.programmersforum.ru

Написать программу на Ассемблере вычисления выражений: b/c + ас. Результат вычисления выражения сохранить в памяти. Навести значение и порядок размещения данные в памяти.

.model flat,stdcall ; задание линейной модели памяти
; но соглашения ОС Windows
option casemap:none ; отличие строчных и прописных букв
includelibmasm32libkernel32.lib
ExitProcess proto :DWORD
ADDDD proto :WORD, :WORD, :WORD ; прототип процедуры
.data ; директива определения данные
res dw 2 dup(0) ; резервирование амбарчиков для результата
.code ; директива начала кода программы
start: ; метка начала программы с именем start
invoke AddDD,5,86,1986 ; вызов директивы AddDD с параметрами
invoke ExitProcess,0
ADDDD proc arg1:WORD,arg2:WORD,arg3:WORD
mov eax,0 ; очистка регистров
mov ebx,0
mov ecx,0
mov edx,0

Читайте также:
Увеличить громкость в наушниках на компьютере программа

mov ах,arg3 ; arg3 = 1986
div arg2 ; операция деления
mov bx,ax
mov cx,dx

mov ах,arg1 ; ах := arg1
mul arg2 ; ax* arg2 = 86
SHL edx,16 ; операция здвигу
mov dx,ax

add ebx,edx
mov res,cx ; запоминание в памяти
mov res+2,dx ; запоминание в памяти
ret ; возвращение из процедуры
AddDD endp ; окончание процедуры с именем AddDD
end start ; окончание программы с именем start

Источник: movaxbx.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru