List Processing обработка списков другая расшифровка L icon

List Processing обработка списков другая расшифровка L




Скачати 181.18 Kb.
НазваList Processing обработка списков другая расшифровка L
Дата21.05.2013
Розмір181.18 Kb.
ТипРасшифровка


Министерство образования и науки, молодежи и спорта Украины

Сумской государственный университет

Факультет Электроники и информационных технологий

Кафедра Компьютерных наук

Секция Информационные технологии проектирования








МЕТОДИЧЕСКИЕ УКАЗАНИЯ


СУМЫ 2006


  1. Что такое Лисп?


Lisp... - Дефект речи, пришепетывание.

Словарь Вебстера, 1983


Лисп - язык программирования, созданный Дж . Маккарти в конце 50-х гг. Для решения задач искусственного интеллекта. Название языка означает LISt Processing - обработка списков (другая расшифровка - Lots of Idiotic Silly Parentheses). Версия этого языка, называемая AutoLISP (Автолисп) была принята фирмой Autodesk в качестве встроенного языка программирования системы автоматизированного проектирования AutoCAD.


  1. ^ Зачем Автокаду

встроенный язык программирования


Если отладка - процесс удаления ошибок, то программирование

должно быть процессом их внесения.

^ Э. Дейкстра


Автокад сам по себе является графическим редактором, при помощи которого конструктор создает чертежи проектируемого изделия. Однако механическая замена кульмана на компьютер с Автокадом чаще всего приводит не к росту производительности труда, а к замедлению работы в 2..4 раза. Подобное использование Автокада "в лоб" оправдано только при создании автоматизированных графических баз данных, для чего и требуется перевод чертежей в электронный вид1.

Для эффективной работы Автокад следует адаптировать под проектирование изделий определенного класса. Тогда работа конструктора будет сведена к вводу параметров изделия, а всю черновую работу по отрисовке чертежа возьмет на себя программа, написанная на встроенном в Автокад языке программирования - Автолиспе.


    1. ^ Конструктивно однородные изделия


Одинаковые детали, проверенные одинаковым образом,

будут в эксплуатации вести себя совершенно по- разному.

Из законов Мэрфи.


Очень часто конструктору приходится выпускать документацию на ряд изделий, которые отличаются только своими размерами (линейными или угловыми), а форма их остается неизменной. Яркий пример таких изделий - технологическая оснастка: кондукторы, мерительный инструмент, пресс-формы и др. (рисунок 1).





Рисунок 1 - Конструктивно однородные изделия.




Сущность параметрического проектирования состоит в создании математической модели класса конструктивно однородных изделий, а затем в генерации изображений этих изделий по набору задаваемых размерных параметров.

При параметрическом проектировании конструктор запускает программу, рассчитанную на определенный класс изделий, и вводит требуемые размеры. Программа отрисовывает на экране чертеж детали. Конструктор оценивает его и при необходимости вводит размеры снова до достижения требуемого результата. Одновременно может рассчитываться масса детали, что позволяет контролировать ее "на ходу", прямо в процессе проектирования.

Проекция изделия как векторное изображение состоит из множества базовых геометрических элементов - отрезков и дуг. Положение этих элементов на плоскости определяется координатами их базовых точек (рисунок 2). Для отрезка базовыми точками являются его начало и конец, а для дуги - начало, конец и центр (дугу можно задать и через другие параметры: радиус, угол, направление и т.д. Автокад поддерживает 18 способов задания дуги).

Как видно из вышеприведенного определения, программа-параметризатор (ее мы и будем писать на Автолиспе) должна выполнять следующие функции:

  • расчет координат базовых точек чертежа по набору параметров;

  • ввод набора параметров пользователем;

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





Рисунок 2 - Базовые точки геометрических примитивов.


  1. ^ Функции отображения


Сложные системы имеют тенденцию

противопоставлять себя своим же функциям.

Из законов Мэрфи


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




Рисунок 3 - Работа функции отображения.


Рассмотрим расчет координат базовых точек на примере.

Пример: найти координаты базовых точек проекции детали следующей геометрии (рисунок 4):




Рисунок 4 - Заданная геометрия детали.


Решение: Поскольку проекция симметрична, достаточно найти координаты только двух точек А и В. Нижняя половина проекции отрисуется автоматически при помощи команды Автокада ЗЕРКАЛО.

^ НЕ НУЖНО ДЕ0ЛАТЬ ЛИШНЮЮ РАБОТУ ВМЕСТО КОМПЬЮТЕРА. КОМПЬЮТЕР ДОЛЖЕН РАБОТАТЬ, А ЧЕЛОВЕК - ДУМАТЬ.

