Методические указания к лабораторным работам по приборно-технологическому моделированию в системе TCAD Sentaurus, страница 7
Описание файла
PDF-файл из архива "Методические указания к лабораторным работам по приборно-технологическому моделированию в системе TCAD Sentaurus", который расположен в категории "". Всё это находится в предмете "электроника и микроэлектроника" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "электроника и микроэлектроника" в общих файлах.
Просмотр PDF-файла онлайн
Текст 7 страницы из PDF
Написать программу, реализующую считывание из файлаradius.txt значения радиуса круга, вычисление площади этого круга и записьполученного результата в файл square.txt. В программе реализовать проверкузначения радиуса: если оно неотрицательное, то в выходной файл должновыводиться значение площади; если значение радиуса отрицательное, вкомандное окно должно выводиться сообщение «Incorrect radius value».Решение. Текст программы представлен ниже:set inp_file [open “radius.txt” r]; ##присваивание переменной imp_file##указателя файл “radius.txt”, открываемого для чтенияset radius [gets $inp_file]; ##чтение первой строки файла и перемещение##указателя на следующую строку (считаем, что в ней записан радиус);if {$radius>=0} {set square [expr 3.14*$radius*$radius]; ##вычисление площади кругаset out_file [open “square.txt” w]; ##присваивание переменной out_file##указателя файл “square.txt”, открываемого для записиputs $out_file $square; ##запись в выходной файл значения переменной##squareclose $out_file; ##закрытие выходного файла} else {puts “Incorrect radius value”;}close $inp_file; ##закрытие входного файлаОрганизация циклов.
Практически все методы решения задач (методконечных разностей, метод конечных элементов) позволяют свести системудифференциальных уравнений к системе алгебраических уравнений, котораярешается итерационными методами. Реализация итерационных методоввсегда связана с выполнением повторяющихся команд, входящих в телоцикла.В TCL реализуется главным образом цикл с предусловием while,который реализуется следующим образом:while {<логическое выражение>} {<тело цикла (повторяющиеся команды)>}Цикл выполняется до тех пор, пока логическое выражение принимаетзначение ИСТИНА.
Если при входе в цикл логическое выражение ЛОЖНО,то цикл не выполняется ни одного раза. Если логическое выражение всегдаИСТИННО вне зависимости от результата выполнения цикла, то такой циклбудет повторяться до бесконечности. Этого следует избегать.Возможно также реализовать цикл с параметром:for {<инициализация параметра>}{<условие>}{<правило измененияпараметра>} {<тело цикла>}Причем в качестве правила изменения параметра могут использоватьсяоперации инкремента incr или декремента decr. Например:for {set i 1} {$i<=$count} {incr i} {puts $i}Например, если в приведенном выше примере фигурную скобку передputs $i (выделена жирным) переместить на следующую строку, тоинтерпретатор TCL выдаст ошибку: знак конца строки означает завершениекоманды (если он не находится в фигурных скобках или в кавычках), т. е.Цикл будет заканчиваться инструкцией {incr i}, и не будет правильноинтерпретирован.12.
Задания для лабораторной работы №4 «Разработкапрограммных модулей на языке TCL»Написать программу в соответствии с номером варианта (1-9):1. Написать программу, считывающую из файла и записывающую его4 строки в переменные a, b, c и d. После считывания программа должнаb+cdвыполнить операцию: a .2. Написать программу, последовательно считывающую 4 элементаопределителя матрицы, и вычисляющую значения этого определителя.3. Написать программу, последовательно считывающую абсциссы иординаты двух двумерных векторов, и вычисляющую их скалярноепроизведение.4.
Написать программу, последовательно считывающую абсциссы иординаты двух двумерных векторов, и вычисляющую координатысуммарного вектора.5. Написать программу вычисления площади треугольника, стороныкоторого построены на векторах с координатами (a,b) и (c,d). Значениякоординат векторов считывать из файла.6.
Написатьпрограммувычислениязначениявыраженияsin(a+b)×cos(c+d). Меры углов a, b, c и d считывать из файла. Первые двазначения считать заданными в радианной мере, вторые два — в градусноймере.7. Написать программу вычисления обратной матрицы размером 2×2.Программа должна считать 4 элемента a, b, c и d. Первые два составляютпервую строку исходной матрицы, вторые два — вторую строку. Реализоватьпроверку существования обратной матрицы.8.
Написать программу возведения матрицы размером 2×2 в квадрат.Программа должна считать 4 элемента a, b, c и d. Первые два составляютпервую строку исходной матрицы, вторые два — вторую строку.9. Написать программу вычисления значения выражения a×b+c-d.Программа должна считывать 4 элемента a, b, c и d из файла.13.Разработкапрограммныхуправляющихс использованием средств TCL (Tool Command Language).модулейРабота с массивами. В TCL нет массивов как таковых, но естьсписковые структуры данных. При этом список можно получить из строки спомощью команды split:split <значение переменной-строки> <символ-разделитель>Создать список можно также командой list:list <перечень элементов>Доступ к элементу на заданной позиции осуществляется при помощикоманды lindex:lindex <имя списка> <индекс>Длина списка возвращается командой llength:llength <имя списка>Замена элементов списка выполняется командой lreplace:lreplace $<имя списка> <индекс первого заменяемого> <индекспоследнего заменяемого> <список заменяемых элементов>Нумерация элементов в массиве начинается с нуля.Задача.
Написать программу, реализующую сортировку массива повозрастанию методом «пузырька».Решение. Метод пузырька представляет собой два цикла, одинвложенный в другой. Внутренний цикл проверяет все пары соседнихэлементов на условие сортировки и, если оно не выполняется, реализуетперестановку этих элементов.
Внешний цикл повторяет эту процедуруопределенное количество раз (привязанное к размеру массива)Текст программы представлен ниже:set str “5 4 3 2 1”;set mass [split $str “ “];set lmass [llength $mass];for {set i 0} {$i<$lmass} {incr i} {for {set j 0} {$j<$lmass} {incr j} {set c [lindex $mass $j]set jj [expr $j+1]set d [lindex $mass $jj]if {$c > $d} {set mass [lreplace $mass $j $jj $d $c]}}}puts $massСсылки в Sentaurus Workbench. Для того, чтобы запустить большоеколичество узлов, подчиняющихся некоторому условию, на выполнение,следует определить, какие ссылки допускает Sentaurus Workbench.
Каждаяссылка представляет собой внутренний параметр Sentaurus Workbench. Наэтапе препроцессорной обработки (перед запуском узлов проекта навыполнение) программы Sentaurus Workbench в каждом командном файледля каждого конкретного узла заменяет ссылки на параметр на его значение.Часто приходится ссылаться и на внутренние параметры SentaurusWorkbench. Приведем некоторые из них в таблице 6.Таблица 6 – внутренние параметры Sentaurus Workbench.Параметр@node@@node:all@@node:-<a>@@node:+<a>@@node:<a>@@node:index@@node|+<a>@@node|-<a>@@node:min@@node:max@@node|<comp>@Что означаетНомер текущего узлаTCL-Список всех узлов текущего компонентаНомер узла текущего компонента, расположенный на<a> уровней выше текущего узлаНомер узла текущего компонента, расположенный на<a> уровней ниже текущего узлаНомер <a>-го узла текущего компонентаПорядковый номер текущего узлаНомер узла, расположенного на <a> узлов правеетекущегоНомер узла, расположенного на <a> узлов левеетекущегоМинимальный индекс узла текущего компонентаМаксимальный индекс узла текущего компонентаНомер узла компонента <comp>, находящегося наодном уровне (на одной высоте) с текущимПолный список возможных ссылок на внутренние параметрыпредставлен в [4].В управляющей программе TCL можно ссылаться на номера узлов спомощью этих команд, их обрабатывать, фильтровать и т.п.
К примеру, еслиследует определить все узлы предшествующего компонента sdevice1, тосписок будет записываться следующим образом:set node_list [list @node|sdevice1@];set len [llength $node_list];Вывод полученных в программе значений переменных возможно в средуSentaurus Workbench командой puts "DOE: <имя переменной> <значениепеременной>".Например, puts “DOE: d $d”.Язык Inspect. Когда требуется выполнить обработку большогоколичества электрических характеристик, вывести их на график,сгенерировать файлы в формате txt для обработки их другими программами,выполнять это в интерактивном режиме неэффективно по времени исопряжено с возможными субъективными ошибками. На этот случайпрограмма Inspect предоставляет пользователю возможность написатьпрограмму чтения и обработки результатов моделирования.