LINUX.ORG.RU

Сообщения pseudo-cat

 

OpenGL z coordinate

Форум — Development

если сделать translate(0 0 -10) перед отрисовкой, рисуемый объект должен быть виден? уменьшен? Вот есть код - http://paste.lisp.org/display/121313, в нём при zoom от 1.4499997 до -1.4999996 объект виден, при выходе из этого диапазона ничего не видно

pseudo-cat
()

Не могу собрать библиотечку

Форум — Development

Виндовс, библиотека на основе qt, в папке с файлами библиотеки есть

commonqt.cpp commonqt.h commonqt.pro

commonqt.pro:

unix:TEMPLATE     = lib
win32:TEMPLATE    = vclib

HEADERS     += commonqt.h
SOURCES     += commonqt.cpp
CONFIG      += qt thread debug dll

unix:LIBS += -lsmokeqtcore
win32:LIBS += smokeqtcore.lib

Видимо я чего-то не понимаю и делаю не так(хотя дело вроде в кривых путях к создаваемым Makefile.Debug и Makefile.Release), а делаю я следующее -

qmake -makefile

C:\Documents and Settings\Kovalev\quicklisp\dists\quicklisp\software\commonqt-20
110110-git>qmake -makefile
WARNING: Unable to generate output for: C:/Documents and Settings/Kovalev/quickl
isp/dists/quicklisp/software/commonqt-20110110-git//Makefile.Debug [TEMPLATE vcl
ib]
WARNING: Unable to generate output for: C:/Documents and Settings/Kovalev/quickl
isp/dists/quicklisp/software/commonqt-20110110-git//Makefile.Release [TEMPLATE vclib]
clib]
Думаю видно что не может сгенерироваться. В результате имеем Makefile -
#############################################################################
# Makefile for building: commonqt
# Generated by qmake (2.01a) (Qt 4.7.0) on: ?? 17. ??? 15:25:47 2011
# Project:  commonqt.pro
# Template: vclib
# Command: c:\Qt\2010.05\qt\bin\qmake.exe -o qmake.log commonqt.pro
#############################################################################

first: debug
install: debug-install
uninstall: debug-uninstall
MAKEFILE      = qmake.log
QMAKE         = c:\Qt\2010.05\qt\bin\qmake.exe
DEL_FILE      = del
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
COPY          = copy /y
COPY_FILE     = $(COPY)
COPY_DIR      = xcopy /s /q /y /i
INSTALL_FILE  = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR   = $(COPY_DIR)
DEL_FILE      = del
SYMLINK       = 
DEL_DIR       = rmdir
MOVE          = move
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
SUBTARGETS    =  \
		debug \
		release

debug: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug
debug-make_default: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug 
debug-make_first: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug first
debug-all: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: $(MAKEFILE).Debug FORCE
	$(MAKE) -f $(MAKEFILE).Debug uninstall
release: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release
release-make_default: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release 
release-make_first: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release first
release-all: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release all
release-clean: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release distclean
release-install: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: $(MAKEFILE).Release FORCE
	$(MAKE) -f $(MAKEFILE).Release uninstall