Определим размерные параметры детали. Очевидно, их два: длина цилиндра и его диаметр.

^ ДЛЯ СЛОЖНЫХ ДЕТАЛЕЙ ВОЗМОЖНЫ РАЗЛИЧНЫЕ НАБОРЫ РАЗМЕРОВ. ПОДХОДЯЩИЙ НАБОР ВЫБИРАЕТСЯ ИЗ ТЕХНОЛОГИЧЕСКИХ СООБРАЖЕНИЙ.

Для расчета необходимо задаться точкой привязки - опорной точкой, определяющей положение проекции на листе чертежа. ^ Условимся считать опорной точкой левый конец осевой линии. Также, заглянув в ГОСТ, условимся, что осевая линия выходит за контур на 5мм.

Итак, на входе нашей функции:

  • координата Х точки привязки;

  • координата Y точки привязки;

  • длина цилиндра L;

  • диаметр цилиндра D.

Нужно найти:

  • координату X точки A (обозначим AX);

  • координату Y точки A (обозначим AY);

  • координату X точки B (обозначим BX);

  • координату Y точки B (обозначим BY).

Очевидно (по крайней мере, для авторов), что:





3.1. Реализация функций отображения на Автолиспе


Если кажется, что работу сделать легко, это непременно будет трудно.

^ Если на вид она трудна, значит, выполнить ее абсолютно невозможно.

Из законов Мэрфи.


При работе с Лиспом нужно ясно осознавать те его особенности, которые отличают этот язык от прочих (к примеру, от Паскаля):

  • ^ В Лиспе нет различия между программами и данными. И то, и другое есть список. По умолчанию любой список рассматривается как программа и Лисп пытается ее выполнить.

  • В Лиспе используется обратная польская запись списков-программ:

( имя_функции арг1 арг2 ... аргN )

  • Написание программы на Лиспе сводится к разработке одной или нескольких пользовательских функций, среди которых есть головная функция - с нее начинается выполнение программы.

Будем считать, что наша функция отображения (назовем ее show) вызывается из головной функции и ей передаются параметры x, y, l, d (координаты точки привязки, длина и диаметр цилиндра соответственно). Результаты расчета нужно записывать в локальные переменные функции show. Соображения экономии памяти, а также хорошего стиля программирования приводят к тому, что нам хватит всего двух локальных переменных: в переменную tmp мы будем заносить текущие результаты расчетов, а в переменную lst - список рассчитанных координат. Этот список будет состоять из двух элементов (точки A и B), каждый из которых, в свою очередь, тоже будет списком их двух координат: X и Y: .

Пишем программу (легко сказать...):



( DEFUN show ( x y d l / tmp lst )

; x, y, s, l - параметры

; tmp, lst - локальные переменные

; координата x точки A записывается в переменную tmp

( SETQ tmp ( + x 5 ) )

; в переменную lst записывается список координат

; точки A

( SETQ lst ( LIST tmp ( + y ( / d 2 ) ) ) )

; координата x точки B записывается в переменную tmp

( SETQ tmp ( + x 5 l ) )

; в переменную tmp записывается список координат

; точки B

( SETQ tmp ( LIST tmp ( + y ( / d 2 ) ) ) )

; в список lst добавляется точка B

( SETQ lst ( LIST lst tmp ) )

); конец функции




Листинг 1 - Функция расчета координат базовых точек.


^ 3.2. ВЫВОД ЧЕРТЕЖА НА ЭКРАН


Никогда не рисуйте то, что можно скопировать.

Никогда не копируйте то, что можно обвести.

Никогда не обводите то, что можно вырезать и наклеить.

^ Из законов Мэрфи.


Рассчитать координаты точек - только полдела. Теперь по этим координатам нужно, вызывая из программы на Автолиспе команды Автокада, отрисовать контур детали и проставить на нем размеры. Для этого предназначена функция COMMAND.

^ САМОЕ НАДЕЖНОЕ - СНАЧАЛА ВРУЧНУЮ С КЛАВИАТУРЫ, НЕ ПОЛЬЗУЯСЬ МЫШКОЙ, ОТРИСОВАТЬ ЧЕРТЕЖ, ЗАПОМИНАЯ ПРИ ЭТОМ ВСЕ ВВОДИМЫЕ ДАННЫЕ.

