From: <Guardado por Microsoft Internet Explorer 5>
Subject: =?Windows-1252?Q?Instituto_de_Comptuci=F3n_-_Curso_de_Programaci=F3n_1_?=
	=?Windows-1252?Q?-_Pr=E1ctico_5?=
Date: Wed, 12 Oct 2005 11:11:27 -0300
MIME-Version: 1.0
Content-Type: multipart/related;
	boundary="----=_NextPart_000_0000_01C5CF1D.B0EED310";
	type="text/html"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C5CF1D.B0EED310
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.fing.edu.uy/inco/cursos/prog1/pm/uploads/Materiales/Practico5.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Instituto de Comptuci=F3n - Curso de Programaci=F3n 1 =
- Pr=E1ctico 5</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1515" name=3DGENERATOR><LINK=20
href=3D"http://www.fing.edu.uy/inco/cursos/prog1/pm/P1.css" =
type=3Dtext/css=20
rel=3Dstylesheet></HEAD>
<BODY stylesrc=3D"index.html">
<P align=3Dcenter><FONT size=3D5>Instituto de Computaci=F3n<BR>Curso de =
Programaci=F3n 1=20
- Pr=E1ctico 5</FONT> </P>
<OL type=3D1>
  <LI>Determine el valor que se exhibe en la salida est=E1ndar al =
ejecutar las=20
  siguientes proposiciones con ciclos <I>WHILE</I><BR><BR>
  <OL type=3Da>
    <LI><PRE>x :=3D 10;
WHILE x &gt; 0 DO
    x :=3D x - 3;
WriteLn(x)
</PRE>
    <LI><PRE>suma :=3D 0;
i :=3D 3;
WHILE i &lt;=3D 7 DO BEGIN=20
   suma :=3D suma + i;
   i :=3D i + 2
END;
WriteLn(i,suma);
</PRE>
    <LI><PRE>suma :=3D 0;
Read(x);
WHILE x &gt;=3D 0 DO BEGIN
   suma :=3D suma + x;
   Read(x)
END;
WriteLn(suma);

Asuma que los valores le=EDdos de la entrada est=E1ndar son 10, 5, 12 y =
-5.
</PRE>
    <LI><PRE>n :=3D 3;
suma :=3D 0;
i :=3D 0;
WHILE (i &lt; n) DO BEGIN=20
   Read(valor);
   IF valor &gt; 0 THEN
      suma :=3D suma + valor
   ELSE
      i :=3D i + 1