qmake.log: commonqt.pro  c:/Qt/2010.05/qt/mkspecs/default/qmake.conf c:/Qt/2010.05/qt/mkspecs/qconfig.pri \
		c:/Qt/2010.05/qt/mkspecs/modules/qt_webkit_version.pri \
		c:/Qt/2010.05/qt/mkspecs/features/qt_functions.prf \
		c:/Qt/2010.05/qt/mkspecs/features/qt_config.prf \
		c:/Qt/2010.05/qt/mkspecs/features/exclusive_builds.prf \
		c:/Qt/2010.05/qt/mkspecs/features/default_pre.prf \
		c:/Qt/2010.05/qt/mkspecs/features/win32/default_pre.prf \
		c:/Qt/2010.05/qt/mkspecs/features/debug.prf \
		c:/Qt/2010.05/qt/mkspecs/features/debug_and_release.prf \
		c:/Qt/2010.05/qt/mkspecs/features/default_post.prf \
		c:/Qt/2010.05/qt/mkspecs/features/win32/default_post.prf \
		c:/Qt/2010.05/qt/mkspecs/features/dll.prf \
		c:/Qt/2010.05/qt/mkspecs/features/shared.prf \
		c:/Qt/2010.05/qt/mkspecs/features/win32/thread.prf \
		c:/Qt/2010.05/qt/mkspecs/features/qt.prf \
		c:/Qt/2010.05/qt/mkspecs/features/moc.prf \
		c:/Qt/2010.05/qt/mkspecs/features/win32/rtti.prf \
		c:/Qt/2010.05/qt/mkspecs/features/win32/exceptions.prf \
		c:/Qt/2010.05/qt/mkspecs/features/win32/stl.prf \
		c:/Qt/2010.05/qt/mkspecs/features/warn_on.prf \
		c:/Qt/2010.05/qt/mkspecs/features/win32/windows.prf \
		c:/Qt/2010.05/qt/mkspecs/features/resources.prf \
		c:/Qt/2010.05/qt/mkspecs/features/uic.prf \
		c:/Qt/2010.05/qt/mkspecs/features/yacc.prf \
		c:/Qt/2010.05/qt/mkspecs/features/lex.prf \
		c:/Qt/2010.05/qt/mkspecs/features/include_source_dir.prf
	$(QMAKE) -o qmake.log commonqt.pro
c:\Qt\2010.05\qt\mkspecs\qconfig.pri:
c:\Qt\2010.05\qt\mkspecs\modules\qt_webkit_version.pri:
c:\Qt\2010.05\qt\mkspecs\features\qt_functions.prf:
c:\Qt\2010.05\qt\mkspecs\features\qt_config.prf:
c:\Qt\2010.05\qt\mkspecs\features\exclusive_builds.prf:
c:\Qt\2010.05\qt\mkspecs\features\default_pre.prf:
c:\Qt\2010.05\qt\mkspecs\features\win32\default_pre.prf:
c:\Qt\2010.05\qt\mkspecs\features\debug.prf:
c:\Qt\2010.05\qt\mkspecs\features\debug_and_release.prf:
c:\Qt\2010.05\qt\mkspecs\features\default_post.prf:
c:\Qt\2010.05\qt\mkspecs\features\win32\default_post.prf:
c:\Qt\2010.05\qt\mkspecs\features\dll.prf:
c:\Qt\2010.05\qt\mkspecs\features\shared.prf:
c:\Qt\2010.05\qt\mkspecs\features\win32\thread.prf:
c:\Qt\2010.05\qt\mkspecs\features\qt.prf:
c:\Qt\2010.05\qt\mkspecs\features\moc.prf:
c:\Qt\2010.05\qt\mkspecs\features\win32\rtti.prf:
c:\Qt\2010.05\qt\mkspecs\features\win32\exceptions.prf:
c:\Qt\2010.05\qt\mkspecs\features\win32\stl.prf:
c:\Qt\2010.05\qt\mkspecs\features\warn_on.prf:
c:\Qt\2010.05\qt\mkspecs\features\win32\windows.prf:
c:\Qt\2010.05\qt\mkspecs\features\resources.prf:
c:\Qt\2010.05\qt\mkspecs\features\uic.prf:
c:\Qt\2010.05\qt\mkspecs\features\yacc.prf:
c:\Qt\2010.05\qt\mkspecs\features\lex.prf:
c:\Qt\2010.05\qt\mkspecs\features\include_source_dir.prf:
qmake: qmake_all FORCE
	@$(QMAKE) -o qmake.log commonqt.pro

qmake_all: FORCE

make_default: debug-make_default release-make_default FORCE
make_first: debug-make_first release-make_first FORCE
all: debug-all release-all FORCE
clean: debug-clean release-clean FORCE
	-$(DEL_FILE) libcommonqt.a
