Curso de Filosofía elemental (28)

XXXIV

Sociedad política

 

167. LA SOCIEDAD CIVIL O POLÍTICA

   Ni las familias ni las asociaciones locales o laborales viven en aislamiento, sino integrados en un cuerpo social. No podrían hacerlo porque, aunque tengan su propia finalidad y estructura, carecen de las necesarias condiciones de autarquía y de defensa respecto al exterior. Al cuerpo social, integrado por estas formas divesas de asociación (familias, municipios, gremios o sindicatos, etc.) y dotado del necesario poder de armonización interna y de defensa exterior, lo llamamos, en términos generales, sociedad civil o política. Su nombre procede de la polis o ciudad griega, que era, como dijimos, una unidad independiente y dotada de órganos propios de gobierno y de defensa. Se compara a menudo a la sociedad civil con un organismo –conjunto vivo (orgánico) de familias, corporaciones, clases sociales–, y a la autoridad u órgano supremo de gobierno con su cabeza, que preside y dirige ese cuerpo social.
   La autoridad o poder público es así esencial a la sociedad civil o política y la constituye como tal. Dos son sus funciones esenciales: la de ordenar o armonizar interiormente el cuerpo social y la de defenderlo respecto del exterior.

168. EL MUNICIPIO COMO ASOCIACIÓN DE FAMILIAS QUE VIVEN REUNIDAS

   (Reitérese aquí lo dicho en el núm. 165.)

169. LA NACIÓN COMO SOCIEDAD CIVIL BAJO UNA SOLA AUTORIDAD

   La sociedad es, como pensaba Aristóteles, una proyección de la naturaleza humana; es decir, de sus tendencias profundas. Las formas e instituciones más permanentes en toda sociedad responden, como hemos visto, a las tendencias fundamentales del ser humano. Y lo mismo que el ser humano en abstracto no existe, sino que existen seres humanos personales y concretos, diferentes todos entre sí, así tampoco existe la sociedad civil en abstracto, sino sólo sociedades concretas, históricas, distintas entre sí. Sociedades políticas fueron las antiguas tribus y fratrias, las polis o ciudades griegas, etc.; es decir, toda convivencia humana dotada de una autoridad capaz de armonizar y defender el grupo. Sociedades políticas suelen ser igualmente las naciones modernas, que se han ido formando en un largo proceso de incorporación, de federación o de conquistas a lo largo de los siglos que siguieron a la desmembración del Imperio romano.
   Puede definirse a la nación como el conjunto de pueblos que, por motivos históricos, geográficos o políticos, han convivido unidos durante siglos hasta crearse en ellos una conciencia de comunidad.

170. ORIGEN HISTÓRICO DE LAS NACIONALIDADES CONCRETAS

   Las naciones se han formado así en un largo proceso de convivencia o de conquista. Este origen histórico de las nacionalidades concretas hace de ellas realidades muy vigorosas que determinan entre sus miembros modos de ser y de reaccionar comunes, una misma lengua, costumbres semejantes, etc. Los pueblos que constituyen una nación han convivido generalmente bajo una sola autoridad, formando una sociedad política histórica; pero si, por azares históricos (conquistas o divisiones), esta unidad política se rompe, no desaparece con ello la nación, que es una realidad cultural e histórica. Así, una nación como Alemania de hoy puede estar regida por diferentes poderes, y, a la inversa, diversas naciones pueden estarlo por uno solo (como las naciones británicas).
   El sentimiento característico que mantiene unidos de un modo cordial y voluntario a los miembros de una comunidad política o nación es el patriotismo. En su aspecto profundo y espiritual, cada pueblo o nación es una patria. La idea de patria y el sentimiento de patriotismo proceden de pater o padre, y consiste en la consideración del propio país como la tierra santificada por los padres y antepasados, cuya memoria debe venerarse y a cuya fe debe permanecerse fiel. El patriotismo, para ser recto y sano, debe nacer del amor y respeto a los padres o a la casa paterna, y prolongarse, a través de la estirpe y del propio pueblo o país, hasta la gran patria o nación histórica. Este sentimiento, a medida que gana en extensión, se purifica, haciéndose más espiritual y menos exclusivista, pero no pierde por eso su carácter concreto e histórico; es decir, no deja nunca de ver a la patria como una gran familia con su propia fe y sus propias tradiciones.
   Este concepto familiar de la Patria se expresa también en el supremo poder o autoridad política de muchas naciones –y antiguamente de todas– al estar vinculado a una estirpe o familia real cuya continuidad representa a la gran familia histórica que es la Patria.

 


XXX

Sociedad y Estado

 

