2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
1

Перевести выражение, записанное в обычной (инфиксной) форме в постфиксную форму

22.12.2012, 15:27. Показов 3374. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста,по программированию, две задачки решить,просто дело таково,что преподаватель, просто скинул папку с книгами по ассемблеру и задания, ни слова ни сказав даже что такое ассемблер в теории я чуть уже подкреплен в дос боксе неучился компилировать, открывать запускать прогу в турбодебагере листал програмку,вот так чуток умею..если не сдам и не объсню,не защищу задачки то до экзамена не буду допущен((еще думаете это возможно, за 2-2,5 недели выучить асемблер?,так судя по действиям решил наш преподаватель)посмотрите задания,
1)Даны два массива А[1..М], В[1..М]. Переписать содержимое массива А[1..М] в обратном порядке в массив В[1..М]. Для решения использовать стек. Используйте прямую адресацию с индексированием.
2)Написать процедуру translate, которая переводит выражение (исходную строку), записанную в обычной (инфиксной) форме в постфиксную форму. Исходную строку ввести с клавиатуры, результат вывести на экран. Для решения использовать стек.
и желательно бы с коментариями хотя бы отдельных блоков,
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2012, 15:27
Ответы с готовыми решениями:

Написать программу, которая переводит выражение, записанное в обычной (инфиксной) форме в текстовом файле infix, в постфиксную форму
Дали непростые задачи по программированию. Кто бы мог хотя бы ввести меня в дело? Постфиксной...

Перевести выражение из инфиксной формы в постфиксную
Помогите пожалуйста написать программу. Дана строка, в которой записано математическое выражение в...

Перевод выражения из инфиксной в постфиксную форму
Перевести выражение из инфиксной в постфиксную форму. Вот мой код. Почему то на некоторых примерах...

Перевод арифметического выражения из инфиксной форму в постфиксную
Помогите написать код, попытки были но неудачные . polsk=raw_input("vvedi polskyy ") #infix or...

17
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
22.12.2012, 15:52 2
[FASM]
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    org 100h
    mov si, A
    mov cx, M
@1: lodsw
    push    ax
    loop    @1
    mov di, B
    mov cx, M
@2: pop ax
    stosw
    loop    @2
    int 20h
A   dw  1,2,3,4,5,6,7,8,9,10
M   = ($-A) /2
B   dw  M dup(?)
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
22.12.2012, 17:50  [ТС] 3
Ничего себе вы даете,а прокоментируйте чуток строчки как бы в общем понимаю что в стек знаесли вынесли и чуток еще..пожалуйста,блин круто

Добавлено через 1 час 51 минуту

,у меня проблемка,не компилируется ваша программа может ли такое быть то что у меня tasm старенький а то фиг знает с каких лет нам дали программки, скачал себе дос бокс ,в дос боксе прописываю mount C C:\asm1\ дальше пишу С:\ это вроде как я смонтировал дирикторию,как я понимаю путь к папке моей где лежат все файлы касающиеся ассемблера в том числе и компилируемые файлы, потом пишу С:\asm1\tasm.exe открывается tasm дальше пишу C:\asm1\tasm.exe /l m1.asm (где m1.asm это ваша программа скопированная в блакнот и сохраненная в расширении asm) в итоге выдется сообщение типо: assembling file: C:\asm1\m1.asm to m1.obj
Дальше несколько строчек
Error в которых написано code or data emission to undeclar segment
В предпоследней строке illegal forward reference : A
И в последне строке **Fatal** unexpected end of file encountered
После еще идет какая то сводка в которой eror messages 8
Warning messages none
Passes 1
Ramaring memory 465
Соответсвенно дальше когда хочу через tlink
Пишу
Код
С:\asm1\tlink.exe /v C:\asm1\M1.obj
И снова ошибка
fatal to open file C:\asm1\m1.obj
типо новерно не смог нйти файл obj так как он не сделался

у кого есть какие предложения по решениям выше упомянутых заданий покажите пожалуйста
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
22.12.2012, 18:02 4
Цитата Сообщение от Mexx2304 Посмотреть сообщение
не компилируется ваша программа
А, дык вам под тасм...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
;tasm /m3 m1 && wlink form dos com fi m1
.model  tiny
.386
.code
    org 100h
start:  lea si, A
    mov cx, M
@1: lodsw
    push    ax
    loop    @1
    lea di, B
    mov cx, M
@2: pop ax
    stosw
    loop    @2
    int 20h
