Главная » Просмотр файлов » Секция 7 - MATLAB в образовании и Интернете

Секция 7 - MATLAB в образовании и Интернете (1250002), страница 9

Файл №1250002 Секция 7 - MATLAB в образовании и Интернете (Секция 7 - MATLAB в образовании и Интернете) 9 страницаСекция 7 - MATLAB в образовании и Интернете (1250002) страница 92021-04-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

MATLAB в образовании и ИнтернетеНиже приведен листинг вводной части функции radiation с изменениями, которые необходимо произвести, чтобы удовлетворить перечисленным требованиям. Для входной структуры мы используем название ins,что является сокращением слов «input structure». В завершение своей миссии расчетная функция должна сформировать текстовую строку rs. Ее название происходит от слов «return stream», что буквально означает «возвращаемый поток». Этот поток направляется непосредственно веб браузеру клиента, минуя промежуточную запись на жесткий диск сервера, однакопри локальной отладке приложения возвращаемое значение rs можно использовать, например, для сохранения на диск компьютера в виде HTMLфайла.function rs=radiation(ins)% Диаграмма направленности излучения частицы.% Веб вариант.% Считываем исходные данные из структуры insbeta= str2double(ins.beta);alpha= str2double(ins.alpha)*pi/180;azimuth = str2double(ins.azimuth);elevation = str2double(ins.elevation);k= str2double(ins.k);% ===================================================Последующий текст функции radiation не нуждается в правке, за темисключением, что необходимо запомнить дескриптор рисунка для дальнейшей записи рисунка в графический файл.

При этом полезно сделать рисунок «невидимым», чтобы сэкономить ресурсы сервера на открытие окнас рисунком, которое пользователь Интернета все равно не мог бы увидеть.% Открываем невидимое графическое окно.f = figure('visible','off');hold on;В самом конце текста функции нужно добавить еще несколько строк,чтобы сформировать возвращаемую текстовую переменную rs, а также записать сгенерированное изображение на жесткий диск компьютера. Однако прежде полезно выполнить еще несколько подготовительных мероприятий по обработке входных параметров.Рекомендуемая практика программирования для Интернета предполагает, что введенные данные должны пройти хотя бы минимальную проверку перед их использованием.

В разделе 4 мы кратко обсудим способыпроверки входных данных на стороне клиента. Однако такая проверка невсегда возможна. Злонамеренный пользователь имеет возможность обойтипроверку на стороне клиента, введя входные параметры непосредственно вадресной строке веб браузера. Поэтому еще одну проверку необходимоделать на стороне сервера, в тексте программы MATLAB. Как минимум,необходимо убедиться, что все обязательные параметры заданы, а числовые значения лежат в допустимых пределах. Ниже приведен усовершенст1865Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»вованный вариант вводной части функции radiation с проверкой входных данных.function rs=radiation(ins)% Диаграмма направленности излучения частицы.% Веб вариант №2.% Проверяем исходные данные из структуры ins.es.count = 0;if( isfield(in, 'alpha') )alpha = str2double(in.alpha);if( ~isnumeric(alpha) | alpha < 0 | alpha > 180)es.count = es.count+1;es.description{es.count} = ['Значение alpha='...in.alpha ' вне допустимого интервала.'];elsealpha= alpha*pi/180;end;elsees.count = es.count+1;es.description{es.count} = ['Параметр alpha не '...'задан.'];end;Для краткости мы ограничились проверкой одного параметра, ноаналогичным или иным способом следует проверить значения всех входных параметров.