171. EL ESTADO COMO SUPREMA AUTORIDAD CIVIL Y COMO GUARDADOR DEL DERECHO

   La palabra Estado tiene hoy dos sentidos diferentes, que conviene distinguir, dado que son origen de frecuentes equívocos. Entiéndese a menudo por Estado la suprema autoridad política que gobierna a la sociedad civil regulando las relaciones de personas y grupos mediante el cumplimiento del derecho. Otras veces se entiende por Estado la nación misma en cuanto organizada y estructurada políticamente por el poder o autoridad civil. Así se dice frecuentemente que España o Francia, por ejemplo, son Estados. Según esta acpeción, Estado sería equivalente a nación, cuando ésta se halla reunida bajo una sola autoridad. Sin embargo, es frecuente asistir a un cambio o golpe de Estado u oir hablar del Estado nuevo, sin que pueda pensarse que la nación cambie o que pueda producirse una nación o una patria nuevas.
   Esta identificación entre la Nación y el Estado, o entre la sociedad civil y el poder político, procede de la teoría democrática o constitucional moderna, que se inició con la Revolución francesa. Según ella, todo poder y todo organismo público dentro de la nación dependen del poder estatal, que representa la Voluntad General y que es el principio único de organización del país, el cual no reconoce otra jurisdicción o autoridad independiente a su lado. Así, la nación, como cuerpo dotado de esta sola organización y sometido a esa sola autoridad, vendrá a ser lo mismo que el Estado en su sentido amplio.
   En épocas anteriores a la Revolución francesa, el poder se diferenciaba claramente de la sociedad que gobernaba, la cual tenía en las familias, en el municipio, etc., una estructura y unos poderes distintos del supremo poder político, a menudo anteriores al mismo. Asi se hablaba siempre del Príncipe y de la República (República o sociedad civil) como de cosas diferentes, y el Imperio Romano se titulaba Senatus populusque romanus; es decir, algo (el Rey o el Senado, el poder) que gobierna, y algo (el pueblo o el país) que es gobernado, pero que tiene su ser y su estructura, sus costumbres y sus instituciones, con independecia del poder que le gobierna.
   Puede, pues, definirse el poder o autoridad política como el principio rector que gobierna a los miembros –sean individuos o grupos– de la sociedad, obligándolos a realizar o inhibir determinados actos en orden al bien común, que es la armonía de todos y la salvaguardia de sus derechos. El poder político es principio esencial de la sociedad civil, y aun puede compararse con la cabeza en el organismo social, toda vez que sin él no existiría la armonía interna ni la defensa exterior que la sociedad necesita, ni las sociedades menores que comprenden en su seno podrían cumplir sus fines.

172. RELACIÓN DEL PODER CON LA SOCIEDAD. FUNCIONES Y LÍMITES DEL PODER POLÍTICO

   El poder civil o político es supremo dentro de la nación o territorio de su jurisdición; por lo mismo a él compete la responsabilidad de cuanto sea necesario para la normal y pacífica convivencia y para la consecución del bien común de los súbditos o ciudadanos. Funciones de la autoridad civil son, así, las de ordenar e impulsar la cooperación social de sus súbditos –individuos o grupos–, preservándolos en el interior contra la injusticia o el abuso y en el exterior mediante la defensa nacional. A estas funciones de ordenación y de defensa interior y exterior puede añadirse la de fomentar o suplir, en caso necesario, los cometidos que la sociedad, en sus comunidades naturales, deje de cumplir por sí misma o cumpla insuficientemente.
   Para el ejercicio de estas funciones se atribuyen a la autoridad política tres clases de poderes, complementarios entre sí; el poder de dictar leyes (llamado legislativo), el de hacer que éstas se cumplan (llamado ejecutivo) y el de dirimir los litigios entre individuos o grupos y castigar las infracciones de la ley (llamado judicial).
   Los límites a que ha de atenerse en sus funciones el poder político se deducen del fin o los fines que por ley natural le están asignados. Ese fin es, ante todo, la realización del bien común, que es la parte de bien o de perfección que adviene al hombre por vivir en sociedad, cumpliendo así una exigencia de su naturaleza social. De lo cual se deduce que el bien común no puede erigirse en fin supremo o absoluto, puesto que es sólo un bien que completa al bien personal del ser humano, que posee sus propios fines anteriores a ese complemento del bien. Consecuencia de esto es que al poder político, como a los restantes poderes sociales, se atribuya una función llamada subsidiaria o de subsidiaridad en lo que a los individuos o grupos que se hallan dentro de su jurisdición se refiere. Así como la autoridad del padre no puede coartar la recta libertad ni los fines personales de los miembros de la familia, así el poder político no puede tampoco reducir, ni menos anular, los fines ni el ámbito propio que las familias y grupos corporativos (municipios, gremios, etc.) que integran la sociedad que él debe gobernar, salvo en lo necesario para que ese gobierno sea posible.
   Se opone a esta limitación del poder político basada en los fines naturalesde la persona y de las diversas corporaciones, la concepción estatista moderna, que no reconoce otro sujeto originario de poder o de derecho que el Estado, y supone a toda otra autoridad como delegada u otorgada por el mismo. Consecuencia de esta teoría es la extralimitación totalitaria del Estado moderno, que somete o destruye toda fuente autónoma de vida jurídica o administrativa, tanto en las corporaciones locales o profesionales como en la misma familia y en la Iglesia; y, paralelamente, la disminución que experimentan los ciudadanos en su interés y empeño por las cosas públicas, que las abandonan a esa máquina gigantesta y absorbente que es el Estado totalitario. La burocracia estatal sustituye así a la colaboración corporativa de los ciudadanos y engendra, junto a una mecánica e incolora uniformidad política, la apatía y el desinterés del hombre hacia el gobierno y la administración pública.

173. SOBERANÍA SOCIAL Y SOBERANÍA POLÍTICA

   La consideración de las diversas formas de asociación que en el cuerpo social coexisten, y de las funciones y límites de la autoridad política, nos lleva a contraponer dos géneros de soberanía que están radicados en la misma naturaleza de la sociedad humana: la soberanía social y la soberanía política.
   Está constituida la primera por los derechos naturales de las distintas personas –individuales y morales o colectivas– que constituyen el cuerpo social (desde los derechos de la persona y la familia hasta los de la nación histórica o de la Iglesia, pasndo por el municipio, el gremio, la Universidad, etc.), y por el orden jerárquico que entre sí mantienen.
   Esta soberanía, difusa por todo el cuerpo orgánico de la sociedad, necesita para su salvaguardia y armonización de otra soberanía –la política–, que tiene su propia esfera de acción, pero que ha de ejercerse ciñéndose al orden y a la estructura de la sociedad que ha de gobernar. Procede esta autoridad de la elección o de orígenes hereditarios que la sociedad respete desde su primera formación histórica, debe reconocer, para ser legítima, aquella otra soberanía que nace del derecho previo de las instituciones sociales sobre las que ha de ejercerse. (Véase VÁZQUEZ MELLA. Obras. Tomo XV.)

