Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Максимум и минимум (http://forum.oszone.net/showthread.php?t=259553)

kelevara 28-04-2013 00:36 2140883

Максимум и минимум
 
Доброго времени!
Необходимо из введенных с клавиатуры чисел выбрать минимальное и максимальное. В качестве признака окончания ввода используется "-". Обязательным условием является использование GOTO.
Я написал следующее:
Код:

@echo off
SET /P NUMBER=Number=       
IF NOT %NUMBER% NEQ - (echo Nebilo vvedeno ni odnogo chisla! & GOTO EXIT2) :: проверка, введены ли был хоть один символ
SET /A min = %NUMBER%        :: задание в качестве минимального первого введенного числа
SET /A max = %NUMBER%        :: задание в качестве максимального первого введенного числа
:LOOP
SET /P NUMBER=Number=        :: ввод следующего числа
IF NOT %NUMBER% NEQ - GOTO EXIT1  :: если введен "-", то завершаем программу
IF %NUMBER% LEQ %min% SET /A min = %NUMBER%2  :: если введенное число меньше или равно минимальному, то оно становится минимальным
IF %NUMBER% GEQ %max% SET /A max = %NUMBER%  :: если введенное число больше или равно максимальному, то оно становится максимальным
GOTO LOOP
:EXIT1
ECHO MIN = %min%
ECHO MAX = %max%
:EXIT2
pause


Проблема с определением минимального значения. Если последовательно ввести 4, 3, 2, 1, то в качестве минимального выводится 12. Почему - не ясно... =(

Georgio 28-04-2013 03:39 2140921

kelevara, всё правилно написали! Просто описка в строке:
Цитата:

Цитата kelevara
IF %NUMBER% LEQ %min% SET /A min = %NUMBER%2 :: если введенное число меньше или равно минимальному, то оно становится минимальным »



Если коротко, то так работает:


Код:

@echo off

SET /P NUMBER=Number=       
SET /A min = %NUMBER%
SET /A max = %NUMBER%

:LOOP
SET /P NUMBER=Number=       
IF %NUMBER% LEQ %min% SET /A min = %NUMBER%
IF %NUMBER% GEQ %max% SET /A max = %NUMBER%
ECHO MIN = %min%
ECHO MAX = %max%
GOTO LOOP


kelevara 28-04-2013 10:07 2141006

Georgio, спасибо! ) надо быть мне внимательней


Время: 20:17.

Время: 20:17.
© OSzone.net 2001-