distclean: debug-distclean release-distclean FORCE
	-$(DEL_FILE) qmake.log

check: first

debug-mocclean: $(MAKEFILE).Debug
	$(MAKE) -f $(MAKEFILE).Debug mocclean
release-mocclean: $(MAKEFILE).Release
	$(MAKE) -f $(MAKEFILE).Release mocclean
mocclean: debug-mocclean release-mocclean

debug-mocables: $(MAKEFILE).Debug
	$(MAKE) -f $(MAKEFILE).Debug mocables
release-mocables: $(MAKEFILE).Release
	$(MAKE) -f $(MAKEFILE).Release mocables
mocables: debug-mocables release-mocables
FORCE:

$(MAKEFILE).Debug: qmake.log
$(MAKEFILE).Release: qmake.log

также я хотел спросить про сам процесс создания мэйкфалов - Makefile и Makefile.Release, Makefile.Debug создаются независимо или последние 2 на основе первого?

pseudo-cat
()

cl -> mingw при компиляции выхлопа ecl

Форум — Development

cl - MSVC compiler
ecl - implementation of the Common Lisp language

после

(compile-file "koi7.lisp" :c-file t :h-file t :data-file t)
получаю следующие файлы: koi7.c koi7.h koi7.data

и далее для получения koi7.obj -

cl -I"C:/ecl/msvc/package/"  /EHsc /DGC_DLL /DGC_BUILD /nologo /D_CRT_SECURE_NO_DEPRECATE /DNDEBUG /MD /O2  /O2 -w -c "c:/home/sources/study/pdi/koi7.c" -Fo"c:/home/sources/study/pdi/koi7.obj"

а потом вот так(я приведу полный вывод из ecl, т.к. не знаю где и как там подчищаются временные файлы, ну а какие комманды cl исполняются тут видно)

CL-USER> (c:build-program "koi7" :lisp-files '("koi7.obj"))
;;; Note:
;;;   Invoking external command:
;;;   cl -I"C:/ecl/msvc/package/"  /EHsc /DGC_DLL /DGC_BUILD /nologo /D_CRT_SECURE_NO_DEPRECATE /DNDEBUG /MD /O2  /O2 -w -c "C:/DOCUME~1/PSEUDO~1/LOCALS~1/Temp/E5CC.c" -Fo"C:/DOCUME~1/PSEUDO~1/LOCALS~1/Temp/E5CC.obj"
;;; 
;;; Note:
;;;   Invoking external command:
;;;   cl -Fe"c:/home/sources/study/pdi/koi7.exe" "C:/DOCUME~1/PSEUDO~1/LOCALS~1/Temp/E5CC.obj" "c:/home/sources/study/pdi/koi7.obj"   /link /incremental:no /nologo /nodefaultlib:libcmt /nodefaultlib:libcmtd /nodefaultlib:libc /nodefaultlib:libcd /nodefaultlib:msvcrtd.lib ecl.lib user32.lib ws2_32.lib shell32.lib
;;; 
;;; Note:
;;;   Invoking external command:
;;;   mt -nologo -manifest "koi7.exe.manifest" "-outputresource:c:/home/sources/study/pdi/koi7.exe;1"
;;; 
#P"koi7.exe"

Мне нужно сделать всё это же с mingw, надеюсь тут есть знатоки, которые смогут перевести cl->gcc, т.к. сам я ни знаю толком ни того не другого. Заранее большое спасибо)

pseudo-cat
()

слова

Форум — Development

Добрый день.

Есть задача идентификации похожих слов(пока только русский и англ. языки).

Рассматриваемые варианты:
- идентифицировать по корню слова - перечислить все приставки, суффиксы, окончания (или сами корни :) ) и выделять корни из слов.
- представлять слово, как график зависимости веса буквы от её положения в слове(к примеру параболическая зависимость). Тогда по сумме весов, помноженных на коэф. положения в слове(спектр), к примеру опять же, можно судить о похожести слов.