174. TEORÍAS SOBRE EL ORIGEN DEL PODER

   Puesto que el poder o autoridad política es algo esencial a la sociedad, en forma tal que ésta no podría existir sin él, las teorías sobre el origen del poder vienen a ser las mismas que las que hemos visto sobre el origen de la sociedad.
   Son tres fundamentalmente: el racionalismo o teoría democrática del poder, el universalismo social o teoría carismática del poder, y la teoría del origen natural de la sociedad y del poder, que coincide con el pensamiento católico sobre esta cuestión.
   Según la primera de estas teorías –el racionalismo o individualismo político de LOCKE y de ROSSEAU, entre otros–, la sociedad es un artificio o acuerdo entre los hombres, y, por lo mismo, sólo puede ser dirigida por la voluntad de estos mismos. El poder político tendrá su origen, para esta teorá, en la Voluntad General de la Nación, y quien lo ejerza lo hará por designación de esa Voluntad y representándola. Esta teoría, al hacer brotar la sociedad y el poder del mero acuerdo y de la voluntad de los individuos, destruye el carácter religioso de la autoridad, y no explica cómo de la suma de voluntades individuales, que no poseen poder para mandar sobre los demás, puede surgir una voluntad que lo posea.
   La segunda teoría, el universalismo o totalitarismo de Estado, supone que la sociedad y el poder existen por encima y antes del individuo, el cual sólo de su evolución ha recibido los derechos y la misma individualidad que posee. Este todo social –la nación o el Estado– existe por sí mismo, y de él brota el jefe, al que se supone ungido o dotado de un carisma o representación vitalicia de la Nación o del Pueblo. Esta doctrina desposee al poder, no sólo de su valor religioso, sino de todo sentido racional humano al aceptarlo como un hecho, como un mero producto de la evolución histórica o racial.

175. DOCTRINA DEL ORIGEN DIVINO DEL PODER Y DE SU CONCRECIÓN HISTÓRICA

   La tercera teoría reconoce en la naturaleza humana el origen de la sociedad. El hombre, como vimos, es <<animal social>>. Si la sociedad resulta de la naturaleza del hombre, también el poder –que es necesario a la sociedad– será una exigencia natural. Y, como Dios es autor de la naturaleza humana y de sus tendencias, lo será también de la sociedad y de la autoridad, que es la primera de sus condiciones y exigencias.
   Tal es el sentido de la sentencia de San Pablo, que es doctrina común entre los católicos: non est potestas nisi a Deo. Es decir, que el que gobierna no lo hace, según esta doctrina, por su propio poder o derecho de conquista, ni en nombre de la Voluntad General, ni por o en nombre de un carisma o representación de la Nación, sino por y en nombre de Dios, de quien toda potestad procede, que ha creado al hombre con necesidad de vivir en sociedad, y a la sociedad con necesidad de una autoridad suprema. Este carácter, en cierto modo sagrado, del poder explica la posibilidad de decisiones como condenar a los reos o declarar la guerra, cuya gravedad y consecuencias no se verían autorizados por la mera adición de voluntades o por una convivencia general. Así, la justicia en la sociedad cristiana se administraba siempre <<en nombre del Rey>>, y el Rey reinaba <<por la gracia de Dios>>.
   Problema distinto a este del origen y significado de la autoridad en sí misma considerada es el de la designación de los que han de ejercer esa autoridad o de la transmisión a ellos del derecho a ejercerla. Esto ha variado mucho a través de la Historia, y permanece siempre relativo a las tradiciones y costumbres de cada pueblo. Si un grupo de familias emigrantes se asienta hoy en un territorio nuevo, si no exite preeminencia respetable entre ellas, tendrán que designar por elección a aquel o aquellos que habrán de ejercer la autoridad. Podrían después establecer –por acuerdo o por costumbre tácita– que el designado nombrase un sucesor antes de cesar o de morir, o que continuase el poder en su estirpe. Podrían asimismo establecer una elección periódica. Si el sistema está asentado y cuenta con el consenso o la adhesión general, los designados serán legítimos y la alteración caprichosa o violenta del sistema comportará un principio de ilegitimidad.
   En las naciones europeas de origen medieval cristiano y, en general, en los pueblos antiguos de cualquier religión, la soberanía se ha hallado vinculada por herencia a una familia o estirpe, cuyo derecho tiene orígenes remotos y a veces desconocidos –electivos a veces, de conquista otros–, radicados siempre en la lejana formación de esas nacionalidades.
   Entre los autores católicos se sostienen dos opiniones diferentes sobre la forma cómo el poder –procedente siempre de Dios– se transmite al gobernante legítimo en concreto. Para unos (SUÁREZ, BELLARMINO, BALMES) la sociedad contiene como en depósito la soberanía –como condición que es de su existencia– y la transmite al gobernante elegido o al que por herencia ejerce el poder mediante el consenso habitual de los gobernados. Es ésta teoría de la transmisión mediata del poder; es decir, de su transmisión a través o mediante la sociedad. Para otros (CATHEREIN, ENRIQUE GIL ROBLES, LEÓN XIII), Dios transmit la soberanía directa o inmediatamente al gobernante legítimo, sin que al cuerpo social le incumba más que su designación o aceptación. Es la teoría de la transmisión inmediata del poder.

