Módulo 7 (sin estilo)

41
Módulo 7 ALGORITMOS Y ESTRUCTURA DE DATOS PROFESOR: SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com

Transcript of Módulo 7 (sin estilo)

Page 1: Módulo 7 (sin estilo)

Módulo 7

ALGORITMOS Y ESTRUCTURA DE DATOS

PROFESOR: SIRACUSA EMILIANO

MARTÍN

Página Web: www.esiracusa.jimdo.com

Page 2: Módulo 7 (sin estilo)

Anidamiento de procedimientos:Es cuando un procedimiento función está declarado dentro de otro procedimiento o función.

Program p;var y: integer;

Procedure Q Procedure R

var y: integer,; beginy:= 8; end;

begin.{Q}Y:=y+1;R;end; {Q)

BeginY:=3;Q; end.

R está anidado en Q

Program p;var y: integer;

Procedure Q Procedure R

var y: integer,; beginy:= 8; end;

begin.{Q}R;Y:=y+1;end; {Q)

BeginY:=3;Q; end.

Page 3: Módulo 7 (sin estilo)

Traza de PProgram p;var y: integer;

Procedure Q Procedure R

var y: integer,; beginy:= 8; end;

begin.{Q}Y:=y+1;R;end; {Q)

BeginY:=3;Q; end.

P

Q

R

y

P

3

Q

y

P

3 4

Q

y

P

4

y

R

8

Q

y

P

4 y

P

4

Page 4: Módulo 7 (sin estilo)

Anidamiento de procedimientos:Es cuando un procedimiento está declarado dentro de otro procedimiento.

Program P;var y, t: integer:

Procedure Q (x: integer; var z : integer);Procedure R (v: integer):

var y: integer;Beginy:= 8; x:= 10; z:= 9; t:= 6;end;

begin {Q}y:= y +1; x:= 5; z:=7;R(z)end; {Q}

begin Y:=1; t:=2;Q(y,t);end.

R está anidado en Q

Page 5: Módulo 7 (sin estilo)

Traza de P:Program P;var y, t: integer:

Procedure Q (x: integer; var z : integer);

Procedure R (v: integer):

var y: integer;

Beginy:= 8; x:= 10;z:= 9; t:= 6;end;

begin {Q}y:= y +1; x:= 5; z:=7;

R(z)end; {Q}

begin Y:=1; t:=2;Q(y,t);end.

P

Q

R

y

P

1 y

P

1 2

t 2 t 2 7

x

Q

1 5

z

y

P

2

t 796

x

Q

5

x

R

7 10

z

y 8

y

P

2 y

P

2

t 6 t 6

x

Q

5

z

Page 6: Módulo 7 (sin estilo)

Identificadores locales a un subprograma, programa:

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.

Identificadores globales a un procedimiento, función:

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.

Page 7: Módulo 7 (sin estilo)

Identificadores no locales a un subprograma:

Un identificador i es no loca! a un subprograma S si cumple con todos los siguientes requisitos:

• i está declarado en algún subprograma que anida al subprograma S .

• i no esta declarado en el programa principal.

• i no se encuentra redeclarado en el subprograma S.

• i no 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.

Page 8: Módulo 7 (sin estilo)

Ámbito, entorno o ambiente de un procedimiento o función

Es el conjunto de todos los identificadores que son visibles y pueden referenciarse dentro del procedimiento.

Está formado por los identificadores totales, no locales y globales de un procedimiento o función.

Page 9: Módulo 7 (sin estilo)

Program P;var y: integer;

Procedure Q;

Procedure R; var y: integer;

beginy:= 8; end;

begin {Q}y := y + 1 ; R;end; { Q}

begin y:-=3;Q;end.

Ambiente de P:var: yProcedimiento: Q

Ambiente de Q:var: yProcedimiento: Q , R

Ambiente de R:var: y Procedimento: Q

R

Locales a P

Local a Q

Locales R

Globales a Q

Global a R

No local a R

Page 10: Módulo 7 (sin estilo)

Program P;var y, t: integer;

Procedure Q (x: integer; var z : integer);