Как бы 2 варианта - первое что пришло в голову и вряд ли лучшее. Задача давно известна, наверняка здесь есть люди, знакомые с ней.

Также в зависимости от решения можно будет подумать о способе составления словаря.

pseudo-cat
()

google translate api

Форум — Development

что-то не то я получаю посредством http-request'a от drakma:

TRANSLATER> (test "hello")
123:{   34:"   100:d   97:a   116:t   97:a   34:"   58::   123:{   34:"   116:t   114:r   97:a   110:n   115:s   108:l   97:a   116:t   105:i   111:o   110:n   115:s   34:"   58::   91:[   123:{   34:"   116:t   114:r   97:a   110:n   115:s   108:l   97:a   116:t   101:e   100:d   84:T   101:e   120:x   116:t   34:"   58::   34:"   208:Ð   191:¿   209:Ñ   128:€   208:Ð   184:¸   208:Ð   178:²   208:Ð   181:µ   209:Ñ   130:‚   34:"   125:}   93:]   125:}   125:}   
"{\"data\":{\"translations\":[{\"translatedText\":\"привет\"}]}}" 
((:DATA (:TRANSLATIONS ((:TRANSLATED-TEXT . "привет")))))
сам запрос

source-file:

(defun test (word)
  (let ((uri #U"https://www.googleapis.com/language/translate")
	(version "v2")
	(google-key "AIzaSyBxxVPeFAChUQ_LvjcfnoAbq9khjhNX0yU")
	(lang-from "en")
	(lang-to "ru"))
    (let ((json-reply (http-request     
		       (format nil "~A/~A?key=~A&source=~A&target=~A&q=~A"
			       uri version google-key lang-from lang-to word))))
      (let ((json-string (bin-arr->string json-reply "{")))
	(decode-json-from-string json-string)))))

(defun bin-arr->string (arr &optional (start-str ""))
  (loop for code across arr 
     for str = start-str then (format nil "~a~a" str (code-char code))
     do (format t "~a:~a   " code (code-char code)) 
     finally (return (print str))))

pseudo-cat
()

post/get sniffer

Форум — Admin

нужен снифер, чтобы удобный и лёгкий(т.к. всё что требуется - мониторить get/post запросы).


Пользуюсь google chrome и отдельным кодом, в котором могу также задавать user-agent при запросе. Т.е. хорошо бы иметь возможность ставить фильтры на user-agent(от которого идут запросы(и к которому идут ответы соответственно)). И на ресурс

pseudo-cat
()

микроконтроллеры и Фортран

Форум — Development

где-то слышал, что ценится фортран для их программинга. В чём выгода от его использования(если есть конечно)? Какие средства разработки имеются и как много мк их поддерживают?

pseudo-cat
()

рабочая среда под Андройдом

Форум — Mobile

я юзаю REPL + Scheme module и IEditTextEditor. Т.е. пишу в редакторе, затем копирую в REPL. Есть ли у кого-то опыт или полезное инфо о том, как можно сделать(из готовых продуктов) нормальную ide-подобную связку?

также интересует этот же вопрос для кодинга на других яп.

pseudo-cat
()

C#, интерфейс и реализация

Форум — Development

Почему если, к примеру, мы имеем объект типа List<List T>>, то нельзя его передать его ф-ции с параметром типа IEnumerable<IEnumerabe<T>>?

pseudo-cat
()

emacs, slime, warning

Форум — Development

постоянно всплывает варнинг типа: warning

.emacs, там в начале закоменчены несколько строк, связынные с установкой utf8, проблема появилась примерно после запуска с ними разкоменчеными.

pseudo-cat
()

C#, RDNL, Common Lisp

Форум — Development

Надо вызвать ф-цию на лиспе с аргументами C#-типов из кода на C#. Как?

pseudo-cat
()

join .NET and Common Lisp

Форум — Development

Пишем на C# и вот хочется встроить в проект некоторые алгоритмы на CL. Насколько реально?

pseudo-cat
()

подскажите алгоритмы

Форум — Development

с какими алгоритмами можно попробывать распознать такие цифорки? Расположение, размер, наклон постоянно изменяются.

http://xmages.net/show.php/1965333_image-jpeg.html

pseudo-cat
()

подграф в графе, стадия 2

Форум — Development

На входе имеем произвольный граф 1* и другой произвольный граф 2*(по размеру меньше). Нужно найти все похожие вхождения 2* в 1*.

Похожие, т.е. отличающиеся на определённое кол-во вершин или связей.

Алгоритма поиска точного вхождения у меня реализован, думаю поставить ряд условий и счётчик на несовпадения. Условия типа - если вершины не совпадают, то увеличиваем счётчик и идём по 2м путям: сопостваляя следующую вершину в 2* этой в 1* и наоборот. Ну и т.д..

Здесь хочу услышать каких-то советов. К примеру расставить веса у вершин, приоритеты и прочее. Граф, в котором ищем, менять нежелательно. Большое спасибо заранее)