176. DISTINTAS FORMAS DE GOBIERNO, POSIBLE SÍNTESIS DE LAS MISMAS

   Sobre el ejercicio, en concreto, de esa autoridad o poder político necesario para que la sociedad civil subsista, fue Aristóteles quien trazó una clasificación de formas de gobierno que se hizo clásica, y que comprendía tanto las justas o rectas como las injustas o desviadas. Esta clasificación se apoya en un doble fundamento: que el poder lo ejerza uno solo, o un grupo, o la totalidad de los ciudadanos; y que se ejerza en orden al bien común o, por el contrario, al provecho propio de los gobernantes.
   Son formas justas de gobierno la monarquía (gobierno de uno solo), la aristocracia (gobierno de los mejores) y la democracia (gobierno de todo el pueblo). La historia antigua ofrece ejemplos de estas formas de gobierno sólidamente asentadas en la tradición y la costumbre de diversos pueblos: la monarquía, en las principales nacionalidades europeas; la aristocracia, en repúblicas medievales, como Venecia; la democracia, en las antiguas ciudades griegas, etc. En general, los pueblos grandes en territorio o población fueron monárquicos, y la república (aristocracia o democrática) fue posible sólo en países pequeños o en ciudades autónomas.
   La corrupción de estas tres formas de gobierno da lugar a otras tantas formas injustas: la tiranía (gobierno de uno solo en su propio provecho), la oligarquía (gobierno de unos pocos sin razón de selección), la demagogia (gobierno del pueblo en la satisfacción de sus bajos impulsos).
   Según Aristóteles, la mejor forma de gobierno es la monarquía, porque en ella participa el gobierno de la unidad, continuidad y responsabilidad de la persona que lo jerce; en tanto que en las otras formas se diluye en asambleas y nadie se hace verdaderamente responsable. Y la peor forma es, también según el mismo filósofo, la tiranía, porque <<la corrupción de lo mejor es lo peor>>, y la misma eficacia personal de la monarquía se pone en ella al servicio de la injusticia.
   Santo Tomás recogió esta clasificación aristotélica, y, para él, es también la monarquía la mejor forma de gobierno; pero añade la idea de que aún la supera una forma compleja en que se armonicen en una posible síntesis las tres formas justas de gobierno: democracia en los grupos corporativos de la sociedad, aristocracia en las altas funciones de gobierno y de defensa, monarquía en el supremo ejercicio del poder. Y cabe observar cómo el régimen político que se fue formando en los países cristianos durante la Edad Media coincidió en sus líneas esenciales con esa forma más perfecta de gobierno que porpugnó Santo Tomás: una democracia en los municipios, gremios y universidades; una aristocracia en los cargos de poder y confianza, en el ejército y la diplomacia; una monarquía en la cumbre del poder.

Anuncios

MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES

Estatuto del Trabajo Autónomo

 
Estatuto del Trabajo Autónomo
Los derechos de más de tres millones de autónomos
 
  • Derechos individuales y colectivos.
  • Más y mejor protección social.
  • Apoyo para proyectos empresariales.
  • Protección para el trabajador autónomo económicamente dependiente.

Con este Estatuto se da respuesta a las inquietudes y demandas de los autónomos:

::> DERECHOS DE TODOS LOS AUTÓNOMOS:

  • Derecho a la igualdad y no discriminación.
  • Derecho a la conciliación de la vida profesional y familiar.
  • Protección de los menores de 16 años.
  • Derecho a la salud y seguridad en el trabajo.
  • Garantías económicas para el cobro de sus retribuciones, especialmente cuando trabajen para contratistas y subcontratistas.
  • Protección de la vivienda habitual frente al pago de deudas fiscales y de Seguridad Social.
  • Posibilidad de contraer como trabajadores del negocio familiar a los hijos menores de 30 años.

::> DERECHOS DE LOS TRABAJADORES AUTÓNOMOS  ECONÓMICAMENTE DEPENDIENTES, que son los que realizan una actividad económica o profesional para una empresa o cliente del que perciben, al menos, el 75% de sus ingresos:

  • Como mínimo, 18 días laborables de vacaciones al año.
  • Indemnización en caso de despido.
  • Defensa de sus derechos ante la jurisdicción social.
  • Negociar conjuntamente sus condiciones de trabajo mediante acuerdos de interés profesional.

::> DERECHOS COMO COLECTIVO PRESENTE Y ACTIVO EN LA SOCIEDAD:

  • Derecho a crear asociaciones de autónomos y afiliarse al sindicato de su elección.
  • Derecho de las asociaciones y sindicatos a defender y promocionar los intereses económicos y sociales de los autónomos.
  • Derecho a participar en la definición de las políticas públicas que les afecten, a gestionar programas públicos dirigidos a los autónomos y a estar presentes en el Consejo del Trabajo Autónomo.

::> MÁS Y MEJOR PROTECCIÓN SOCIAL:

  • Extensión a todos los autónomos de la protección en caso de baja por enfermedad.
  • Los autónomos económicamente dependientes y los que trabajan en sectores con mayor riesgo de siniestralidad laboral tendrán protección en caso de accidente de trabajo, también el ocurrido en el desplazamiento entre el domicilio y el lugar de la actividad, y enfermedad profesional.
  • Se establecerá una prestación por cese de actividad que proteja al autónomo en situación de desempleo por causas ajenas a su voluntad.
  • Jubilación anticipada para los autónomos que desarrollen trabajos especialmente peligrosos, para los que tengan una cierta edad y no encuentren trabajo después de percibir la prestación por cese de actividad y para las personas con discapacidad que realicen un trabajo autónomo.
  • Permiso de paternidad para los trabajadores autónomos y mejoras en la protección de la maternidad y riesgo durante el embarazo o lactancia de las trabajadoras autónomas.

::> REDUCCIONES Y BONIFICIACIONES EN LAS BASES DE COTIZACIÓN O EN LAS CUOTAS DE LA SEGURIDAD SOCIAL para determinados colectivos de trabajadores autónomos:

  •  Ajuste en las bases de cotización para trabajadores que coticen simultáneamente a varios Regímenes de la Seguridad Social sobrepasando la base máxima de cotización.
  • Personas con discapacidad.
  • Trabajadores autónomos que se dediquen a la venta ambulante o a la venta a domicilio.
  • Otros colectivos como los artesanos.

::> POLÍTICA DE FOMENTO DEL EMPLEO AUTÓNOMO:

  • Reducción y bonificaciones de las cuotas a la Seguridad Social para jóvenes hasta 30 años y mujeres hasta 35 que inicien su actividad como autónomos: 30% durante 30 meses.
  • Promoción de la cultura emprendedora.
  • Apoyo a la financiación de proyectos de inversión.
  • Ayuda a los procesos de innovación tecnológica y organizativa.
  • Acceso a la formación profesional.
  • Adecuación de la política fiscal para favorecer el trabajo autónomo.

Los derechos de más de 3 millones de autónomos

MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES


wWw.mTas.eS

__//::Feria y fiestas de Badolatosa::\\__

 
   Año 2007, mes de Agosto y día 2 jueves para ser más exactos. Da comienzo la fería
en mi pueblo, coincide desde luego con un momento álgido en mis estudios ya que me he
marcado un plazo hasta septiembre para aprobar mi primera asignatura en la UNED. Todo
parece indicar que los preparativos ya se últiman para dar paso a días inolvidables en
la vida de los
vecin@s del pueblo. Después de, algo de diplomacia inicial, pasaré a un
resumen de mi actual estado en los estudios de Ingenería Técnica en Informática de Gestión;
Asignatura: Estructura y Tecnología de Computadores I
 – Material añadido a INTERNET: 0%
 – Temas leídos o comprendidos: 78%
 – Temas con estudio pormenorizado: 48%
 – Tasa de acierto en examen: 29%
 – Años de matricula: 3
Asignatura: Programación (primer cuatrimestre)
 – Material añadido a Internet: 24%
 – Temas leídos o comprendidos: 78%
 – Temas con estudio pormenorizado: 39%
 – Tasa de acierto en examen: 45%
 – Años de matricula: 3
Asignatura: Estructura y Tecnología de Computadores II
 – Material añadido a Internet: 12%
 – Temas leídos o comprendidos: 33%
 – Temas con estudio pormenorizado: 30%
 – Tasa de acierto en examen: 0%
 – Años de matricula: 3
Por lo que en el plazo de un mes, me veré obligado a descartar a dos de ellas para asegurar
mi continuidad en la Universidad, de ello depende por tanto mi futuro a medio plazo en el
plano profesional.
   En otro orden de cosas, pues como que sigo con mi actividad ajedrecística casi a diario
y entendiendo cómo, quizás, se aprende de un juego para un modelo válido para obrar en esta
vida. No es que el respeto, el individualismo o la victoria sean pilares básicos del ajedrez,
sin embargo, en mi caso son necesarios para divertirme y disfrutar. Lo que desde luego parece
que me voy encauzando es en la idea o la visión que me aporta mi etapa de madurez que vivo
en estos instantes. El realizar un esfuerzo continuo y diario en estudiar en la Universidad
tan sólo me ha aportao hasta el momento 3 años de sequía de asignaturas aprobadas. Y
eventualmente he conseguido algún logro personal en materias propias de otras ciencias pero
muy relacionadas con la propia informática. Estoy pues, en un punto intermedio entre técnico
y currante medio. E incluso aun no es el momento de romper la botella para poner a flote al
nuevo barco y decir abiertamente a los cuatros vientos; "Soy quiosquero". En cualquier caso,
todo lo que anteriormente he expresao se reduce a una simple ilusión objetiva que brota de
mi pensamiento tal cual, y que sin embargo me aporta la posibilidad de un recuerdo temporal,
o una estadística personal. Al utilizar, habitualmente, un blog te acostumbras a las sutilezas
que existen en el mundo de la literatura, por ejemplo; es distinto cuando soñamos con alguna
circunstancia grabada en nuestra memoria sobre algo sucedido si en ella existían más individuos
o si el recuerdo es sobre uno mismo. Al usar el lenguaje escrito, ocurren circunstancias similares
que producen un comportamiento distinto si lo que se hace es; "escribir para prensa", "escribir
para un diario", "escribir para terceros", etc…. Yo, por la parte que me pertenece, aplico
en general el lenguaje impersonal, ya que así me siento más a gusto. Con ésto del space, doy
un salto adelante hacia mi implacable línea de especialización tecnológica, desde los comienzos
en mis cursos de mecanografía, allá por el milenio pasao, pasando por una redibujación cuadricular
de los primeros software de estrategia y culminando en el THC.
Y nos dieron las doce y las una y las dos, como dice una canción de Joaquín Sabina y hasta llegar
a las 5 y 25 de la madrugá de este primer día de feria han paso una media hora desde que escribo
y <abro> este nuevo día para disfrutar escribiendo del jueves 2 de agosto a las 5:29:05.
Son ya 29 años, ni más ni menos, los que llevo en este planeta llamado TIERRA. 29 primaveras
que he soñado con ellas. 29 fracciones solares que sigo viviendo. 

Fundamentos de programación con Módula-2 (12)

 

5.3 Estructuras básicas en Modula-2

En este apartado se introducen las sentencias de Modula-2 que corresponden a las estructuras básicas introducidas anteriormente. Además se describen algunas posibilidades adicionales de estas sentencias, que permiten algunas variantes de las estructuras básicas, y que simplifican la escritura de algunos programas.

5.3.1 Secuencia
Esta estructura ya ha sido introducida en el Tema 2 y utilizada en todos los programas y ejemplos realizados hasta ahora. Para programar una secuencia de acciones en Modula-2 se concatenan las sentencias que forman la secuencia de acciones, separándolas unas de otras por un punto y coma (;). Así, la secuencia de la Figura 5.3 se escribe de la siguiente manera:

        AcciónA ;
        AcciónB

Formalmente, según se vio en el Tema 2, la sintaxis de la estructura secuencia es:

Secuencia_de_sentencias ::= Sentencia { ; Sentencia }

5.3.2 Sentencia IF
En Modula-2 la estructura de selección de la Figura 5.4 se programa como una sentencia IF que tiene el siguiente formato:

       IF Condición THEN
            AcciónA
       ELSE
           AcciónB
       END

La ejecución de la sentencia IF consiste en evaluar la expresión de Condición, y a continuación ejecutar o bien la AcciónA (si se cumple la condición), o bien la AcciónB (si la condición no se cumple). Las palabras clave IF, THEN, ELSE y END separan las distintas partes de la sentencia. Por ejemplo:

     IF largo > ancho THEN
        ladoMayor := largo
     ELSE
        ladoMayor := ancho
     END

En ocasiones no es necesario ejecutar nada cuando la Condición no se cumple. La estructura en estos casos queda reducida a la que se muestra en la Figura 5.6.
El formato de la sentencia en Modula-2, ahora es el siguiente:

       IF Condición THEN
          Acción
       END

en este caso se ejecuta la Acción cuando la expresión Condición resulta SI y en caso contrario no se ejecuta nada. Así, el ejemplo anterior se puede programar:

     ladoMayor := ancho;
     IF largo > ancho THEN
        ladoMayor := largo
     END

Figura(5_6)
     Figura 5.6 Selección simplificada

Es bastante frecuente realizar selecciones que dan lugar a más de dos posibilidades. Por ejemplo, ciertas tarifas pueden ser diferentes según la edad:

     Niños de 0 a 6 años                                                  Gratis
     Jóvenes de 6 hasta 18 años                                       50 %
     Adultos de 18 hasta 65 años                                     100 %
     Jubilados de 65 años en adelante                               25 %

Tal como se indicó anteriormente, es posible anidar varias estructuras de selección unas dentro de otras. Así, se podría realizar esta selección de la siguiente forma:

IF edad < 6 THEN
   tarifa := 0.0
ELSE
   IF edad < 18 THEN
      tarifa := 0.5
   ELSE
      IF edad < 65 THEN
         tarifa := 1.0
      ELSE
         tarifa := 0.25
      END
   END
END

Si, como en este caso, la evaluación de las condiciones se hace "en cascada", atendiendo a una de ellas sólo si todas las anteriores han sido falsas, se puede usar en Modula-2 una forma general de la sentencia IF que responde directamente a esta cadena de selecciones, y que se representa gráficamente en la Figura 5.7

Figura(5_7)
     Figura 5.7 Selección en cascada

El formato general de la sentencia IF es el siguiente:

IF Condición1 THEN
   AcciónA
ELSIF Condición2 THEN
   AcciónB

ELSIF CondiciónN THEN
   AcciónJ
ELSE AcciónK
END

con esta sentencia la selección anterior se escribe en Modula-2 de la siguiente manera:

IF edad < 6 THEN
   tarifa := 0.0
ELSIF edad < 18 THEN
   tarifa := 0.5
ELSIF edad < 65 THEN
   tarifa := 1.0
ELSE
   tarifa := 0.25
END

que resulta mucho más elegante y fácil de entender.

Todas las sentencias presentadas son variantes de una única sentencia IF de Modula-2 cuya sintasix es la siguiente:

Sentencia_IF ::=
   IF Condición THEN Secuencia_de_sentencias
{ ELSIF Condición THEN Secuencia_de_sentencias }
[ ELSE Secuencia_de_sentencias ]
END

5.3.3 Sentencia WHILE
En Modula-2 la estructura de iteración de la figura 5.5 se consigue mediante la sentencia WHILE, que tiene el siguiente formato:

WHILE Condición DO
   Acción
END

y significa que mientras la expresión Condición resulta cierta, se ejecuta la acción de forma repetitiva. Cuando el resultado es falso finaliza la ejecución de la sentencia. Si la Condición resulta falsa en la primera evaluación, la acción no  se ejecuta nunca. Por ejemplo, el cálculo del factorial de un número N mediante la fórmula habitual:

N! = 1x2x3x4x…..xN

se programa en Modula-2 utilizando una sentencia WHILE de la siguiente forma:

factorial := 1;
WHILE N > 1 DO
   factorial := factorial*N;
   N := N-1
END

La variable N va disminuyendo su valor de uno en uno en cada repetición del bucle, al tiempo que esos valores se van multiplicando sucesivamente, guardando el producto acumulado en factorial, hasta que N se reduce a 1. Si inicialmente el valor de N es igual o menor que 1, no se ejecutan nunca las sentencias dentro del bucle, por lo que la variable factorial termina con el mismo valor inicial = 1.

5.3.4 Sentencia FOR
Existen muchas situaciones en las que las repeticiones del bucle se controlan mediante una variable que va contando las veces que se ejecuta. La cuenta puede ser en sentido creciente, o decreciente. La Condición de la iteración se limita a comprobar si se ha alcanzado el límite correspondiente al número de repeticiones previstas. Esto es lo que hemos hecho en el ejemplo del factorial con la variable N. La variable N se decrementa en cada iteración y se comprueba el número total de ejecuciones con la expresión condicional N>1.

Debido a lo habitual de esta situación, en casi todos los lenguajes existen sentencias que simplifican su construcción. En Modula-2 se dispone de la sentencia FOR, cuya forma más simple es la siguiente:

FOR Variable := Valor_inicial TO Valor_final DO
   Acción
END

El símbolo de asignación (:=) y las palabras clave FOR, TO, DO y END separan las distintas partes de la sentencia.

La Variable sirve de contador para controlar el número de iteraciones a realizar. Inicialmente la Variable toma el valor indicado por Valor_inicial y se incrementa automáticamente en una unidad con cada nueva ejecución de Acción. La Acción se ejecuta repetidamente hasta que la Variable alcanza el valor indicado por Valor_final.

Ambos valores, inicial y final, pueden ser expresiones aritméticas. Estas expresiones se evalúan sólo una vez al comienzo de la sentencia FOR y no se modifican en toda su ejecución. Si el valor inicial es mayor que el valor final, la Acción no se ejecuta nunca.

La Variable puede ser utilizada dentro de Acción pero nunca debe ser modificada, pues se perdería el control automático de las repeticiones. Al final de la ejecución de la sentencia FOR el valor de la Variable es indeterminado.

Ahora se puede volver a escribir el cálculo del factorial de la siguiente manera:

factorial := 1;
FOR indice := 2 TO N DO
   factorial := factorial*indice
END

Este fragmento de programa es más sencillo. Además, resulta evidente que para el cálculo del factorial se emplean un número de iteraciones conocido, que no depende de lo que se calcula con cada iteración. Como se puede observar dentro del bucle se utiliza la variable indice con el valor que toma en cada pasada y la variable N mantiene su valor inicial. Para valores de N inferiores a 2 las sentencias dentro del bucle no se ejecutan nunca.

La sentencia FOR de Modula-2 permite controlar el valor del incremento o decremento del contador en cada repetición. En este caso el formato es el siguiente:

FOR Variable := Valor_inicial TO Valor_final BY Valor_incremento DO
   Acción
END

En cada iteración la Variable se incrementa automáticamente en Valor_incremento. Este último valor puede ser una expresión constante que se calcula al comienzo de la sentencia FOR. El resultado de dicha expresión puede ser positivo (incremento) o negativo (decremento). Por ejemplo, se puede realizar el cálculo del factorial en sentido inverso de la manera siguiente:

factorial := 1;
FOR indice := N TO 2 BY -1 DO
   factorial := factorial*indice
END

La sintasix completa de la sentencia FOR es, por tanto, la siguiente:

Sentencia_FOR ::=
   FOR Variable := Valor_inicial TO Valor_final
[ BY Valor_incremento ] DO Secuencia_de_sentencias END

Variable ::= Identificador
Valor_inicial ::= Expresión
Valor_final ::= Expresión
Valor_incremento ::= Expresión_constante


5.4 Ejemplos de programas

En este apartado se muestran varios ejemplos de programas completos que utilizan las sentencias presentadas en este tema.

5.4.1 Ejemplo: Ordenar tres datos
Se trata de realizar un programa que lea 3 valores enteros y los ordene de menor a mayor en las mismas variables en que se leen: el valor menor quedará en la primera variable y el mayor en la última.

El programa se realiza en dos partes: la primera parte se dedica a ordenar los dos primeros valores y en la segunda se ordenará el tercero comparándolo con los ya ordenados. Se utiliza una variable auxiliar para realizar los intercambios de valores entre las variables. El listado del programa completo está recogido a continuación.
La ejecución del programa produce el siguiente resultado:

¿Datos ?567 123 89

Datos Ordenados =    89  123  567

(*************************************************************
*
*    Programa: Ordenar 3 valores
*
*    Descripción:
*      Este programa ordena tres valores y los guarda ordenados
*      de menor a mayor en las mismas variables en que se leen.
*
*************************************************************)
MODULE OrdenaTres;

(*============================================================
    IMPORTACIÓN Y DECLARACIONES DEL PROGRAMA
=============================================================*)
  FROM InOut IMPORT
    WriteString, WriteLn, WriteInt, ReadInt;

  VAR
    valorUno, valorDos, valorTres, auxiliar: INTEGER;

BEGIN
(*============================================================
    PARTE EJECUTABLE DEL PROGRAMA
============================================================*)
  WriteString("¿Datos ?");
  ReadInt(valorUno); WriteString(" ");
  ReadInt(valorDos); WriteString(" ");
  ReadInt(valorTres); WriteLn;

  (*– Primer Paso: Ordenar 2 primeros datos –*)

  IF valorUno > valorDos THEN
    auxiliar := valorUno; valorUno := valorDos;
    valorDos := auxiliar
  END;

  (*– Segundo Paso: Situar el 3º dato –*)

  IF valorTres < valorUno THEN
    auxiliar := valorTres; valorTres := valorDos;
    valorDos := valorUno; valorUno := auxiliar
  ELSIF valorTres < valorDos THEN
    auxiliar := valorDos; valorDos := valorTres;
    valorTres := auxiliar
  END;

  (*– Tercer Paso: Escribir resultados –*)

    WriteLn; WriteString("Datos Ordenados = ");
    WriteInt(valorUno,5); WriteInt(valorDos,5);
    WriteInt(valorTres,5); WriteLn;
END OrdenaTres.

5.4.2 Ejemplo: Escribir un triángulo de dígitos
Con este programa se trata de escribir un triángulo de números entre el 1 y el 9. El nivel del triángulo se introducirá como dato. El resultado del programa será semejante al mostrado a continuación:

¿Nivel del Triangulo ?9
                                 1
                                121
                               12321
                              1234321
                             123454321
                            12345654321
                           1234567654321
                          123456787654321
                         12345678987654321

Este es un problema típico en el que se pueden utilizar un número de iteraciones conocidas:

  • Primeramente se necesita una iteración por cada línea de dígitos. El número de líneas es un dato de partida que se introduce, por tanto, es conocido.
  • Cada línea se puede realizar en dos mitades:
    1ª mitad.- Una iteración creciente hasta el número de línea. El número de iteraciones es conocido e igual al número de la línea que se está escribiendo. Por ejemplo para la sexta línea:
         123456
    2ª mitad.- Una iteración decreciente desde el número de línea decrementada en uno, hasta uno. Por tanto, el número de iteraciones es conocido. Por ejemplo para la sexta línea:
         54321

La escritura del primer número se puede conseguir con el formato de escritura. Si el triángulo está centrado en Centro, el primer número se tiene que escribir tantas posiciones delante del centro como el número de línea que se está escribiendo. El programa completo se muestra a continuación.

(******************************************************************
*
*    Programa: Triangulo
*   
*    Descripción:
*      Este programa escribe un triángulo de números.
*       La altura se introduce como dato y debe ser menor de 10.
*
******************************************************************)
MODULE Triangulo;

