Как написать программу, которая будет получать на входе строку, содержащую числовое выражение, например (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