A   dw  1,2,3,4,5,6,7,8,9,10
M   = ($-A) /2
B   dw  M dup(?)
    end start
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
22.12.2012, 18:14  [ТС] 5
щас в тасме ошибок нет но в линке пишет NO stack , я как понял это вы сделали для первого задания програмку?думаю я вас заколебу,извиняюсь что много вопросов,новичок(
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
22.12.2012, 18:18 6
tlink /t proga.obj
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
22.12.2012, 18:42  [ТС] 7
Цитата Сообщение от Charles Kludge Посмотреть сообщение
tlink /t proga.obj
щас откомпилировалось и файл com есть и exe, запускаю exe в doc box просто зависает(не отвечает) хотя при запуске других прог готовых прог все работает, и вопрос почему /t а не /l,когда раньше с /l все работала в чем подвох и разница.
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
22.12.2012, 19:46 8
Цитата Сообщение от Mexx2304 Посмотреть сообщение
запускаю exe
А вот его лучше стереть. /t он же /Tde - компоновать .COM-файл, самый простой формат. И зачем вам /l в 20 строках кода?
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
25.12.2012, 00:08  [ТС] 9
мне кажется у меня будет очень много вопросов,можете мне как дурачку разъяснить,это ведь лишь первая задачка? про компоновки усвоил, я думал смысл задачки 1 что я ввожу с клавиатуры два массива, а потом первый массив после нажатия скажем ентер записывается во второй в обратном порядке, просто когда я буду защищать эту задачку.буду рассказывать и показывать что делал..соответсвенно запускать и там ничего не выведется, у меня она запустилась как внутренняя программа без вывода результата, запускал свой файл с расширением com,

Добавлено через 21 час 14 минут
кто-нибудь помогите

Добавлено через 22 часа 37 минут
Цитата Сообщение от Mexx2304 Посмотреть сообщение
мне кажется у меня будет очень много вопросов,можете мне как дурачку разъяснить,это ведь лишь первая задачка? про компоновки усвоил, я думал смысл задачки 1 что я ввожу с клавиатуры два массива, а потом первый массив после нажатия скажем ентер записывается во второй в обратном порядке, просто когда я буду защищать эту задачку.буду рассказывать и показывать что делал..соответсвенно запускать и там ничего не выведется, у меня она запустилась как внутренняя программа без вывода результата, запускал свой файл с расширением com,

Добавлено через 21 час 14 минут
кто-нибудь помогите
пожалуйста

Добавлено через 6 часов 50 минут
Цитата Сообщение от Charles Kludge Посмотреть сообщение
А вот его лучше стереть. /t он же /Tde - компоновать .COM-файл, самый простой формат. И зачем вам /l в 20 строках кода?
Хотел извиниться перед вами,просто просил чтобы вводились с клавиатуры,а задание не так понял,она должна выполняться как внутрення программа как вы и написали,первую)где про массивы..спасибо,щас буду в ней разбираться,побольше бы таких хороших людей как вы
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
25.12.2012, 13:45  [ТС] 10
Написать процедуру translate, которая переводит выражение (исходную строку), записанную в обычной (инфиксной) форме в постфиксную форму. Исходную строку ввести с клавиатуры, результат вывести на экран. Для решения использовать стек.
и желательно бы с коментариями хотя бы отдельных блоков
Извиняюсь за перепост,просто очень срочно нужно,а та тема уже загрязнена,мной.ту тему большге не буду поднимать.Попробуйте кто нибудь написать,если не затруднит,я просто программы писать не умею,за неделю этому не научиться,по готовой программе ищя в чебниках сколько то понимаю(для Tasm)
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
25.12.2012, 14:34 11
Здесь достаточно сменить порядок вывода и отсечь лишнее...
1
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
25.12.2012, 15:13  [ТС] 12
Цитата Сообщение от Charles Kludge Посмотреть сообщение
Здесь достаточно сменить порядок вывода и отсечь лишнее...
А можете подправит сами, а то в ассемблере буду разбираться хоть сколько то через месяцок другой,пока лишь в матлабе разбираюсь)сколько то в асемблере 1 процент из ста,пожалуйста
0
Ушел с форума
Автор FAQ
16338 / 7658 / 1075
Регистрация: 11.11.2010
Сообщений: 13,692
25.12.2012, 16:36 13
Цитата Сообщение от Mexx2304 Посмотреть сообщение
А можете подправитЬ сами
Charles Kludge,
как предсказуемо, а за дипломом, наверное, сам пойдет?
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
25.12.2012, 17:19  [ТС] 14
Цитата Сообщение от Mikl___ Посмотреть сообщение
Charles Kludge,
как предсказуемо, а за дипломом, наверное, сам пойдет?
Предсказуемо потому что я написал что не силен,и вообще "никакой" в ассемблере,не тупой, по остальным предметам успеваемость супер особенно в математике,среди двух групп лучше всех пока что,да и по этому предмету было супер до ассемлера,просто не успеть никак выучить за неделю ассемблер,не знав о нем ничего ,сдавая кучу лабораторок и занимаясь спортом,а на счет димплома еще рано,всего второй курс,кто нибудь поможет?буду очень благодарен,с небольшими комментариями
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
25.12.2012, 17:30 15
Цитата Сообщение от Mexx2304
успеваемость супер особенно в математике
Цитата Сообщение от Mexx2304 Посмотреть сообщение
с небольшими комментариями
Небольшой комментарий: обратитесь к фрилансерам.
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
25.12.2012, 17:36  [ТС] 16
Цитата Сообщение от Charles Kludge Посмотреть сообщение
Небольшой комментарий: обратитесь к фрилансерам.
ну а хотя бы без коментариев?
0
Почетный модератор
21409 / 9143 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
25.12.2012, 18:55 17
Mikl___, Charles Kludge, оффтоп прекращаем.


