Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Вычислительные системы Добавлено: 08.05.09 19:54  

Автор вопроса:  D o c a l  | Web-сайт: www.doc-source.pp.net.ua/ | ICQ: 408802757 
Давно я не был уже на форуме.Началась учёба..первый год в университе,сложно учиться.Ну я канеш не особо и учучь;).Учусь на математическом факультете спецыальность Прикладная математика.Тоесть учим математику и как её испоьзывать на деле...тоесть программирования...Есть у нас Такой предмет как "Вычислительные системы" где мы создаем свою вычислительную машину с не боьшим наором команд...тоесть печатаеш команды например:


RDRA
INCA 5
WRRA
STOP


программа анализирует и каждую строку и выпоняет определенные действия.Например RDRA -считывает значения целового типа в регистр RA,INCA -к регистру RA плюсует значения которое передаетса ей в параметре,WRRA-печает значения RA на экран,STOP-останавивает программу.Всё это реализируетса на ПАСКАЛЕ.Каждая команда имеет свой номер.Напимер RDRA-15, WRRA-13, STOP-0 и так дальше...
Ну и вот сам то вопрос.Я например все команды записал в файл и возле каждой поставил её номер.
Вот так:

STOP 0
.
.
.
WRRA 13
.
.
.
RDRA 15

потом читаю всё это дело в массив ЗАПИСЕЙ(RECORD)(TYPE по бейсиковськи)
а потом когда идет анализ просто перебираю эти записи в цыкле и ищу назву команды получаю ее код а потом кейсом по номеру команды выполняю действия которые отвечают данной команде.Но мой учитель по предмету мне рекомендует получать номер команды инным путем,говорит мой способ трудоемкий,я канеш с ним согласен, но вот что он мне предлагает(сначала кратко о командах:каждая комнда складенная из 4 символов,всего команд ~80):
Розбить все команды по группам смотря с какой буквы они начинаютса тоесть:

LDRA
LDRI
LOOP

это одна група (первая буква одинакова)
и писать такой код
CASE CodeNAME[1] of (тоесть идет касе по первой букве)
'L':CASE CodeNAME[2] of
    'D':CASE CodeNAME[3] of
        'R':CASE CodeNAME[4] of
            'A':{выполения LDRA}
            'I':{выполения LDRІ}
    'O':CASE CodeNAME[3] of
         'O':CASE CodeNAME[4] of
             'P':{выполнения LOOP}
.
.
.
ну и так дальше


Тоесть оно действительно бережет силы процессора ...но силы программиста оно нещадит..это очень нудно и долго делать формировать эти кейсы...причем нет возможности после компилировки добавлять команды... с исходниками придеться таскаться и с компилятором,а еше их потом добавлять эт мучения.
Кто что думет об этом?Как правильнее делать?Мне интересно ваше мнения!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 08.05.09 21:57
lex, yacc

Ответить

Номер ответа: 2
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 09.05.09 01:10
Препод видимо паскалист-геморойщик :) ему класс покажешь и не поймет небось.
Моe мнение херней вы там занимаетесь вместо того чтоб для начала синтаксис сишных команд учить.
Не пропадай, заглядывай почаще!

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 09.05.09 06:48
Не знаю, на большом кол-ве команд я, наверное, делал бы через Dictionary с делегатами.

То что препод советует, разумеется, будет работать (теоритически) быстрее, но я лично так бы не делал.

Ответить

Номер ответа: 4
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #4
Добавлено: 09.05.09 14:32
Smith пишет: Не пропадай, заглядывай почаще!
-та уж буду стараться!смотря как со временем будет!

Smith пишет: Моe мнение херней вы там занимаетесь вместо того чтоб для начала синтаксис сишных команд учить.
ну мы только основы учим.паскаль найболее легкий язык и то большинству с трудом даеться.

Smith пишет: Препод видимо паскалист-геморойщик ему класс покажешь и не поймет небось.
-та не вроди за ним такого не замечал.Умный ,молодой дядя!шарит свое дело... но вот просто его способ мне не нрав потому что кажетса мне не практичным...хотя я и понимаю что работает он максимаьно быстро....


Steel Brand пишет:
 но я лично так бы не делал.
-та блин и я так не хтю -геморойно как то!!!

Dictionary с делегатами
-ща прочту что это такое...

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 13.05.09 01:42
Ну его тот предмет, где паскаль учат...:) Займись делом, заработай денег и закрой себе сессию :)

Ответить

Номер ответа: 6
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 13.05.09 01:50
+1

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам