Московский Государственный институт электроники и математики
(Технический университет)
Курсовой проект
«Разработка сложной командной процедуры в ОС Unix»
по курсу «Операционные системы»
Факультет автоматики и
вычислительной техники
Кафедра «Вычислительная техника»
Выполнил: студентка гр. С-43
Бондарева А.В.
Принял:
Оценка:
Москва 2004г.
Содержание курсовой работы:
Задание на курсовую работу 3
Текст командной процедуры (вариант №1) 4
Описание командной процедуры №1 4
1. Алгоритм работы 4
2. Используемые команды Unix и их параметры. 4
3. Формат командной строки запуска процедуры. 4
4. Результат работы командной процедуры. 5
Текст командной процедуры (вариант №2) 5
Описание командной процедуры №2 5
1. Алгоритм работы. 5
2. Используемые команды Unix и их параметры. 5
3. Формат командной строки запуска процедуры. 6
4. Результат работы командной процедуры. 6
Задание на курсовую работу
Создать процедуру для выполнения арифметических операций с двумя числами. Числа и тип операции передается в виде параметров при обращении к процедуре.
Текст командной процедуры (вариант №1)
#!/bin/sh
in
'*')
d= expr $a "*" $c
;;
'/')
d= expr $a / $c
;;
'+')
d= expr $a + $c
;;
'-')
d= expr $a - $c
;;
esac
echo "$d" #вывод результата
Описание командной процедуры №1
Алгоритм работы
При вызове командной процедуры в строку вызова вводиться строка параметров. Программа, считывая параметры (числа и знак действия между ними), проверяет знак действия, производит необходимые вычисления и выводит результат.
Используемые команды Unix и их параметры.
1. echo $var - вывести значение переменной var. Знак $ перед именем переменной означает "Взять значение.
2. Case - оператор выбора.Удобен для организации ветвления программы на основе совпадения шаблонов (образцов). Можно выполнить подобную операцию с помощью цепочки if-else if, но оператор case короче, удобнее и нагляднее.
Формат оператора case:
case переменная
in
шаблон 1) команда
команда
. . . . . . .
команда ;;
. . . . . . . . . . . . . . . . . . . .
шаблон N. команда
команда
. . . . . . .
команда ;;
esac
Если значение переменной совпало со значением шаблона, то выполняются команды до ';;' , затем те что после esac.
3. expr - Shell не предназначен для проведения арифметических операций с числами. Параметры рассматриваются как строки. Однако для проведения операций с целыми числами всё-таки существует команда expr. В команде expr используются следующие арифметические операции: + - / * %. Команда expr посылает результат на стандартный вывод.
Формат командной строки запуска процедуры.
./kurs1 a b c # a,b,c – параметры в виду число-знак действия-число.
Результат работы командной процедуры.
./kurs1 2 + 3
5
Текст командной процедуры (вариант №2)
#!/bin/sh
echo "Данная программа выполняет дествия" #объяснение дествий программы.
echo "между 2-мя числами."
echo "Введитe 2 числа и знак действия между ними" # пояснения синтаксиса для пользователя
echo "в порядке: число-знак действия-число."
echo ""
echo "Введите 1-ое число" # запрос первого числа
read a # чтение первого числа
echo "Введите действие" #запрос знака действия
read b # чтение знака действия
echo "Введите 2-ое число" #запрос 2-го числа
read c #чтение 2-о числа
echo "Результат:"
case "$b" #проверка знака действия и соответственные действия между 2-мя числами
in
'*')
d= expr $a "*" $c
;;
'/')
d= expr $a / $c
;;
'+')
d= expr $a + $c
;;
'-')
d= expr $a - $c
;;
esac
echo "$d" #вывод результата
Описание командной процедуры №2
Алгоритм работы.
При вызове командной процедуры программа выводит пояснительное сообщение, состоящее из описания действий программы и порядка ввода параметров. Затем программа запрашивает первое число, считывает его; запрашивает знак действия, считывает его; запрашивает второе число – считывает его. Затем идет проверка знака действия, выполняется соответствующее действие и выдается результат.
Используемые команды Unix и их параметры.
1. echo “текс” - выводит текст, который стоит в кавычках после имени команды.
echo $var - вывести значение переменной var. Знак $ перед именем переменной означает "Взять значение.
2. read <переменные> - из стандартного ввода читается строка и её слова присваиваются элементам списка переменных.
3. Case - оператор выбора.Удобен для организации ветвления программы на основе совпадения шаблонов (образцов). Можно выполнить подобную операцию с помощью цепочки if-else if, но оператор case короче, удобнее и нагляднее.
Формат оператора case:
case переменная
in
шаблон 1) команда
команда
. . . . . . .
команда ;;
. . . . . . . . . . . . . . . . . . . .
шаблон N. команда
команда
. . . . . . .
команда ;;
esac
Если значение переменной совпало со значением шаблона, то выполняются команды до ';;' , затем те что после esac.
3. expr - Shell не предназначен для проведения арифметических операций с числами. Параметры рассматриваются как строки. Однако для проведения операций с целыми числами всё-таки существует команда expr.
В команде expr используются следующие арифметические операции:
+ - / * %
Команда expr посылает результат на стандартный вывод.
Формат командной строки запуска процедуры.
./kurs2
Результат работы командной процедуры.
./kurs2
Данная программа выполняет дествия
между 2-мя числами.
Введитe 2 числа и знак действия между ними
в порядке: число-знак действия-число.
Введите 1-ое число
2
Введите действие
+
Введите 2-ое число
3
Результат:
5