From: <Guardado por Microsoft Internet Explorer 5>
Subject: =?Windows-1252?Q?Instituto_de_Computaci=F3n_-_Curso_de_Programaci=F3n_1?=
	=?Windows-1252?Q?_-_Pr=E1ctico_2?=
Date: Wed, 14 Sep 2005 08:48:01 -0300
MIME-Version: 1.0
Content-Type: multipart/related;
	boundary="----=_NextPart_000_0000_01C5B909.03B4EC40";
	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_01C5B909.03B4EC40
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/Practico2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Instituto de Computaci=F3n - Curso de Programaci=F3n =
1 - Pr=E1ctico 2</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1515" name=3DGENERATOR>
<META content=3D"Microsoft FrontPage 2.0" name=3DFORMATTER><LINK=20
href=3D"http://www.fing.edu.uy/inco/cursos/prog1/pm/P1.css" =
type=3Dtext/css=20
rel=3Dstylesheet></HEAD>
<BODY>
<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function hayErrores(hay)=0A=
{=0A=
if (hay =3D=3D 0) alert ("ALELUYA!!!");=0A=
else if (hay =3D=3D 1) alert ("Tienes 1 error");=0A=
else alert ("Tienes " + hay + " errores");=0A=
}=0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif3(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (uno.C4.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif5(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C4.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif8(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (uno.C5.checked) {hay =3D hay + 1;}=0A=
        if (uno.C6.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C7.checked) {hay =3D hay + 1;}=0A=
        if (uno.C8.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C9.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif9(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C5.checked) {hay =3D hay + 1;}=0A=
        if (uno.C6.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C7.checked) {hay =3D hay + 1;}=0A=
        if (uno.C8.checked) {hay =3D hay + 1;}=0A=
        if (uno.C9.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif10(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C5.checked) {hay =3D hay + 1;}=0A=
        if (uno.C6.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif14(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (uno.C5.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C6.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C7.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C8.checked) {hay =3D hay + 1;}=0A=
        if (uno.C9.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif15(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (uno.C5.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C6.checked) {hay =3D hay + 1;}=0A=
        if (uno.C7.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif16(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (eval (uno.T1.value) !=3D 2) {hay =3D hay + 1;}=0A=
        if (eval (uno.T2.value) !=3D 3) {hay =3D hay + 1;}=0A=
        if (eval (uno.T3.value) !=3D 5) {hay =3D hay + 1;}=0A=
        if (eval (uno.T4.value) !=3D 8) {hay =3D hay + 1;}=0A=
        if (eval (uno.T5.value) !=3D 3) {hay =3D hay + 1;}=0A=
        if (eval (uno.T6.value) !=3D 1) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif17(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (uno.C5.checked) {hay =3D hay + 1;}=0A=
        if (uno.C6.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif18(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (eval (uno.T1.value) !=3D 4) {hay =3D hay + 1;}=0A=
        if (eval (uno.T2.value) !=3D -13) {hay =3D hay + 1;}=0A=
        if (eval (uno.T3.value) !=3D 11) {hay =3D hay + 1;}=0A=
        if (eval (uno.T4.value) !=3D 25) {hay =3D hay + 1;}=0A=
        if (eval (uno.T5.value) !=3D -4) {hay =3D hay + 1;}=0A=
        if (eval (uno.T6.value) !=3D 12) {hay =3D hay + 1;}=0A=
        if (eval (uno.T7.value) !=3D 10) {hay =3D hay + 1;}=0A=
        if (eval (uno.T8.value) !=3D -1) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif19(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (uno.T1.value !=3D "3") {hay =3D hay + 1;}=0A=
        if (eval (uno.T2.value) !=3D 2.5) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif23(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C5.checked) {hay =3D hay + 1;}=0A=
        if (uno.C6.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C7.checked) {hay =3D hay + 1;}=0A=
        if (uno.C8.checked) {hay =3D hay + 1;}=0A=
        if (uno.C9.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif24(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (uno.T1.value !=3D "11") {hay =3D hay + 1;}=0A=
        if (uno.T2.value !=3D "6") {hay =3D hay + 1;}=0A=
        if (uno.T3.value !=3D "36") {hay =3D hay + 1;}=0A=
        if (uno.T4.value !=3D "2") {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>

<CENTER><FONT size=3D+2>Instituto de Computaci=F3n</FONT> <BR><FONT =
size=3D+2>Curso de=20
Programaci=F3n 1 - Pr=E1ctico 2</FONT></CENTER>
<P>
<SCRIPT language=3DJavaScript>=0A=
<!--=0A=
=0A=
function Verif1(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (uno.T1.value !=3D "1") {hay =3D hay + 1;}=0A=
        if (uno.T2.value !=3D "1") {hay =3D hay + 1;}=0A=
        if (uno.T3.value !=3D "4") {hay =3D hay + 1;}=0A=
        if (uno.T4.value !=3D "3") {hay =3D hay + 1;}=0A=
        if (uno.T5.value !=3D "8") {hay =3D hay + 1;}=0A=
        if (uno.T6.value !=3D "7") {hay =3D hay + 1;}=0A=
        if (uno.T7.value !=3D "2") {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// -->=0A=
    </SCRIPT>
<B>Ejercicio 1</B> Suponga que se tiene la siguiente secuencia de =
proposiciones=20
de entrada (considere que todas las variables se declararon como =
enteras): </P>
<P><TT>read (x,y,z);</TT> <BR><TT>readln (a);</TT> <BR><TT>readln =
(b,c);</TT>=20
<BR><TT>read (d)</TT> </P>
<P>Obtenga los valores de las variables <TT>a</TT>, <TT>b</TT>, =
<TT>c</TT>,=20
<TT>d</TT>, <TT>x</TT>, <TT>y</TT>, y <TT>z</TT> si se utilizaron estos =
datos de=20
entrada : </P>
<P><TT>8 7 2 1 3</TT> <BR><TT>1 4 4 6 2</TT> <BR><TT>3 7</TT> </P>
<P>Indique los valores de las variables <BR></P>
<FORM method=3Dpost>
<TABLE border=3D1>
  <TBODY>
  <TR>
    <TD><TT>a</TT><INPUT size=3D3 name=3DT1></TD>
    <TD><TT>b</TT><INPUT size=3D3 name=3DT2></TD>
    <TD><TT>c</TT><INPUT size=3D3 name=3DT3></TD>
    <TD><TT>d</TT><INPUT size=3D3 name=3DT4></TD></TR>
  <TR>
    <TD><TT>x</TT><INPUT size=3D3 name=3DT5></TD>
    <TD><TT>y</TT><INPUT size=3D3 name=3DT6></TD>
    <TD><TT>z</TT><INPUT size=3D3 name=3DT7></TD>
    <TD>&nbsp;</TD></TR></TBODY></TABLE>
<P><INPUT language=3DJavaScript onclick=3DVerif1(this.form) =
type=3Dbutton value=3DVerificar name=3DB1>=20
<BR></P></FORM>
<P><B>Ejercicio 2</B> Dadas las siguientes declaraciones de variables =
</P>
<P><TT>VAR</TT> <BR><TT>&nbsp;a,b,c: integer;</TT> <BR><TT>&nbsp;x,y,z:=20
real;</TT> </P>
<P>y los siguientes datos de entrada </P>
<P><TT>3 2.3 -6.5</TT> <BR><TT>1 5 2.1</TT> </P>
<P>encuentre los errores, si existen, al ejecutar las siguientes =
secuencias de=20
proposiciones. </P>
<OL type=3D1>
  <LI><TT>read (x,y,z)</TT>=20
  <LI><TT>read (a,b,x)</TT>=20
  <LI><TT>read (a,x,y); read (b,z,c)</TT>=20
  <LI><TT>readln (a,x); read (b,c,y,z)</TT> </LI></OL><B>Ejercicio 3</B> =
=BF Qu=E9 se=20
exhibir=E1 cuando se ejecuten las siguientes proposiciones Pascal ?=20
<P><TT>writeln (`Valor1 es ', 3);</TT> <BR><TT>writeln (`Valor2 es ', =
5);</TT>=20
<BR><TT>writeln (`La suma es ', 3 + 5)</TT> </P>
<P><B>Ejercicio 4</B> =BF Qu=E9 se exhibir=E1 cuando se ejecuten las =
siguientes=20
proposiciones Pascal ? </P>
<P><TT>writeln (86, 39);</TT> <BR><TT>writeln (`a =3D ');</TT> =
<BR><TT>writeln=20
(32.5);</TT> <BR><TT>writeln (`a =3D ', 86, `b =3D ', 32.5)</TT> </P>
<P><B>Ejercicio 5</B> =BF Qu=E9 se exhibir=E1 cuando se ejecute el =
siguiente programa=20
en Pascal ? </P>
<P><TT>PROGRAM adivina (input, output);</TT> <BR><TT>VAR</TT>=20
<BR><TT>&nbsp;a,b,c: integer;</TT> <BR><TT>&nbsp;x,y,z: real;</TT>=20
<BR><TT>BEGIN</TT> <BR><TT>&nbsp;a :=3D 0;</TT> <BR><TT>&nbsp;b :=3D =
2;</TT>=20
<BR><TT>&nbsp;c :=3D 1;</TT> <BR><TT>&nbsp;x :=3D 5.2;</TT> =
<BR><TT>&nbsp;y :=3D=20
3.6;</TT> <BR><TT>&nbsp;z :=3D 4.1;</TT> <BR><TT>&nbsp;write (`Los =
valores=20
son');</TT> <BR><TT>&nbsp;write (a, b, c);</TT> <BR><TT>&nbsp;writeln =
(x, y,=20
z);</TT> <BR><TT>&nbsp;writeln (`La suma es', x + y + z);</TT>=20
<BR><TT>&nbsp;writeln (`El producto es', a * b * c)</TT> =
<BR><TT>END.</TT> </P>
<P><B>Ejercicio 6</B> Determine la salida exacta del siguiente programa =
en=20
Pascal. </P>
<P><TT>PROGRAM salea (input, output);</TT> <BR><TT>VAR</TT> =
<BR><TT>&nbsp;a:=20
char;</TT> <BR><TT>&nbsp;b: integer;</TT> <BR><TT>BEGIN</TT> =
<BR><TT>&nbsp;a :=3D=20
`x';</TT> <BR><TT>&nbsp;b :=3D -12;</TT> <BR><TT>&nbsp;writeln (a:2, =
b:5)</TT>=20
<BR><TT>END.</TT> </P>
<P><B>Ejercicio 7</B> Suponga que <TT>a</TT>, <TT>b</TT>, <TT>c</TT>, y=20
<TT>d</TT> son variables enteras. Determine los valores de <TT>a</TT>,=20
<TT>b</TT>, <TT>c</TT>, y <TT>d</TT> despu=E9s de la ejecuci=F3n de las =
siguientes=20
proposiciones con los datos que se muestran. <BR>&nbsp;=20
<TABLE border=3D0>
  <TBODY>
  <TR>
    <TD>proposici=F3n&nbsp;</TD>
    <TD align=3Dmiddle colSpan=3D4>datos&nbsp;</TD></TR>
  <TR>
    <TD><TT>readln (a, b)</TT></TD>
    <TD><TT>2</TT></TD>
    <TD><TT>15</TT></TD>
    <TD><TT>6</TT></TD>
    <TD><TT>4</TT></TD></TR>
  <TR>
    <TD><TT>readln (c)</TT></TD>
    <TD><TT>1</TT></TD>
    <TD><TT>-3</TT></TD>
    <TD><TT>7</TT></TD>
    <TD><TT>9</TT></TD></TR>
  <TR>
    <TD><TT>read (d)</TT></TD>
    <TD><TT>8</TT></TD>
    <TD><TT>12</TT></TD>
    <TD><TT>-1</TT></TD>
    <TD><TT>5</TT></TD></TR></TBODY></TABLE></P>
<P><B>Ejercicio 8</B> Suponga que <TT>m</TT> y <TT>t</TT> son variables =
enteras=20
con los valores 4 y -18 respectivamente. Determine la salida exacta de =
la=20
siguiente proposici=F3n : <TT>write (`Valor':8,m:2,t:4)</TT> </P>
<P>
<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif9(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C5.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>
<B>Ejercicio 9</B> Suponga que <TT>a</TT>, <TT>b</TT> y <TT>c</TT> son =
variables=20
enteras. Un usuario escribe la siguiente secuencia de caracteres en la =
terminal=20
(donde <TT>b</TT> representa un espacio en blanco) : </P>
<P><TT>1b</TT>2 <BR>3<TT>b</TT>4 </P>
<P>Indique cu=E1l proposici=F3n o secuencia de proposiciones =
<B><U>no</U></B>=20
producir=E1 los valores <TT>a =3D 1</TT>, <TT>b =3D 2</TT>, y <TT>c =3D =
3</TT>: <BR></P>
<FORM method=3Dpost>
<TABLE border=3D0>
  <TBODY>
  <TR>
    <TD><TT>read (a); readln (b); read (c)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC1></TD></TR>
  <TR>
    <TD><TT>readln (a, b, c)</TT></TD>
    <TD><INPUT type=3Dcheckbox value=3DON name=3DC2></TD></TR>
  <TR>
    <TD><TT>read (a, b, c)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC3></TD></TR>
  <TR>
    <TD><TT>read (a); read (b); readln; read (c)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC4></TD></TR>
  <TR>
    <TD><TT>readln (a); readln (b); readln (c)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC5></TD></TR></TBODY></TABLE>
<TABLE border=3D0>
  <TBODY>
  <TR>
    <TD><INPUT language=3DJavaScript onclick=3DVerif9(this.form) =
type=3Dbutton value=3DVerificar =
name=3DB1></TD></TR></TBODY></TABLE></FORM>
<P>
<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif10(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (!uno.C1.checked) {hay =3D hay + 1;}=0A=
        if (uno.C2.checked) {hay =3D hay + 1;}=0A=
        if (!uno.C3.checked) {hay =3D hay + 1;}=0A=
        if (uno.C4.checked) {hay =3D hay + 1;}=0A=
        if (uno.C5.checked) {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>
<B>Ejercicio 10</B> =BF Cu=E1les de las siguientes proposiciones har=E1 =
que se escriba=20
la palabra <TT>PRIMERA</TT> en las columnas 1 a 7, el valor de la =
variable=20
entera <TT>siguiente</TT> de manera que termine en la columna 20, y que =
se=20
escriba la palabra <TT>ULTIMA</TT> en las columnas 75 a 80 ? <BR></P>
<FORM method=3Dpost>
<TABLE border=3D0>
  <TBODY>
  <TR>
    <TD><TT>write (`PRIMERA', siguiente:13, `ULTIMA':60)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC1></TD></TR>
  <TR>
    <TD><TT>write (`PRIMERA':7, siguiente:20, `ULTIMA':80)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC2></TD></TR>
  <TR>
    <TD><TT>write (`PRIMERA':7, SIGUIENTE:13, `ULTIMA':60)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC3></TD></TR>
  <TR>
    <TD><TT>write (`PRIMERA':SIGUIENTE:20, `ULTIMA':80)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC4></TD></TR>
  <TR>
    <TD><TT>write (`PRIMERA':7, siguiente:5, `ULTIMA':56)</TT></TD>
    <TD><INPUT type=3Dcheckbox name=3DC5></TD></TR></TBODY></TABLE>
<P><INPUT language=3DJavaScript onclick=3DVerif10(this.form) =
type=3Dbutton value=3DVerificar name=3DB1>=20
<BR></P></FORM>
<P>
<SCRIPT language=3DJavaScript><!--=0A=
=0A=
function Verif11(uno)=0A=
{=0A=
var hay =3D 0;=0A=
        if (uno.T1.value !=3D "12") {hay =3D hay + 1;}=0A=
        if (uno.T2.value !=3D "7") {hay =3D hay + 1;}=0A=
        if (uno.T3.value !=3D "11") {hay =3D hay + 1;}=0A=
        hayErrores (hay);=0A=
}=0A=
 =0A=
// --></SCRIPT>
<B>Ejercicio 11</B> Suponga que <TT>x</TT>, <TT>y</TT>, y <TT>z</TT> son =

variables enteras. Considere el siguiente segmento de programa : =
<TT>readln (x);=20
readln (y); readln (z)</TT>, y las siguientes l=EDneas escritas por un =
usuario=20
cuando se ejecuta el segmento de programa (<TT>b</TT> representa un =
espacio en=20
blanco). </P>
<P><TT>12b34b56</TT> <BR><TT>7.0b9b1.0</TT> <BR><TT>bbbbbb</TT>=20
<BR><TT>b11b22</TT> </P>
<P>Indique los valores almacenados en <TT>x</TT>, <TT>y</TT>, y =
<TT>z</TT> luego=20
de la ejecutar el segmento de programa con los datos ingresados por el =
usuario.=20
<BR></P>
<FORM method=3Dpost>
<TABLE border=3D1>
  <TBODY>
  <TR>
    <TD><TT>x</TT><INPUT size=3D3 name=3DT1></TD>
    <TD><TT>y</TT><INPUT size=3D3 name=3DT2></TD>
    <TD><TT>z</TT><INPUT size=3D3 name=3DT3></TD></TR></TBODY></TABLE>
<P><INPUT language=3DJavaScript onclick=3DVerif11(this.form) =
type=3Dbutton value=3DVerificar name=3DB1>=20
<BR></P></FORM>
<P><B>Ejercicio 12</B> =BF Cu=E1l ser=E1 la salida exacta que se produce =
cuando se=20
ejecuta el siguiente programa ? </P>
<P><TT>PROGRAM prueba (input, output);</TT> <BR><TT>CONST hey =3D =
`HOLA';</TT>=20
<BR><TT>VAR r, s : real;</TT> <BR><TT>BEGIN</TT> <BR><TT>&nbsp;r :=3D =
6.1;</TT>=20
<BR><TT>&nbsp;s :=3D 7.2;</TT> <BR><TT>&nbsp;writeln (hey:6);</TT>=20
<BR><TT>&nbsp;write (`R =3D ');</TT> <BR><TT>&nbsp;write (r:5:2);</TT>=20
<BR><TT>&nbsp;writeln;</TT> <BR><TT>&nbsp;write (`S =3D ');</TT>=20
<BR><TT>&nbsp;write (s:3:1)</TT> <BR><TT>END.</TT> </P>
<P><B>Ejercicio 13</B> =BF C=F3mo maneja el sistema del lector los =
caracteres de=20
tabulaci=F3n en la entrada de datos ? Para averiguarlo, ejecute el =
siguiente=20
programa y proporcione como datos de entrada un car=E1cter de =
tabulaci=F3n, un punto=20
y un retorno de carro. </P>
<P><TT>PROGRAM tab (input, output);</TT> <BR><TT>VAR c1, c2, c3 : =
char;</TT>=20
<BR><TT>BEGIN</TT> <BR><TT>&nbsp;read (c1, c2, c3);</TT> =
<BR><TT>&nbsp;writeln=20
(ord (c1), ord (c2), ord (c3))</TT> <BR><TT>END.</TT> </P>
<P><B>Ejercicio 14</B> =BF Qu=E9 salida producir=E1 el siguiente =
programa cuando se=20
teclee la l=EDnea de datos de entrada <TT>1.2.3.4</TT> ? </P>
<P><TT>PROGRAM entraro (input, output);</TT> <BR><TT>VAR c : char;</TT>=20
<BR><TT>&nbsp;r : real;</TT> <BR><TT>&nbsp;e : integer;</TT> =
<BR><TT>BEGIN</TT>=20
<BR><TT>&nbsp;readln (r, c, e);</TT> <BR><TT>&nbsp;writeln (r, c, =
e)</TT>=20
<BR><TT>END.</TT> </P>
<P><B>Ejercicio 15</B> =BF Qu=E9 exhibir=E1n las siguientes =
proposiciones (suponiendo=20
que <TT>r</TT> es una variable real) ? </P>
<P><TT>r :=3D 91.2;</TT> <BR><TT>writeln (r:3:0)</TT> </P>
<P><B>Ejercicio 16</B> =BF Permite el Pascal del lector variables =
booleanas en=20
proposiciones <TT>read</TT> ? Si es as=ED, =BF qu=E9 se debe escribir =
para=20
proporcionar los datos <TT>true</TT> y <TT>false</TT> ? </P>
<P><B>Ejercicio 17</B> En los datos de entrada se proporcionan dos =
tiempos como=20
enteros de la forma hhmm donde hh representa las horas (menos de 24) y =
mm los=20
minutos (menos de 60). Determine la suma de estos dos tiempos, y exhiba =
el=20
resultado en la forma d hhmm, donde d es d=EDas, ya sea cero o uno. </P>
<P>Ejemplo de entrada : <TT>1345 2153</TT>. </P>
<P>Ejemplo de salida : <TT>1 1138</TT>. </P>
<P><B>Ejercicio 18</B> El error relativo en una medici=F3n <I>m</I> es =
la raz=F3n de=20
la diferencia absoluta entre la medici=F3n y el valor verdadero <I>v</I> =
al valor=20
verdadero. Suponga que los datos de entrada se dan en una sola l=EDnea =
que incluye=20
dos n=FAmeros reales que representan la medici=F3n <I>m</I> y el valor =
verdadero=20
<I>v</I>. Calcule el error relativo de la medici=F3n y exh=EDbase junto =
con la=20
medici=F3n y el valor verdadero. Incluya etiquetas descriptivas para los =
valores=20
exhibidos. </P>
<P>Ejemplo de entrada : <TT>51.0 51.3</TT>. </P>
<P>Ejemplo de salida : <TT>Medici=F3n =3D 5.1000000000e+01</TT> =
<BR><TT>Valor=20
verdadero =3D 5.1300000000e+01</TT> <BR><TT>Error relativo =3D=20
5.8479532161e-03</TT>. </P>
<P><B>Ejercicio 19</B> No es posible utilizar una computadora para =
generar=20
n=FAmeros aleatorios genuinos ya que es preciso utilizar un algoritmo =
para generar=20
los n=FAmeros, lo que implica que es posible predecir los n=FAmeros =
generados. Lo=20
que s=ED pueden hacer las computadoras es generar n=FAmeros =
seudoaleatorios (n=FAmeros=20
que, estad=EDsticamente, parecen ser aleatorios). Una t=E9cnica antigua =
que no=20
produce buenos resultados se llama m=E9todo del cuadrado medio. Funciona =
as=ED :=20
dado un n=FAmero a, para generar el siguiente n=FAmero de la secuencia =
se extraen=20
los d=EDgitos que est=E1n en medio de a<SUP>2</SUP>. Por ejemplo, si a =
es 53,=20
entonces a<SUP>2</SUP> es 2809, y el siguiente n=FAmero seudoaleatorio =
ser=E1 80. Se=20
ve que el siguiente n=FAmero seudoaleatorio a 80 es 40. Si se contin=FAa =
este=20
proceso se obtiene 60, 60, 60, .... Escriba un programa en Pascal que =
lea un=20
entero de dos d=EDgitos y determine el siguiente n=FAmero seudoaleatorio =
que se=20
generar=EDa si se usara el m=E9todo del cuadrado medio. Suponga que la =
entrada=20
consta de una sola l=EDnea que contiene al entero de dos d=EDgitos. =
Exhiba el n=FAmero=20
de dos d=EDgitos original, el cuadrado de este entero, y el siguiente =
n=FAmero,=20
todos con etiquetas apropiadas. </P>
<P>Ejemplo de entrada : <TT>53</TT>. </P>
<P>Ejemplo de salida : <TT>Numero introducido =3D 53</TT> =
<BR><TT>Cuadrado del=20
numero =3D 2809</TT> <BR><TT>Siguiente numero seudoaleatorio =3D =
80</TT>. </P>
<P><B>Ejercicio 20</B> Escriba un programa en Pascal que lea dos enteros =
que=20
representen el peso de un objeto en libras y onzas. En seguida exhiba el =
peso=20
introducido y su equivalente en kilogramos en una forma similar a la que =
se=20
muestra a continuaci=F3n. Una libra tiene 16 onzas y 2.2046 libras =
equivalen a un=20
kilogramo. </P>
<P>Entrada : <TT>5 3</TT> (representa 5 libras y 3 onzas). </P>
<P>Salida : <TT>Un peso de 5 libras y 3 onzas equivale a 2.353 =
kilogramos</TT>.=20
</P>
<P><B>Ejercicio 21</B> Un solenoide es una bobina de alambre enrollado =
en forma=20
apretada con un determinado radio y longitud. Una caracter=EDstica =
el=E9ctrica de=20
los solenoides es su inductancia, que est=E1 determinada por su =
longitud, el =E1rea=20
de la secci=F3n transversal y el n=FAmero de vueltas por unidad de =
longitud. La=20
f=F3rmula exacta es : L =3D <FONT face=3Dsymbol>m =
</FONT><I>ln</I><SUP>2</SUP> A,=20
donde L es la inductancia en henries, <FONT face=3Dsymbol>m</FONT> la =
constante de=20
permeabilidad (4*pi*10 <SUP>-7</SUP>), <I>l</I> la longitud del =
solenoide en=20
metros, <I>n</I> el n=FAmero de vueltas de alambre por unidad de =
longitud, y A el=20
=E1rea de la secci=F3n transversal en metros cuadrados. Escriba un =
programa que=20
obtenga <I>n</I>, la longitud (en pulagadas) y el radio del solenoide de =
los=20
datos de entrada, y exhiba la inductancia (en microhenries). Recuerde =
que una=20
pulgada es 2.54 cent=EDmetros, o 0.0254 metros, y que cada henry tiene=20
10<SUP>6</SUP> microhenries. Exhiba todos los resultados con precisi=F3n =
de una=20
cifra decimal. (Sugerencia : no se olvide hacer la conversi=F3n de =
pulgadas y=20
vueltas por pulgadas a metros y vueltas por metro.) </P>
<P>Ejemplo de entrada : <TT>100.0 5.0 1.0</TT>. </P>
<P>Ejemplo de salida : <TT>Dimensiones del solenoide :</TT> =
<BR><TT>Radio: 1.0=20
pulgadas</TT> <BR><TT>Longitud: 5.0 pulgadas</TT> =
<BR><TT>Vueltas/pulgadas:=20
100.0</TT> </P>
<P><TT>Caracteristicas el=E9ctricas:</TT> <BR><TT>Inductancia: 5013.8=20
microhenries</TT>. </P>
<P><B>Ejercicio 22</B> La funci=F3n <TT>exp</TT> de Pascal calcula un =
valor igual=20
a la suma de la serie infinita 1 + [x/ 1!] + [(x<SUP>2</SUP>)/ 2!] +=20
[(x<SUP>3</SUP>)/ 3!] + . Suponga que los datos de entrada consisten en =
un solo=20
valor real para <TT>x</TT> entre 0.0 y 1.0. Determine la suma de los =
primeros=20
cinco t=E9rminos de la serie infinita y el valor de <TT>exp(x)</TT> =
mediante la=20
funci=F3n est=E1ndar. Exhiba estos valores y el valor de <TT>x</TT> =
acompa=F1ados de=20
etiquetas apropiadas. </P>
<P>Ejemplo de entrada : <TT>0.5</TT>. </P>
<P>Ejemplo de salida : <TT>Valor introducido =3D 5.0000000000e-01</TT>=20
<BR><TT>Suma de la serie =3D 1.6484375000e+00</TT> <BR><TT>Exp (x) =3D=20
1.6487212707e+00</TT>. </P>
<P><B>Ejercicio 23</B> Con el resultado del <A=20
href=3D"http://www.fing.edu.uy/inco/cursos/prog1/pm/uploads/Materiales/Pr=
actico1.html#Ejercicio%2012">ejercicio=20
15 del pr=E1ctico 1</A>, escriba un programa para determinar la ra=EDz =
cuadrada de=20
un n=FAmero positivo <I>a</I> mediante el c=E1lculo de =
<I>a</I><SUP>0.5</SUP>. La=20
entrada consistir=E1 en una sola l=EDnea conteniendo el n=FAmero real =
<I>a</I>. Exh=EDba=20
<I>a</I>, <I>a</I><SUP>0.5</SUP>, y <FONT=20
face=3D"Courier New">sqrt(</FONT><I>a</I><FONT face=3D"Courier =
New">)</FONT> con=20
etiquetas apropiadas. </P>
<P>Ejemplo de entrada : <TT>12.7</TT>. </P>
<P>Ejemplo de salida : <TT>Valor introducido =3D 1.2700000000e+00</TT>=20
<BR><TT>Raiz cuadrada calculada =3D 3.5637059362e+00</TT> <BR><TT>Raiz =
cuadrada de=20
Pascal =3D 3.5637059362e+00</TT>. </P>
<P><B>Ejercicio 24 </B>La entrada consiste en una sola l=EDnea que =
contiene un=20
n=FAmero real <I><TT>r</TT></I> y un entero <I><TT>p</TT></I>, el que =
indica la=20
posici=F3n del d=EDgito al que se debe redondear <I><TT>r</TT></I>, de =
esta manera :=20
<BR>&nbsp;=20
<TABLE border=3D0>
  <TBODY>
  <TR>
    <TD>r&nbsp;</TD>
    <TD>=3D&nbsp;</TD>
    <TD>x&nbsp;</TD>
    <TD>x&nbsp;</TD>
    <TD>x&nbsp;</TD>
    <TD>.&nbsp;</TD>
    <TD>x&nbsp;</TD>
    <TD>x&nbsp;</TD>
    <TD>x&nbsp;</TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD><FONT face=3Dsymbol>&shy;</FONT><BR></TD>
    <TD><FONT face=3Dsymbol>&shy;</FONT><BR></TD>
    <TD><FONT face=3Dsymbol>&shy;</FONT><BR></TD>
    <TD>&nbsp;</TD>
    <TD><FONT face=3Dsymbol>&shy;</FONT><BR></TD>
    <TD><FONT face=3Dsymbol>&shy;</FONT><BR></TD>
    <TD><FONT face=3Dsymbol>&shy;</FONT><BR></TD></TR>
  <TR>
    <TD>p&nbsp;</TD>
    <TD>=3D&nbsp;</TD>
    <TD>2&nbsp;</TD>
    <TD>1&nbsp;</TD>
    <TD>0&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>-1&nbsp;</TD>
    <TD>-2&nbsp;</TD>
    <TD>-3&nbsp;</TD></TR></TBODY></TABLE></P>
<P>Por ejemplo, si <I><TT>r</TT></I> =3D 35.89 y <I><TT>p</TT></I> =3D =
-1, el valor=20
redondeado deber=E1 ser 35.9. Escriba un programa en Pascal que lleve a =
cabo esta=20
operaci=F3n de redondeo. (Sugerencia : piense en multiplicar por una =
potencia de=20
10, redondear mediante la funci=F3n est=E1ndar <TT>round</TT>, y dividir =
entre una=20
potencia de 10.) Exh=EDbanse los valores introducidos ( <TT>r</TT> y =
<TT>p</TT>) y=20
el valor redondeado. Utilice etiquetas apropiadas para estos valores. =
</P>
<P>Ejemplo de entrada : <TT>35.89 -1</TT>. </P>
<P>Ejemplo de salida : <TT>Valor introducido =3D 3.5890000000e+01</TT>=20
<BR><TT>Posici=F3n de redondeo =3D -1</TT> <BR><TT>Valor redondeado =3D=20
3.5900000000e+01</TT>. </P>
<P><B>Ejercicio 25</B> Escriba un programa que tenga como =FAnica =
entrada un=20
n=FAmero octal (base ocho) de tres d=EDgitos. Exhiba el n=FAmero octal =
original y el=20
n=FAmero equivalente en base 10. Por ejemplo, el n=FAmero octal de tres =
d=EDgitos 415=20
equivale al valor decimal 4 =D78<SUP>2</SUP> + 1 =D78<SUP>1</SUP> + 5=20
=D78<SUP>0</SUP>, o sea, 269. Recuerde que Pascal considerar=E1 el =
n=FAmero=20
introducido como n=FAmero decimal. </P>
<P>Ejemplo de entrada : <TT>217</TT>. </P>
<P>Ejemplo de salida : <TT>Octal 217 =3D Decimal 143</TT>. </P>
<P><B>Ejercicio 26</B> Dada una fecha expresada como cinco enteros : M =
(mes), D=20
(d=EDa), S (siglo), A (a=F1o),y B (indicador de a=F1o bisiesto), es =
posible determinar=20
el d=EDa de la semana correspondientes en forma de un entero en la =
escala de cero=20
a seis. Este c=E1lculo se puede realizar mediante la siguiente f=F3rmula =
: W =3D [D +=20
(2.6 M - 0.2) + A + <FONT =
size=3D+1>[</FONT><SUP>A</SUP>/<SUB>4</SUB><FONT=20
size=3D+1>]</FONT> + <FONT =
size=3D+1>[</FONT><SUP>S</SUP>/<SUB>4</SUB><FONT=20
size=3D+1>]</FONT> - 2S - (1 + B)<FONT size=3D+1>[</FONT>M/ 11<FONT=20
size=3D+1>]</FONT>] mod 7, donde W =3D d=EDa de la semana (0=3Ddomingo, =
1=3Dlunes, ...), M=20
=3D n=FAmero del mes (1=3D marzo, 2=3D abril, ...), S =3D siglo (los dos =
primeros d=EDgitos=20
del a=F1o actual), A =3D a=F1o dentro del siglo (los dos =FAltimos =
d=EDgitos), D =3D d=EDa del=20
mes, B =3D 1 si el a=F1o es bisiesto, 0 en caso contrario. Las =
expresiones entre=20
par=E9ntesis rectos como <FONT size=3D+1>[</FONT>M/ 11<FONT =
size=3D+1>]</FONT>=20
representan el valor de las expresiones truncado a un entero. Como =
ejemplo=20
considere el 1 de enero de 1985. Se tiene M =3D 11, D =3D 1, S =3D 19, A =
=3D 85 y B =3D 0.=20
Por tanto, W =3D [1 + (2.6 =D711 - 0.2) + 85 + ([85/ 4]) + ([19/ 4]) - 2 =
=D719 - (1 +=20
0)([11/ 11])] mod 7 =3D (1 + 28 + 85 + 21 + 4 - 38 - 1) mod 7 =3D 100 =
mod 7 =3D 2.=20
Puesto que W =3D 2, se sabe que el primero de enero de 1985 cay=F3 en =
martes. Los=20
datos de entrada ser=E1n el n=FAmero del mes actual (con enero =3D 1), =
el d=EDa del mes,=20
el a=F1o (sin separar el siglo y el a=F1o dentro del siglo, como =
requiere la=20
f=F3rmula) y el indicador de a=F1o bisiesto (cero o uno). Determine el =
d=EDa de la=20
semana en que cay=F3 la fecha que se introduce como dato. La salida debe =
inclu=EDr=20
los datos de entrada y el entero que represente al d=EDa de la semana, =
todos con=20
etiquetas apropiadas. </P>
<P>Ejemplo de entrada : <TT>3 12 1985 0</TT> (que representa el 12 de =
marzo de=20
1985). </P>
<P>Ejemplo de salida : <TT>Mes =3D 3</TT> <BR><TT>Dia =3D 12</TT> =
<BR><TT>Anio =3D=20
1985</TT> <BR><TT>Dia de la semana =3D 2</TT>. </P>
<P><B>Ejercicio 27</B> Dado el importe real de un pr=E9stamo P, una tasa =
de=20
inter=E9s real T y un n=FAmero entero de a=F1os en los que se desea =
pagar el pr=E9stamo=20
N, determine la cantidad C que se debe pagar cada a=F1o. Se puede =
utilizar la=20
siguiente expresi=F3n para calcular C : C =3D P (1 + (T/ =
100))<SUP>N</SUP> (T/=20
100)/((1 + (T/ 100))<SUP>N</SUP> - 1). Los datos de entrada incluir=E1n =
a P, T, y=20
N. Calcule C e imprima P, T, N y C con etiquetas y formatos apropiados. =
Suponga=20
que T se especifica como un porcentaje con un s=F3lo d=EDgito =
fraccionario. </P>
<P>Ejemplo de entrada : <TT>40000 10.0 30</TT> ($40,000 al 10% de =
inter=E9s=20
durante 30 a=F1os). </P>
<P>Ejemplo de salida : <TT>Importe del prestamo =3D $40000.00</TT> =
<BR><TT>Tasa de=20
interes =3D 10.0 por ciento</TT> <BR><TT>Plazo del prestamo =3D 30 =
anios</TT>=20
<BR><TT>Pago anual =3D $4243.17</TT>. <BR></P>
<HR>

<CENTER><FONT face=3D"Courier new"><FONT size=3D-1>In.Co. - Curso de =
Programaci=F3n=20
1</FONT></FONT></CENTER></BODY></HTML>

------=_NextPart_000_0000_01C5B909.03B4EC40
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_01C5B909.03B4EC40--