Информация о выявленных ошибках здесь сохраняется вструктуре es. При обнаружении ошибки увеличивается счетчик ошибокes.count, а пояснительный текст записывается в элемент массиваes.description. Если после проверки всех параметров значение es.count будет больше нуля, выполнение задачи следует прекратить, сформировав изструктуры es возвращаемую текстовую переменную rs. Эту задачу решаетфункция getError, используемая всеми учебными задачами, которые размещены на сайте MATLAB.tutornet.ru:function rs = getError( es )TXT = '';for loop=1:es.countTXT = [TXT '<LI>' es.description{loop} '</LI>'];endrs = [sprintf('Content-type: text/html\n\n')...'<html><HEAD>'<META HTTP-EQUIV="Content-Type" '...'CONTENT="text/html; '...'charset=windows-1251"></HEAD><body>'...'<p>Ошибки MATLAB:</p>'...'<OL>' TXT '</OL>' ...'</body></html>'];% end of getErrorMessageЗдесь следует обратить внимание, что возвращаемая строка rs должна начинаться с заголовка 'Content-type: text/html', который служит указа1866Секция 7.

MATLAB в образовании и Интернетением на тип возвращаемого потока, а именно на то, что это текстовый поток.Аналогичным образом текстовый поток с результатами расчета формируется функцией getHtml. Она используется в том случае, когда проверка входных параметров не выявила ошибок. Выбор функции, возвращающей текстовой поток rs, производится в соответствии со значениемсчетчика es.count.

Таким образом, в заключительную часть расчетнойфункции radiation в первом приближении достаточно добавить всего несколько строк:% ===================================================if( es.count )rs = getError( es );elsers = getHtml( ins, gs );end;% end of radiationКак видно из приведенного текста, помимо входной структуры,функции getHtml нужно передать еще один параметр gs. Это еще однаструктура. Она содержит информацию о графическом изображении, сформированном расчетной функцией.

Для формирования структуры gs мы используем общую для всех приложений функцию getGS, которая описана вследующем разделе.Передача структур в аргументах функций чрезвычайно продуктивна,так как позволяет легко решить проблемы, возникающие при обновленииверсий функций, как вызываемых, так и вызывающих. При передачеструктур между функциями обычно удается обеспечить обратную совместимость версий и параллельную работу как старых, так и обновленныхприложений, что чрезвычайно важно для веб приложений, поскольку онидолжны непрерывно находиться в работоспособном состоянии. При использовании общих для сайта библиотечных функций типа getError,getHtml, getGS или saveBitmap (см. ниже) разработчик конкретной задачиосвобождается от забот по адаптации своего приложения для размещенияна сайте.

При обновлении общих функций мы стремимся обеспечить обратную совместимость версий без изменения способа вызова таких функций, неизбежного, например, при изменении числа аргументов. Это позволяет вводить в действие новые версии без единовременного обновлениявсех приложений. При этом расширение возможностей общих функцийобеспечивается путем добавления новых полей к существующим структурам и инкапсуляции выбора сценария, соответствующего конкретной версии, в библиотечную функцию.1867Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»3.

Подготовка графического выводаДля ускорения отклика веб сервера на запрос веб клиента на сайтеMATLAB.tutornet.ru используется кэширование сгенерированных рисунков на жесткий диск компьютера, на котором установлен веб сервер. Послепроверки входных параметров производится вызов функции getGS.

Онаопределяет, имеется ли в КЭШе (т. е. на диске компьютера) файл с графическим изображением, соответствующим набору входным параметров.Функция getGS возвращает структуру gs:gs = getGS( ins );Возвращаемая структура содержит имя графического файла с расширением (gs.filename) и без расширения (gs.name), его тип (gs.type), признак наличия файла в КЭШе (gs.isexist) и еще ряд полей. Имя файла(gs.filename) вычисляется на основе входной структуры путем конкатенации имен полей и их значений, после чего базисная часть имени (т. е. имяфайла без расширения) шифруется по алгоритму MD5:% Вычисляем имя файла из входной структуры.names = fieldnames(ins);for k=1:length(names)field = names{k,1}(:)';value = getfield(in, field);switch field% Игнорируем параметры, не влияющие на рисунок.case {'mlmfile', 'mldir', 'mlid'}case {'format'}case {'userAgent', 'host', 'hash', 'search'}case {'availHeight', 'availWidth', 'bufferDepth'}case {'colorDepth', 'height', 'width'}case {'cpuClass', 'platform', 'mediabox'}otherwise% Добавляем параметр и значение к имени.name = [name '(' field value ')'];end % switchend % for% Шифруем имя файла.name=md5(name);Шифрование гарантирует, что имя файла не превышает заданное ограничение по длине имени (64 байта) при том, что два идентичных наборазначений параметров всегда отображаются на одну и ту же зашифрованную строку, используемую в качестве имени файла (gs.name).

Характеристики

Тип файла
PDF-файл
Размер
3,69 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6274
Авторов
на СтудИзбе
316
Средний доход
с одного платного файла
Обучение Подробнее