🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #14932

Re: script en bash. Múltiplos de 10

#14932
From: Mauricio
Date: Sat, 02 Sep 2000 19:28
56 lines
3131 bytes
Benjamin Albi�ana Perez escribi�:

BAP> �C�mo podr�a saber si una variable es m�ltiplo de 10, en bash?

De principiante a principiante :)

Por lo que veo, la aritm�tica que usa bash es del tipo "entera euleriana":
las operaciones "divisi�n entera" (DIV) y "resto" (REM) devuelven, respect.
el cociente y el resto de la divisi�n de los dos operandos:

Ej:

  31 DIV 10 =  3;  31 REM 10 =  1;    31 DIV -10 = -3;  31 REM -10 = -1;  
 -31 DIV 10 = -3; -31 REM 10 = -1;   -31 DIV -10 =  3; -31 REM -10 =  1;

Para averiguar si un n�mero m es m�ltiplo de otro n s�lo hay que comprobar
si $((m REM n)) es cero.


Y para completar la explicaci�n (esto no tiene nada que ver con el bash):

Los lenguajes de programaci�n normalmente usan una "aritm�tica de m�dulos"
(congruencia), en la que las operaciones "divisi�n" (DIV) y "m�dulo" (MOD)
quedan definidas de esta forma:

   Sea  Q = m DIV n,  R = m MOD n; entonces  Q*n + R = m,  0 <= R < n

(esto es, la definici�n habitual de cociente y resto, salvo que R aqu� no
puede tomar valores negativos).

Ej:

   31 DIV 10 =  3;   31 MOD 10 = 1    ya que   3*10 + 1 =  31
  -31 DIV 10 = -4;  -31 MOD 10 = 9    ya que  -4*10 + 9 = -31

Ambas aritm�ticas dan el mismo resultado cuando los dos operandos son
positivos, pero difieren cuando el dividendo es negativo (el caso del
divisor negativo no est� definido en la 2da). La operaci�n MOD tambi�n
se emplea a menudo para comprobar si un n�mero es m�ltiplo de otro.


BAP> Tengo un script que corro todos los d�as con el cron, pero ser�a m�s
BAP> pr�ctico si supiera lo de arriba. Si es posible, prefiero que me
BAP> digais el camino, man snaf�, p.ej.,  y no la soluci�n directa. Por
BAP> hacerlo divertido.

Como no quieres la soluci�n directa, no he puesto el s�mbolo que usa el
bash para la operaci�n REM. Pista: "resto" en ingl�s se dice con una de
estas palabras:  remainder, residual, residue, residuum, rest   :)))

S�, voy a dejar los porros. Y si alguien me pregunta, negar� toda relaci�n
con este mensaje  :)

Saludos.
-- 
Debian GNU/Linux
Technical Details
Message-ID: <nckro8.inv.ln@127.0.0.1>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!newscon01.news.prodigy.com!prodigy.com!newsfeed.cwix.com!newsfeed.icl.net!news.algonet.se!algonet!newsfeed1.swip.net!swipnet!news-sto.telia.net!newsfeed.bcn.ttd.net!news.bcn.ttd.net!not-for-mail
References: <slrn8r2dqo.q1a.benjamin@lamanonegra.net.dhis.org>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,1b6698bfa9f7b951
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2000-09-02 12:31:37 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!newscon01.news.prodigy.com!prodigy.com!newsfeed.cwix.com!newsfeed.icl.net!news.algonet.se!algonet!newsfeed1.swip.net!swipnet!news-sto.telia.net!newsfeed.bcn.ttd.net!news.bcn.ttd.net!not-for-mail
From: Mauricio <tas@subdimension.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: script en bash. Múltiplos de 10
Date: Sat, 2 Sep 2000 21:28:23 +0200
Organization: Bits & Bobs Inc.
Lines: 56
Message-ID: <nckro8.inv.ln@127.0.0.1>
References: <slrn8r2dqo.q1a.benjamin@lamanonegra.net.dhis.org>
NNTP-Posting-Host: acceso-55.mad.idec.net
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: tin/1.4.1-19991201 ("Polish") (UNIX) (Linux/2.2.16 (i586))