END;
WriteLn(`Fin de la prueba ',suma,i,valor);

Asuma que los valores le=EDdos de la entrada est=E1ndar son <I>5, 6, -3, =
-4, 7, 0 , 5, 8 y 9</I>=20
</PRE></LI></OL>
  <LI>Determine el valor que se exhibe en la salida est=E1ndar al =
ejecutar las=20
  siguientes proposiciones con ciclos <I>REPEAT</I><BR><BR>
  <OL type=3Da>
    <LI><PRE>a :=3D 6;
b :=3D 5;
REPEAT
   a :=3D a + 1
UNTIL a &gt; b;
WriteLn(a);
</PRE>
    <LI><PRE>i :=3D 0;
REPEAT
   WriteLn (`Primitivo')
UNTIL i =3D 0;=20
</PRE></LI></OL>
  <LI>Determine cu=E1les de los siguientes segmentos de c=F3digo =
producen la misma=20
  salida al ser ejecutados:<BR><BR>
  <OL type=3Da>
    <LI><PRE>i :=3D 1;
j :=3D 2;=20
REPEAT
   Write(i, j);
   i :=3D i+1;
   j :=3D j+1
UNTIL j &lt;=3D 3;
</PRE>
    <LI><PRE>i :=3D 1;
j :=3D 1;
WHILE (i &lt;=3D 3) AND (j &lt;=3D 2) DO BEGIN=20
   Write(i, j + 1);
   i :=3D i + 1;
   j :=3D j + 1
END;
</PRE>
    <LI><PRE>i :=3D 1;
REPEAT
   Write(i, i+1);
   i :=3D i+1
UNTIL i &lt;=3D 3;
</PRE></LI></OL>
  <LI>Reescriba el c=F3digo siguiente con un solo ciclo WHILE. <PRE>    =
REPEAT
        cuerpo
    UNTIL expresion_booleana;
</PRE>
  <LI>Reescriba el c=F3digo siguiente sin usar for. <PRE>    x :=3D 1.5;
    FOR i :=3D 1 TO 5 DO
       x :=3D sqr(x);
    Write(x);
</PRE>
  <LI>Dada una secuencia de n=FAmeros enteros positivos que debe ser =
le=EDda de la=20
  entrada est=E1ndar (el fin de la secuencia est=E1 determinado por el =
entero=20
  <I>-1</I>), escribir los siguientes programas en PASCAL:<BR>
  <OL type=3Da>
    <LI>Determine y exhiba la suma y el promedio de todos los enteros =
positivos=20
    le=EDdos.=20
    <LI>Determine y exhiba el n=FAmero m=E1s grande y el m=E1s peque=F1o =
de todos los=20
    enteros positivos le=EDdos. <BR><BR></LI></OL>
  <LI>Se desea tener un programa que calcule el saldo de una cuenta. =
Suponga que=20
  los datos son le=EDdos de la entrada est=E1ndar y que constan de =
renglones, cada=20
  uno de los cuales contiene una letra en la primera columna, seguida de =
un=20
  valor real. El =FAltimo rengl=F3n contiene =FAnicamente la letra =
<I>X</I> en la=20
  columna uno. El primer rengl=F3n contiene la letra <I>A</I> y el saldo =
anterior=20
  de una cuenta de cheques. Los dem=E1s renglones contienen la letra =
<I>D</I> y el=20
  importe de un dep=F3sito o la letra <I>R</I> y el importe de un=20
  retiro.<BR>Escriba un programa en PASCAL que determine el saldo exacto =
de la=20
  cuenta despu=E9s de procesar las transacciones.<BR><BR>Ej:<PRE>A =
1200.35
D 64.12
R 390.00
R 289.67
D 13.02
R 51.07
X
El saldo final es 546.75
</PRE>
  <LI>Dado un fragmento de texto que debe ser le=EDdo de la entrada =
est=E1ndar y=20
  terminado por el caracter <I>$</I> (centinela), determine y exhiba las =

  consonantes y vocales que aparecen duplicadas en forma contigua. Por =
ejemplo,=20
  el texto <I>"Llama al chico que lee$"</I> tiene una consonante doble=20
  (<I>ll</I>) y una vocal doble (<I>ee</I>) y se deber=EDa desplegar: =
<I>"ll=20
  ee"</I>.<BR><BR>
  <LI>Escriba un programa en PASCAL que determine si un n=FAmero =
<TT>n</TT> es=20
  primo. <TT>n</TT> es un entero positivo le=EDdo de la entrada =
est=E1ndar. <BR><BR>
  <LI>Realice las funciones de una calculadora simple. Los datos de =
entrada=20
  ser=E1n una secuencia de d=EDgitos decimales y los operadores =
<TT>+</TT>,=20
  <TT>*</TT>, <TT>/</TT> y <TT>-</TT>, seguida de un signo <TT>=3D</TT>. =
Haga caso=20
  omiso de los espacios en blanco. Los operadores se aplican en el orden =
en que=20
  aparecen en los datos de entrada, y producen resultados enteros, o =
sea, si=20
  bien se ingresa el operador de la divisi=F3n con el s=EDmbolo =
<TT>/</TT>, el=20
  comportamiento es el de <TT>DIV</TT>. Asuma que se ingresa al menos un =

  n=FAmero.<BR><BR>Ej. de entrada: <TT>4 + 3 / 2 * 8 - 4 =3D</TT> =
<BR>Ej. de salida:=20
  <TT>20</TT> <BR><BR>
  <LI>Determine y exhiba la desviaci=F3n est=E1ndar de n n=FAmeros =
reales positivos.=20
  Los n=FAmeros deben ser le=EDdos de la entrada est=E1ndar, donde se =
ingresar=E1 un=20
  n=FAmero negativo al final como centinela. La desviaci=F3n est=E1ndar =
de un conjunto=20
  de n=FAmeros <TT>x1, x2, ..., xn</TT> se define como la ra=EDz =
cuadrada de la=20
  expresi=F3n <TT>s/n - a^2</TT> donde <TT>a</TT> es el promedio de los =
valores=20
  <TT>xi</TT> (es decir, <TT>[(x1 + x2 + ... + xn) / n]</TT>) y =
<TT>s</TT> es la=20
  suma de los cuadrados de los valores <TT>xi</TT> (es decir, <TT>x1^2 + =
x2^2 +=20
  ... + xn^2</TT>). <BR><BR>Ejemplo de entrada: <TT>25.0 23.0 22.0 21.0 =
17.0 9.0=20
  6.0 5.0 -1.0</TT> <BR>Ejemplo de salida: <TT>La desviaci=F3n =
est=E1ndar es=20
  7.60</TT> <BR><BR>
  <LI>Todo n=FAmero natural positivo <TT>num</TT> tiene una =
descomposic=F3n =FAnica de=20
  la forma <TT>num =3D 2^n * val</TT>, donde <TT>val</TT> es un n=FAmero =
natural=20
  impar y <TT>n &gt;=3D 0</TT>.<BR><BR>Por ejemplo:<BR><TT>12 =3D 2^2 * =
3 <BR>36 =3D=20
  2^2 * 9 <BR>7 =3D 2^0 * 7 <BR>8 =3D 2^3 * 1</TT><BR><BR>Escriba un =
programa en=20
  Pascal que lea de la entrada est=E1ndar un entero positivo =
<TT>num</TT> y exhiba=20
  los correspondientes valores de <TT>val</TT> y <TT>n</TT>.<BR><BR>
  <LI>Escriba un programa en Pascal que reciba como par=E1metros dos =
enteros=20
  <TT>b</TT> y <TT>n</TT> y devuelva como resultado la parte entera del=20
  logaritmo de <TT>n</TT> en base <TT>b</TT>. <BR>Dicho resultado es un =
entero=20
  <TT>k</TT> que cumple lo siguiente: <TT>b^k &lt;=3D n &lt; =
b^(k+1)</TT><BR>El=20
  algoritmo s=F3lo puede realizar divisiones y sumas. Asuma que <TT>n =
&gt; 0</TT>=20
  y <TT>b &gt; 1</TT>. <BR></LI></OL>
<HR SIZE=3D5>

<DIV align=3Dcenter>
<CENTER><PRE><FONT face=3D"Courier New" size=3D2>In.Co. - Curso de =
Programaci=F3n 1</FONT>
</PRE></CENTER></DIV></BODY></HTML>

------=_NextPart_000_0000_01C5CF1D.B0EED310
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: http://www.fing.edu.uy/inco/cursos/prog1/pm/P1.css

BODY {
	BACKGROUND-IMAGE: url(escher.jpg)
}
A {
	COLOR: #1010aa; TEXT-DECORATION: none
}
A:hover {
	COLOR: #808080
}
HR {
	WIDTH: 100%
}

------=_NextPart_000_0000_01C5CF1D.B0EED310--
