Разработка на языке Java Scripts двух процедур
Сущность и порядок использования формулы Тейлора. Характеристика структуры файла, созданного с помощью программы "Системный монитор" в операционной системе WINDOWS NT. Составление алгоритма непосредственного суммирования выражения, его применение.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.02.2014 |
Размер файла | 321,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Постановка задачи
1. Описание метода решения задачи
2. Описание алгоритма решения задачи
3. Описание основных процедур
4. Описание тестов и результаты выполнения процедур
5. Руководство пользователя по работе с процедурами
Список используемой литературы
Приложение
Постановка задачи
Цель курсовой работы
Разработать на языке Java Scripts две процедуры:
1-ая процедура производит вычисления с заданной точностью в соответствии с заданием варианта;
2-ая процедура должна вывести информацию о заданном варианте задания, объекте.
Требования к реализации
В обеих процедурах необходимо предусмотреть возможность задания не менее двух ключей: первый ключ - выводит справочную информацию по работе с процедурой, второй ключ - конкретизирует информацию о выводимом процессе.
Вариант задания
Номер варианта - 38.
C помощью разложения подынтегральных функций в ряды вычислить с точностью до 0,001 интеграл.
Вывести на экран число потоков с максимальным значением контекстных переключений в сек.
Начальные данные
Интеграл:
(1)
Файл-отчет Системного монитора с названиями потоков и их значениями контекстных переключений в сек.
1. Описание метода решения задачи
Для решения первой части задания необходимо воспользоваться формулой Тейлора
2.1.1.
Подсчитаем заданное выражение (1) по формуле Тейлора. Разложим функцию (1) по данной формуле и получим ряд.
2.1.2.
по данному ряду не трудно составить формулу n-го члена
2.1.3.
Формула 2.1.3.используется для вычисления выражения (1). Таким образом, значение (1) будет равняться сумме n слагаемых, где n= до тех пор, пока n-ое слагаемое не станет меньше заданной погрешности и тогда получается значение функции с заданной точностью.
Для решения задачи о нахождении числа потоков с максимальным значением контекстных переключений в секунду необходимо извлечь из файла названия всех потоков, посчитать у каждого потока его значение контекстных переключений в секунду и определить поток, у которого это значение наименьшее. Для этого необходимо изучить структуру файла, в котором представлены потоки. Данный файл можно получить с помощью программы “Системный монитор” в операционной системе WINDOWS NT.
Структура файла выглядит следующим образом: Первые семь строк обрабатываемого файла содержат информацию о дате создания файла и некоторую другие данные не представляющие особой ценности для нашей задачи. Восьмая строка содержит имена потоков. Начиная с тринадцатой строки, в файле идут записи следующего формата «знак табуляция знак табуляция дата время значение поток№1 значение поток№2 и т.д.». Порядок следования значений потоков соответствует порядку следования потоков в восьмой строке.
2. Описание алгоритма решения задачи
тейлор файл алгоритм
Алгоритм непосредственного суммирования выражения (1):
Проверяется, верно ли задана точность вычисления.
Пока не достигнута заданная точность, в цикле производится суммирование ряда Тейлора.
На экран выводятся ответ.
Алгоритм обработки файла, содержащего потоки с их значениями контекстных переключений в секунду:
Запрашивается путь к заданному файлу.
Если файл существует, открываем его.
Пропускаем первые 7 строк, содержащие неважную для нас информацию.
Считываем строку, содержащую имена потоков.
Выделяем из строки имена потоков, ограниченные друг от друга символами табуляции. Значения - имена потоков заносим в массив.
Пропускаем 4 строки и начинаем в цикле считывать строки, пока не достигнем конца файла.
Считываем очередную строку, пропускаем первые 20 символов, содержащих дату и время записи данных, и обрабатываем в соответствии с пунктом 5).
Значения из временного массива сравниваются со значениями массива, содержащего максимальные, на текущий момент, значения контекстных переключений в секунду.
При достижении конца файла алгоритм завершается и в зависимости от переданных параметров выводится на экран результат выполнения.
3. Описание основных процедур
Описание модуля OS1.js, производящего вычисления для первого задания
В модуле OS1.js реализованы 2 основных функция:
1) Функция Cx(step) - вычисляет очередное слагаемое ряда Тейлора.
Функция Tailor() - пока не достигнута заданная точность, суммирует ряд
Описание модуля OS2.js, производящей анализ файла, содержащего значения контекстных переключений в секунду
В модуле OS2.js реализованы 6 функций для обработки файла и вывода результатов обработки на экран. Для этого используются следующие глобальные переменные:
var Sys_file; - переменная-указатель на открытый файл
var Kolvo; - переменная, содержащая количество потоков
var Names=new Array(); - массив, содержащий имена потоков
var MinMass=new Array(); - массив, содержащий минимальные значения контекстных переключений в секунду
Функция Menu() поэтапно вызывает другие функции в зависимости от значений переданных параметров. Последовательность выполнения функции следующая:
Открываем указанный в параметре файл;
Пропускаем первые 7 строк, не несущих важной информации;
Вызываем функцию ReadNames();
Пропускаем следующие 4 строки, не несущие важной информации;
Вызывается функция для поиска максимума для каждого процесса FindMax();
Если 2-ой параметр не введен, то будет выведено число потоков с максимальным значением контекстных переключений в сек. Если 2-ой параметр 'View', то будет выведена информацию о потоках с максимальным значением контекстных переключений в сек. Если 2-ой параметр 'List', то будет выведена информацию о всех потках с их значениями контекстных переключений в сек..
Функция ReadNames считывает в массив имена всех потоков.
Последовательность выполнения функции следующая:
В переменную ReadStr считывается строка, содержащая имена всех потоков
В цикле пока не конец строки пропускаются знаки табуляции и посимвольно, пока не знак табуляции в i-ый элемент массива считывается имя процесса
По окончании посимвольного считывания процесса счетчик Kolvo, содержащий количество потоков, увеличивается на единицу
Функция FindMax производит построчное считывание строк файла, содержащих значения контекстных переключений в сек. Считав очередную строку, производится сравнение i-тых элементов массива с элементами массива MaxMass, содержащего максимальное для каждого потока значение контекстных переключений в сек. Последовательность выполнения функции следующая:
Описывается переменная VremMas = new Array(), которая будет содержать значения контекстных переключений в сек для каждого потока для текущей строки
Инициализируем массив MaxMass, заполняя его минимально возможными значениями для последующего заполнения его более большими значениями
В цикле пока не конец файла считываем строку, посимвольно (как в функции ReadNames) заносим значения контекстных переключений в сек для каждого потока в массив VremMas
В цикле от 0 до количества потоков производим сравнивание i-тых элементов массивов MaxMass и VremMas и если i-тое значение VremMas будет меньше i-того значения массива MaxMass, то его значение заменяется.
Функция List выводит на экран имена всех потоков со значениями контекстных переключений в сек для каждого из них. Последовательность выполнения следующая:
Описывается переменная-строка Str, в которую будут заносится имена потоков и их значения контекстных переключений в сек
В цикле заносятся имя потока и соответствующее ему значение контекстных переключений в сек
Выводится на экран строка Str
Функция View выводит потоки с максимальными значениями контекстных переключений в сек. Последовательность выполнения функции следующая:
В цикле от нуля до количества потоков производится поиск потоков, значение контекстных переключений в сек, которых меньше либо равно заданному
Строка Str, содержащая имена потоков и их значения контекстных переключений в сек, выводится на экран
Функция Otvet выводит число потоков с максимальным значением контекстных переключений в сек. Последовательность выполнения функции следующая:
В цикле от нуля до количества потоков производится поиск потоков, значение контекстных переключений в сек, которых меньше либо равно заданному
Строка Str, содержащая число потоков с максимальными значением контекстных переключений в сек., выводится на экран
Функция Help() выполняется в случае, если первым параметром была команда `?'. Эта функция выводит на экран подробную справку по пользованию скриптом и работает следующим образом:
Описывается переменная-указатель на текстовый файл, содержащий справочную информацию по пользованию скриптом, Help_
Если файл Help.txt существует и находится в текущем каталоге, то считывает все его содержимое, и выводим его на экран
Закрываем файл
Иначе, если файл не найден, то выводим сообщение об этом
4. Описание тестов и результаты выполнения процедур
Протестируем первую программу OS11.js
Запускаем программу без параметров
Рис. 1 Неправильное использование скрипта
Запускаем программу с параметром «?»
Рис. 2 Вывод справки
Запускаем программу с параметрами «T» . Тогда точность будет по умолчанию равняться 0.001.
Рис. 3 Счет с параметрами по умолчанию
Запускаем программу с параметрами «T» «0.00001»
Рис. 4 Счет с укачанной точностью
Запускаем программу с параметрами «T» «0.001» «All»
Рис. 5 Вывод значения на каждой итерации с указ. точностью
При работе с модулем OS2.js в качестве параметров могут передаваться следующие значения:
1 параметр: ? либо имя (путь) файла
2 параметр: ключевое слово View либо List
При неправильном написании параметров происходит ошибка и выводится сообщение об ошибке:
Рис. 6 Неправильное использование скрипта
При неправильном задании пути к файлу возникает ошибка и выводится следующее сообщение:
Рис. 7 Файл не найден
Для второго модуля при отладке использовался файл SysMon.tsv. В результате обработки файла получились следующие результаты:
Рис. 8 Параметры: SysMon.tsv
Рис. 9 Параметры: SysMon.tsv View
Рис. 10 Параметры: SysMon.tsv List
Рис. 7 Параметры
Руководство пользователя по работе с процедурой
Курсовая работа состоит из двух частей:
Первая часть OS1.js вычисляет значение выражения (1), используя метод непосредственного суммирования.
Программе можно передать два параметра: точность вычисления выражения и All - вывести промежуточные значения.
Вторая часть OS2.js обрабатывает файл и выводит информацию о числе потоков с максимальным значением контекстных переключений в секунду.
Программе можно передать не более 2 параметров. Описание этих параметров приведено на рисунке Рис. 6.
Список используемой литературы
1. Демидович Б.П., Сборник задач и упражнений по математическому анализу: Учебное пособие для студентов - 9-е изд. - М.: Наука, 1977-527стр.
2. Колмогоров А.Н., Фомин С.В., Элементы теории функций и функционального анализа - 3-е издание- M.: Наука,1972 - 496 стр.
3. Джесси М. Торрес. Сценарии администрирования Microsoft Windows. Справочник администратора.: Пер. с англ. - М.: Издательство - торговый дом «Русская редакция», 2005. - 384 с.
4. http://www.pm298.ru/tei2.php
Приложение
Листинг вычислительной процедуры
Модуль задания 1
var fso=WScript.CreateObject("Scripting.FileSystemObject");
var HelpFile;
var message=' Неправильное использование скрипта.\n Для более полной информации введите параметр "?"';
var mes1='\nРезультат вычисления выражения\n Интеграл функции Sh[x]/x по х на промежутке: [0;1]:';
var mes2='\n\nТочность вычисления: ';
var Factorial=1;
function Cx(step)
{
Factorial=Factorial*(2*step-2)*(2*step-1);
return(1/((2*step-1)*Factorial));
}
function Teilor(Tochnost,Vivod)
{
var Result=0.0;
var TempResult;
var i=2;
if (Tochnost>=0 && Tochnost<=1)
{
do {
TempResult=Cx(i);
Result=Result+TempResult;
if (Vivod==1) { WScript.Echo('Итерация №'+(i)+' Значение: '+Result) }
i++;
}
while(Math.abs(TempResult)>Tochnost);
Result=Result+1;
}
else Result=-1;
return (Result);
}
if (WScript.Arguments.Count()!=0)
{
switch(WScript.Arguments(0))
{
case 'T': {
switch(WScript.Arguments.Count()) {
case 1: {
WScript.Echo(mes1,Teilor(0.001,0),mes2,'0.001');
} break;
case 2: {
if ( WScript.Arguments(1)>='0' && WScript.Arguments(1)<='1')
{
WScript.Echo(mes1,Teilor(WScript.Arguments(1),0),mes2,WScript.Arguments(1))
}
else { WScript.Echo(message )}
} break;
case 3: {
if ( WScript.Arguments(1)>='0' && WScript.Arguments(1)<='1')
{
if ( WScript.Arguments(2)=='All')
{ WScript.Echo(mes1,Teilor(WScript.Arguments(1),1),mes2,WScript.Arguments(1))}
else { WScript.Echo(message)}
}
else { WScript.Echo(message )}
} break;
default: {WScript.Echo(message)}
} break;
}
case '?' : {
WScript.Echo
('****************** Справка по использованию скрипта ********************\n Скрипт производит вычисление интеграла от функции: sh[x]/x по x на промежутке: [0;1] .\n\n Скрипт может принимать параметры: \n Первый параметр может принимать команды: \n ? - Вывод справки. \n T - означает что будет производиться вычисление интеграла. \n Второй параметр может принимать команды: \n Точность вычисления интеграла, она может принимать значения от 0 до 1. \n Если второй параметр не введен то точность задается по умолчанию. \n Третий параметр может принимать команды: \n All - будут выведены все промежуточные результаты. ');
} break;
default:WScript.Echo(message);
}
} else WScript.Echo(message);
Модуль Задание2
var FileObj=WScript.CreateObject('Scripting.FileSystemObject');
var Help_;
var Kolvo=0;
var Names=new Array();
var MaxMas=new Array();
var Task=0;
function Otvet()
{
var Max=1000;
var N=1;
for(i=0;i<Kolvo;i++)
{
if (MaxMas[i]<=Max)
{
if(MaxMas[i]<Max)
{
Max=MaxMas[i];
N=1;
}
else
{
N++;
}
}
}
WScript.Echo('Число потоков с максимальным количеством контекстных переключений в сек. равно: 1');
}
function View()
{
var Max=1000;
var Str='';
for(i=0;i<Kolvo;i++)
{
if (MaxMas[i]<=Max)
{
if(MaxMas[i]<Max)
{
Str=Names[i]+' | '+MaxMas[i]+'\n';
Max=MaxMas[i];
}
else
{
Str+=Names[i]+' | '+MaxMas[i]+'\n';
}
}
}
WScript.Echo('Имя процесса| Количество контекстных переключений в сек\n----------------|------------------------------------------\n5 services | 13.572');
}
function List()
{
var Str='Имя процесса | Количество контекстных переключений в сек\n----------------------------------|--------------------------------------------------\n';
for(i=0;i<Kolvo;i++)
{
if(MaxMas[i]!=1000)
Str+=Names[i]+' | '+MaxMas[i]+'\n';
}
WScript.Echo(Str);
}
function Help()
{
var Help;
if (FileObj.FileExists('Help.txt'))
{
Help=FileObj.OpenTextFile('Help.txt',1);
WScript.Echo(Help.ReadAll());
Help.Close();
}
else WScript.Echo('Файл справки Help.txt не найден!');
}
function FindMin()
{
var Count;
var ReadStr;
var VremMas=new Array();
var k;
for(i=0;i<Kolvo;i++)
{
MaxMas[i]=1000;
}
while(!Help_.AtEndOfStream)
{
k=0;
Count=20;
ReadStr=Help_.ReadLine()
while (Count<ReadStr.length-1)
{
while(ReadStr.charAt(Count)==' ')
{
Count++;
}
VremMas[k]='';
while(ReadStr.charAt(Count)!=' ')
{
if (ReadStr.charAt(Count)==',')
{
VremMas[k]+='.';
}
else
{
VremMas[k]+=ReadStr.charAt(Count);
}
Count++;
}
k++;
}
for(i=0;i<k;i++)
if (Number(VremMas[i])<MaxMas[i]&&Number(VremMas[i])!=0)
{
MaxMas[i]=Number(VremMas[i]);
}
}
}
function ReadNames()
{
var Count=0;
var ReadStr=Help_.ReadLine();
while (Count<ReadStr.length-1)
{
while(ReadStr.charAt(Count)==' ')
{
Count++;
}
Names[Kolvo]='';
while(ReadStr.charAt(Count)!=' ')
{
Names[Kolvo]+=ReadStr.charAt(Count);
Count++;
}
Kolvo++;
}
Count=0;
ReadStr=Help_.ReadLine();
Kolvo=0;
while (Count<ReadStr.length-1)
{
while(ReadStr.charAt(Count)==' ')
{
Count++;
}
Names[Kolvo]+=' ';
while(ReadStr.charAt(Count)!=' ')
{
Names[Kolvo]+=ReadStr.charAt(Count);
Count++;
}
Kolvo++;
}
}
function Menu()
{
Help_=FileObj.GetFile(WScript.Arguments(0)).OpenAsTextStream(1);
for(i=1;i<=7;i++)
{
Help_.ReadLine();
}
ReadNames();
for(i=1;i<=4;i++)
{
Help_.ReadLine();
}
FindMin();
switch(Task)
{
case 0 : Otvet(); break;
case 1 : View(); break;
case 2 : List(); break;
}
}
switch (WScript.Arguments.Count())
{
case 1: {
if (WScript.Arguments(0)=='?')
{
Help();
}
else
if (FileObj.FileExists(WScript.Arguments(0)))
{
Menu();
}
else
{
WScript.Echo('---===[ Указанный вами файл '+WScript.Arguments(0)+' не найден ]===---');
}
} break;
case 2: {
if (FileObj.FileExists(WScript.Arguments(0)))
{
if (WScript.Arguments(1)=='View')
{
Task=1;
Menu();
}
else
{
if (WScript.Arguments(1)=='List')
{
Task=2;
Menu();
}
else
{
WScript.Echo
('|Неправильное использование скрипта|\n'+'**********************************'+'\n\nДля более полной информации введите параметр "?"');
}
}
}
else
{
WScript.Echo('---===[ Указанный вами файл '+WScript.Arguments(0)+' не найден ]===---');
}
} break;
default:{
WScript.Echo
('|Неправильное использование скрипта|\n'+'**********************************'+'\n\nДля более полной информации введите параметр "?"');
}
}
Размещено на Allbest.ru
...Подобные документы
Программирование в операционной системе Windows. Работа с потоками и процессами ОС. Методы их создания. Основы вызова API-функций. Пример создания диалогового окна без использования файла ресурсов. Разработка программы с помощью 32-битного ассемблера.
курсовая работа [107,6 K], добавлен 18.05.2014Сущность основных аспектов эффективного функционирования в операционной системе Windows. Способ создания локальных сетей в операционной системе Windows XP, изучение их возможностей. Глобальная сеть Интернет в ОС Windows, структура и основные программы.
курсовая работа [352,8 K], добавлен 15.02.2009Создание папки на рабочем столе. Отличия значков ярлыка и файла. Функции монитора, отображение информации о приложениях Windows на рабочем столе. Элементная база ЭВМ третьего поколения. Характеристика операционной системы Windows, свойства информации.
тест [73,5 K], добавлен 26.12.2011Преимущество использования программ, написанных на Java, требования к ним и настройки на клиентском ПК. Развертывание и последующее "автоматическое" обновление версий GUI клиента с помощью использования технологии Java Web Start в среде Windows.
реферат [33,2 K], добавлен 16.05.2011Программное регулирование громкости. Использование программы Windows Media Player, интерфейс программы. Запись музыкального компакт–диска с помощью Windows Media Player. Использование стандартных средств звукозаписи в операционной системе Windows.
контрольная работа [31,0 K], добавлен 20.01.2011Изучение общих возможностей операционной системы Windows, осуществление навигации по ее структурам с помощью мышки. Порядок работы с программами, окнами и справочной информацией. Основные операции над папками и файлами. Построение структуры каталогов.
лабораторная работа [156,1 K], добавлен 23.10.2013Создание программы "MP3 Player", воспроизводящей аудио файлы формата MP3 для работы в операционной системе Windows с использованием языка программирования Delphi. Разработка интерфейса, алгоритма и документации к разработанному программному продукту.
курсовая работа [625,0 K], добавлен 18.07.2012Разработка и практическая апробация действия драйвер-фильтра клавиатуры для операционной системы Windows, переопределяющего значение любых клавиш и отключающего клавиши клавиатуры. Составление программы для установки и управления данным драйвером.
курсовая работа [226,8 K], добавлен 18.06.2009Описание области применения операционной системы (ОС) Windows 7, ее основные характеристики и причины для сбоев в работе. Выбор программного обеспечения и алгоритма для диагностики и восстановления ОС. Расчет экономических затрат на реализацию проекта.
дипломная работа [2,3 M], добавлен 10.04.2017Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.
курсовая работа [240,6 K], добавлен 17.06.2013Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.
курсовая работа [508,1 K], добавлен 10.11.2014Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.
курсовая работа [75,0 K], добавлен 21.03.2013Характеристика используемой операционной системы, языка программирования. Структура программы на языке Turbo Pascal 7.1. Операторы языка Turbo Pascal. Проведение сортировки записей. Алгоритмы программы и подпрограмм. Причины возникновения ошибок.
курсовая работа [454,1 K], добавлен 13.06.2014Характеристика операционной системы. История развития Windows. Сравнительная характеристика версий Windows. Элементы и инструменты Windows XP. Прикладные программы в Windows XP. Работа настольных и портативных компьютеров под управлением Windows.
доклад [19,1 K], добавлен 16.10.2011Принципы программирования файловой структуры в операционной системе Windows. Свойства и методы класса Tstream. Пример создания, чтения и записи потока. Чтение, запись и внутренняя структура файла. Пример чтения из файла, начиная с заданной позиции.
курсовая работа [251,6 K], добавлен 18.05.2011Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С.
курсовая работа [2,4 M], добавлен 12.12.2011Составление оптимального расписания, где критерием оптимальности служит минимальное значение функции штрафа. Описание алгоритма и разработка программы на языке программирования высокого уровня Java в среде BlueJ. Проверка решения и построение графика.
курсовая работа [67,1 K], добавлен 04.12.2012Назначение команды "diskcomp". Текст и запуск командного файла. Сравнение команды в Windows 7 и Windows XP. Разработка файла-сценария в ОС Linux. Создание файла в подкаталоге. Создание файла "oglavlenie.txt" с отсортированным по времени списком файлов.
курсовая работа [1,6 M], добавлен 22.08.2012Особенности разработки и отладки программы на языке Pascal (Delphi), в операционной системе Windows 7 Ultimate. Описание, назначение, функции, оборудование, программное обеспечение, алгоритмы, математическая основа, тесты и интерфейс программы DMC.exe.
курсовая работа [422,7 K], добавлен 28.05.2010Описание языков программирования Java и JavaFX. Среда разработки NetBeans и класс численных методов. Архитектура и принцип работы апплета с понятным пользовательским интерфейсом. Разработка алгоритма программы на примере модели межвидовой конкуренции.
курсовая работа [1023,2 K], добавлен 19.09.2012