Читаем Искусство программирования на языке сценариев командной оболочки полностью

# 1) Добавьте возможность ввода суммы с точностью до цента.

# 2) Добавьте возможность ввода процентной ставки как в виде процентов, так и в виде десятичного числа -- доли целого.

# 3) Если вы действительно честолюбивы,

# добавьте в сценарий вывод полной таблицы помесячных выплат.

<p><strong>Пример 12-33. Перевод чисел из одной системы счисления в другую</strong></p>

:

##########################################################################

# Shellscript: base.sh - вывод чисел в разных системах счисления (Bourne Shell)

# Author : Heiner Steven ([email protected])

# Date : 07-03-95

# Category : Desktop

# $Id: base.sh,v 1.2 2000/02/06 19:55:35 heiner Exp $

##########################################################################

# Description

#

# Changes

# 21-03-95 stv исправлена ошибка, возникающая при вводе числа 0xb (0.2)

##########################################################################

# ==> Используется в данном документе с разрешения автора.

# ==> Комментарии добавлены автором документа.

NOARGS=65

PN=`basename "$0"` # Имя программы

VER=`echo '$Revision: 1.2 $' | cut -d' ' -f2` # ==> VER=1.2

Usage () {

echo "$PN - вывод чисел в различных системах счисления, $VER (stv '95)

Порядок использования: $PN [number ...]

Если число не задано, то производится ввод со stdin.

Число может быть:

двоичное должно начинаться с комбинации символов 0b (например 0b1100)

восьмеричное должно начинаться с 0 (например 014)

шестнадцатиричное должно начинаться с комбинации символов 0x (например 0xc)

десятичное в любом другом случае (например 12)" >&2

exit $NOARGS

} # ==> Функция вывода сообщения о порядке использования.

Msg () {

for i # ==> [список] параметров опущен.

do echo "$PN: $i" >&2

done

}

Fatal () { Msg "$@"; exit 66; }

PrintBases () {

# Определение системы счисления

for i # ==> [список] параметров опущен...

do # ==> поэтому работает с аргументами командной строки.

case "$i" in

0b*) ibase=2;; # двоичная

0x*|[a-f]*|[A-F]*) ibase=16;; # шестнадцатиричная

0*) ibase=8;; # восьмеричная

[1-9]*) ibase=10;; # десятичная

*)

Msg "Ошибка в числе $i - число проигнорировано"

continue;;

esac

# Удалить префикс и преобразовать шестнадцатиричные цифры в верхний регистр (этого требует bc)

number=`echo "$i" | sed -e 's:^0[bBxX]::' | tr '[a-f]' '[A-F]'`

# ==> вместо "/", здесь используется символ ":" как разделитель для sed.

# Преобразование в десятичную систему счисления

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных