SlideShare uma empresa Scribd logo
1 de 43
Módulo 5ALGORITMOS Y ESTRUCTURA DE DATOS  PROFESOR:SIRACUSA EMILIANO                      MARTÍN Página Web: www.esiracusa.jimdo.com
Tipos de datos en Pascal
Tipos de datos definidas por el programador El programador puede redefinir o renombrar tipos definidos por el lenguaje Pascal o crear nuevos tipos para renombrar: TYPE  entero = integer; caracter = char; logico = boolean; VAR  numero: entero; Una_letra : caracter; valido: logico;
Tipos de datos enumerados definidos por el programador El programador puede definir tipos de datos enumerados, indicando expresamente los valores que lo forman. Esos valores deben ser identificadores en Pascal. <identificador> = (id1, id2...... idn) cada id-i es un identificador que representa un valor perteneciente al tipo de dato descripto. TYPE tfiguras = (triangulo, cuadrado, pentágono);  tcolores= ("azul, verde, amarillo, rojo, negro);
Tipos de datos subrangos definidos por el programador De lodos los tipos de datos ordinales, es decir, aquellos que dado un valor se puede encontrar el siguiente, se pueden definir tipos llamados subrangos, indicando un valor inicial y un valor final del tipo ordinal. El tipo subrango contiene todos los valores comprendidos entre el inicial y el final incluyendo éstos. <identificador> =<valor inicial>. .<valor final> TYPE tmes = 1 ...12;  tletras = 'a'..'z‘;
Tipos de datos subrangos definidos por el programador  TYPE Tfiguras = (triangulo, cuadrado, rombo, rectángulo, pentágono); Tcuadrilateros = cuadrado .. rectángulo; Tilias = (lunes, martes, miércoles, jueves, viernes, sábado, domingo); Tdiashabiles = lunes .. viernes;
Tipos ordinales en Pascal Los tipos ordinales son aquellos cuyos valores están ordenados ( de acuerdo a ciertos criterios). Cada valor tiene un sucesor ( excepto el último). Y cada valor tiene un predecesor ( excepto el primero). Son tipos ordinales: INTEGER BOOLEAN  CHAR  enumerado  subrango Observación: El tipo de dato real queda fuera de esta consideraciones.
Tipos ordinales en Pascal Los tipos ordinales tienen funciones que les son características: ORD(x) devuelve el valor correspondiente a la posición que ocupa x de acuerdo al orden de la declaración del tipo de dato. Si Tdias = (lunes, martes, miércoles, jueves, viernes, sábado, domingo); ord(lunes) = 0; ord(jueves) = 3 ord(martes)= 1; 		ord(domingo)= 6
Escritura en Pascal Pascal provee primitivas para comunicar al usuario con el programa, en tiempo de ejecución. write: Muestra valores en pantalla. writeln: Muestra valores en pantalla y baja de línea. Ejemplos: write ('el '); write ('resultado '); write ('es:');			 write (35) El resultado es: 35
Escritura en Pascal writeln('el ');	 writeln('resultado');  writeln('es: '); writeln(35) Program Area-triangulo var Base,altura:rea!;  		{datos de entada}  area: real;	 		{dato de salida}  begin writeln ('ingrese la base y la altura de un triángulo'); base:= 4; altura:= 5; area := base* altura; writeln ('el area del triangulo en‘, area); El  Resultado es: 35
Lectura en Pascal READ: asigna a las variables los valores que son ingresados por teclado. READLN: asigna a las variables los valores que son ingresados por teclado y espera un fin de línea. Ejemplo: read(a);  read(b); read(c);	 26 8 34
readln (a);	 readln (b);	 readln (c);	 Program Area-triangulo; var base, altura: real;		{datos de entrada} area: real;			{datos de salida} begin writeln ('ingrese la base y la altura de un triángulo');  read (base, altura);  area:= base* altura; writeln ('el area del triangulo es=', area)  end. 26 8  34
Importante Pascal no permite utilizar las sentencias write y read. como así tampoco writeln y readln, con tipos enumerados y subrangos de los enumerados definidos por oí programador.
Sentencia de asignación Pascal permite explícitamente asignar un valor a una  variable. La forma general de una asignación es la siguiente: identificador de variable : =expresión Es equivalente a la del lenguaje de diseño  dato  expresión car2 := 'j'; dias := 31; cari:= succ(car2); valido := días >= 25; valor := 1 - ( 3.4-5 +11+sin (2));
var dias: integer;  car1, car2: char;  valido: boolean;  temperatura, valor: real; begin car2 := 'j'; dias:= 31; car1:= succ(car2); valido := días >= 25; valor := 1 - ( 3.4 - 2.67* 0.21) + sin (2)
Sentencia compuesta begin     S1;     S2; . . . Sn; end. Se usa cuando una secuencia de sentencias constituye una unidad. El cuerpo del programa es una sentencia compuesta.
El cuerpo del programa es una sentencia compuesta  Program Ejemplo; Const..... Type..... Var...... begin 	S1; 	S2; 	. 	. 	. 	Sn; End. Estructuras de control Secuencia: Todo programa se ejecuta desde la primera sentencia hacia la última. En forma similar a los algoritmos.
Ejemplo: escribir un programa en Pascal que permita calcular el área de un círculo. Borra la Pantalla Espera comando Enter para finalizar la ejecución. Primer número indica la cantidad de espacios blancos a izquierda Segundo numero indica la cantidad de decimales con la que se mostrara el número real
Sentencias condicionales Permiten elegir una entre varias alternativas. Sentencia if-then equivale a si- entonces de algoritmos if expresión booleana then                  sentencia if expresión booleana then                 sentencia compuesta si condición entonces               acción si condición    entonces                 acciones
Sentencia if-then-else si condición   entonces                acción 1 si no                 acción 2 Ejemplo si a> 0 entonces  a a - 1 si no  aa * a ifexpresion booleana then 	sentencia 1 else 	 sentencia 2 if a> 0 then 	a : = a -1; else 	a := sqr(a) ;
Sentencia if - then - else si condición				 if expresión booleana        entoncesthenbegin Acciones				sentencia 1; 					                  sentencia 2;  si no	               Accioneselse 				       begin 					       sentencia m; 					       sentencia m+1;
Condicionales anidados
Condicionales anidados  El significado en lenguaje de Diseño de Algoritmos es distinto que en lenguaje Pascal
SentenciaCASE Los cijson valores constantes del mismo tipo que expresión ordinal. Si son valores consecutivos del tipo, se pueden indicar como sub- intervalos. ( como se define los tipo subrango,cpr) Si algún valor de constante se repite en más de una línea se considera válido el que se encuentra en la línea superior. Las sentencias pueden ser también una sentencia CASE CASEexpi. ordinalof c11 ,c12,..,c1j : sentencia1; c21,c22,..., c2i: sentencia2; cn1, cn2,...cnm: sentencia n;  END
SentenciaCASE En Turbo Pascal se permite indicar la alternativa ELSE, que significa que si ninguno de los valores de las constantes coincide con el de la expresión ordinal se ejecuta la sentencia n+1 CASEexpi. ordinalof c11 ,c12,..,c1j : sentencia1; c21,c22,..., c2i: sentencia2; cn1, cn2,...cnm: sentencia n; ELSE sentencia n+1 END
Sentencias de control iterativas en Pascal Sentenciafor-to for variable:=expr-ord1to expr-ord2 do  	sentencia repetir n veces acción 1 El tipo de dato de la variable y de las expresiones debe ser el mismo, ordinal no real. 2) Si valor de expr-ord1 <= valor de expr-ord2, la sentencia se ejecuta (valor de expr-ord2 - valor de expr-ord1 + 1) veces. 3) Si valor de expr-ord1 > valor de expr-ord 2, la sentencia no se ejecuta.
4) La secuencia de ejecución es la siguiente:  	se evalúa expr-ord1 	se evalúa expr-ord2  	Variable := valor de expr-ord1 	si variable <= expr-ord2  		entonces sentencia  	variable := succ(variable)  	si variable <= expr-ord2  			entonces sentencia  Hasta que variable asuma un valor mayor que expr-ord2. 5)Los  valores de los datos que participan en las expresiones deben estar inicializados con anterioridad a la ejecución de la repetición.
6) La variable de control de la repetición no tiene un valor definido fuera de la misma. 7) Si bien Pascal lo permite no se debe modificar el valor de la variable de control durante la ejecución de la repetición. 8) La modificación del valor de los datos que intervienen en las expresiones, durante la ejecución de las sentencias de la repetición, no modifican el valor de aquellas. 9)Cuando la repetición requiere más de una sentencia a repetir se indica mediante una sentencia compuesta.
Pudeprobar en Pascal con lassiguientessentencias el funcionamiento de la función for-to-do for i:= 1 to n do  begin read( x); Suma:=suma+ x;  writeln( suma; 6:2) end
Sentenciafor- downto. for variable:= expr-ord1downto expr-ord2do sentencia El tipo de dato de la variable y de las expresiones debe ser el mismo, ordinal, no real. 2) Si valor de expr-ord1 >= valor de expr-ord2, la sentencia se ejecuta (valor de expr-ord1 - valor de expr-ord2 + 1) veces. 3) La sentencia no se ejecuta si valor de expr-ord1 < valor de expr-ord2.
4) La secuencia de ejecución es la siguiente:  	se evalúa expr-ord1 	se evalúa expr-ord2  	variable := valor de expr-ord1  	si variable >= expr-ord2  		entonces sentencia  	variable := pred(variable)  	si variable >= expr-ord2  		entonces sentencia  Hasta que variable asuma un valor mayor que expr-ord2. 5) Los valores de los datos que participan en las expresiones deben estar inicial izados con anterioridad a la ejecución de la repetición.
6)La variable de control de la repetición no tiene un valor definido fuera de la misma. 7) Si bien Pascal lo permite, no se debe modificar el valor de la variable de control durante la ejecución del mismo. 8) La modificación del valor de los datos que intervienen en las expresiones, durante la ejecución de las sentencias de la repetición, no modifican el valor de aquellas. 9) Cuando la repetición requiere más de una sentencia a repetir, ésta se indica mendiante una sentencia compuesta.
Ejemplos:
Factorial  factorial :=1;  for i := n downto1 do  factorial := factorial * i; factorial:= 1;  for i := 1 to n do  factorial:= factorial*i;
Sentencia while Todos los datos que intervienen en la expresión lógica deben estar inicializados antes de la ejecución del while para que se pueda evaluar la condición. 2) Al menos uno de los datos que intervienen en la expresión lógica debe ser adecuadamente modificado durante la ejecución de la sentencia, para evitar ciclos infinitos.
3) la secuencia de ejecución es la siguiente: -si el valor de la expresión booleana es verdadero  entonces sentencia si no se continúa con la sentencia siguiente al while. Este condicional se repite hasta que el valor de la expresión lógica sea falso. si el valor de la expresión booleana es falso en la primera evaluación, la sentencia no se ejecuta y se continúa con la sentencia siguiente al while.
Ejemplo: read(a);  n:= 10; while (a< n) do begin 	a:= sqr(a); 	writeln(a); 	read(a); end
Sentencia repeat - until 1 ) todos los datos que intervienen en la expresión booleana deben estar inicializados antes de que se evalúe la expresión booleana. 2) al menos uno de los datos que intervienen en la expresión booleana debe ser adecuadamente modificado durante la ejecución de la sentencia.
3) La sentencia interior al repeat se ejecuta al menos una vez, sin considerar el valor de la expresión booleana. 4) La secuencia de ejecución es la siguiente: 	-se ejecuta la sentencia 	-si la condición es falsa 		entonces sentencia  		sino finaliza el repeat -Se evalúa el condicional hasta que la expresión sea verdadera en cuyo caso se continúa con la ejecución del programa.
Ejemplo: Indique las diferencias que aprecia en los segmentos de programas anteriores	 read(x); while x<>0 do begin 	p:= sqr(x); 	write(x,p); 	read(x) end repeat read(x); p:= sqr(x); write(x,p); until x = 0
Sentencias repetitivas anidadas repeat read(x); if (trunc(x) = x) then 	for i := x to sqr(x) do 	begin suma:=suma+ i; 	   writeln ( x, suma); 	end; {for} until (trunc(x) = x) read (x); while (trunc(x) = x) do begin fori := x tosqr(x) do 	begin 	    suma:= suma +i; 	    writeln ( x, suma); end; {for} read(x) end {while}
Bibliografía ,[object Object]

Mais conteúdo relacionado

Mais procurados

tutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drschemetutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drschemeHospital de Yumbo
 
Elementos de un programa c++
Elementos de un programa c++Elementos de un programa c++
Elementos de un programa c++Lalo Apellidos
 
Visual basic actualizado y c -2-1212616707734961-8
Visual basic actualizado y c -2-1212616707734961-8Visual basic actualizado y c -2-1212616707734961-8
Visual basic actualizado y c -2-1212616707734961-8Alejandro Caro
 
Dos estrategias de búsqueda anytime basadas en programación lineal entera par...
Dos estrategias de búsqueda anytime basadas en programación lineal entera par...Dos estrategias de búsqueda anytime basadas en programación lineal entera par...
Dos estrategias de búsqueda anytime basadas en programación lineal entera par...jfrchicanog
 
Expresiones aritmetica
Expresiones aritmeticaExpresiones aritmetica
Expresiones aritmeticaCarlos Mauneul
 
Pseudocodigos
PseudocodigosPseudocodigos
PseudocodigosClariza
 
Elementos BáSicos Del Lenguaje Java Alumno
Elementos BáSicos Del Lenguaje Java AlumnoElementos BáSicos Del Lenguaje Java Alumno
Elementos BáSicos Del Lenguaje Java Alumnomtemarialuisa
 
Sentencia de control
Sentencia de controlSentencia de control
Sentencia de controlStalyn Cruz
 
Jhohan ruiz
Jhohan ruizJhohan ruiz
Jhohan ruizjhohamn
 
5. estructuras de programación
5. estructuras de programación5. estructuras de programación
5. estructuras de programaciónMarina Vintimilla
 
2.8 constantes
2.8 constantes2.8 constantes
2.8 constantesSNPP
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertosynina
 

Mais procurados (18)

tutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drschemetutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drscheme
 
Poo4
Poo4Poo4
Poo4
 
Java básico
Java  básicoJava  básico
Java básico
 
Trabajo de matematica
Trabajo de matematicaTrabajo de matematica
Trabajo de matematica
 
Elementos de un programa c++
Elementos de un programa c++Elementos de un programa c++
Elementos de un programa c++
 
Visual basic actualizado y c -2-1212616707734961-8
Visual basic actualizado y c -2-1212616707734961-8Visual basic actualizado y c -2-1212616707734961-8
Visual basic actualizado y c -2-1212616707734961-8
 
Dos estrategias de búsqueda anytime basadas en programación lineal entera par...
Dos estrategias de búsqueda anytime basadas en programación lineal entera par...Dos estrategias de búsqueda anytime basadas en programación lineal entera par...
Dos estrategias de búsqueda anytime basadas en programación lineal entera par...
 
Estructuras
EstructurasEstructuras
Estructuras
 
Expresiones aritmetica
Expresiones aritmeticaExpresiones aritmetica
Expresiones aritmetica
 
Pseudocodigos
PseudocodigosPseudocodigos
Pseudocodigos
 
Elementos de programacion t1
Elementos de programacion t1Elementos de programacion t1
Elementos de programacion t1
 
Elementos BáSicos Del Lenguaje Java Alumno
Elementos BáSicos Del Lenguaje Java AlumnoElementos BáSicos Del Lenguaje Java Alumno
Elementos BáSicos Del Lenguaje Java Alumno
 
Introduccion c
Introduccion cIntroduccion c
Introduccion c
 
Sentencia de control
Sentencia de controlSentencia de control
Sentencia de control
 
Jhohan ruiz
Jhohan ruizJhohan ruiz
Jhohan ruiz
 
5. estructuras de programación
5. estructuras de programación5. estructuras de programación
5. estructuras de programación
 
2.8 constantes
2.8 constantes2.8 constantes
2.8 constantes
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertos
 

Destaque

Tema1
Tema1Tema1
Tema1UH
 
Td expo1-+04,05,12,13-+whyle&for
Td expo1-+04,05,12,13-+whyle&forTd expo1-+04,05,12,13-+whyle&for
Td expo1-+04,05,12,13-+whyle&forDuel Erold
 
algoritmo
algoritmoalgoritmo
algoritmofior
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigoVictor Morales
 
Algoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: caseAlgoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: caseNianko Madara
 
ejercicios-resueltos-en-pascal
ejercicios-resueltos-en-pascalejercicios-resueltos-en-pascal
ejercicios-resueltos-en-pascalkurt9123
 
Algoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tkAlgoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tkLaurence HR
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlparada137
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmosjhonshebax
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1Silvanac
 
Ejercicios resueltos metodo gauss jordan
Ejercicios resueltos metodo gauss jordanEjercicios resueltos metodo gauss jordan
Ejercicios resueltos metodo gauss jordanalgebra
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)irvingsalazar2
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigoepetekaun
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS1002pc3
 

Destaque (20)

Tema1
Tema1Tema1
Tema1
 
