Módulo 7ALGORITMOS Y ESTRUCTURA DE DATOS <br />PROFESOR:SIRACUSA EMILIANO <br />                    MARTÍN<br />Página Web...
Anidamiento de procedimientos:<br />Es cuando un procedimiento función está declarado dentro de otro procedimiento o funci...
Traza de P<br />Program p;		<br />var y: integer; <br />Procedure Q <br />	Procedure R<br />   var y: integer,; <br />   b...
Anidamiento de procedimientos:<br />Es cuando un procedimiento está declarado dentro de otroprocedimiento.<br />Program P;...
Traza de P:<br />P<br />P<br />P<br />Program P;<br />var y, t: integer:<br />Procedure Q  (x: integer; var z: integer);		...
Identificadores locales a un subprograma, programa: <br />Son los que están declarados en el subprograma o programa. Están...
Identificadores no locales a un subprograma:<br />Un identificador i es no loca! a un subprograma Ssi cumple con todos los...
Ámbito, entorno o ambiente de un procedimiento o función<br />Es el conjunto de todos los identificadores que son visibles...
Program P;<br />var y: integer;<br />   Procedure Q;<br />           Procedure R; <br />          var y: integer; <br />	b...
Program P;<br />var y, t: integer;<br />     Procedure Q (x: integer; var                                 	               ...
Alcance de un identificador: es el conjunto de bloques de programas en los que un identificador puede ser referenciado, es...
Alcance de y es todo el programa P a  partir de la declaración de y, excepto e! procedimiento R a partir de la  declaració...
Program P;  <br />var y, t: integer;<br />Procedure R(x: integer); <br />   var y: integer; <br />begin  {R}<br />   y:= 8...
Program P;  <br />var y, t: integer;<br />    Function Q(x: integer): integer; <br />   var z: integer; <br />   Procedure...
Estudio de ejercicios con caracteres<br />Repasemos los procedimientos read y write, el concepto de buffer y su comportami...
Al presionar la tecla ENTER la ejecución continúa y el procedimiento read lee del buffer los valores que necesita para aso...
Read( N, Y, C, M, D)<br />Los valores son asignados a las variables en el orden en el cual las variables fueron indicadas ...
Read( N, Y, C, M, D) = read (N, C); <br />			read (M); <br />			read (D, Y); <br />Readln<br />Variable				Buffer<br />N(i...
Repeat <br />Read (C)<br />Until C = ‘. ’<br />C A<br />CN <br />C A<br />C □<br />C S<br />C A<br />C  L<br />C  ...
Repeat <br />Read (C)<br />Until C = ‘. ’<br />C A<br />Ejercicio: Escribir un programa en Pascal que permita contar la c...
Program palabra1;<br />uses crt;<br />var<br />car: char; cantidad: integer;<br />begin<br />clrscr;<br />writeln ('contar...
Program palabra1;<br />uses crt;<br />var<br />car: char; cantidad: integer;<br />begin<br />clrscr;<br />writeln ('contar...
Program palabra1;<br />Var  car: char ; cantidad: integer;<br />Procedure Inicio (var car: Char);<br />	begin<br />	writel...
Program palabra2;<br />uses crt;<br />var <br />carchar ,cantidad: integer;<br />Procedure inicio (var car: Char);<br />be...
Program palabra3;<br />uses crt;<br />var <br />carchar ,cantidad: integer;<br />Procedure inicio (var car: Char);<br />be...
Program palabra4;<br />uses crt;<br />var <br />carchar ,CantidadDigitos, CantidadPalabras: integer;<br />Procedure inicio...
Program palabra5;<br />uses crt;<br />var <br />carchar ,CantidadVocales: integer;<br />Procedure inicio (var car: Char);<...
Program palabra6;<br />uses crt;<br />var<br />carchar ;exito: boolean;<br />Procedure inicio ( var car: Char);<br />	begi...
Program palabra7;<br />Var car: char; exito: boolean; <br />Procedure inicio (var car :char); <br />begin<br />writeln ("e...
Program frase1;<br />uses crt;	<br />var	<br />car: char ; cantidad: integer;	<br />begin	<br />clrscr;	<br />writeln ('co...
Program frase1_2;<br />uses crt;<br />var carchar ; CantidadVocales: integer;<br />Procedure CuentaVocales ( car Char, var...
Program frase2;<br />uses crt; var<br />carchar; cantidad: integer;<br />begin<br />clrscr;<br />read(car);<br />cantidad ...
Program frase2_1;<br />uses crt;<br />var canchar; cantidad: integer; <br />Procedure palabra (var car: Char);<br />begin<...
Program frase2_2;<br />uses crt; <br />var<br />car:char; <br />cantidad: integer; <br />Procedure palabra (var car: Char)...
Program frase3;<br />var car: Char ; cantidad: integer;<br />Function empiezaconla (var car: Char): boolean);<br />   begi...
Program frase4;<br />Var car: Char ; cantidad: integer; <br />       TerminacionLa: boolean;<br />Function TerminacionLa (...
Program frase5;<br />var car: Char ; cantidadla, cantidadpal: integer;<br />Procedure inicio (var car: Char);<br />begin<b...
Ejercicio 1:<br />Dados dos números enteros cuyos dígitos están ordenados en forma decreciente desde la cifra más signific...
Ejercicio 2<br />Escribir un algoritmo y un programa en Pascal que permita resolver el siguiente problema. <br />Calcular ...
Ejercicio 3<br />Consideremos la siguiente sucesión : 1, 1/3 , 1/5, 1/8,  1/11, 1/15,  1/19,  1/24, 1/29.....de números re...
Bibliografía<br /><ul><li>López García, Guillermo (ed.) (2005).  El ecosistema digital: Modelos de comunicación, nuevos me...
Próxima SlideShare
Cargando en…5
×

Módulo 7 (sin estilo)

432 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
432
En SlideShare
0
De insertados
0
Número de insertados
15
Acciones
Compartido
0
Descargas
7
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Módulo 7 (sin estilo)

  1. 1. Módulo 7ALGORITMOS Y ESTRUCTURA DE DATOS <br />PROFESOR:SIRACUSA EMILIANO <br /> MARTÍN<br />Página Web: www.esiracusa.jimdo.com<br />
  2. 2. Anidamiento de procedimientos:<br />Es cuando un procedimiento función está declarado dentro de otro procedimiento o función.<br />Program p; <br />var y: integer; <br />Procedure Q <br /> Procedure R<br /> var y: integer,; <br /> begin <br /> y:= 8; <br /> end; <br /> begin.{Q} <br /> Y:=y+1;<br /> R; <br /> end; {Q) <br />Begin<br />Y:=3;<br />Q; <br />end.<br />Program p; <br />var y: integer; <br />Procedure Q <br /> Procedure R<br /> var y: integer,; <br /> begin <br /> y:= 8; <br /> end; <br /> begin.{Q} <br />R;<br />Y:=y+1;<br /> end; {Q) <br />Begin<br />Y:=3;<br />Q; <br />end. <br />R está anidado en Q<br />
  3. 3. Traza de P<br />Program p; <br />var y: integer; <br />Procedure Q <br /> Procedure R<br /> var y: integer,; <br /> begin <br /> y:= 8; <br /> end; <br /> begin.{Q} <br /> Y:=y+1;<br /> R; <br /> end; {Q) <br />Begin<br />Y:=3;<br />Q; <br />end.<br /> P<br /> Q <br /> R<br />P<br />Q<br />P<br />Q<br />P<br />R<br />Q<br />P<br />P<br />y<br />3<br />y<br />3 4<br />y<br />4<br />y<br />8<br />y<br />4<br />y<br />4<br />
  4. 4. Anidamiento de procedimientos:<br />Es cuando un procedimiento está declarado dentro de otroprocedimiento.<br />Program P;<br />var y, t: integer:<br />Procedure Q (x: integer; var z: integer); <br /> Procedure R (v: integer): <br /> var y: integer; <br />Begin<br />y:= 8;x:= 10;z:= 9; t:= 6;<br /> end;<br />begin {Q} <br />y:= y +1; x:= 5; z:=7;<br /> R(z)<br /> end; {Q} <br />begin <br />Y:=1; t:=2;<br />Q(y,t);<br />end.<br /> R está anidado en Q<br />
  5. 5. Traza de P:<br />P<br />P<br />P<br />Program P;<br />var y, t: integer:<br />Procedure Q (x: integer; var z: integer); <br /> Procedure R (v: integer): <br /> var y: integer; <br />Begin<br />y:= 8;x:= 10;<br />z:= 9; t:= 6;<br /> end;<br />begin {Q} <br />y:= y +1; x:= 5; z:=7;<br /> R(z)<br /> end; {Q} <br />begin <br />Y:=1; t:=2;<br />Q(y,t);<br />end.<br />P<br />P<br /> P<br /> Q <br /> R<br />y<br />1 2<br />y<br />2<br />y<br />2<br />y<br />1<br />y<br />2<br />t<br />2 7<br />t<br />2<br />t<br />796<br />t<br />6<br />t<br />6<br />Q<br />Q<br />Q<br />x<br />15<br />x<br />5<br />x<br />5<br />z<br />z<br />z<br />R<br />x<br />7 10<br />y<br />8<br />
  6. 6. Identificadores locales a un subprograma, programa: <br />Son los que están declarados en el subprograma o programa. Están activos sólo durante la ejecución del mismo. Una vez finalizada la ejecución de la unidad donde están declarados no se puede hacer referencia a dichos identificadores.<br />Identificadores globales a un procedimiento, función:<br />Son aquellos identificadores que están declarados en el programa principal y que no han sido re declarados en el procedimiento o función correspondiente.<br />
  7. 7. Identificadores no locales a un subprograma:<br />Un identificador i es no loca! a un subprograma Ssi cumple con todos los siguientes requisitos:<br />i está declarado en algún subprograma que anida al subprograma S.<br />i no esta declarado en el programa principal.<br />i no se encuentra redeclarado en el subprograma S.<br />ino está redeclarado en ninguno de los subprograma que anidan a S y que a su vez están anidados en el subprograma donde se encuentra la declaración de i.<br />
  8. 8. Ámbito, entorno o ambiente de un procedimiento o función<br />Es el conjunto de todos los identificadores que son visibles y pueden referenciarse dentro del procedimiento.<br />Está formado por los identificadores totales, no locales y globales de un procedimiento o función. <br />
  9. 9. Program P;<br />var y: integer;<br /> Procedure Q;<br /> Procedure R; <br /> var y: integer; <br /> begin<br /> y:= 8; <br />end;<br /> begin {Q}<br /> y := y + 1 ; <br /> R;<br /> end; { Q}<br />begin <br />y:-=3;<br /> Q;<br />end.<br />Ambiente de P:<br />var: y<br />Procedimiento: Q<br />Locales a P<br />Globales a Q<br />Ambiente de Q:<br />var: y <br />Procedimiento: Q , R<br />Local a Q<br />Ambiente de R:<br />var: y <br />Procedimento: Q<br /> R<br />LocalesR <br />Global a R<br />No local a R<br />
  10. 10. Program P;<br />var y, t: integer;<br /> Procedure Q (x: integer; var z : integer);<br /> Procedure R (x: integer); var <br /> y: integer;<br /> begin ;<br /> y:= 8; x:=10;<br /> z:= 9; t= 6 <br /> end; <br /> begin {Q}<br /> y:=y+1; X:= 5; z:= - 7;<br /> R(z);<br />end; {Q}<br />begin<br />y:= 1; t:= 2; Q(y, t);<br />end.<br />Ambiente de P: <br />Var: y, t Locales a P<br />Procedimientos: Q<br />Ambiente de Q: <br />Par: x, z ; Proc: R Locales a Q<br /> Var: y, t ; Proc: Q Globales a Q<br />Ambiente de R:<br />Par x; Var: y Localesa R <br />Par: z ; Proc: R; No locales a R<br />Var :t ; Proc Q; Globalesa R<br />
  11. 11. Alcance de un identificador: es el conjunto de bloques de programas en los que un identificador puede ser referenciado, es decir, es la sección de un programa en la que un identificador es visible.<br />Reglas de alcance estático:<br />-El alcance de un identificador es el bloque del procedimiento P en el que está declarado y todos los procedimientos anidados por el procedimiento P, sujeto a la siguiente regla.<br />-Si un identificador i declarado en P se redeclaraen algún procedimiento interno Q anidado en P, entonces el procedimiento Q y todos los procedimientos anidados en Q se excluyen del alcance de i declarado en P.<br />
  12. 12. Alcance de y es todo el programa P a partir de la declaración de y, excepto e! procedimiento R a partir de la declaración de y. Local a R.<br />Alcance de Q, es todo el programa a partir de la declaración de Q.<br />Alcance de R es todo el procedí miento Q a partir de te declaración de R.<br />Alcance de y. loca) a R, es iodo e¡ procedimiento R desde la declaración de y en R.<br />Program p;<br />Var v:integer;<br /> Procedure Q; Procedure R; <br /> var y: integer;<br /> begin <br /> y:= 8; <br /> end;<br /> begin {Q} <br /> y:=y+1;<br /> R;<br /> end; { Q}<br />begin <br />y:=3;<br />Q;<br />end. <br />
  13. 13. Program P; <br />var y, t: integer;<br />Procedure R(x: integer); <br /> var y: integer; <br />begin {R}<br /> y:= 8; x:= 10; t:= 6; <br /> end; {R}<br /> Procedure Q (x: integer; var z: integer); <br />begin {Q}<br /> y:=y+1; x:= 5; z:= 7<br /> R(z); <br /> end;{Q}<br />begin <br />Y:= 1; t:= 2;<br />Q( y,t); <br />end.<br />Ejercicio:<br />Establecer el alcance para cada identificador de este programa.<br />
  14. 14. Program P; <br />var y, t: integer;<br /> Function Q(x: integer): integer; <br /> var z: integer; <br /> Procedure R (x: integer; var z: integer);<br /> begin {R} <br /> y:= 8; x:= 10; z:=9; t:= 6; <br /> end;{R}<br /> begin {Q}<br /> y:=y+1; x:= 5; z:= 7<br /> R(z); <br /> Q:=z;<br /> end;{Q}<br />Begin {P}<br />Y:= 1; t:= 2;<br />Writeln(Q( y, t));<br />end.<br />Indicar alcance de los identificadores.<br />Indicar los entornos de referencia del programa P de cada uno de los subprogramas.<br />Realizar un diagrama de la estructura estática del programa.<br />Realizar una traza de ejecución del programa.<br />
  15. 15. Estudio de ejercicios con caracteres<br />Repasemos los procedimientos read y write, el concepto de buffer y su comportamiento.<br />ingreso de datos por teclado:<br />Los datos ingresados se almacenan en una zona de memoria auxiliar llamadabufferdonde quedan retenidos.<br />El buffer es potencialmente infinito y almacena cada carácter ingresado por teclado.<br />El buffer tiene un puntero (↑), asociado al carácter del buffer al que hace referencia en un determinado momento.<br />Si durante la ejecución de un programa, se ejecuta un read, se suspende la ejecución del programa. A continuación, todo lo ingresado por teclado se guardará en el buffer.<br />
  16. 16. Al presionar la tecla ENTER la ejecución continúa y el procedimiento read lee del buffer los valores que necesita para asociarlos a las variables que tiene como argumentos.<br />El read intentará resolver las asociaciones entre sus argumentos ( parámetros) de los que conoce el tipo, y los caracteres que hay en el buffer.<br />Ejemplo: Program P; <br />Var N,M: integer;<br />C, D: char; <br />Y:real;<br />Read( N, Y, C, M, D)<br />Al detenerse la ejecución del programa frente a un procedimiento read, ingresamos por teclado:<br />
  17. 17. Read( N, Y, C, M, D)<br />Los valores son asignados a las variables en el orden en el cual las variables fueron indicadas en el Read. Los diagramas siguientes muestras los valores asignados a las variables y el estado del buffer después que cada valor ha sido leído.<br />Variable Buffer<br />N(integer) 15 <br />Y (real) 37.25 <br />C(char)  □<br />M(integer) 275<br />D (char)⸗<br />
  18. 18. Read( N, Y, C, M, D) = read (N, C); <br /> read (M); <br /> read (D, Y); <br />Readln<br />Variable Buffer<br />N(integer) 15 <br />Y (real) 37.25 <br />C(char)  □<br />M(integer) 275<br />D (char)⸗<br />
  19. 19. Repeat <br />Read (C)<br />Until C = ‘. ’<br />C A<br />CN <br />C A<br />C □<br />C S<br />C A<br />C  L<br />C i<br />
  20. 20. Repeat <br />Read (C)<br />Until C = ‘. ’<br />C A<br />Ejercicio: Escribir un programa en Pascal que permita contar la cantidad de letras a o A que se encuentran en una frase. <br />Program Cantidad_ deaes; <br />var c: Char;<br />cantidad: integer; <br />begin<br />writeln ('ingrese una frase terminada en punto'); <br />cantidad := 0; <br />repeat <br />read (c);<br />If (c = 'a') or (c= 'A') then cantidad := cantidad + 1;<br />untilC=‘.‘<br />end.<br />
  21. 21. Program palabra1;<br />uses crt;<br />var<br />car: char; cantidad: integer;<br />begin<br />clrscr;<br />writeln ('contar la cantidad de caracteres de una palabra') ; <br />writeln ('ingrese una palabra seguida de un espacio'); read (car); <br />cantidad: = 0; <br />while car O' ' do begin<br />cantidad: =cantidad + 1;<br />read (car);<br />end;<br />write (cantidad) ;<br />readkey<br />end.<br />
  22. 22. Program palabra1;<br />uses crt;<br />var<br />car: char; cantidad: integer;<br />begin<br />clrscr;<br />writeln ('contar la cantidad de caracteres de una palabra') ; <br />writeln ('ingrese una palabra seguida de un espacio'); read (car); <br />cantidad: = 0; Inicio<br />while car O' ' do begin<br />cantidad: =cantidad + 1;<br />read (car);<br />end; Proceso<br />write (cantidad) ; <br />Readkey Impresión<br />end.<br />
  23. 23. Program palabra1;<br />Var car: char ; cantidad: integer;<br />Procedure Inicio (var car: Char);<br /> begin<br /> writeln ("contar la cantidad de caracteres de una palabra');<br /> writeln ("ingrese una palabra seguida de un espacio');<br /> read (car);<br /> end;{inicio}<br />Procedure Cuentacaracter (car: Char, var cantidad: integer);<br /> begin {Cuentacaracteres} <br /> cantidad := 0; <br />while car <>' ' do begin cantidad:=cantidad + 1 ; <br /> read (car);<br />end; {Cuentacaracteres}<br />Procedure Impresión (cantidad; integer);<br /> begin<br /> writeln ('la cantidad de caracteres de la palabra Ingresada es', cantidad)<br />end; {impresión} <br />begin {palabra1}<br />clrscr; <br />Inicio (car);<br />Cuentacaracter (car, cantidad);<br />Impresión (cantidad);<br /> readkey<br />end.<br />
  24. 24. Program palabra2;<br />uses crt;<br />var <br />carchar ,cantidad: integer;<br />Procedure inicio (var car: Char);<br />begin<br />writeln ('contar la cantidad de letras de una palabra');<br />writeln ('ingrese una palabra seguida de un espacio'); <br />Read (car) ;<br />end; {inicio}<br />Procedure CuentaLetras (car: Char, var cantidad: Integer);<br />begin <br />cantidad:=0; <br />while car <>'' do<br />If car in ['a'… 'z'] CuentaLetras (car, cantidad};<br />cantidad:=cantidad + 1; <br />read (car)<br />end; {CuentaLetras} <br />Procedure impresión (cantidad: integer);<br />begin;<br />writeln ( 'la cantidad de letras de la palabra ingresada es', cantidad); <br />end; {impresión} <br />begin {palabra2}<br />Clrscr;<br />inicio (car)<br />CuentaLetras (car, cantidad);<br />impresión (cantidad);<br />readkey<br />end.<br />
  25. 25. Program palabra3;<br />uses crt;<br />var <br />carchar ,cantidad: integer;<br />Procedure inicio (var car: Char);<br />begin<br />writeln ('contar la cantidad de letras de una palabra');<br />writeln ('ingrese una palabra seguida de un espacio'); <br />Read (car) ;<br />end; {inicio}<br />Procedure CuentaDigitos(car: Char, var cantidad: Integer);<br />begin <br />cantidad:=0; <br />while car <>'' do<br />If car in [‘0'… ‘9'] <br />cantidad:=cantidad + 1; <br />read (car)<br />end; {CuentaDigitos} <br />Procedure impresión (cantidad: integer);<br />begin;<br />writeln ( 'la cantidad de Digitosde la palabra ingresada es', cantidad); <br />end; {impresión} <br />begin {palabra3}<br />Clrscr;<br />inicio (car)<br />CuentaDigitos(car, cantidad);<br />impresión (cantidad);<br />readkey<br />end.<br />
  26. 26. Program palabra4;<br />uses crt;<br />var <br />carchar ,CantidadDigitos, CantidadPalabras: integer;<br />Procedure inicio (var car: Char);<br />begin<br />writeln ('contar la cantidad dígitos y de letras de una palabra');<br />writeln ('ingrese una palabra seguida de un espacio'); <br />Read (car) ;<br />end; {inicio}<br />Procedure CuentaDigitosyLetras(car: Char, var CantidadDigitos, CantidadPalabras: integer);<br />begin <br />cantidad:=0; <br />while car <>'' do<br />If car in [‘0'… ‘9'] <br />CantidadDigitos := CantidadDigitos+ 1; <br />else If car in ['a'… ‘z‘,'A'…'Z'] <br /> then CantidadPalabras:=CantidadPalabras+1;<br />read (car)<br />end; {CuentaDigitos} <br />Procedure impresión (CantidadDigitos, CantidadPalabras: integer);<br />begin;<br />writeln ( 'la cantidad de Digitosde la palabra ingresada es', CantidadDigito, ( 'y la cantidad de Letras de la palabra ingresada es', CantidadPalabras); <br />end; {impresión} <br />begin {palabra4}<br />Clrscr;<br />inicio (car);<br />CuentaDigitosyLetras(CantidadDigitos, CantidadPalabras);<br />impresión (cantidad);<br />readkey<br />end.<br />
  27. 27. Program palabra5;<br />uses crt;<br />var <br />carchar ,CantidadVocales: integer;<br />Procedure inicio (var car: Char);<br />begin<br />writeln ('contar la cantidad de vocales de una palabra');<br />writeln ('ingrese una palabra seguida de un espacio'); <br />Read (car) ;<br />end; {inicio}<br />Procedure CuentaVocales (car: Char, var CantidadVocales: Integer);<br />begin <br />cantidad:=0; <br />while car <>'' do<br />If car in [‘a' , ‘e' ,‘i' ,‘o' ,‘u'] <br />CuentaVocales := CuentaVocales + 1; <br />read (car)<br />end; {CuentaVocales} <br />Procedure impresión (CantidadVocales: integer);<br />begin;<br />writeln ( 'la cantidad de Vocales de la palabra ingresada es', CantidadVocales); <br />end; {impresión} <br />begin {palabra5}<br />Clrscr;<br />inicio (car)<br />CuentaVocales(car, CantidadVocales);<br />impresión (CantidadVocales);<br />readkey<br />end.<br />
  28. 28. Program palabra6;<br />uses crt;<br />var<br />carchar ;exito: boolean;<br />Procedure inicio ( var car: Char);<br /> begin<br /> writeln ('estudiar si una palabra comienza en la');<br /> writeln ('ingrese una palabra seguida de un espacio);<br /> read (car);<br /> end;<br />Procedure EmpiezaConLa (car: Char, var exito: boolean)<br />begin<br />exito: =false;<br />if car = ‘l'<br /> then begin<br /> read(car);<br />If car = 'a'<br /> then éxito: = true<br /> end;<br />end;{EmpiezaConla}<br />Procedure impresión (exito);<br /> begin<br /> Writeln ("la palabra ingresada empieza con la es:', exito); <br /> end;<br />Begin {paiabra6}<br />clrscr; <br />Inicio (car);<br />EmpiezaConla(car,exito); <br />Impresión (exito); <br />readkey<br />end. <br />
  29. 29. Program palabra7;<br />Var car: char; exito: boolean; <br />Procedure inicio (var car :char); <br />begin<br />writeln ("estudiar si una palabra termina en azo'); <br />writeln ("ingrese una palabra seguida de un espacio'); <br />read (car); <br />end; {inicio}<br />Procedure TerminaEnAzo ( car: Char var exito: boolean);<br />begin <br />exito:=false;<br />while car <>' ' do begin<br />if car ='a' then <br />begin read(car); <br />if car = "z" then <br /> begin read(car);<br /> if car = 'o' then <br />begin read(car); <br />exito:= car = ' ‘; <br /> end;<br /> end;<br />end;<br />else read (car);<br /> end{whlie} <br />end;{TerminaEnAzo}<br />Procedure impresión (éxito); <br />begin<br />writeln ('la palabra ingresada termina en azo<br /> es:', éxito);<br />end;<br />begin {palabra7}<br />clrscr; <br />Inicio (car);<br />TerminaEnAzo(car, exito);<br />impresión (éxito); <br />readkey <br />end.<br />
  30. 30. Program frase1;<br />uses crt; <br />var <br />car: char ; cantidad: integer; <br />begin <br />clrscr; <br />writeln ('contar la cantidad de vocales de una frase '); <br />writeln ('ingrese una frase: una frase es un conjunto de palabras separadas por un espacio y termina en punto');<br />read (car); cantidad :=0; <br />while car<>'. ' do<br />begin<br />If car in ['a', 'e', 'i', 'o 'u'] then <br />cantidad := cantidad +1; <br />read (car)<br />end;<br />write (cantidad) ;<br />readkey<br />end.<br />
  31. 31. Program frase1_2;<br />uses crt;<br />var carchar ; CantidadVocales: integer;<br />Procedure CuentaVocales ( car Char, var CantdVocales:integer);<br /> begin<br />CantdVocales:= 0;<br /> while car o'.' do begin<br />ifcar in [‘a' , ‘e' , ‘i' , ‘o' ,‘u'] <br /> then CantdVoclaes:=CantVocales+ 1 ;<br /> read (car); <br /> end;<br />Procedure inicio (var car: Char); <br /> begin<br /> writeln (‘Contar la cantidad de vocales de una frase'); <br /> writeln ('ingrese una frase seguida de un punto'); <br /> read (car) <br /> end;{inicio}<br />Procedure impresión (CantVocales: integer); <br /> begin<br /> writeln (' La cantidad de vocales de la frase ingresada es:' CantVocales)<br />end; {impresión}<br />begin {frase1_2} <br />clrscr; <br />inicio (car);<br />CuentaVocales (car,CantidadVocales); <br />impresión (CantidadVocales); readkey <br />end.<br />
  32. 32. Program frase2;<br />uses crt; var<br />carchar; cantidad: integer;<br />begin<br />clrscr;<br />read(car);<br />cantidad :=0; <br />while car <> do<br />begin <br />ifcar = '' then<br />cantidad := cantidad +1;<br />read(car)<br />ifcar = then <br />cantidad:= cantidad + 1 <br />end;<br />writeln ('la frase tiene palabras', cantidad);<br />readkey<br />end.<br />
  33. 33. Program frase2_1;<br />uses crt;<br />var canchar; cantidad: integer; <br />Procedure palabra (var car: Char);<br />begin<br />while (car <>'.') and (car<>' ') do<br />read(car) end; <br />begin {frase2_1} <br />clrscr;<br />writeln (‘Contar la cantidad de palabras de una frase '); <br />writeln ('ingrese una frase: una frase es un conjunto de palabras separadas por un espacio y termina en punto'); <br />cantidad := 0; <br />read(car); <br />while (car<>'.') do <br />begin <br />palabra(car); <br />cantidad := cantidad + 1; <br />If (car<>'.') then <br />read(car) <br />end;<br />write( cantidad);<br />readkey <br />end.<br />
  34. 34. Program frase2_2;<br />uses crt; <br />var<br />car:char; <br />cantidad: integer; <br />Procedure palabra (var car: Char);<br /> begin<br /> while (car<> '.') and (car<>' ') do<br /> read(car)<br /> end;<br />Procedure EnFrase ( var car: Char; var cant: integer);<br /> begin<br /> cantidad: = 0; <br /> while car ‘ . ’<> do begin<br /> palabra( car); <br />cant= cant + 1; <br />ifcar <> ‘ . ’then <br /> read (car) <br /> end ;<br /> end;<br />Procedure inicio (var car: car);<br /> Begin<br /> writeln (‘Contar la cantidad de palabras de una frase"); <br />writeln ('ingrese una frase que finalice en un punto');<br /> read (car); <br />end;<br />Procedure impresión (cantidad:integer);<br />begin<br />writeln (palabras en frase:', cantidad);<br />end;<br />Begin {frase2_2}<br />clrscr;<br />inicio (car);<br />EnFrase (car ,cantidad); <br />Impresión (cantidad); <br />readkey <br />end.<br />
  35. 35. Program frase3;<br />var car: Char ; cantidad: integer;<br />Function empiezaconla (var car: Char): boolean);<br /> begin<br />empiezaconla:= false;<br /> If car =‘.’ then <br /> begin <br /> read(car);<br /> If car = ‘a’ then empiezaconla:= true<br /> end;<br /> end; {empiezaconla} <br />Procedure avanza (var car: Char);<br /> begin<br /> while (car <> '.') and( car <> ' ') do<br /> read(car); <br /> end;<br />Procedure inicio ( var car: Char);<br />begin<br />writeln ("contar la cantidad de palabras de una frase que comienzan con la '); <br />writeln ("ingrese una frase como un conjunto de palabras separadas por un espacio y terminada en punto');<br />read (car) ;<br />end; {inicio}<br />Procedure EnFrase (car char; var cantidad ; integer); <br />begin <br />cantidad :=0; <br />while caro '. 'do <br /> begin <br />ifempiezaconla (car);<br /> then cantidad cantidad + 1;<br /> avanza (car);<br />ifcar <> '.' read (car) <br /> end; <br />end;{En Frase} <br />Procedure impresión(cantidad: integer);<br /> begin<br /> writeln ('La cantidad de palabras ....es:', cantidad)<br /> end;<br />begin {frase3}<br />Inicio (car);<br />EnFrase (car, cantidad); <br />impresión (cantidad);<br />end.<br />
  36. 36. Program frase4;<br />Var car: Char ; cantidad: integer; <br /> TerminacionLa: boolean;<br />Function TerminacionLa (var car: Char): boolean;<br /> begin TerminacionLa:= false; <br /> while (car <>'.') and (car <> " ) do Begin<br /> If car =‘l’ then begin read(car);<br /> If car = 'a' then begin <br />read (car);<br /> TerminacionLa := (car ='.') or (car = " )<br /> end;<br /> end;<br /> else If car <> then read(car); <br /> end; {while} <br />end; {función}<br />Procedure inicio (var car: Char);<br />begin<br />writeln ('contar la cantidad.....una frase que terminan con la ');<br />writeln ('ingrese una frase como un conjunto de palabras .. por un espacio y termina en punto');<br />read (car);<br />end;{inicio}<br />Procedure EnFrase (car :boolean; var cantidad: integer);<br />begin<br />cantidad :=0; <br />while car<>'.' do <br /> begin<br /> If TerminacionLa(car) then cantidad := cantidad + 1; <br /> If car-=' ' then read (car) ;<br /> end; <br />End; {EnFrase}<br />Procedure impresión (cantidad: integer);<br />begin<br />write( 'hay ', cantidad, ' de palabras......<br /> que terminan con la ');<br />Begin {frase4}<br />Inicio (car);<br />EnFrase (car, cantidad); <br />Impresión (cantidad); <br />Readkey <br />end.<br />
  37. 37. Program frase5;<br />var car: Char ; cantidadla, cantidadpal: integer;<br />Procedure inicio (var car: Char);<br />begin<br />writeln ('contar ... palabras que terminan con la de una frase');<br />writeln ('ingrese una frase que finalice en un punto');<br />read (car);<br />end;<br />Function TerminacionLa (var car: Char): boolean;<br />begin<br /> TerminacionLa:= false;<br /> while ( car<> '.') and (car<> ' ')do<br /> begin<br /> If car = ‘l’ then begin read(car);<br /> If car = 'a‘ then begin<br /> read(car);<br /> TerminacionLa := ( car = ‘l’) or (car = ' ')<br /> end; end;<br /> else if car <> '.' then read(car);<br /> end ;{while}<br />end;{TerminacionLa}<br />Procedure EnFrase (car: Char; var cantla, cantpal: integer);<br />begin<br />cantla := 0; cantpal := 0;<br />while car <> '.' do<br />begin<br /> If TerminacionLa ( car) then <br />cantla := cantla +1 ;<br /> cantpal := cantpal + 1;<br /> If car <> then read (car)<br /> end;<br />end;{En Frase}<br />Procedure impresion (cantla, cantpal: integer);<br />begin<br />writeln ('la cantidad de palabras de la frase que terminan con la es:', cantla);<br />writeln ('la cantidad total de palabras de la frase es:', cantpal)<br />end;<br />begin<br />clrscr<br />inicio (car);<br />EnFrase (car , cantidadla, cantidadpal);<br />impresion(cantidadla, cantidadpal);<br />end.<br />
  38. 38. Ejercicio 1:<br />Dados dos números enteros cuyos dígitos están ordenados en forma decreciente desde la cifra más significativa hacia la menos significativa, se desea obtener un tercer número ordenado de la misma manera. Puede haber dígitos repetidos.<br />Ejemplifique<br />Explique sucintamente como pensó resolver el ejercicio.<br />Escriba uno o varios algoritmos que lo resuelvan.<br />A partir de los algoritmos escriba un programa en Lenguaje Pascal.<br />Haga una traza para algún dato de entrada y verifique el resultado.<br />
  39. 39. Ejercicio 2<br />Escribir un algoritmo y un programa en Pascal que permita resolver el siguiente problema. <br />Calcular por aproximaciones sucesivas el valor de la abscisa x para la cual el valor de la ordenada y es cero dentro del intervalo [0,3] para la función <br />y = -1/2 x2 - 2x + 3. Un método a usar es el de bisección de Bolzano, que divide al intervalo en dos subintervalos y elige el subintervalo donde la función cambia de signo en sus extremos. Y así siguiendo hasta la admisión de un cierto error.<br />
  40. 40. Ejercicio 3<br />Consideremos la siguiente sucesión : 1, 1/3 , 1/5, 1/8, 1/11, 1/15, 1/19, 1/24, 1/29.....de números reales donde los denominadores se obtienen a partir de la sucesión de números naturales 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24, <br />25,26,27,28,29........<br />Eliminando un número después del 1 y del 3, dos números después del 5 y del 8 tres números después del 11 y del 15, cuatro números después del 19 y 24 y así siguiendo. (Se eliminan los subrayados)<br />Escribir una función en Pascal que permita calcular el n-ésimo elemento de la sucesión. <br />Defina correctamente los parámetros. <br />Escribir un programa en Pascal que permita calcular la suma de los n primeros elementos de la sucesión dada. <br />Escribir un programa en Pascal para calcular la suma de los elementos de la sucesión hasta una aproximación dada.<br />
  41. 41. Bibliografía<br /><ul><li>López García, Guillermo (ed.) (2005). El ecosistema digital: Modelos de comunicación, nuevos medios y público en Internet. Valencia: Servei de Publicacions de la Universitat de València. Disp.
  42. 42. Snyder, Ilana –compiladora (2004): Alfabetismos digitales. Comunicación,innovación y educación en la era electrónica. Málaga: Aljibe Stallman, Richard M. (2004) Software libre para una sociedad libre. Introducción de Lawrence Lessig.
  43. 43. Curso Nivelación 2011 - Universidad Nacional de Chilecito Lic. en Sistemas - Ing. En Sistemas – Tecnicatura Univ. Desarrollo Aplic. WEB.
  44. 44. Agustin Fonseca- Juegos de mente – Memoria, Cálculo, Memoria, Agilidad Mental.
  45. 45. Martín Sierra, Abel Martín Álvarez, Ángel Aguirre Pérez- Aula Matemática digital 2.
  46. 46. Ing. Gábor loerines, ing. Francisco Chaves-Micro computación Tomo 2- Nahel Ediciones.
  47. 47. Adrián Paenza- Matemática... ¿Estás Ahí?
  48. 48. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 2
  49. 49. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 3,14.
  50. 50. Moroni Norma-Apunte de R.P.A (2003) –U.N.S.</li></ul>41<br />

×