Трудность состоит в том, что нужно знать форматы ввода и ключевые слова основных команд Автокада, поскольку при обычной работе широко используются меню, в которых "скрыты" команды. Форматы команд приведены в приложении 2.

А как сообщить Автокаду координаты точки или длину отрезка, если они записаны в переменной (чаще всего так и будет)? Очень просто - в нужном месте в функции COMMAND ставится имя этой переменной или целое выражение Автолиспа.

Кроме того, многие команды (в том числе и самая главная - "ПЛИНИЯ") требуют принудительного прекращения своего выполнения. Для этого на клавиатуре мы нажимаем клавиши enter или esc, а в функции COMMAND ставим две кавычки подряд: "".

А что писать в функции COMMAND в ответ на запрос "Выберите объект:" (например, в команде "ЗЕРКАЛО")? Все очень просто: нужно указать координаты точки, заведомо принадлежащей этому объекту.

Отрисовку будем выполнять в той же функции show.


. . .

; Удаляем все объекты

^ (COMMAND "ERASE" "W" ' (- 10000 -10000)' (10000 10000) "")

; Рисуем осевую линию красным цветом (код 1)

; и штрих-пунктирно (тип линии CENTER)

(COMMAND "_LINETYPE" "_S" "center" "")

(COMMAND "_COLOR" 1)

^ (COMMAND "_PLINE" (LIST X Y) (LIST (+ X L 10 ) Y) "" )

; Рисуем контур детали белым цветом (код 1)

; и сплошной линией (тип линии CONTINUOS)

(COMMAND "_LINETYPE" "_S" "CONTINUOUS" "")

(COMMAND "_COLOR" 7)

^ (COMMAND "_PLINE"

( LIST ( + x 5 ) y ) ; левая точка пересечения осевой

; с контуром

( CAR lst ) ; точка A

( CADR lst ) ; точка B

( LIST ( + x l 5 ) y ) ; правая точка пересечения осевой с контуром

"" ) ; прерывание команды ""_PLINE "

^ (COMMAND "MIRROR"

( CAR lst ) ; выбрали объект, указав точку А

"" ; прервали выбор объектов

( LIST x y ) ; первая точка осевой линии -

;точка пересечения контура с осевой слева

( LIST ( + x 5 ) y ) ; вторая точка осевой линии

"Н" ) ; старые объекты не удалять

; Проставляем длину

^ (COMMAND "_COLOR" 1)

(COMMAND "_DIMLINEAR"

"h" ; размер горизонтальный

( CAR lst ) ; начало первой выносной линии - точка А

( CADR lst ) ; начало второй выносной линии - точка В

( POLAR ( CAR lst ) ( / PI 2 ) 30 )

; размерная линия; отстоит от контура на 30мм

"" ) ; размерный текст ставится автоматически

; Проставляем диаметр

(COMMAND "_DIMLINEAR" "V" ( CADR lst )

( LIST ( CAR ( CADR lst ) ) ( - ( CADR ( CADR lst ) ) d ) )

( POLAR ( CADR lst ) 0 30 )

; "@" - знак диаметра в шрифте eskd.shx.

; После него выводим диаметр, преобразованный

; в текстовую строку

( STRCAT "@" ( RTOS d 2 2 ) ) )

^ (COMMAND "_ZOOM" "_ALL")

); конец функции

Листинг 2 - Функция расчета координат базовых точек и отрисовки.

3.3. ВВОД ДАННЫХ

Если назначается специальный человек для контроля за чистотой исходной

информации, то найдется изобретательный идиот, который придумает способ,

чтобы неправильная информация прошла через этот контроль.

^ Из законов Мэрфи.


Размерные параметры конкретного изделия вводятся конструктором с клавиатуры. Следует помнить, что человеку свойственно ошибаться, а также развлекаться, вводя слово "Вася" в ответ на запрос "Введите диаметр". Поэтому в функции ввода исходных данных следует предусмотреть хотя бы минимальную защиту от ввода некорректных значений. Для этого используется функция INITGET.



( DEFUN getdim ( / l d )

; ввод длины и диаметра

; возвращаемый список: ( диаметр длина )

( INITGET 7 ) ; запрет пустого ввода и ввода чисел <=0

( SETQ l ( GETREAL "\nВведите длину валика: " ) )

( INITGET 7 )

( SETQ d ( GETREAL "\nВведите диаметр валика: " ) )

( LIST d l ) ; возвращаемое значение

) ; конец функции getdim


Листинг 3 - Функция ввода параметров.


