Разработка на языке 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.