#LyX 2.3 created this file. For more info see http://www.lyx.org/ \lyxformat 544 \begin_document \begin_header \save_transient_properties true \origin unavailable \textclass book \use_default_options true \maintain_unincluded_children false \language spanish \language_package default \inputencoding auto \fontencoding global \font_roman "default" "default" \font_sans "default" "default" \font_typewriter "default" "default" \font_math "auto" "auto" \font_default_family default \use_non_tex_fonts false \font_sc false \font_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false \use_dash_ligatures true \graphics default \default_output_format default \output_sync 0 \bibtex_command default \index_command default \paperfontsize default \spacing single \use_hyperref false \papersize default \use_geometry false \use_package amsmath 1 \use_package amssymb 1 \use_package cancel 1 \use_package esint 1 \use_package mathdots 1 \use_package mathtools 1 \use_package mhchem 1 \use_package stackrel 1 \use_package stmaryrd 1 \use_package undertilde 1 \cite_engine basic \cite_engine_type default \biblio_style plain \use_bibtopic false \use_indices false \paperorientation portrait \suppress_date false \justification true \use_refstyle 1 \use_minted 0 \index Index \shortcut idx \color #008000 \end_index \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \paragraph_indentation default \is_math_indent 0 \math_numbering_side default \quotes_style swiss \dynamic_quotes 0 \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \html_math_output 0 \html_css_as_file 0 \html_be_strict false \end_header \begin_body \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout Lenguaje algorítmico \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Pascal \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout LÉXICO \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $v_{1}$ \end_inset : \begin_inset Formula $tipo_{1}$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $v_{2},v_{3}$ \end_inset : \begin_inset Formula $tipo_{2}$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $A_{1}$ \end_inset : una acción \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset PRE { \emph on precondición \begin_inset Formula $A_{1}$ \end_inset \emph default } \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset POST { \emph on postcondición \begin_inset Formula $A_{1}$ \end_inset \emph default } \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset LÉXICO \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset ... \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset ALGORITMO \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset ... \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset FIN \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $f_{1}$ \end_inset : función \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset PRE { \emph on precondición \begin_inset Formula $f_{1}$ \end_inset \emph default } \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset POST { \emph on postcondición \begin_inset Formula $f_{1}$ \end_inset \emph default } \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset LÉXICO \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset ALGORITMO \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset FIN \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset ... \end_layout \begin_layout Plain Layout ALGORITMO \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset PRE { \emph on precondición algoritmo \emph default } \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset POST { \emph on postcondición algoritmo \emph default } \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset ... \end_layout \begin_layout Plain Layout FIN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \family typewriter program \family default \begin_inset Formula $nombre$ \end_inset \family typewriter ; \end_layout \begin_layout Plain Layout \family typewriter type \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $tipo_{1}$ \end_inset \family typewriter = \begin_inset Formula $\dots$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $tipo_{2}$ \end_inset \family typewriter = \begin_inset Formula $\dots$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter var \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $v_{1}$ \end_inset \family typewriter : \begin_inset Formula $tipo_{1}$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $v_{2}$ \end_inset \family typewriter , \begin_inset Formula $v_{3}$ \end_inset : \begin_inset Formula $tipo_{2}$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter procedure \begin_inset Formula $A_{1}$ \end_inset ( \begin_inset Formula $\dots$ \end_inset ): \end_layout \begin_layout Plain Layout \family typewriter var \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter begin \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter end; \end_layout \begin_layout Plain Layout \family typewriter function \begin_inset Formula $f_{1}$ \end_inset ( \family default \begin_inset Formula $\dots$ \end_inset \family typewriter ): \end_layout \begin_layout Plain Layout \family typewriter var \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter begin \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter end; \end_layout \begin_layout Plain Layout \family typewriter var \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter begin \end_layout \begin_layout Plain Layout \begin_inset space \hspace{} \length 8ex \end_inset \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter end. \end_layout \begin_layout Plain Layout \begin_inset Note Note status open \begin_layout Plain Layout \end_layout \end_inset \end_layout \end_inset \end_inset \end_layout \begin_layout Standard La \series bold notación algorítmica \series default establece la forma de describir las acciones e informaciones y organizarlas en el tiempo, mientras que el código del programa establece la forma en la que estas se implementan de forma interpretable por un ordenador. Está formado por un \series bold léxico, \series default donde se definen las informaciones u objetos y las acciones, y el \series bold control, \series default que establece cómo actúan las acciones sobre los objetos. La \series bold abstracción \series default sirve para dominar la complejidad de un programa. \end_layout \begin_layout Section Tipos de datos y operaciones primitivos \end_layout \begin_layout Standard Especifican un dominio de valores y un conjunto de operaciones aplicables. Los tipos pri \begin_inset ERT status open \begin_layout Plain Layout \backslash - \end_layout \end_inset mi \begin_inset ERT status open \begin_layout Plain Layout \backslash - \end_layout \end_inset ti \begin_inset ERT status open \begin_layout Plain Layout \backslash - \end_layout \end_inset vos son: \end_layout \begin_layout Itemize \series bold Entero \series default ( \family typewriter integer \family default ). \end_layout \begin_layout Itemize \series bold Real: \series default Se usa el \begin_inset Quotes cld \end_inset . \begin_inset Quotes crd \end_inset como separador ( \family typewriter real \family default ). \end_layout \begin_layout Itemize \series bold Booleano: \series default Valores \begin_inset Quotes cld \end_inset Verdadero \begin_inset Quotes crd \end_inset y \begin_inset Quotes cld \end_inset Falso \begin_inset Quotes crd \end_inset ( \family typewriter boolean \family default , \family typewriter true \family default , \family typewriter false \family default ). \end_layout \begin_layout Itemize \series bold Carácter: \series default Se ponen entre comillas simples ( \family typewriter char \family default ). \end_layout \begin_layout Standard Las operaciones primitivas son: \end_layout \begin_layout Itemize \begin_inset Formula $-$ \end_inset : Entero \begin_inset Formula $\rightarrow$ \end_inset Entero, Real \begin_inset Formula $\rightarrow$ \end_inset Real \end_layout \begin_layout Itemize \begin_inset Formula $+$ \end_inset , \emph on \begin_inset Formula $-$ \end_inset \emph default , \emph on \begin_inset Formula $*$ \end_inset \emph default : Entero \begin_inset Formula $\times$ \end_inset Entero \begin_inset Formula $\rightarrow$ \end_inset Entero, Real \begin_inset Formula $\times$ \end_inset Real \begin_inset Formula $\rightarrow$ \end_inset Real \end_layout \begin_layout Itemize \emph on \begin_inset Formula $/$ \end_inset \emph default :Entero \begin_inset Formula $\times$ \end_inset Entero \begin_inset Formula $\rightarrow$ \end_inset Real, Real \begin_inset Formula $\times$ \end_inset Real \begin_inset Formula $\rightarrow$ \end_inset Real \end_layout \begin_layout Itemize \emph on \begin_inset Formula $DIV$ \end_inset \emph default , \emph on \begin_inset Formula $MOD$ \end_inset \emph default : Entero \begin_inset Formula $\times$ \end_inset Entero \begin_inset Formula $\rightarrow$ \end_inset Entero \end_layout \begin_layout Itemize \begin_inset Formula $<$ \end_inset , \begin_inset Formula $>$ \end_inset , \begin_inset Formula $=$ \end_inset , \begin_inset Formula $\leq$ \end_inset ( \family typewriter <= \family default ), \begin_inset Formula $\geq$ \end_inset ( \family typewriter >= \family default ), \begin_inset Formula $\neq$ \end_inset ( \family typewriter <> \family default ): Entero \begin_inset Formula $\times$ \end_inset Entero \begin_inset Formula $\rightarrow$ \end_inset Booleano, Real \begin_inset Formula $\times$ \end_inset Real \begin_inset Formula $\rightarrow$ \end_inset Booleano, Carácter \begin_inset Formula $\times$ \end_inset Carácter \begin_inset Formula $\rightarrow$ \end_inset Booleano \end_layout \begin_layout Itemize \begin_inset Formula $Predecesor$ \end_inset , \begin_inset Formula $Sucesor$ \end_inset : Entero \begin_inset Formula $\rightarrow$ \end_inset Entero, Carácter \begin_inset Formula $\rightarrow$ \end_inset Carácter \end_layout \begin_layout Itemize \begin_inset Formula $Y$ \end_inset , \begin_inset Formula $O$ \end_inset , \begin_inset Formula $YDESPUÉS$ \end_inset ( \family typewriter and \family default ), \begin_inset Formula $ODESPUÉS$ \end_inset ( \family typewriter or \family default ): Booleano \begin_inset Formula $\times$ \end_inset Booleano \begin_inset Formula $\rightarrow$ \end_inset Booleano \end_layout \begin_layout Itemize \begin_inset Formula $NO$ \end_inset ( \family typewriter not \family default ): Booleano \begin_inset Formula $\rightarrow$ \end_inset Booleano \end_layout \begin_layout Itemize \begin_inset Formula $Car$ \end_inset ( \family typewriter chr \family default ): Entero \begin_inset Formula $\rightarrow$ \end_inset Carácter \end_layout \begin_layout Itemize \begin_inset Formula $Ord$ \end_inset ( \family typewriter ord \family default ): Carácter \begin_inset Formula $\rightarrow$ \end_inset Entero \end_layout \begin_layout Standard Las acciones primitivas son: \end_layout \begin_layout Itemize \series bold Asignación: \series default \emph on Variable \emph default \begin_inset Formula $\leftarrow$ \end_inset \emph on Expresión \emph default . Pascal: \family typewriter \emph on var \emph default := \emph on expr \family default \emph default . \end_layout \begin_layout Itemize \series bold Entrada: \series default Leer( \emph on lista de variables \emph default ). Pascal: \family typewriter read( \emph on vars \emph default ) \family default , \family typewriter readln( \emph on vars \emph default ) \family default . \end_layout \begin_layout Itemize \series bold Salida: \series default Escribir( \emph on lista de expresiones \emph default ). Pascal: \family typewriter write( \emph on exprs \emph default ) \family default , \family typewriter writeln( \emph on exprs \emph default ) \family default . \end_layout \begin_layout Standard Todas las declaraciones e instrucciones del léxico y algoritmo terminan por punto y coma, y cada Entero o Real puede ir acompañado de un rango. Ejemplos: \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout Lenguaje algorítmico \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Pascal \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $m:\text{Entero}[0,59]$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset Formula $d:\text{Entero}\geq0$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset Formula $c:\text{Caracter}[\text{'a'},\text{'z'}]$ \end_inset ; \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \family typewriter m : 0..59; \end_layout \begin_layout Plain Layout \family typewriter c : 'a'..'z'; \end_layout \begin_layout Plain Layout \family typewriter mes : febrero..abril; \end_layout \end_inset \end_inset \end_layout \begin_layout Section Organización de las acciones \end_layout \begin_layout Itemize \series bold Composición secuencial: \series default Se introducen estados intermedios para reducir la complejidad, descomponiendo el problema en subproblemas más simples independientes. \end_layout \begin_layout Itemize \series bold Análisis de casos: \series default Se divide el problema en casos según los datos y se resuelve el caso correspond iente en cada situación. La precondición de cada problema debe implicar la precondición inicial, y la postcondición de cada uno debe cumplir la postcondición inicial. Además, se deben considerar todos los casos como mucho una vez. \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout Lenguaje algorítmico \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Pascal \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout SEGÚN \begin_inset Formula $c_{1},\dots,c_{n}$ \end_inset { Nombres de las variables a comprobar } \end_layout \begin_layout Plain Layout \begin_inset Formula $e_{1}$ \end_inset : \begin_inset Formula $a_{1}$ \end_inset \end_layout \begin_layout Plain Layout \begin_inset Formula $\dots$ \end_inset \end_layout \begin_layout Plain Layout \begin_inset Formula $e_{n}$ \end_inset : \begin_inset Formula $a_{n}$ \end_inset \end_layout \begin_layout Plain Layout EN_OTRO_CASO: \begin_inset Formula $a_{n+1}$ \end_inset \begin_inset Formula $_{opcional}$ \end_inset \end_layout \begin_layout Plain Layout FIN_SEGÚN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout SI \begin_inset Formula $e$ \end_inset \end_layout \begin_layout Plain Layout ENTONCES \begin_inset Formula $a$ \end_inset \end_layout \begin_layout Plain Layout SI_NO \begin_inset Formula $b$ \end_inset \begin_inset Formula $_{opcional}$ \end_inset \end_layout \begin_layout Plain Layout FIN_SI \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \family typewriter if \begin_inset Formula $e$ \end_inset \end_layout \begin_layout Plain Layout \family typewriter then \begin_inset Formula $a$ \end_inset \end_layout \begin_layout Plain Layout [ \family typewriter else \begin_inset Formula $b$ \end_inset \family default ] \end_layout \end_inset \end_inset \end_layout \begin_layout Standard En Pascal, los campos de expresiones solo permiten una acción, pero se pueden agrupar varias en una sola con las etiquetas \family typewriter begin \family default y \family typewriter end \family default . Además, se debe situar un punto y coma ( \family typewriter ; \family default ) para separar las acciones. No es necesario pues introducirlo antes de un \family typewriter end \family default , ni tampoco debe usarse antes de un \family typewriter else \family default , pues indicaría el final de la sentencia \family typewriter if \family default completa. \end_layout \begin_layout Section Tipos de datos no primitivos \end_layout \begin_layout Standard Son las \series bold tablas, \series default los \series bold registros \series default o \series bold producto de tipos \series default (estructuras) y las \series bold secuencias \series default . Para definir un registro: \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout Lenguaje algorítmico \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Pascal \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \emph on nombre_del_tipo \emph default = TIPO < \begin_inset Formula $a_{1},a_{2}$ \end_inset : \begin_inset Formula $T_{1}$ \end_inset ; \begin_inset Formula $\dots$ \end_inset ; \begin_inset Formula $a_{n}$ \end_inset : \begin_inset Formula $T_{m}$ \end_inset >; \end_layout \begin_layout Plain Layout \emph on variable \emph default : \emph on nombre_del_tipo \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \family typewriter type \end_layout \begin_layout Plain Layout \begin_inset space \qquad{} \end_inset \emph on nombre_del_tipo \family typewriter \emph default = record \end_layout \begin_layout Plain Layout \begin_inset space \qquad{} \end_inset \begin_inset space \qquad{} \end_inset \begin_inset Formula $a_{1},a_{2}$ \end_inset \family typewriter : \begin_inset Formula $T_{1}$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \qquad{} \end_inset \begin_inset space \qquad{} \end_inset \begin_inset Formula $\dots$ \end_inset \family typewriter ; \end_layout \begin_layout Plain Layout \begin_inset space \qquad{} \end_inset \begin_inset space \qquad{} \end_inset \begin_inset Formula $a_{n}$ \end_inset \family typewriter : \begin_inset Formula $T_{m}$ \end_inset ; \end_layout \begin_layout Plain Layout \begin_inset space \qquad{} \end_inset \family typewriter end; \end_layout \begin_layout Plain Layout \family typewriter var \end_layout \begin_layout Plain Layout \begin_inset space \qquad{} \end_inset \emph on variable \family typewriter \emph default : \family default \emph on nombre_del_tipo \family typewriter \emph default ; \end_layout \end_inset \end_inset \end_layout \end_body \end_document