Итак, функция ввода данных на входе не имеет параметров, а вот возвращать она должна несколько чисел. Единственный способ возвратить несколько значений - объединить их в список. Теперь мы можем написать функцию ввода данных для нашего примера (назовем ее getdim).


^ 3.4. ГОЛОВНАЯ ФУНКЦИЯ

Если вы сохраняете голову на плечах, когда все вокруг теряют свои,

значит, вы просто не понимаете ситуацию.

Из законов Мэрфи.


Головная функция должна выполнять подготовительные операции (например, установку системных переменных Автокада для отрисовки размеров в соответствии с требованиями ЕСКД) и циклический вызов двух остальных функций: getdim и show. Для удобства перед именем головной функции можно добавить символы "C:". Тогда в Автокаде появится новая команда с именем вашей головной функции и можно будет не набирать скобки при ее вызове. В примере головная функция называется C:main, поэтому для ее вызова в командной строке Автокада достаточно набрать main.

Самостоятельно разберитесь с одним из возможных вариантов организации цикла, приведенном в примере.



( DEFUN C:main ( / l x y flag )

; Устанавливаем размерные переменные по ЕСКД

; Текст над размерной линией, а не в разрыве

( SETVAR "DIMTAD" 1 )

; Текст вне размерных линий параллелен линиям

( SETVAR "DIMTOH" 0 )

; Текст между размерными линиями горизонтален

( SETVAR "DIMTIH" 0 )

; Проведение линии между выносными, если текст сбоку

( SETVAR "DIMTOFL" 1 )

; Продолжение выносных линий за размерными, мм

( SETVAR "DIMEXE" 1 )

; Отключение генерации допусков

( SETVAR "DIMTOL" 0 )

; Размер стрелок

( SETVAR "DIMASZ" 3 )

; Продолжение выносных линий за размерную

( SETVAR "DIMEXE" 3 )

( SETVAR "OSMODE" 0)

( SETQ flag T )

( WHILE flag

( SETQ l ( getdim ) x 10 y 10 )

( show x y ( CAR l ) ( CADR l ) )

( SETQ ans ( GETSTRING "\nПовторить?: " ) )

( SETQ flag ( OR ( = ans "y" ) ( = ans "y" ) ) )

); конец WHILE

( PRIN1 )

)

Листинг 4 - Головная функция .


^ 4. ПРАКТИЧЕСКАЯ РАБОТА С АВТОЛИСПОМ