pseudo-cat
()

поиск подграфа в графе

Форум — Development

Есть проблема с алгоритмом -

искомый подграф - subGraph
граф в котором ищем - graph
1* берем любую вершину в subGraph - v1
2* проходим по вершинам в graph и ищем одинаковую v1 вершину - v2, если нашли в 3*
3* Если v1 уже содержится в результате то пропускаем эту итерацию.
 Берём все исходящие вершины из v2 в graph и v1 в subGraph и ищем пересечение этих множеств.
 Если множество пусто(для какой либо из вершины v1 нет соответствующей v2) говорим что весь этот вариант не подходит иначе добавляем v1 и v2 в результат.

 Идём в 4* 
4* Выделяем это пересечение и по циклу с каждой парой вершин(или сответсвием одной вершины в subGraph с несколькими вершинами в graph) идём в 3*.

В итоге формируется всё множество подходящих подгафов в graph подграфу subGraph и затираются неподходящие(на каком-то шаге).
Структура алгоритма сильно упрощенна но смысл похож. Могу приложить реализацию, если надо, она на C#, для графов используется библиотека QuickGraph.

Проблема появилась с подграфом вида - http://xmages.net/show.php/1945929_123-jpg.html

Понимаю, что мало кому захочется разбираться, но может кто-то из присутствующих уже делал такое и может поделиться опытом(грабли какие там могут быть или ещё что).

п.с. циклы в графах я нахожу поиском вершины в уже добавленных

namespace OFTD.DOM.Graph
{
    public static class UndirectedGraphExtensions
    {
        public static IEnumerable<IDictionary<TVertex, TVertex>> SearchSubgraphs<TVertex, TEdge>(
            IUndirectedGraph<TVertex, TEdge> graph,
            IUndirectedGraph<TVertex, TEdge> visitedGraph)
            where TEdge : IUndirectedEdge<TVertex>
            where TVertex : Element
        {
            var allMatches = new List<List<Dictionary<TVertex, TVertex>>>();

            if ((graph.Vertices.Count() == 0) || (visitedGraph.Vertices.Count() == 0))
                return new List<IDictionary<TVertex, TVertex>>();// allMatches;

            var firstInVisited = visitedGraph.Vertices.First();
            foreach (var v in graph.Vertices)
            {
                if (equalp(v, firstInVisited))
                {
                    var dict = new Dictionary<TVertex, TVertex>();

                    var matchesFromThisVertex = new List<Dictionary<TVertex, TVertex>>();
                    matchesFromThisVertex.Add(dict);

                    allMatches.Add(matchesFromThisVertex);

                    searchIterations(ref matchesFromThisVertex, 0, graph, visitedGraph, firstInVisited, v, null, null);
                }
            }


            foreach (var list in allMatches)
            {
                list.RemoveAll(removeAllNullsDictionary);
            }
            allMatches.RemoveAll(removeAllEmptyList);
            var result = new List<IDictionary<TVertex, TVertex>>();
            foreach (var list in allMatches)
                foreach (var dictionary in list)
                    result.Add(dictionary);

            return result;
        }