Procedure R (x: integer); var y: integer;

begin ;y:= 8; x:=10;z:= 9; t= 6 end;

begin {Q}y:=y+1; X:= 5; z:= - 7;R(z);end; {Q}

beginy:= 1; t:= 2; Q(y, t);end.

Ambiente de P: Var: y, t Locales a PProcedimientos: Q

Ambiente de Q: Par: x, z ; Proc: R Locales a Q

Var: y, t ; Proc: Q Globales a Q

Ambiente de R:Par x; Var: y Locales a R

Par: z ; Proc: R; No locales a R

Var :t ; Proc Q; Globales a R

Page 11: Módulo 7 (sin estilo)

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.

Reglas de alcance estático:

-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.

-Si un identificador i declarado en P se redeclara en algún procedimiento interno Q anidado en P, entonces el procedimiento Q y todos los procedimientos anidados en Qse excluyen del alcance de i declarado en P.

Page 12: Módulo 7 (sin estilo)

Program p;Var v:integer;

Procedure Q; Procedure R;

var y: integer;begin

y:= 8;end;

begin {Q} y:=y+1;R;end; { Q}

begin y:=3;Q;end.

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.

Alcance de Q, es todo el programa a partir de la declaración de Q.

Alcance de R es todo el procedí miento Q a partir de te declaración de R.Alcance de y. loca) a R, es iodo e¡ procedimiento R desde la declaración de y en R.

Page 13: Módulo 7 (sin estilo)

Program P; var y, t: integer;

Procedure R(x: integer); var y: integer; begin {R}y:= 8; x:= 10; t:= 6; end; {R}

Procedure Q (x: integer; var z: integer); begin {Q}y:=y+1; x:= 5; z:= 7R(z); end;{Q}

beginY:= 1; t:= 2;Q( y,t);end.

Ejercicio:Establecer el alcance para cada identificador de este programa.

Page 14: Módulo 7 (sin estilo)

Indicar alcance de los identificadores.

Indicar los entornos de referencia del programa P de cada uno de los subprogramas.

Realizar un diagrama de la estructura estática del programa.

Realizar una traza de ejecución del programa.

Program P; var y, t: integer;

Function Q(x: integer): integer; var z: integer;

Procedure R (x: integer; var z: integer);begin {R} y:= 8; x:= 10; z:=9; t:= 6; end;{R}

begin {Q}y:=y+1; x:= 5; z:= 7R(z); Q:=z;end;{Q}

Begin {P}Y:= 1; t:= 2;Writeln(Q( y, t));end.

Page 15: Módulo 7 (sin estilo)

Estudio de ejercicios con caracteresRepasemos los procedimientos read y write, el concepto de buffer y su comportamiento.

ingreso de datos por teclado:

Los datos ingresados se almacenan en una zona de memoria auxiliar llamadabuffer donde quedan retenidos.

El buffer es potencialmente infinito y almacena cada carácter ingresado por teclado.

El buffer tiene un puntero (↑), asociado al carácter del buffer al que hace referencia en un determinado momento.

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.

Page 16: Módulo 7 (sin estilo)

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.

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.

Ejemplo: Program P; Var N,M: integer;C, D: char; Y: real;

Read( N, Y, C, M, D)

Al detenerse la ejecución del programa frente a un procedimiento read, ingresamos por teclado:

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

Page 17: Módulo 7 (sin estilo)

Read( N, Y, C, M, D)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.

Variable Buffer

N(integer) 15

Y (real) 37.25

C(char) □

M(integer) 275

D (char)⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

Page 18: Módulo 7 (sin estilo)

Read( N, Y, C, M, D) = read (N, C); read (M); read (D, Y); Readln

Variable Buffer

N(integer) 15

Y (real) 37.25

C(char) □

M(integer) 275

D (char)⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

1 5 □ 3 7 . 1 5 □ - 2 7 5 B ⸗

Page 19: Módulo 7 (sin estilo)

Repeat Read (C)Until C = ‘. ’C A

C N

C A

C □

C S

C A

C L

C i

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

Page 20: Módulo 7 (sin estilo)

