\documentclass[11pt,twoside,a4paper,spanish]{article}
\usepackage[T1]{fontenc}
\usepackage{a4wide}
\usepackage{calc}
\usepackage[latin1]{inputenc}
\usepackage{isolatin1}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
% ---------------------------
\setlength{\textheight}{\topmargin+\headheight+\headsep+\textheight}
\setlength{\topmargin}{0pt}
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
\setlength{\parindent}{0pt}
\setlength{\parskip}{1 ex plus 0.5 ex minus 0.2 ex}
% ------------------------------
\newcommand{\vect}[1]{\mathbf{#1}}    % Notación vectorial negrita
\DeclareMathOperator{\sign}{sign}
% ----------
\begin{document}
\begin{center}\textbf{COMPUTACIÓN 2003 -- ASTRONOMÍA}\end{center}
\begin{center}\textbf{PRACTICA 2}\end{center}
\bigskip


\begin{enumerate}
\item Al concluir los siguientes {\tt DO} decir cu\'anto valen {\em K, L} y
{\em M}

\begin{verbatim}

       M=1                                 J=0
       DO 150 I=2,6                        DO I=1,10,3
           K=I                                K=J*I
           DO 140 J=1,10                      DO L=5,7
              L=J                                M=K+L
              M=M+1                              J=J-1
 140       CONTINUE                           ENDDO
 150   CONTINUE                             ENDDO

\end{verbatim}

\bigskip

\item Indicar cu\'antas veces se ejecutar\'an los siguientes ciclos {\tt DO}
 y cu\'al es el valor de la variable al finalizar cada ciclo.

\begin{verbatim}
   a)     DO I=25,25                   f)     DO A=1.6,4.8
   b)     DO 1000 I=4,1                g)     DO A=1.6,4.8,1.6
   c)     DO 111 I=1,10,-1             h)     DO 21 A=0.3,1.5,0.3
   d)     DO 111 I=1,-10,-2            i)     DO 11 A=1.,6.
   e)     DO I=1.6,4.8                 j)     DO A=1.E0,1.E4,1.E1
\end{verbatim}

\item Indicar si las siguientes estructuras son correctas o no.
Justifique.

\begin{verbatim}
a)    IF(A.EQ.B) THEN                    b)   IF(4 < B) THEN
      IF(A.GT.C) THEN                         I = 1
      D = A + 2.                              J = 2
      TT = C + 1                              ELSEIF(A.AND.C) THEN
      ELSE                                    i = 3
      D = 0.                                  J = 4
      ENDIF                                   ENDIF
                                              ENDIF
\end{verbatim}


\item Escribir un programa tal que para todas las combinaciones de \texttt{I}:-13(1)13 y \texttt{X}:5.01(0.02)8.01 calcule una nueva variable \texttt{Y}, de la forma:
\begin{displaymath}
\texttt{Y} =\begin{cases}
     \texttt{X * 2} & \text{si \texttt{I} $<$ 0},\\
     \texttt{X + 1} & \text{si \texttt{I} $=$ 0},\\
     \texttt{X / 2} & \text{si \texttt{I} $>$ 0}
     \end{cases}
\end{displaymath}     
\\
Imprima los valores de \texttt{X} y de \texttt{Y}.


\item Construir un programa que calcule el centro de masa $\vect{R}
= (X_{\rm CM},Y_{\rm CM},Z_{\rm CM})$ de un cuerpo, a partir de ciertos valores determinados de $x_i$, $y_i$, $z_i$ y $m_i$. Imprimir el resultado en pantalla, con un mensaje.


\item Escribir un programa que lea un entero positivo impar y calcule
la suma:

a) $1+1/2+1/3+ \dots +1/N$

b) $1+1/3+1/5+ \dots +1/N$

c) $1-1/2+1/3- \dots +1/N$

d) $\frac{1}{a}+\frac{1}{a+b}+\frac{1}{a+2b}+\frac{1}{a+3b}+ \dots +\frac{1}{a+nb}$


\item Sea el conjunto de datos $x_1$, $x_2$,\dots,$x_n$, generados mediante el algoritmo
\begin{displaymath}
x_{i+1} = \frac{x_i}{2} + 1 \qquad i=1,50 \quad (x_1 =1)
\end{displaymath}

a) Escribir un programa que calcule las sumas:
\begin{align*}
\sum_{i=1}^n x_i =& x_1+x_2+...+x_n \\
\sum_{i=1}^n x_i^2 =& x_1^2+x_2^2+...+x_n^2
\end{align*}

b) Utilizando el programa anterior, ampliarlo para incluir el
cálculo de la media, varianza y dispersión:
\begin{align*}
{\rm m}=& \frac{\sum_{i=1}^n x_i}{n} \\
{\rm var} =&\frac{\sum_{i=1}^n x_i^2}{n} - m^2 \\
\sigma=&\sqrt{{\rm var}}
\end{align*}


\item La fórmula $y=\pi\sqrt{3} \sin({1+x^2})+x^{1/3}e^x$, 
se debe calcular para $x=1,1.01,1.02,...,3$. 
Imprimir cada par $x$, $y$. Graficar.


\item Confeccionar un programa para evaluar
\begin{displaymath}
z=\frac{e^{ax} - e^{-ax}}{2} \sin (x+b) + a\,
\log\frac{b+x}{2}
\end{displaymath}
para todas las combinaciones $x:1(0.1)2$, $a:0.1(0.05)0.8$,
$b:1(1)10$. Imprimir el menor y mayor valor de $z$ para cada $x$.
Escribir la f\'ormula de $z$ en forma disgregada.



\end{enumerate}

\end{document}

\item Calcular la potencia radiada por unidad de área y por unidad de intervalo de
longitud de onda de un cuerpo negro, $I_\lambda$, para $T=~10000$K, para 500\AA
$\leq \lambda \leq$ 10000\AA, con paso de 500\AA. Guardar los resultados en
un archivo y luego graficar. Recuerde que
\begin{displaymath}
I_\lambda= \frac{2\pi h c^2}{\lambda^5} \frac{1}{e^{\frac{hc}{\lambda kT}} -1}
\end{displaymath}
siendo $h=6.626\times 10^{-27}$~erg seg, $c=2.9979\times 10^{10}$~cm seg$^{-1}$,
$k=1.38\times 10^{-16}$~erg K$^{-1}$.

\item Al concluir los siguientes bucles \texttt{DO}: ?`cuánto valen \texttt{K},
\texttt{L} y \texttt{M}?

\begin{verbatim}
       M=0                                  J=0
       DO 150 I=1,10                        DO I=1,10,2
           K=I                                 K=J*I
           DO 140 J=1,5                        DO L=1,3
               L=J                                M=K+L
               M=M+1                              J=J-1
 140       CONTINUE                            ENDDO
 150   CONTINUE                             ENDDO
\end{verbatim}


\item Dada la codificación siguiente que hace uso del IF lógico,

\begin{verbatim}
        IF (A.GT.B) GO TO 10
           X = A
           B = B + 2
     10 X = A + B
\end{verbatim}

sustituir esta estructura por un bloque IF equivalente
que produzca el mismo resultado.