(*=================================================================
    IMPORTACIÓN Y DECLARACIONES DEL PROGRAMA
=================================================================*)
  FROM InOut IMPORT
    WriteString, WriteLn, WriteInt, ReadInt;

(*=================================================================
    PARAMETROS GENERALES
=================================================================*)
  CONST   
    Centro = 35;         (* Posición del eje del triángulo *)
    Inicial = 1;         (* Número inicial: vertice superior y laterales *)

  VAR
    nivel, altura, indice : INTEGER;

BEGIN
(*================================================================
    PARTE EJECUTABLE DEL PROGRAMA
================================================================*)
  WriteString("¿Nivel del Triangulo ?");
  ReadInt(nivel); WriteLn;

  (*– Una iteración por cada línea del triángulo –*)
    FOR altura := Inicial TO nivel DO

    (*– Paso 1º: Situar primer número de cada líne –*)
      WriteInt(Inicial,Centro – altura);
    (*– Paso 2º: primera mitad de la línea del triángulo.
      Escribir números consecutivos hasta altura –*)
      FOR indice := Inicial+1 TO altura DO
        WriteInt(indice, 1)
      END;
    (*– Paso 3º: segunda mitad de la línea del triángulo.
      Escribir números consecutivos decrecientes hasta 1 –*)
      FOR indice := altura-1 TO Inicial BY -1 DO
        WriteInt(indice, 1)
      END;
    (*– Paso 4º: saltar a una nueva línea –*)
      WriteLn
    END;
END Triangulo.

5.4.3 Ejemplo: Elaboración de tickets y resúmenes
Este programa es un ejemplo simplificado del programa de una máquina de expender tickets de entrada a un espectáculo. El precio del ticket dependerá de la edad del espectador, según se indicó en el ejemplo del apartado 5.3.2, agrupados en Niños, Jóvenes, Adultos y Jubilados. El programa acumulará las entradas que se expenden y la cantidad total recaudada.

El programa dispondrá de un menú general para seleccionar la elaboración del ticket, la elaboración del resumen o la finalización del programa. El programa seguirá elaborando tickets hasta que el taquillero de por finalizada su tarea. En los resúmenes se mostrarán los datos acumulados de tickets expendidos y el total recaudado. El listado del programa es el siguiente:

(****************************************************************
*
*    Programa: Ticket
*
*    Descripción:
*      Este programa elabora el ticket de entrada y los
*      resumenes de recaudación de un espectáculo.
*      El precio del ticket depende de la edad del
*      espectador (Niño, Joven, Adulto o Jubilado).
*
****************************************************************)
MODULE Ticket;

(*===============================================================
    IMPORTACIÓN Y DECLARACIONES DEL PROGRAMA
===============================================================*)
  FROM InOut IMPORT
    Write, WriteString, WriteLn,
    WriteInt, Read, ReadInt;

(*===============================================================
    PARÁMETROS GENERALES
===============================================================*)
  CONST
    Precio = 800;    (* Precio de butaca *)

  VAR
    edad, tarifa, butacas, totalPts : INTEGER;
    opcion, tecla : CHAR;

BEGIN
(*===============================================================
    PARTE EJECUTABLE DEL PROGRAMA
===============================================================*)
  totalPts := 0; butacas := 0; opcion := " ";
  WHILE opcion <> "F" DO
    WriteString("¿Opción (Ticket, Resumen o Fin) ?");
    Read(opcion); Write(opcion); WriteLn;

  (*=======================================
    Elaboración del Ticket
  ========================================*)
    IF opcion = "T" THEN
      tecla := " ";
      WHILE tecla <> "N" DO
    WriteString("¿Edad ?");
    ReadInt(edad); WriteLn; WriteLn;
    butacas := butacas + 1;
    WriteString("—————————"); WriteLn;
    WriteString("|    TICKET DE ENTRADA    |");
    WriteLn;
    IF edad < 6 THEN
      WriteString("| Niño    "); tarifa := 0
     ELSIF edad < 18 THEN
      WriteString("| Joven   "); tarifa := Precio DIV 2
    ELSIF edad < 65 THEN
      WriteString("| Adulto  "); tarifa := Precio
    ELSE
      WriteString("| Jubilado"); tarifa := Precio DIV 4
    END;
    totalPts := totalPts + tarifa;
    WriteString("  Precio: "); WriteInt(tarifa, 5);
    WriteString(" |"); WriteLn;
    WriteString("—————————"); WriteLn;
    WriteLn;
    WriteString("¿Otro Ticket (S/N) ?");
        Read(tecla); Write(tecla); WriteLn;
      END
    END;
    (*=====================================
        Elaboración de Resumen de Recaudación
    =====================================*)
      IF opcion = "R" THEN
        WriteLn; WriteString("     RESUMEN de VENTAS");
    WriteLn; WriteString("     —————–"); WriteLn;
    WriteInt(butacas,4); WriteString(" Butacas"); WriteLn;
    WriteString("Total Recaudado ="); WriteInt(totalPts,8);
    WriteLn;WriteLn
      END
    END
  END Ticket.

Una ejecución simplificada del programa da como resultado el siguiente:

¿Opción (Ticket, Resumen o Fin) ?T
¿Edad ?13

——————————————
|    TICKET DE ENTRADA    |
| Joven     Precio:   400        |
——————————————

¿Otro Ticket (S/N) ?S
¿Edad ?67

——————————————
|    TICKET DE ENTRADA    |
| Jubilado  Precio:   200       |
—————————————–

¿Otro Ticket (S/N) ?N
¿Opción (Ticket, Resumen o Fin) ?R

     RESUMEN de VENTAS
     —————–
   2 Butacas
Total Recaudado =     600

¿Opción (Ticket, Resumen o Fin) ?F