Чем проще инструкция (например, "Нажмите здесь",

тем труднее понять, где же все-таки нажимать.

Из законов Мэрфи.


Для работы с Автолиспом сначала, разумеется, нужно запустить Автокад при помощи программы acad.exe. Поскольку результатом нашей деятельности должна быть программа, а не чертеж, следует просто начать новый рисунок и дать ему любое имя.

Далее откройте сеанс VisualLISP в AutoCAD:

выполните команду меню Tools-->AutoLISP-->VisualLISP Editor

Последовательность действий при написании программ на Автолиспе


  1. Придумать имя файлу, в котором хранится программа.

  2. При продолжении работы с ранее сохраненным файлом он должен находиться в предусмотренной для студентов директории и иметь расширение LSP.

  3. При каждом изменении текста программы ее нужно заново загрУжать в память! Для загрузки выберите пункт меню "Загрузи". На текстовый экран Автокада (вызывается клавишей Tools-> Load Application) могут выводиться сообщения об обнаруженных в программе ошибках или радостное сообщение "Файл загружен".

  4. Теперь можно запустить программу на выполнение. Для этого надо вызвать ее головную функцию. ^ ЛЮБОЕ ВЫРАЖЕНИЕ В КОМАНДНОЙ СТРОКЕ, ЗАКЛЮЧЕННОЕ В КРУГЛЫЕ СКОБКИ, РАССМАТРИВАЕТСЯ АВТОКАДОМ КАК ПРОГРАММА НА АВТОЛИСПЕ, КОТОРАЯ НЕМЕДЛЕННО ВЫПОЛНЯЕТСЯ. Если вы наберете в командной строке (+ 2 2), то немедленно получите неожиданно правильный ответ 4.Следовательно, если в командной строке в скобках набрать имя головной функции вашей программы, она будет запущена на выполнение. Разумеется, если имя головной функции оформлено как команда Автокада, скобки набирать не надо.


^ 4.1. VisualLISP EDITOR


У любой великой идеи есть недостаток,

равный или превышающий величие этой идеи.

Из законов Мэрфи


Для редактирования программ мы используем интегрированную в AutoCAD среду программирования Visual LISP.


^ 4.2. ОФОРМЛЕНИЕ ПРОГРАММ НА АВТОЛИСПЕ


В фамильном рецепте, только что обнаруженном в старой поваренной книге,

единица измерения главного компонента будет записана неразборчиво.

Из Законов Мэрфи.


Автокаду в достаточной степени все равно, как вы оформляете текст программы на Автолиспе. Но поскольку программа должна быть понятной и человеку, при записи ее текста настоятельно рекомендуется придерживаться определенных правил. Это особенно актуально для Лиспа в силу наличия множества скобок и иногда весьма странных названий функций. Сравните две программы:


^ Плохой стиль

Хороший стиль

(defun a(C/d) (SetQ d (+

c 1)) )

( DEFUN inc ( a / b )

( SETQ b ( + a 1 ) )

)


Хотя обе эти программы работоспособны, разбираться в первой из них - сущее мучение. Поэтому:

  1. Придерживайтесь правила Н. Вирта, создателя языка Паскаль: названия встроенных в язык функций пишите ЗАГЛАВНЫМИ БУКВАМИ, а придумываемые вами названия функций и переменных - строчными.

  2. Названия функций и переменных должны быть "говорящими". Назначение функций с именами show или draw, переменных x, y понятно без дальнейших объяснений. Не забывайте, что для экономии памяти длина названия не должна превышать 6 символов.

  3. Обрамляйте каждую скобку пробелами: один пробел перед скобкой, один после.

  4. Используйте запись с отступами: тело цикла, функция IF и другие управляющие конструкции гораздо легче воспринимаются, если они записаны по "паскалевской" системе:

( WHILE ( < i 10 )

( SETQ s ( + s i ) )

); конец цикла

( IF ( = t "M" )

( PROMPT "1" ); то

( PROMPT "2" ); иначе

); конец IF




  1. Программа без комментариев бесполезна - даже автор через неделю забудет, что он там понаписал. Записывайте в комментариях назначения функций и переменных.

  2. Программу следует разбивать на много небольших функций. Маленькую функцию легче отлаживать. Оптимальный размер функции - 4..5 строк.

  3. Программа должна ясно и недвусмысленно сообщать пользователю, какие данные он должен ввести. Тщательно продумывайте тексты подсказок. "Введите D1" ничего не говорит о том, какой размер считается D1 в отличие от "Введите диаметр средней ступени вала". Сообщение "m=12.1345" гораздо менее понятно, чем "Масса детали 12.1345 кг".




  1. ^ ОТЛАДКА ПРОГРАММ НА АВТОЛИСПЕ

Никогда не выявляйте в программе ошибки,

если не знаете, что с ними дальше делать.

Из законов Мэрфи.


Потенциальные источники ошибок:


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

  2. Неверное использование символа Т - английская буква T (и заглавная, и строчная) является логическим значением "истина". В программе не может быть переменных или функций с именем T. То же относится и к слову NIL.

  3. ^ После открывающей скобки идет не имя функции - в Автолиспе действует правило: после открывающей скобки может стоять только имя встроенной или пользовательской функции и ничто иное.

  4. "Зависание" команд отрисовки - Многие команды требуют принудительной остановки при помощи прерывания "".

  5. Переопределение встроенных функций - Проверьте, что придуманные вами имена переменных и функций не совпадают с именами встроенных функций, иначе встроенная функция будет "затерта" до перезапуска Автокада.

  6. ^ Неверная работа с тригонометрическими функциями и углами - все углы в AutoLISP представлены только в радианах.

  7. Функция написана, но нигде не вызывается - функция DEFUN только создает пользовательскую функцию, но не выполняет ее. Все ваши функции должны явно вызываться из головной функции.

  8. Неверное использование INITGET - действие INITGET распространяется только на одну следующую за ней GET-функцию.

  1. ^ ЗАДАНИЯ ПО РАЗРАБОТКЕ ПАРАМЕТРИЧЕСКИХ МОДЕЛЕЙ


Нет таких трудностей,

которые мы не могли бы создать

Авторы.


Задание на разработку параметризатора


1. Установить набор параметров s1..sn, определяющих параметрическую модель изделия. Задать точку привязки a.

2. Написать функцию ввода данных: вход - ничего, выход - список вида: ( a s1 ...sn), где a, в свою очередь, список двух координат точки привязки. Функция выполняет ввод данных с клавиатуры. Должна проводиться проверка вводимых размеров на неотрицательность.

3. Написать функцию отрисовки: вход - список ( a s1 ...sn ), выход - ничего. Функция выполняет отрисовку чертежа детали. Перед отрисовкой экран необходимо очистить. Нужно устанавливать требуемые цвет и тип линий, а после отрисовки выполнить команду “Покажи Все”. Должны быть проставлены все параметризируемые размеры.

4. Написать головную функцию. В ней в цикле выполняются следующие действия:

 инициализация (например, установка размерных переменных);

 вызов функции ввода данных и запоминание возвращаемого ей списка в локальной переменной;

 вызов функции отрисовки с передачей ей в качестве параметра списка, возвращенного функцией ввода данных;

 запрос пользователю: “Продолжить? <Да/Нет>“ В зависимости от ответа либо прекратить выполнение программы (с “тихим выходом”), либо повторить ввод размеров, отрисовку и т.д. (цикл);

5. написать функцию вычисления массы детали: вход - список ( s1 ...sn ), выход - масса детали данных размеров в кг (плотность стали 7,85 г/см3). Выводить массу детали на экран после отрисовки.



1_1



1_8

1_2

01



1_9

1_3



1_10

1_4



1_11

1_5



1_12

1_6



1_13

1_7



1_14




Продолжение

2_1



2_4

2_2



2_5

2_3



2_6



Список литературы

Руководи по книге, даже если не знаешь

ни имени автора, ни названия

Из законов Мэрфи.



  1. Гладков С.А. Программирование на языке Автолисп в системе САПР Автокад. - М.: “ДИАЛОГ-МИФИ”,1991.- 96с

Наиболее полное изложение языка Автолисп, требующее определенной подготовки читателя в области программирования. Описывается работа с ГБД Автокада, управление памятью в Автолисп, приведен обширный справочник функций. В то же время книга содержит ряд ошибок и неточностей.

  1. Г.А. Бугрименко. Автолисп - язык графического программирования в системе AutoCAD. - М.: Машиностроение, 1992. - 144 с.; ил.

Краткое изложение принципов программирования вообще и основ работы с Автолиспом. Дается множество полезных примеров. Однако изложение возможностей языка весьма неполно.

  1. Хювенен Э., Сеппанен Й. Мир Лиспа. В 2-х тт. М.: Мир, 1985.

Изложение принципов функционального программирования на примере языка CommonLISP. Глубоко прорабатываются теоретические вопросы. Приведено множество примеров, в том числе и из области задач искусственного интеллекта. К сожалению, большинство примеров использует функции CommonLISP, не реализованные в Автолиспе и для их выполнения нужен другой интерпретатор.

1 Сканирование бумажного чертежа создает растровое изображение (набор черных и белых точек), качественный перевод которого в векторную форму практически невозможен.


Схожі:

List Processing обработка списков другая расшифровка L iconДодаток 2 Кафедра
Публікації у закордонних журналах (вказати № відповідно переліку Lista filadelfijsca, iee-inspec journals list, Master Journals list,...
List Processing обработка списков другая расшифровка L iconДодаток 2 Кафедра
Публікації у міжнародних журналах (вказати № відповідно переліку Lista filadelfijsca, iee-inspec journals list, Master Journals list,...
List Processing обработка списков другая расшифровка L iconКонспект лекций по курсу "обработка и утилизация осадков"
Конспект лекций по курсу "Обработка и утилизация осадков" (для студентов 5 курса дневной и заочной форм обучения специалистов по...
List Processing обработка списков другая расшифровка L iconBackground of new decision search for coal processing in Ukraine

List Processing обработка списков другая расшифровка L iconBackground of new decision search for coal processing in Ukraine

List Processing обработка списков другая расшифровка L iconHadamard gate in quantum information processing: the two bose operators treatment

List Processing обработка списков другая расшифровка L iconCall for Papers International Conference on statistical methods of signal and data processing

List Processing обработка списков другая расшифровка L iconMeasuring processing and visualization of ultrasonic waves velocities anisotropy by invariant-polarization method

List Processing обработка списков другая расшифровка L iconМетодические указания к практическим занятиям " Обработка данных медицинских исследований в Excel" по дисциплине "Медицинская информатика" специальности 110101 "Лечебное дело" для иностранных студентов дневной формы обучения
Методические указания к практическим занятиям “Обработка данных медицинских исследований в Excel” по дисциплине “Медицинская информатика”...
List Processing обработка списков другая расшифровка L iconTopography of frontal parietal occipital portion. Primary surgical processing of penetrating and nonpenetrating wounds of the brain

Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи