SlideShare una empresa de Scribd logo
1 de 41
Módulo 7ALGORITMOS Y ESTRUCTURA DE DATOS  PROFESOR:SIRACUSA EMILIANO                      MARTÍN Página Web: www.esiracusa.jimdo.com
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,;     begin	 	   y:= 8; 	 	   end;	 	begin.{Q}	 	Y:=y+1; 	R;	 	end; {Q)	 Begin Y:=3; Q;  end. Program p;		 var y: integer;  Procedure Q  	Procedure R    var y: integer,;     begin	 	   y:= 8; 	 	   end;	 	begin.{Q}	 R; Y:=y+1; 	end; {Q)	 Begin Y:=3; Q;  end.		 R está anidado en Q
Traza de P Program p;		 var y: 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.  P  Q   R P Q P Q P R Q P P y 3 y 3 4 y 4 y 8 y 4 y 4
Anidamiento de procedimientos: Es cuando un procedimiento está declarado dentro de otroprocedimiento. Program P; var y, t: integer: Procedure Q  (x: integer; var z: integer);			               Procedure R (v: 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}	 begin  Y:=1;    t:=2; Q(y,t); end.  R está anidado en	Q
Traza de P: P P P Program P; var y, t: integer: Procedure Q  (x: integer; var z: integer);			               Procedure R (v: 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}	 begin  Y:=1;    t:=2; Q(y,t); end. P P  P  Q   R y 1 2 y 2 y 2 y 1 y 2 t 2 7 t 2 t 796 t 6 t 6 Q Q Q x 15 x 5 x 5 z z z R x 7 10 y 8
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.
Identificadores no locales a un subprograma: Un identificador i es no loca! a un subprograma Ssi 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. 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.
Á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.
Program P; var y: 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. Ambiente de P: var: y Procedimiento: Q Locales a P Globales a Q Ambiente de Q: var: y	 Procedimiento: Q , R Local a Q Ambiente de R: var: y  Procedimento: Q          R LocalesR  Global a R No local a R
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} begin y:= 1; t:= 2; Q(y, t); end. Ambiente de P:  Var: y, t                         Locales a P Procedimientos: 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                Localesa R  Par: z ; Proc:  R;          No locales a R Var :t ; Proc Q;            Globalesa R
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 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.
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. 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.
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:= 7     R(z);      end;{Q} begin		 Y:= 1;	t:= 2; Q( y,t);		 end. Ejercicio: Establecer el alcance para cada identificador de este 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:= 7     R(z);      Q:=z;     end;{Q} Begin {P} Y:= 1;	t:= 2; Writeln(Q( y, t)); end. 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.
Estudio de ejercicios con caracteres Repasemos 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 llamadabufferdonde 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.
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:
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)⸗
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)⸗
Repeat  Read (C) Until C = ‘. ’ C A CN  C A C □ C S C A C  L C  i
Repeat  Read (C) Until C = ‘. ’ C A 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;  begin writeln ('ingrese una frase terminada en punto');  cantidad := 0;  repeat  read (c); If (c = 'a') or (c= 'A') then cantidad := cantidad + 1; untilC=‘.‘ end.
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.
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.
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);  readkey end.
Program palabra2; uses crt; var  carchar ,cantidad: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If 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); readkey end.
Program palabra3; uses crt; var  carchar ,cantidad: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If car in [‘0'… ‘9']  cantidad:=cantidad + 1;  read (car) end; {CuentaDigitos}  Procedure impresión (cantidad: integer); begin; writeln ( 'la cantidad de Digitosde la palabra ingresada es', cantidad);  end; {impresión}  begin {palabra3} Clrscr; inicio (car) CuentaDigitos(car, cantidad); impresión (cantidad); readkey end.
Program palabra4; uses crt; var  carchar ,CantidadDigitos, CantidadPalabras: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If 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 Digitosde 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); readkey end.
Program palabra5; uses crt; var  carchar ,CantidadVocales: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If 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); readkey end.
Program palabra6; uses crt; var carchar ;exito: boolean; Procedure inicio ( var car: Char); 	begin 	writeln ('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) begin exito: =false; if car = ‘l' 	then begin 	read(car); If car = 'a' 	then éxito: = true 	end; end;{EmpiezaConla} Procedure impresión (exito); 	begin 	Writeln ("la palabra ingresada 	    empieza con la es:', exito);  	end; Begin {paiabra6} clrscr;  Inicio (car); EmpiezaConla(car,exito);  Impresión (exito);  readkey end.
Program palabra7; Var car: char; exito: boolean;  Procedure inicio (var car :char);  begin writeln ("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  begin if 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);  begin writeln ('la palabra ingresada termina en azo 			es:', éxito); end; begin {palabra7} clrscr;  Inicio (car); TerminaEnAzo(car, exito); impresión (éxito);  readkey  end.
Program frase1; uses crt;	 var	 car: char ; cantidad: integer;	 begin	 clrscr;	 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<>'. '  do begin If car in ['a', 'e', 'i', 'o'u'] then  cantidad := cantidad +1;  read (car) end; write (cantidad) ; readkey end.
Program frase1_2; uses crt; var carchar ; CantidadVocales: integer; Procedure CuentaVocales ( car Char, var CantdVocales:integer); 	begin CantdVocales:= 0;  	while car o'.' do begin ifcar in [‘a' , ‘e' , ‘i' , ‘o' ,‘u']   	then CantdVoclaes:=CantVocales+ 1 ;  	read (car);   	end; Procedure inicio (var car: Char);  	begin 	writeln (‘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);  	begin 	writeln (' 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.
Program frase2; uses crt; var carchar; cantidad: integer; begin clrscr; read(car); cantidad :=0;  while car <> do begin  ifcar = '' then cantidad := cantidad +1; read(car) ifcar = then  cantidad:= cantidad + 1  end; writeln ('la frase tiene palabras', cantidad); readkey end.
Program frase2_1; uses crt; var canchar; cantidad: integer;  Procedure palabra (var car: Char); begin while (car <>'.') and (car<>'  ') do read(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.
Program frase2_2; uses crt;  var car:char;  cantidad: integer;  Procedure palabra (var car: Char); 	begin 	while (car<> '.') and (car<>' ') do 	read(car) 	end; Procedure EnFrase ( var car: Char; var cant: integer); 	begin 	cantidad: = 0;  	while car ‘ . ’<> do begin 		palabra( car);  cant= cant + 1;  ifcar <> ‘ . ’then  	read (car)  	end ; 	end; Procedure inicio (var car: car); 	Begin 	writeln (‘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); begin writeln (palabras en frase:', cantidad); end; Begin {frase2_2} clrscr; inicio (car); EnFrase (car ,cantidad);  Impresión (cantidad);  readkey  end.
Program frase3; var car: Char ; cantidad: integer; Function empiezaconla (var car: Char): boolean);    begin empiezaconla:= false;    If car =‘.’  then      begin      read(car);      If car = ‘a’ then empiezaconla:= true      end;    end; {empiezaconla}  Procedure avanza (var car: Char);     begin     while (car <> '.') and( car <> '  ') do     read(car);     end; Procedure inicio ( var car: Char); begin writeln ("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  ifempiezaconla (car); 	then cantidad cantidad + 1; 	avanza (car); ifcar <> '.'  read (car)  	end;  end;{En Frase}  Procedure impresión(cantidad: integer);     begin     writeln ('La cantidad de palabras ....es:', 		cantidad)     end; begin {frase3} Inicio (car); EnFrase (car, cantidad);  impresión (cantidad); end.
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); begin writeln ('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); begin cantidad :=0;  while car<>'.'  do      begin       If TerminacionLa(car) then cantidad := cantidad + 1;       If car-=' ' then read (car) ;     end;  End; {EnFrase} Procedure impresión (cantidad: integer); begin write( 'hay ', cantidad, ' de palabras...... 		que terminan con la '); Begin {frase4} Inicio (car); EnFrase (car, cantidad);  Impresión (cantidad);  Readkey  end.
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); begin cantla := 0; cantpal := 0; while car <> '.' do begin     If TerminacionLa ( car)  then  cantla := cantla +1 ; 	cantpal := cantpal + 1; 	If car <> then read (car) 	end; end;{En Frase} Procedure impresion (cantla, cantpal: integer); begin writeln ('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; begin clrscr inicio (car); EnFrase (car , cantidadla, cantidadpal); impresion(cantidadla, cantidadpal); end.
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. Ejemplifique Explique sucintamente como pensó resolver el ejercicio. Escriba uno o varios algoritmos que lo resuelvan. A partir de los algoritmos escriba un programa en Lenguaje Pascal. Haga una traza para algún dato de entrada y verifique el resultado.
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.
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.
Bibliografía ,[object Object]

Más contenido relacionado

La actualidad más candente

Informatica ii-bien-paquini
Informatica ii-bien-paquiniInformatica ii-bien-paquini
Informatica ii-bien-paquinivanebel1996
 
Análisis de complejidad big o
Análisis de complejidad  big o Análisis de complejidad  big o
Análisis de complejidad big o UVM
 
Criterios de acortamiento de la duración de un (2)
Criterios de acortamiento de la duración de un (2)Criterios de acortamiento de la duración de un (2)
Criterios de acortamiento de la duración de un (2)Jose Luis Vega Farfan
 
29566881 metodos-pert-cpm
29566881 metodos-pert-cpm29566881 metodos-pert-cpm
29566881 metodos-pert-cpmjolibus
 
Método ruta crítica CPM.
Método ruta crítica CPM.Método ruta crítica CPM.
Método ruta crítica CPM.Al Cougar
 
redes pert crm
redes pert crmredes pert crm
redes pert crmpatoko
 
Practica pid labview
Practica pid labviewPractica pid labview
Practica pid labviewPablo Lopez
 

La actualidad más candente (14)

Diagrama pert ruta critica
Diagrama pert   ruta criticaDiagrama pert   ruta critica
Diagrama pert ruta critica
 
Tema4
Tema4Tema4
Tema4
 
Informatica ii-bien-paquini
Informatica ii-bien-paquiniInformatica ii-bien-paquini
Informatica ii-bien-paquini
 
Practica 6 regla de los cuatro pasos
Practica 6 regla de los cuatro pasosPractica 6 regla de los cuatro pasos
Practica 6 regla de los cuatro pasos
 
Análisis de complejidad big o
Análisis de complejidad  big o Análisis de complejidad  big o
Análisis de complejidad big o
 
Criterios de acortamiento de la duración de un (2)
Criterios de acortamiento de la duración de un (2)Criterios de acortamiento de la duración de un (2)
Criterios de acortamiento de la duración de un (2)
 
Practicas c++
Practicas c++Practicas c++
Practicas c++
 
Ejercicio pert cpm_1
Ejercicio pert cpm_1Ejercicio pert cpm_1
Ejercicio pert cpm_1
 
29566881 metodos-pert-cpm
29566881 metodos-pert-cpm29566881 metodos-pert-cpm
29566881 metodos-pert-cpm
 
EstructurasDatos - Complejidad Ciclomática
EstructurasDatos - Complejidad CiclomáticaEstructurasDatos - Complejidad Ciclomática
EstructurasDatos - Complejidad Ciclomática
 
Método ruta crítica CPM.
Método ruta crítica CPM.Método ruta crítica CPM.
Método ruta crítica CPM.
 
redes pert crm
redes pert crmredes pert crm
redes pert crm
 
Io 4ta pert cpm
Io 4ta pert cpmIo 4ta pert cpm
Io 4ta pert cpm
 
Practica pid labview
Practica pid labviewPractica pid labview
Practica pid labview
 

Destacado

Generación de energía eléctrica utilizando hidrógeno
Generación de energía eléctrica utilizando hidrógenoGeneración de energía eléctrica utilizando hidrógeno
Generación de energía eléctrica utilizando hidrógenogugarte
 
Sistema de generación de energía eléctrica utilizando hidrógeno
Sistema de generación de energía eléctrica utilizando hidrógenoSistema de generación de energía eléctrica utilizando hidrógeno
Sistema de generación de energía eléctrica utilizando hidrógenogugarte
 
Recursos educativos digitais___um_serviço público
Recursos educativos digitais___um_serviço públicoRecursos educativos digitais___um_serviço público
Recursos educativos digitais___um_serviço públicoGraça Rosa
 
Dissertacao fatima-lima-ufersa
Dissertacao fatima-lima-ufersaDissertacao fatima-lima-ufersa
Dissertacao fatima-lima-ufersaTony César
 
32 ways to make your blog suck less
32 ways to make your blog suck less32 ways to make your blog suck less
32 ways to make your blog suck lessScott Hanselman
 
Estrategias competitivas básicas
Estrategias competitivas básicasEstrategias competitivas básicas
Estrategias competitivas básicasLarryJimenez
 
BUSINESS MODELS VOCABULARY
BUSINESS MODELS VOCABULARYBUSINESS MODELS VOCABULARY
BUSINESS MODELS VOCABULARYRodrigo Mejia
 
calidad de la caña de azucar libro p337 354
calidad de la caña de azucar libro p337 354calidad de la caña de azucar libro p337 354
calidad de la caña de azucar libro p337 354lorena reyes gudiño
 
Levels of producut ( Marketing )
Levels of producut ( Marketing )Levels of producut ( Marketing )
Levels of producut ( Marketing )sero210
 
Gestión de las comunicaciones del proyecto
Gestión de las comunicaciones del proyectoGestión de las comunicaciones del proyecto
Gestión de las comunicaciones del proyectoSCHNEIDER SERRATO
 

Destacado (20)

Antologuia de ergonomia
Antologuia de ergonomiaAntologuia de ergonomia
Antologuia de ergonomia
 
Pert cpm
Pert cpmPert cpm
Pert cpm
 
Generación de energía eléctrica utilizando hidrógeno
Generación de energía eléctrica utilizando hidrógenoGeneración de energía eléctrica utilizando hidrógeno
Generación de energía eléctrica utilizando hidrógeno
 
Sistema de generación de energía eléctrica utilizando hidrógeno
Sistema de generación de energía eléctrica utilizando hidrógenoSistema de generación de energía eléctrica utilizando hidrógeno
Sistema de generación de energía eléctrica utilizando hidrógeno
 
Módulo 5
Módulo 5Módulo 5
Módulo 5
 
Recursos educativos digitais___um_serviço público
Recursos educativos digitais___um_serviço públicoRecursos educativos digitais___um_serviço público
Recursos educativos digitais___um_serviço público
 
Dissertacao fatima-lima-ufersa
Dissertacao fatima-lima-ufersaDissertacao fatima-lima-ufersa
Dissertacao fatima-lima-ufersa
 
Project management semana 3 2013_ii
Project management semana 3 2013_iiProject management semana 3 2013_ii
Project management semana 3 2013_ii
 
Tank
TankTank
Tank
 
32 ways to make your blog suck less
32 ways to make your blog suck less32 ways to make your blog suck less
32 ways to make your blog suck less
 
Estrategias competitivas básicas
Estrategias competitivas básicasEstrategias competitivas básicas
Estrategias competitivas básicas
 
Investoren Pitch Vorbereiten
Investoren Pitch VorbereitenInvestoren Pitch Vorbereiten
Investoren Pitch Vorbereiten
 
BUSINESS MODELS VOCABULARY
BUSINESS MODELS VOCABULARYBUSINESS MODELS VOCABULARY
BUSINESS MODELS VOCABULARY
 
Informe haccp
Informe haccpInforme haccp
Informe haccp
 
Division Del Trabajo
Division Del TrabajoDivision Del Trabajo
Division Del Trabajo
 
calidad de la caña de azucar libro p337 354
calidad de la caña de azucar libro p337 354calidad de la caña de azucar libro p337 354
calidad de la caña de azucar libro p337 354
 
Levels of producut ( Marketing )
Levels of producut ( Marketing )Levels of producut ( Marketing )
Levels of producut ( Marketing )
 
Revista katiusca
Revista katiuscaRevista katiusca
Revista katiusca
 
Gestión de las comunicaciones del proyecto
Gestión de las comunicaciones del proyectoGestión de las comunicaciones del proyecto
Gestión de las comunicaciones del proyecto
 
Los incoterms
Los incotermsLos incoterms
Los incoterms
 

Similar a Módulo 7 (sin estilo)

Similar a Módulo 7 (sin estilo) (20)

Módulo 6 (sin estilo)
Módulo 6 (sin estilo)Módulo 6 (sin estilo)
Módulo 6 (sin estilo)
 
Traduccion Por Sintaxis
Traduccion Por SintaxisTraduccion Por Sintaxis
Traduccion Por Sintaxis
 
Ejercicios introduccion a la programación en C
Ejercicios  introduccion a la programación en CEjercicios  introduccion a la programación en C
Ejercicios introduccion a la programación en C
 
Ejercicios C
Ejercicios CEjercicios C
Ejercicios C
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punteros
 
Cuestionario video
Cuestionario videoCuestionario video
Cuestionario video
 
MéTodos Java
MéTodos JavaMéTodos Java
MéTodos Java
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmos
 
Programas 4 a 14
Programas 4 a 14Programas 4 a 14
Programas 4 a 14
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Principios de Programacion
Principios de ProgramacionPrincipios de Programacion
Principios de Programacion
 
Funciones Clase1
Funciones Clase1Funciones Clase1
Funciones Clase1
 
Prueba programacion
Prueba programacionPrueba programacion
Prueba programacion
 
Catalan
CatalanCatalan
Catalan
 
Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)
 
Logica tipos de datos operadores
Logica tipos de datos operadoresLogica tipos de datos operadores
Logica tipos de datos operadores
 
Turbo Pascal 7
Turbo Pascal 7Turbo Pascal 7
Turbo Pascal 7
 
Algoritmo En Programa
Algoritmo En ProgramaAlgoritmo En Programa
Algoritmo En Programa
 

Más de Emiliano Siracusa (10)

Capacitores
CapacitoresCapacitores
Capacitores
 
Módulo 4 (sin estilo)
Módulo 4 (sin estilo)Módulo 4 (sin estilo)
Módulo 4 (sin estilo)
 
Módulo 5 (sin estilo)
Módulo 5 (sin estilo)Módulo 5 (sin estilo)
Módulo 5 (sin estilo)
 
Módulo 4
Módulo 4Módulo 4
Módulo 4
 
Módulo 4
Módulo 4Módulo 4
Módulo 4
 
Elecciones
EleccionesElecciones
Elecciones
 
Módulo 3
Módulo 3Módulo 3
Módulo 3
 
Módulo 2
Módulo 2Módulo 2
Módulo 2
 
Módulo 1
Módulo 1Módulo 1
Módulo 1
 
Programa 4º
Programa 4ºPrograma 4º
Programa 4º
 

Módulo 7 (sin estilo)

  • 1. Módulo 7ALGORITMOS Y ESTRUCTURA DE DATOS PROFESOR:SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com
  • 2. 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,; begin y:= 8; end; begin.{Q} Y:=y+1; R; end; {Q) Begin Y:=3; Q; end. Program p; var y: integer; Procedure Q Procedure R var y: integer,; begin y:= 8; end; begin.{Q} R; Y:=y+1; end; {Q) Begin Y:=3; Q; end. R está anidado en Q
  • 3. Traza de P Program p; var y: 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. P Q R P Q P Q P R Q P P y 3 y 3 4 y 4 y 8 y 4 y 4
  • 4. Anidamiento de procedimientos: Es cuando un procedimiento está declarado dentro de otroprocedimiento. Program P; var y, t: integer: Procedure Q (x: integer; var z: integer); Procedure R (v: 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} begin Y:=1; t:=2; Q(y,t); end. R está anidado en Q
  • 5. Traza de P: P P P Program P; var y, t: integer: Procedure Q (x: integer; var z: integer); Procedure R (v: 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} begin Y:=1; t:=2; Q(y,t); end. P P P Q R y 1 2 y 2 y 2 y 1 y 2 t 2 7 t 2 t 796 t 6 t 6 Q Q Q x 15 x 5 x 5 z z z R x 7 10 y 8
  • 6. 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.
  • 7. Identificadores no locales a un subprograma: Un identificador i es no loca! a un subprograma Ssi 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. 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.
  • 8. Á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.
  • 9. Program P; var y: 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. Ambiente de P: var: y Procedimiento: Q Locales a P Globales a Q Ambiente de Q: var: y Procedimiento: Q , R Local a Q Ambiente de R: var: y Procedimento: Q R LocalesR Global a R No local a R
  • 10. 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} begin y:= 1; t:= 2; Q(y, t); end. Ambiente de P: Var: y, t Locales a P Procedimientos: 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 Localesa R Par: z ; Proc: R; No locales a R Var :t ; Proc Q; Globalesa R
  • 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. 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 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.
  • 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. 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. 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.
  • 13. 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:= 7 R(z); end;{Q} begin Y:= 1; t:= 2; Q( y,t); end. Ejercicio: Establecer el alcance para cada identificador de este programa.
  • 14. 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:= 7 R(z); Q:=z; end;{Q} Begin {P} Y:= 1; t:= 2; Writeln(Q( y, t)); end. 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.
  • 15. Estudio de ejercicios con caracteres Repasemos 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 llamadabufferdonde 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.
  • 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. 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:
  • 17. 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)⸗
  • 18. 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)⸗
  • 19. Repeat Read (C) Until C = ‘. ’ C A CN C A C □ C S C A C  L C i
  • 20. Repeat Read (C) Until C = ‘. ’ C A 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; begin writeln ('ingrese una frase terminada en punto'); cantidad := 0; repeat read (c); If (c = 'a') or (c= 'A') then cantidad := cantidad + 1; untilC=‘.‘ end.
  • 21. 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.
  • 22. 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.
  • 23. 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); readkey end.
  • 24. Program palabra2; uses crt; var carchar ,cantidad: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If 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); readkey end.
  • 25. Program palabra3; uses crt; var carchar ,cantidad: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If car in [‘0'… ‘9'] cantidad:=cantidad + 1; read (car) end; {CuentaDigitos} Procedure impresión (cantidad: integer); begin; writeln ( 'la cantidad de Digitosde la palabra ingresada es', cantidad); end; {impresión} begin {palabra3} Clrscr; inicio (car) CuentaDigitos(car, cantidad); impresión (cantidad); readkey end.
  • 26. Program palabra4; uses crt; var carchar ,CantidadDigitos, CantidadPalabras: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If 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 Digitosde 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); readkey end.
  • 27. Program palabra5; uses crt; var carchar ,CantidadVocales: integer; Procedure inicio (var car: Char); begin writeln ('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 <>'' do If 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); readkey end.
  • 28. Program palabra6; uses crt; var carchar ;exito: boolean; Procedure inicio ( var car: Char); begin writeln ('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) begin exito: =false; if car = ‘l' then begin read(car); If car = 'a' then éxito: = true end; end;{EmpiezaConla} Procedure impresión (exito); begin Writeln ("la palabra ingresada empieza con la es:', exito); end; Begin {paiabra6} clrscr; Inicio (car); EmpiezaConla(car,exito); Impresión (exito); readkey end.
  • 29. Program palabra7; Var car: char; exito: boolean; Procedure inicio (var car :char); begin writeln ("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 begin if 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); begin writeln ('la palabra ingresada termina en azo es:', éxito); end; begin {palabra7} clrscr; Inicio (car); TerminaEnAzo(car, exito); impresión (éxito); readkey end.
  • 30. Program frase1; uses crt; var car: char ; cantidad: integer; begin clrscr; 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<>'. ' do begin If car in ['a', 'e', 'i', 'o'u'] then cantidad := cantidad +1; read (car) end; write (cantidad) ; readkey end.
  • 31. Program frase1_2; uses crt; var carchar ; CantidadVocales: integer; Procedure CuentaVocales ( car Char, var CantdVocales:integer); begin CantdVocales:= 0; while car o'.' do begin ifcar in [‘a' , ‘e' , ‘i' , ‘o' ,‘u'] then CantdVoclaes:=CantVocales+ 1 ; read (car); end; Procedure inicio (var car: Char); begin writeln (‘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); begin writeln (' 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.
  • 32. Program frase2; uses crt; var carchar; cantidad: integer; begin clrscr; read(car); cantidad :=0; while car <> do begin ifcar = '' then cantidad := cantidad +1; read(car) ifcar = then cantidad:= cantidad + 1 end; writeln ('la frase tiene palabras', cantidad); readkey end.
  • 33. Program frase2_1; uses crt; var canchar; cantidad: integer; Procedure palabra (var car: Char); begin while (car <>'.') and (car<>' ') do read(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.
  • 34. Program frase2_2; uses crt; var car:char; cantidad: integer; Procedure palabra (var car: Char); begin while (car<> '.') and (car<>' ') do read(car) end; Procedure EnFrase ( var car: Char; var cant: integer); begin cantidad: = 0; while car ‘ . ’<> do begin palabra( car); cant= cant + 1; ifcar <> ‘ . ’then read (car) end ; end; Procedure inicio (var car: car); Begin writeln (‘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); begin writeln (palabras en frase:', cantidad); end; Begin {frase2_2} clrscr; inicio (car); EnFrase (car ,cantidad); Impresión (cantidad); readkey end.
  • 35. Program frase3; var car: Char ; cantidad: integer; Function empiezaconla (var car: Char): boolean); begin empiezaconla:= false; If car =‘.’ then begin read(car); If car = ‘a’ then empiezaconla:= true end; end; {empiezaconla} Procedure avanza (var car: Char); begin while (car <> '.') and( car <> ' ') do read(car); end; Procedure inicio ( var car: Char); begin writeln ("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 ifempiezaconla (car); then cantidad cantidad + 1; avanza (car); ifcar <> '.' read (car) end; end;{En Frase} Procedure impresión(cantidad: integer); begin writeln ('La cantidad de palabras ....es:', cantidad) end; begin {frase3} Inicio (car); EnFrase (car, cantidad); impresión (cantidad); end.
  • 36. 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); begin writeln ('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); begin cantidad :=0; while car<>'.' do begin If TerminacionLa(car) then cantidad := cantidad + 1; If car-=' ' then read (car) ; end; End; {EnFrase} Procedure impresión (cantidad: integer); begin write( 'hay ', cantidad, ' de palabras...... que terminan con la '); Begin {frase4} Inicio (car); EnFrase (car, cantidad); Impresión (cantidad); Readkey end.
  • 37. 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); begin cantla := 0; cantpal := 0; while car <> '.' do begin If TerminacionLa ( car) then cantla := cantla +1 ; cantpal := cantpal + 1; If car <> then read (car) end; end;{En Frase} Procedure impresion (cantla, cantpal: integer); begin writeln ('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; begin clrscr inicio (car); EnFrase (car , cantidadla, cantidadpal); impresion(cantidadla, cantidadpal); end.
  • 38. 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. Ejemplifique Explique sucintamente como pensó resolver el ejercicio. Escriba uno o varios algoritmos que lo resuelvan. A partir de los algoritmos escriba un programa en Lenguaje Pascal. Haga una traza para algún dato de entrada y verifique el resultado.
  • 39. 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.
  • 40. 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.
  • 41.
  • 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. Curso Nivelación 2011 - Universidad Nacional de Chilecito Lic. en Sistemas - Ing. En Sistemas – Tecnicatura Univ. Desarrollo Aplic. WEB.
  • 44. Agustin Fonseca- Juegos de mente – Memoria, Cálculo, Memoria, Agilidad Mental.
  • 45. Martín Sierra, Abel Martín Álvarez, Ángel Aguirre Pérez- Aula Matemática digital 2.
  • 46. Ing. Gábor loerines, ing. Francisco Chaves-Micro computación Tomo 2- Nahel Ediciones.
  • 47. Adrián Paenza- Matemática... ¿Estás Ahí?
  • 48. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 2
  • 49. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 3,14.
  • 50. Moroni Norma-Apunte de R.P.A (2003) –U.N.S.41