        private static bool removeAllNullsDictionary<TVertex>(Dictionary<TVertex,TVertex> dict)
            where TVertex : Element
        {
            return (Equals(dict, null) || (dict.Count < 20));
        }

        private static bool removeAllEmptyList<TVertex>(List<Dictionary<TVertex, TVertex>> list)
            where TVertex : Element
        {
            return (list.Count == 0) ? true : false;
        }

        public static void searchIterations<TVertex, TEdge>(ref List<Dictionary<TVertex, TVertex>> matchs, int matchIndex,
            IUndirectedGraph<TVertex, TEdge> graph,
            IUndirectedGraph<TVertex, TEdge> visitedGraph,
            TVertex vgVert, TVertex gVert, TVertex previousVertexVg, TVertex previousVertexG)
            where TEdge : IUndirectedEdge<TVertex>
            where TVertex : Element
        {
            if(matchs.ElementAt(matchIndex) == null)
                return;
            if(matchs.ElementAt(matchIndex).ContainsKey(vgVert))
                return;

            matchs.ElementAt(matchIndex).Add(vgVert, gVert);

            var vgEdgesOuts = visitedGraph.AdjacentEdges(vgVert).ToList();
            var gEdgesOuts = graph.AdjacentEdges(gVert).ToList();
            var vgVertsOuts = getOutVertexes(vgVert, vgEdgesOuts);
            var gVertsOuts = getOutVertexes(gVert, gEdgesOuts);
     
            if(previousVertexVg != null)
            {
                vgVertsOuts.Remove(previousVertexVg);
                gVertsOuts.Remove(previousVertexG);
            }

            if (vgVertsOuts.Count == 0)
                return;
            if(gVertsOuts.Count == 0)
            {
                matchs[matchIndex] = null;
                return;
            }

            var intersectionsV = groupIntersectionVerts(vgVertsOuts, gVertsOuts);

            if(intersectionsV == null)
            {
                matchs[matchIndex] = null;
                return;
            } 
            
            var indexNext = matchIndex;
            foreach (var list in intersectionsV)
            {
                var tmpList = new List<TVertex>(list);
                tmpList.RemoveAt(0);
                foreach (var vertexInG in tmpList)
                {
                    if (indexNext > matchIndex)
                    {
                        var clonedDict = new Dictionary<TVertex, TVertex>(matchs.ElementAt(matchIndex));
                        matchs.Add(clonedDict);
                    }
                    searchIterations(ref matchs, indexNext, graph, visitedGraph, list.First(), vertexInG, vgVert, gVert);
                    indexNext++;
                }
            }
        }

        private static List<TVertex> getOutVertexes<TVertex, TEdge>(TVertex previousVert, List<TEdge> outsEdges)
            where TEdge : IUndirectedEdge<TVertex>
            where TVertex : Element
        {
            var outsVerts = new List<TVertex>();
            foreach (var edge in outsEdges)
            {
                if(edge.Source == previousVert)
                    outsVerts.Add(edge.Target);
                else
                    outsVerts.Add(edge.Source);
            }
            return outsVerts;
        }

        private static List<List<TVertex>> groupIntersectionVerts<TVertex>(List<TVertex> vs, List<TVertex> v)
            where TVertex : Element
        {
            var allIntersections = new List<List<TVertex>>();
            foreach (var svertex in vs)
            {
                var intersection = new List<TVertex>();
                intersection.Add(svertex);
                foreach (var vertex in v)
                {
                    if(equalp(svertex, vertex))
                        intersection.Add(vertex);
                }
                if (intersection.Count == 1)
                    return null;
                allIntersections.Add(intersection);
            }
            return allIntersections;
        }