Mexx2304, а Вы этот самый оффтоп не провоцируйте. Вы бросили прошлую тему и из этой сделали то же самое. Дублирование запрещено, Ваши темы объединены.
0
2 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 45
26.12.2012, 17:05  [ТС] 18
Цитата Сообщение от Памирыч Посмотреть сообщение
Mikl___, Charles Kludge, оффтоп прекращаем.


Mexx2304, а Вы этот самый оффтоп не провоцируйте. Вы бросили прошлую тему и из этой сделали то же самое. Дублирование запрещено, Ваши темы объединены.
Извиняюсь,в след. раз учту

Добавлено через 18 часов 37 минут
Помогите пожалуйста кто-нибудь исправить код программы который дан Charles Kludge,код находится выше

Добавлено через 3 часа 29 минут
Цитата Сообщение от Mexx2304 Посмотреть сообщение
Извиняюсь,в след. раз учту

Добавлено через 18 часов 37 минут
Помогите пожалуйста кто-нибудь исправить код программы который дан Charles Kludge,код находится выше
Искал в инете,и нашел пример такой в одном из учебников,там лишь не хватало $,обозначающих конец строки да синтаксическая ошибка,кому понадобиться такая программа то вот
Assembler
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
42
43
44
45
46
47
48
49
50
.MODEL SMALL
            .STACK 100h
            .DATA
         MAXIMUM_STRING_LENGTH  EQU  1000
         StringToReverse        DB   MAXIMUM_STRING_LENGTH  DUP (?), '$'
         ReverseString          DB   MAXIMUM_STRING_LENGTH  DUP (?), '$'
            .CODE
            mov    ax,@Data
            mov    ds,ax             ; установить регистр DS таким
                                     ; образом, чтобы он указывал
            mov    ah,3fh            ; функция DOS чтения ввода
            mov    bx,0              ; описатель стандартного ввода
            mov    cx,MAXIMUM_STRING_LENGTH ; считать до максималь-
                                     ; ного числа символов
            mov    dx,OFFSET StringToReverse ; сохранить строку
            int    21h               ; получить строку
            and    ax,ax             ; были считаны символы?
            jz     Done              ; нет, конец
            mov    cx,ax             ; поместить длину строки в
                                     ; регистр СХ, который можно
                                     ; использовать, как счетчик
            push   cx                ; сохранить в стеке длину
                                     ; строки
            mov    bx,OFFSET StringToReverse
            mov    si,OFFSET ReverseString
            add    si,cx
            dec    si                ; указывает на конец буфера
                                     ; строки
         ReverseLoop:
            mov    al,[bx]           ; получить следующий символ
            mov    [si],al           ; сохранить символы в
                                     ; обратном порядке
            inc    bx                ; указатель на следующий
                                     ; символ
            dec    si                ; указатель на предыдущую
                                     ; ячейку buffer
            loop   ReverseLoop       ; переместить следующий
                                     ; символ, если он имеется
            pop    cx                ; извлечь длину строки
            mov    ax,40h            ; функция записи DOS
            mov    bx,1              ; описатель стандартного
                                     ; вывода
            mov    dx,OFFSET ReverseString ; напечатать строку
            mov ah, 09
            int 21h
         Done:
            mov    ah,4ch            ; функция DOS завершения
                                     ; программы
            int    21h               ; завершить программу
            END
0
26.12.2012, 17:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2012, 17:05
Помогаю со студенческими работами здесь

Преобразование арифметического выражения из инфиксной в постфиксную форму записи
Помогите реализовать алгоритм I-P на Pascal...Для работы со стеком использовать связное...

Перевести выражение из инфиксной записи в префиксную
Нужно перевести арифметическое выражение в инфиксной записи в префиксную.

Выражение в инфиксной форме. СРОЧНО!!!
Помогите с прогой срочно надо: нужна функция, которая вычисляет выражение в инфиксной форме не...

Преобразовать выражение в постфиксную форму
Преобразовать выражение, составленное из цифр и знаков арифметических операций (+,-,*,/) в...

Преобразовать выражение в префиксной форме в постфиксную (C -> C++)
Помогите пожалуйста перевести программу на язык СИ. #include <cctype> #include <iostream>...

Из инфиксной в постфиксную
Привет, опять я с этим заданием. Уже глаз болит, не могу понять в чем беда. Проблема при...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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