Td expo1-+04,05,12,13-+whyle&for
Td expo1-+04,05,12,13-+whyle&forTd expo1-+04,05,12,13-+whyle&for
Td expo1-+04,05,12,13-+whyle&for
 
Pascal impress
Pascal impressPascal impress
Pascal impress
 
algoritmo
algoritmoalgoritmo
algoritmo
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Pascal_Es
Pascal_EsPascal_Es
Pascal_Es
 
Algoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: caseAlgoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: case
 
Introducción a Turbo Pascal
Introducción a Turbo PascalIntroducción a Turbo Pascal
Introducción a Turbo Pascal
 
ejercicios-resueltos-en-pascal
ejercicios-resueltos-en-pascalejercicios-resueltos-en-pascal
ejercicios-resueltos-en-pascal
 
Algoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tkAlgoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tk
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmos
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1
 
Ejercicios resueltos metodo gauss jordan
Ejercicios resueltos metodo gauss jordanEjercicios resueltos metodo gauss jordan
Ejercicios resueltos metodo gauss jordan
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 

Semelhante a AlgoritmosTiposDatosPascal

Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaAna Ruth G H
 
Lenguaje latino
Lenguaje latinoLenguaje latino
Lenguaje latinoReneSergio
 
Estructura De Un Programa
Estructura De Un ProgramaEstructura De Un Programa
Estructura De Un ProgramaLisb
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilabGabriel Romero
 
1.1 palabras reservadas para hacer un pseudocódigo
1.1 palabras reservadas para hacer un pseudocódigo1.1 palabras reservadas para hacer un pseudocódigo
1.1 palabras reservadas para hacer un pseudocódigoGioo
 
Logica tipos de datos operadores
Logica tipos de datos operadoresLogica tipos de datos operadores
Logica tipos de datos operadoresmemorales_IUE
 
Comandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# SharpComandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# SharpAna Ruth G H
 
Expresiones logicas
Expresiones logicasExpresiones logicas
Expresiones logicaszamand14
 
Resumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la ProgramaciónResumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la ProgramaciónOriol Borras Gene
 
6 Escritura De Algoritmos Programas
6 Escritura De Algoritmos Programas6 Escritura De Algoritmos Programas
6 Escritura De Algoritmos ProgramasPaulo Guerra Terán
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++luiscristian
 

Semelhante a AlgoritmosTiposDatosPascal (20)

TAREA 04_removed.pdf
TAREA 04_removed.pdfTAREA 04_removed.pdf
TAREA 04_removed.pdf
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y Java
 
Lenguaje latino
Lenguaje latinoLenguaje latino
Lenguaje latino
 
Estructura De Un Programa
Estructura De Un ProgramaEstructura De Un Programa
Estructura De Un Programa
 
Módulo 4 (sin estilo)
Módulo 4 (sin estilo)Módulo 4 (sin estilo)
Módulo 4 (sin estilo)
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Repaso c
Repaso cRepaso c
Repaso c
 
Módulo 4
Módulo 4Módulo 4
Módulo 4
 
Módulo 4
Módulo 4Módulo 4
Módulo 4
 
1.1 palabras reservadas para hacer un pseudocódigo
1.1 palabras reservadas para hacer un pseudocódigo1.1 palabras reservadas para hacer un pseudocódigo
1.1 palabras reservadas para hacer un pseudocódigo
 
Logica tipos de datos operadores
Logica tipos de datos operadoresLogica tipos de datos operadores
Logica tipos de datos operadores
 
Comandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# SharpComandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# Sharp
 
Expresiones logicas
Expresiones logicasExpresiones logicas
Expresiones logicas
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Resumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la ProgramaciónResumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la Programación
 
6 Escritura De Algoritmos Programas
6 Escritura De Algoritmos Programas6 Escritura De Algoritmos Programas
6 Escritura De Algoritmos Programas
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++
 

Mais de Emiliano Siracusa (8)

Capacitores
CapacitoresCapacitores
Capacitores
 
Módulo 7 (sin estilo)
Módulo 7 (sin estilo)Módulo 7 (sin estilo)
Módulo 7 (sin estilo)
 
Módulo 6 (sin estilo)
Módulo 6 (sin estilo)Módulo 6 (sin estilo)
Módulo 6 (sin estilo)
 
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º
 

AlgoritmosTiposDatosPascal

  • 1. Módulo 5ALGORITMOS Y ESTRUCTURA DE DATOS PROFESOR:SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com
  • 2. Tipos de datos en Pascal
  • 3. Tipos de datos definidas por el programador El programador puede redefinir o renombrar tipos definidos por el lenguaje Pascal o crear nuevos tipos para renombrar: TYPE entero = integer; caracter = char; logico = boolean; VAR numero: entero; Una_letra : caracter; valido: logico;
  • 4. Tipos de datos enumerados definidos por el programador El programador puede definir tipos de datos enumerados, indicando expresamente los valores que lo forman. Esos valores deben ser identificadores en Pascal. <identificador> = (id1, id2...... idn) cada id-i es un identificador que representa un valor perteneciente al tipo de dato descripto. TYPE tfiguras = (triangulo, cuadrado, pentágono); tcolores= ("azul, verde, amarillo, rojo, negro);
  • 5. Tipos de datos subrangos definidos por el programador De lodos los tipos de datos ordinales, es decir, aquellos que dado un valor se puede encontrar el siguiente, se pueden definir tipos llamados subrangos, indicando un valor inicial y un valor final del tipo ordinal. El tipo subrango contiene todos los valores comprendidos entre el inicial y el final incluyendo éstos. <identificador> =<valor inicial>. .<valor final> TYPE tmes = 1 ...12; tletras = 'a'..'z‘;
  • 6. Tipos de datos subrangos definidos por el programador TYPE Tfiguras = (triangulo, cuadrado, rombo, rectángulo, pentágono); Tcuadrilateros = cuadrado .. rectángulo; Tilias = (lunes, martes, miércoles, jueves, viernes, sábado, domingo); Tdiashabiles = lunes .. viernes;
  • 7. Tipos ordinales en Pascal Los tipos ordinales son aquellos cuyos valores están ordenados ( de acuerdo a ciertos criterios). Cada valor tiene un sucesor ( excepto el último). Y cada valor tiene un predecesor ( excepto el primero). Son tipos ordinales: INTEGER BOOLEAN CHAR enumerado subrango Observación: El tipo de dato real queda fuera de esta consideraciones.
  • 8. Tipos ordinales en Pascal Los tipos ordinales tienen funciones que les son características: ORD(x) devuelve el valor correspondiente a la posición que ocupa x de acuerdo al orden de la declaración del tipo de dato. Si Tdias = (lunes, martes, miércoles, jueves, viernes, sábado, domingo); ord(lunes) = 0; ord(jueves) = 3 ord(martes)= 1; ord(domingo)= 6
  • 9. Escritura en Pascal Pascal provee primitivas para comunicar al usuario con el programa, en tiempo de ejecución. write: Muestra valores en pantalla. writeln: Muestra valores en pantalla y baja de línea. Ejemplos: write ('el '); write ('resultado '); write ('es:'); write (35) El resultado es: 35
  • 10. Escritura en Pascal writeln('el '); writeln('resultado'); writeln('es: '); writeln(35) Program Area-triangulo var Base,altura:rea!; {datos de entada} area: real; {dato de salida} begin writeln ('ingrese la base y la altura de un triángulo'); base:= 4; altura:= 5; area := base* altura; writeln ('el area del triangulo en‘, area); El Resultado es: 35
  • 11. Lectura en Pascal READ: asigna a las variables los valores que son ingresados por teclado. READLN: asigna a las variables los valores que son ingresados por teclado y espera un fin de línea. Ejemplo: read(a); read(b); read(c); 26 8 34
  • 12. readln (a); readln (b); readln (c); Program Area-triangulo; var base, altura: real; {datos de entrada} area: real; {datos de salida} begin writeln ('ingrese la base y la altura de un triángulo'); read (base, altura); area:= base* altura; writeln ('el area del triangulo es=', area) end. 26 8 34
  • 13. Importante Pascal no permite utilizar las sentencias write y read. como así tampoco writeln y readln, con tipos enumerados y subrangos de los enumerados definidos por oí programador.
  • 14. Sentencia de asignación Pascal permite explícitamente asignar un valor a una variable. La forma general de una asignación es la siguiente: identificador de variable : =expresión Es equivalente a la del lenguaje de diseño dato  expresión car2 := 'j'; dias := 31; cari:= succ(car2); valido := días >= 25; valor := 1 - ( 3.4-5 +11+sin (2));
  • 15. var dias: integer; car1, car2: char; valido: boolean; temperatura, valor: real; begin car2 := 'j'; dias:= 31; car1:= succ(car2); valido := días >= 25; valor := 1 - ( 3.4 - 2.67* 0.21) + sin (2)
  • 16. Sentencia compuesta begin S1; S2; . . . Sn; end. Se usa cuando una secuencia de sentencias constituye una unidad. El cuerpo del programa es una sentencia compuesta.
  • 17. El cuerpo del programa es una sentencia compuesta Program Ejemplo; Const..... Type..... Var...... begin S1; S2; . . . Sn; End. Estructuras de control Secuencia: Todo programa se ejecuta desde la primera sentencia hacia la última. En forma similar a los algoritmos.
  • 18. Ejemplo: escribir un programa en Pascal que permita calcular el área de un círculo. Borra la Pantalla Espera comando Enter para finalizar la ejecución. Primer número indica la cantidad de espacios blancos a izquierda Segundo numero indica la cantidad de decimales con la que se mostrara el número real
  • 19. Sentencias condicionales Permiten elegir una entre varias alternativas. Sentencia if-then equivale a si- entonces de algoritmos if expresión booleana then sentencia if expresión booleana then sentencia compuesta si condición entonces acción si condición entonces acciones
  • 20. Sentencia if-then-else si condición entonces acción 1 si no acción 2 Ejemplo si a> 0 entonces a a - 1 si no aa * a ifexpresion booleana then sentencia 1 else sentencia 2 if a> 0 then a : = a -1; else a := sqr(a) ;
  • 21. Sentencia if - then - else si condición if expresión booleana entoncesthenbegin Acciones sentencia 1; sentencia 2; si no Accioneselse begin sentencia m; sentencia m+1;
  • 23. Condicionales anidados El significado en lenguaje de Diseño de Algoritmos es distinto que en lenguaje Pascal
  • 24. SentenciaCASE Los cijson valores constantes del mismo tipo que expresión ordinal. Si son valores consecutivos del tipo, se pueden indicar como sub- intervalos. ( como se define los tipo subrango,cpr) Si algún valor de constante se repite en más de una línea se considera válido el que se encuentra en la línea superior. Las sentencias pueden ser también una sentencia CASE CASEexpi. ordinalof c11 ,c12,..,c1j : sentencia1; c21,c22,..., c2i: sentencia2; cn1, cn2,...cnm: sentencia n; END
  • 25. SentenciaCASE En Turbo Pascal se permite indicar la alternativa ELSE, que significa que si ninguno de los valores de las constantes coincide con el de la expresión ordinal se ejecuta la sentencia n+1 CASEexpi. ordinalof c11 ,c12,..,c1j : sentencia1; c21,c22,..., c2i: sentencia2; cn1, cn2,...cnm: sentencia n; ELSE sentencia n+1 END
  • 26. Sentencias de control iterativas en Pascal Sentenciafor-to for variable:=expr-ord1to expr-ord2 do sentencia repetir n veces acción 1 El tipo de dato de la variable y de las expresiones debe ser el mismo, ordinal no real. 2) Si valor de expr-ord1 <= valor de expr-ord2, la sentencia se ejecuta (valor de expr-ord2 - valor de expr-ord1 + 1) veces. 3) Si valor de expr-ord1 > valor de expr-ord 2, la sentencia no se ejecuta.
  • 27. 4) La secuencia de ejecución es la siguiente: se evalúa expr-ord1 se evalúa expr-ord2 Variable := valor de expr-ord1 si variable <= expr-ord2 entonces sentencia variable := succ(variable) si variable <= expr-ord2 entonces sentencia Hasta que variable asuma un valor mayor que expr-ord2. 5)Los valores de los datos que participan en las expresiones deben estar inicializados con anterioridad a la ejecución de la repetición.
  • 28. 6) La variable de control de la repetición no tiene un valor definido fuera de la misma. 7) Si bien Pascal lo permite no se debe modificar el valor de la variable de control durante la ejecución de la repetición. 8) La modificación del valor de los datos que intervienen en las expresiones, durante la ejecución de las sentencias de la repetición, no modifican el valor de aquellas. 9)Cuando la repetición requiere más de una sentencia a repetir se indica mediante una sentencia compuesta.
  • 29.
  • 30. Pudeprobar en Pascal con lassiguientessentencias el funcionamiento de la función for-to-do for i:= 1 to n do begin read( x); Suma:=suma+ x; writeln( suma; 6:2) end
  • 31. Sentenciafor- downto. for variable:= expr-ord1downto expr-ord2do sentencia El tipo de dato de la variable y de las expresiones debe ser el mismo, ordinal, no real. 2) Si valor de expr-ord1 >= valor de expr-ord2, la sentencia se ejecuta (valor de expr-ord1 - valor de expr-ord2 + 1) veces. 3) La sentencia no se ejecuta si valor de expr-ord1 < valor de expr-ord2.
  • 32. 4) La secuencia de ejecución es la siguiente: se evalúa expr-ord1 se evalúa expr-ord2 variable := valor de expr-ord1 si variable >= expr-ord2 entonces sentencia variable := pred(variable) si variable >= expr-ord2 entonces sentencia Hasta que variable asuma un valor mayor que expr-ord2. 5) Los valores de los datos que participan en las expresiones deben estar inicial izados con anterioridad a la ejecución de la repetición.
  • 33. 6)La variable de control de la repetición no tiene un valor definido fuera de la misma. 7) Si bien Pascal lo permite, no se debe modificar el valor de la variable de control durante la ejecución del mismo. 8) La modificación del valor de los datos que intervienen en las expresiones, durante la ejecución de las sentencias de la repetición, no modifican el valor de aquellas. 9) Cuando la repetición requiere más de una sentencia a repetir, ésta se indica mendiante una sentencia compuesta.
  • 35. Factorial factorial :=1; for i := n downto1 do factorial := factorial * i; factorial:= 1; for i := 1 to n do factorial:= factorial*i;
  • 36. Sentencia while Todos los datos que intervienen en la expresión lógica deben estar inicializados antes de la ejecución del while para que se pueda evaluar la condición. 2) Al menos uno de los datos que intervienen en la expresión lógica debe ser adecuadamente modificado durante la ejecución de la sentencia, para evitar ciclos infinitos.
  • 37. 3) la secuencia de ejecución es la siguiente: -si el valor de la expresión booleana es verdadero entonces sentencia si no se continúa con la sentencia siguiente al while. Este condicional se repite hasta que el valor de la expresión lógica sea falso. si el valor de la expresión booleana es falso en la primera evaluación, la sentencia no se ejecuta y se continúa con la sentencia siguiente al while.
  • 38. Ejemplo: read(a); n:= 10; while (a< n) do begin a:= sqr(a); writeln(a); read(a); end
  • 39. Sentencia repeat - until 1 ) todos los datos que intervienen en la expresión booleana deben estar inicializados antes de que se evalúe la expresión booleana. 2) al menos uno de los datos que intervienen en la expresión booleana debe ser adecuadamente modificado durante la ejecución de la sentencia.
  • 40. 3) La sentencia interior al repeat se ejecuta al menos una vez, sin considerar el valor de la expresión booleana. 4) La secuencia de ejecución es la siguiente: -se ejecuta la sentencia -si la condición es falsa entonces sentencia sino finaliza el repeat -Se evalúa el condicional hasta que la expresión sea verdadera en cuyo caso se continúa con la ejecución del programa.
  • 41. Ejemplo: Indique las diferencias que aprecia en los segmentos de programas anteriores read(x); while x<>0 do begin p:= sqr(x); write(x,p); read(x) end repeat read(x); p:= sqr(x); write(x,p); until x = 0
  • 42. Sentencias repetitivas anidadas repeat read(x); if (trunc(x) = x) then for i := x to sqr(x) do begin suma:=suma+ i; writeln ( x, suma); end; {for} until (trunc(x) = x) read (x); while (trunc(x) = x) do begin fori := x tosqr(x) do begin suma:= suma +i; writeln ( x, suma); end; {for} read(x) end {while}
  • 43.
  • 44. 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.
  • 45. Curso Nivelación 2011 - Universidad Nacional de Chilecito Lic. en Sistemas - Ing. En Sistemas – Tecnicatura Univ. Desarrollo Aplic. WEB.
  • 46. Agustin Fonseca- Juegos de mente – Memoria, Cálculo, Memoria, Agilidad Mental.
  • 47. Martín Sierra, Abel Martín Álvarez, Ángel Aguirre Pérez- Aula Matemática digital 2.
  • 48. Ing. Gábor loerines, ing. Francisco Chaves-Micro computación Tomo 2- Nahel Ediciones.
  • 49. Adrián Paenza- Matemática... ¿Estás Ahí?
  • 50. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 2
  • 51. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 3,14.
  • 52. Moroni Norma-Apunte de R.P.A (2003) –U.N.S.43