        private static bool equalp<TVertex> (TVertex v1, TVertex v2)
            where TVertex : Element
        {
            return (string.Equals(v1.XmlName, v2.XmlName));
        }
    }
}
pseudo-cat
()

забавная задачка

Форум — Talks

Даны слова на родственных друг другу языках квенья и синдарин и их переводы на русский язык в перепутанном порядке.

dunadan, beraid, edain, arani, nunatani, orod, atan, barad, erain

человек запада, башня, люди, короли, человек, башни, люди запада, гора (одно из слов на квенья означает то же самое, что и одно из слов на синдарине).

Установить правильные переводы всех приведённых слов.

Друг скинул, но решения то ли у него нету, то ли не хочет давать, т.ч. прошу помощи зала :) В смысле, кто решит, выкладывайте свои решения сюда.

Вот моё(неполное):

Видимо есть соответсвие(*)(вполне возможно и случайное, но это ничего не меняет) между языком и множ./ед. числом, но я как-то слёту не догадался, какому из этих языков какое число «существительного» соответствует, или что там на квенья и синдарине :)
Поэтому искомое соответсвие(**) определёно не полностью и если узнать (*), то мы полностью узнаем и (**)

~ - соответсвует
<-> - порядок определяется оотношением (*)
dunadan, orod ~ короли <-> гора
beraid(ака edain), erain ~ башня <-> башни
arani, hunatani ~ человек запада <-> люди запада
barad, atan ~ человек <-> люди
pseudo-cat
()

простая геометрия

Форум — Development

На самом деле детский вопрос) или др. словами что-то я туплю.

Как определить проходит ли отрезок через четырёхугольник? У меня как-то криво получается - построить треугольник, проведя линии от концов отрезка к 1 из вершин четырёхугольника, найти высоту и коррдинаты её точки на основании, проверить меньше ли эта высота стороны 4х-угольника и лежит ли точка в пределах 2х вершин(вершины 3угольника и диагональной) - вроде можно проще было.

pseudo-cat
()

оптимизация при компиляции

Форум — Development

1. к примеру есть такой контекст:

local-block:
environment: 
   a=1
function-call:
   + a 2 b
логично оптимизировать это до:
local-block:
function-call:
   + 3 b
здесь мы пользуемся ф-цией «+» компилятора(языка на котором он реализован). Т.к. арифм. операции для целых везде одинаковы, то никаких проблем не возникает. Я так понимаю, можно заюзать стандартную библиотеку компилируемого языка и выполнять такие вот оптимизации для любых стандартных данных статических относительно рантайма. Правильно?

2. Неименованные данные, не влезающие в регистр полностью, стоит сохранять в памяти или на стеке? Если в памяти, то, видимо, расширять окружение временными именами(для GC)? типо -

function-call: some-str-f "123" 
-> ptr = allocate-mem()
-> write-in-memory ptr "123"
-> extent-enviroment 'tmp1 ptr
-> ...другие примитивы работают с "123" по частям, подгружая из памяти по указателю ptr 
где write-in-memory должна работать на уровене выше, чтобы суметь побайтно(или по размеру аккамулятора) заносить данные в память.

Если на стеке то непонятно как будет реализован доступ не к вершине стека.

function-call: some-str-f "1" "2"
work-with-parts "1" "2"
...
или ещё как-то?

pseudo-cat
()

в чём вы думаете?

Форум — Talks

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

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

И ещё есть аналогия с ЯП - поставив конкретную задачу я думаю в перемешку процедуурами, которые ещё надо сделать(описывая их обычной мысленной речью) и вполне конкретными примитивами языка. Типа «как нибудь совместить два списка, потом их reverse и дальше cons по итерациям»

pseudo-cat
()

компилятор

Форум — Development

Я так понимаю не имеет смысла делать компилятор для каждой архитектуры отдельно, используя напрямую регистры - достаточно генерировать код для какого нибудь переносимого языка, к примеру С? Почему тогда так много архитектурно зависимых компиллеров?

pseudo-cat
()

RSS подписка на новые темы