Repeat Read (C)Until C = ‘. ’C A

A N A □ S A L I O □ A □ P A S E A R . ⸗

A N A □ S A L I O □ A □ P A S E A R . ⸗

Ejercicio: Escribir un programa en Pascal que permita contar la cantidad de letras a o A que se encuentran en una frase. Program Cantidad_ deaes; var c: Char;cantidad: integer; beginwriteln ('ingrese una frase terminada en punto'); cantidad := 0; repeat read (c);If (c = 'a') or (c= 'A') then cantidad := cantidad + 1;until C=‘.‘end.

Page 21: Módulo 7 (sin estilo)

Program palabra1;

uses crt;

var

car: char ; cantidad: integer;

begin

clrscr;

writeln ('contar la cantidad de caracteres de una

palabra') ;

writeln ('ingrese una palabra seguida de un espacio');

read (car);

cantidad: = 0;

while car O' ' do begin

cantidad: =cantidad + 1;

read (car);

end;

write (cantidad) ;

readkey

end.

Page 22: Módulo 7 (sin estilo)

Program palabra1;

uses crt;

var

car: char ; cantidad: integer;

begin

clrscr;

writeln ('contar la cantidad de caracteres de una

palabra') ;

writeln ('ingrese una palabra seguida de un espacio');

read (car);

cantidad: = 0; Inicio

while car O' ' do begin

cantidad: =cantidad + 1;

read (car);

end; Proceso

write (cantidad) ;

Readkey Impresión

end.

Page 23: Módulo 7 (sin estilo)

Program palabra1;

Var car: char ; cantidad: integer;

Procedure Inicio (var car: Char);

begin

writeln ("contar la cantidad de caracteres de una palabra');

writeln ("ingrese una palabra seguida de un espacio');

read (car);

end;{inicio}

Procedure Cuentacaracter (car: Char, var cantidad: integer);

begin {Cuentacaracteres}

cantidad := 0;

while car <>' ' do begin cantidad:=cantidad + 1 ;

read (car);

end; {Cuentacaracteres}

Procedure Impresión (cantidad; integer);

begin

writeln ('la cantidad de caracteres de la palabra Ingresada es', cantidad)

end; {impresión}

begin {palabra1}clrscr; Inicio (car);Cuentacaracter (car, cantidad);Impresión (cantidad);readkeyend.

Page 24: Módulo 7 (sin estilo)

Program palabra2;uses crt;var carchar ,cantidad: integer;

Procedure inicio (var car: Char);beginwriteln ('contar la cantidad de letras de una palabra');writeln ('ingrese una palabra seguida de un espacio'); Read (car) ;end; {inicio}

Procedure CuentaLetras (car: Char, var cantidad: Integer);begin cantidad:=0; while car <>'' doIf car in ['a'… 'z'] CuentaLetras (car, cantidad};cantidad:=cantidad + 1; read (car)end; {CuentaLetras}

Procedure impresión (cantidad: integer);begin;writeln ( 'la cantidad de letras de la palabra ingresada es', cantidad); end; {impresión}

begin {palabra2}Clrscr;inicio (car)CuentaLetras (car, cantidad);impresión (cantidad);readkeyend.

Page 25: Módulo 7 (sin estilo)

Program palabra3;uses crt;var carchar ,cantidad: integer;

Procedure inicio (var car: Char);beginwriteln ('contar la cantidad de letras de una palabra');writeln ('ingrese una palabra seguida de un espacio'); Read (car) ;end; {inicio}

Procedure CuentaDigitos (car: Char, var cantidad: Integer);begin cantidad:=0; while car <>'' doIf car in *‘0'… ‘9'+ cantidad:=cantidad + 1; read (car)end; {CuentaDigitos}

Procedure impresión (cantidad: integer);begin;writeln ( 'la cantidad de Digitos de la palabra ingresada es', cantidad); end; {impresión}

begin {palabra3}Clrscr;inicio (car)CuentaDigitos (car, cantidad);impresión (cantidad);readkeyend.

Page 26: Módulo 7 (sin estilo)

Program palabra4;uses crt;var carchar ,CantidadDigitos, CantidadPalabras: integer;

Procedure inicio (var car: Char);beginwriteln ('contar la cantidad dígitos y de letras de una palabra');writeln ('ingrese una palabra seguida de un espacio'); Read (car) ;end; {inicio}

Procedure CuentaDigitosyLetras (car: Char, var CantidadDigitos, CantidadPalabras: integer);

begin cantidad:=0; while car <>'' doIf car in *‘0'… ‘9'+ CantidadDigitos := CantidadDigitos + 1;

else If car in ['a'… ‘z‘, 'A'…'Z'] then CantidadPalabras:= CantidadPalabras+1;

read (car)end; {CuentaDigitos}

Procedure impresión (CantidadDigitos, CantidadPalabras: integer);begin;writeln ( 'la cantidad de Digitos de la palabra ingresada es', CantidadDigito, ( 'y la cantidad de Letras de la palabra ingresada es', CantidadPalabras); end; {impresión}

begin {palabra4}Clrscr;inicio (car);CuentaDigitosyLetras(CantidadDigitos,

CantidadPalabras);impresión (cantidad);readkeyend.

Page 27: Módulo 7 (sin estilo)

Program palabra5;uses crt;var carchar ,CantidadVocales: integer;

Procedure inicio (var car: Char);beginwriteln ('contar la cantidad de vocales de una palabra');writeln ('ingrese una palabra seguida de un espacio'); Read (car) ;end; {inicio}

Procedure CuentaVocales (car: Char, var CantidadVocales : Integer);begin cantidad:=0; while car <>'' doIf car in *‘a' , ‘e' , ‘i' , ‘o' ,‘u'] CuentaVocales := CuentaVocales + 1; read (car)end; {CuentaVocales}

Procedure impresión (CantidadVocales : integer);begin;writeln ( 'la cantidad de Vocales de la palabra ingresada es', CantidadVocales); end; {impresión}

begin {palabra5}Clrscr;inicio (car)CuentaVocales(car, CantidadVocales);impresión (CantidadVocales);readkeyend.

Page 28: Módulo 7 (sin estilo)

Program palabra6;uses crt;varcarchar ;exito: boolean;

Procedure inicio ( var car: Char);beginwriteln ('estudiar si una palabra comienza

en la');writeln ('ingrese una palabra seguida de un

espacio);read (car);end;

Procedure EmpiezaConLa (car: Char, var exito: boolean)beginexito: =false;if car = ‘l'

then beginread(car);If car = 'a'then éxito: = trueend;

end;{EmpiezaConla}

Procedure impresión (exito);beginWriteln ("la palabra ingresada

empieza con la es:', exito); end;

Begin {paiabra6}clrscr; Inicio (car);EmpiezaConla (car,exito); Impresión (exito); readkeyend.

Page 29: Módulo 7 (sin estilo)

Program palabra7;

Var car: char; exito: boolean; Procedure inicio (var car :char); beginwriteln ("estudiar si una palabra termina en azo'); writeln ("ingrese una palabra seguida de un espacio'); read (car); end; {inicio}

Procedure TerminaEnAzo ( car: Char var exito: boolean);begin exito:=false;while car <>' ' do beginif car ='a' then

begin read(car); if car = "z" then

begin read(car);if car = 'o' then begin read(car); exito:= car = ' ‘; end;

end;end;

else read (car);end{whlie}

end;{TerminaEnAzo}

Procedure impresión (éxito); beginwriteln ('la palabra ingresada termina en azo

es:', éxito);end;

begin {palabra7}clrscr; Inicio (car);TerminaEnAzo (car, exito);impresión (éxito); readkey end.

Page 30: Módulo 7 (sin estilo)

Program frase1;uses crt;varcar: char ; cantidad: integer;beginclrscr;writeln ('contar la cantidad de vocales de una frase ');writeln ('ingrese una frase: una frase es un conjunto de palabras separadas

por un espacio y termina en punto');read (car); cantidad :=0;while car<>'. ' dobeginIf car in ['a', 'e', 'i', 'o\ 'u'] then cantidad := cantidad +1; read (car)end;write (cantidad) ;readkeyend.

Page 31: Módulo 7 (sin estilo)

Program frase1_2;uses crt;var carchar ; CantidadVocales: integer;Procedure CuentaVocales ( car Char, var CantdVocales:integer);

beginCantdVocales:= 0;while car o'.' do beginif car in *‘a' , ‘e' , ‘i' , ‘o' ,‘u'] then CantdVoclaes:=CantVocales + 1 ;read (car); end;

Procedure inicio (var car: Char); beginwriteln (‘Contar la cantidad de vocales de una frase'); writeln ('ingrese una frase seguida de un punto'); read (car) end;{inicio}

Procedure impresión (CantVocales: integer); beginwriteln (' La cantidad de vocales de la frase ingresada es:' CantVocales)

end; {impresión}

begin {frase1_2} clrscr; inicio (car);CuentaVocales (car,CantidadVocales); impresión (CantidadVocales); readkey end.

Page 32: Módulo 7 (sin estilo)

Program frase2;uses crt; varcarchar; cantidad: integer;beginclrscr;read(car);cantidad :=0; while car <> do

begin if car = '' thencantidad := cantidad +1;read(car)

if car = then cantidad:= cantidad + 1 end;

writeln ('la frase tiene palabras', cantidad);readkeyend.

Page 33: Módulo 7 (sin estilo)

Program frase2_1;uses crt;var canchar; cantidad: integer; Procedure palabra (var car: Char);beginwhile (car <>'.') and (car<>' ') doread(car) end; begin {frase2_1} clrscr;writeln (‘Contar la cantidad de palabras de una frase '); writeln ('ingrese una frase: una frase es un conjunto de palabras separadas por un espacio y

termina en punto'); cantidad := 0; read(car); while (car<>'.') do begin palabra(car); cantidad := cantidad + 1; If (car<>'.') then read(car) end;write( cantidad);readkey end.

Page 34: Módulo 7 (sin estilo)

Program frase2_2;uses crt; varcar:char ; cantidad: integer; Procedure palabra (var car: Char);

beginwhile (car<> '.') and (car<>' ') doread(car)end;

Procedure EnFrase ( var car: Char; var cant: integer);begincantidad: = 0; while car ‘ . ’<> do begin

palabra( car); cant= cant + 1; if car <> ‘ . ’ then read (car) end ;

end;Procedure inicio (var car: car);

Beginwriteln (‘Contar la cantidad de palabras

de una frase"); writeln ('ingrese una frase que finalice en un punto');read (car);

end;

Procedure impresión (cantidad:integer);beginwriteln (palabras en frase:', cantidad);end;

Begin {frase2_2}clrscr;inicio (car);EnFrase (car ,cantidad); Impresión (cantidad); readkey end.

Page 35: Módulo 7 (sin estilo)

Program frase3;var car: Char ; cantidad: integer;Function empiezaconla (var car: Char): boolean);

beginempiezaconla := false;If car =‘.’ then

begin read(car);If car = ‘a’ then empiezaconla := trueend;

end; {empiezaconla} Procedure avanza (var car: Char);

beginwhile (car <> '.') and( car <> ' ') doread(car); end;

Procedure inicio ( var car: Char);beginwriteln ("contar la cantidad de palabras de una frase que comienzan con la '); writeln ("ingrese una frase como un conjunto de palabras separadas por un espacio y terminada en punto');read (car) ;end; {inicio}

Procedure EnFrase (car char; var cantidad ; integer); begin cantidad :=0; while caro '. ' do

begin if empiezaconla (car);then cantidad cantidad + 1;avanza (car);if car <> '.' read (car) end;

end;{En Frase}

Procedure impresión(cantidad: integer);beginwriteln ('La cantidad de palabras ....es:',

cantidad)end;

begin {frase3}Inicio (car);EnFrase (car, cantidad); impresión (cantidad);end.

Page 36: Módulo 7 (sin estilo)

Program frase4;Var car: Char ; cantidad: integer;

TerminacionLa: boolean;Function TerminacionLa (var car: Char): boolean;

begin TerminacionLa:= false; while (car <>'.') and (car <> " ) do Begin

If car =‘l’ then begin read(car);If car = 'a' then begin read (car);TerminacionLa := (car ='.') or (car = " )

end;end;

else If car <> then read(car); end; {while}

end; {función}

Procedure inicio (var car: Char);beginwriteln ('contar la cantidad.....una frase que terminan con la ');

writeln ('ingrese una frase como un conjunto de palabras .. por un espacio y termina en punto');read (car);end;{inicio}

Procedure EnFrase (car :boolean; var cantidad: integer);begincantidad :=0; while car<>'.' do

beginIf TerminacionLa(car) then cantidad :=

cantidad + 1; If car-=' ' then read (car) ;

end; End; {EnFrase}

Procedure impresión (cantidad: integer);beginwrite( 'hay ', cantidad, ' de palabras......

que terminan con la ');

Begin {frase4}Inicio (car);EnFrase (car, cantidad); Impresión (cantidad); Readkey end.

Page 37: Módulo 7 (sin estilo)

Program frase5;

var car: Char ; cantidadla, cantidadpal: integer;

Procedure inicio (var car: Char);

begin

writeln ('contar ... palabras que terminan con la de una frase');

writeln ('ingrese una frase que finalice en un punto');

read (car);

end;

Function TerminacionLa (var car: Char): boolean;

begin

TerminacionLa:= false;

while ( car<> '.') and (car<> ' ')do

begin

If car = ‘l’ then begin read(car);

If car = 'a‘ then begin

read(car);

TerminacionLa := ( car = ‘l’) or (car = ' ')

end; end;

else if car <> '.' then read(car);

end ;{while}

end;{TerminacionLa}

Procedure EnFrase (car: Char; var cantla, cantpal: integer);

begincantla := 0; cantpal := 0;while car <> '.' dobegin

If TerminacionLa ( car) then cantla := cantla +1 ;cantpal := cantpal + 1;If car <> then read (car)end;

end;{En Frase}Procedure impresion (cantla, cantpal: integer);beginwriteln ('la cantidad de palabras de la frase que terminan con la es:', cantla);writeln ('la cantidad total de palabras de la frase es:', cantpal)end;

beginclrscrinicio (car);EnFrase (car , cantidadla, cantidadpal);impresion (cantidadla, cantidadpal);end.

Page 38: Módulo 7 (sin estilo)

Ejercicio 1:

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.

1. Ejemplifique2. Explique sucintamente como pensó resolver el ejercicio.3. Escriba uno o varios algoritmos que lo resuelvan.4. A partir de los algoritmos escriba un programa en Lenguaje

Pascal.5. Haga una traza para algún dato de entrada y verifique el

resultado.

Page 39: Módulo 7 (sin estilo)

Ejercicio 2

Escribir un algoritmo y un programa en Pascal que permita resolver el siguiente problema.

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

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.

Page 40: Módulo 7 (sin estilo)

Ejercicio 3

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, 25,26,27,28,29........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)

Escribir una función en Pascal que permita calcular el n-ésimo elemento de la sucesión. Defina correctamente los parámetros. Escribir un programa en Pascal que permita calcular la suma de los n primeros elementos de la sucesión dada. Escribir un programa en Pascal para calcular la suma de los elementos de la sucesión hasta una aproximación dada.

Page 41: Módulo 7 (sin estilo)

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.

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.

Curso Nivelación 2011 - Universidad Nacional de Chilecito Lic. en Sistemas - Ing. En Sistemas – Tecnicatura Univ. Desarrollo Aplic. WEB.

Agustin Fonseca- Juegos de mente – Memoria, Cálculo, Memoria, Agilidad Mental.Martín Sierra, Abel Martín Álvarez, Ángel Aguirre Pérez- Aula Matemática digital 2. Ing. Gábor loerines, ing. Francisco Chaves-Micro computación Tomo 2- Nahel

Ediciones. Adrián Paenza- Matemática... ¿Estás Ahí? Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 2 Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 3,14.Moroni Norma-Apunte de R.P.A (2003) –U.N.S.

Bibliografía

41