Módulo 5ALGORITMOS Y ESTRUCTURA DE DATOS <br />PROFESOR:SIRACUSA EMILIANO <br />                    MARTÍN<br />Página Web...
Tipos de datos en Pascal<br />
Tipos de datos definidas por el programador<br />El programador puede redefinir o renombrar tipos definidos por el lenguaj...
Tipos de datos enumerados definidos por el programador<br />El programador puede definir tipos de datos enumerados, indica...
Tipos de datos subrangos definidos por el programador<br />De lodos los tipos de datos ordinales, es decir, aquellos que d...
Tipos de datos subrangos definidos por el programador <br />TYPE<br />Tfiguras = (triangulo, cuadrado, rombo, rectángulo, ...
Tipos ordinales en Pascal<br />Los tipos ordinales son aquellos cuyos valores están ordenados ( de acuerdo a ciertos crite...
Tipos ordinales en Pascal<br />Los tipos ordinales tienen funciones que les son características:<br />ORD(x) devuelve el v...
Escritura en Pascal<br />Pascal provee primitivas para comunicar al usuario con el programa, en tiempo de ejecución.<br />...
Escritura en Pascal<br />writeln('el ');	<br />writeln('resultado'); <br />writeln('es: ');<br />writeln(35)<br />Program ...
Lectura en Pascal<br />READ: asigna a las variables los valores que son ingresados por teclado.<br />READLN: asigna a las ...
readln (a);	<br />readln (b);	<br />readln (c);	<br />Program Area-triangulo;<br />var<br />base, altura: real;		{datos de...
Importante<br />Pascal no permite utilizar las sentencias write y read. como así tampoco writeln y readln, con tipos enume...
Sentencia de asignación<br />Pascal permite explícitamente asignar un valor a una  variable.<br />La forma general de una ...
var<br />dias: integer; <br />car1, car2: char; <br />valido: boolean; <br />temperatura, valor: real;<br />begin<br />car...
Sentencia compuesta<br />begin<br />    S1;<br />    S2;<br />.<br />.<br />.<br />Sn;<br />end.<br />Se usa cuando una se...
El cuerpo del programa es una sentencia compuesta <br />Program Ejemplo;<br />Const.....<br />Type.....<br />Var......<br ...
Ejemplo: escribir un programa en Pascal que permita calcular el área de un círculo.<br />Borra la Pantalla<br />Espera com...
Sentencias condicionales<br />Permiten elegir una entre varias alternativas.<br />Sentencia if-then equivale a si- entonce...
Sentencia if-then-else<br />si condición   entonces<br />               acción 1<br />si no<br />                acción 2<...
Sentencia if - then - else<br />si condición				 if expresión booleana<br />       entoncesthenbegin<br />Acciones				sent...
Condicionales anidados<br />
Condicionales anidados <br />El significado en lenguaje de Diseño de Algoritmos es distinto que en lenguaje Pascal<br />
SentenciaCASE<br />Los cijson valores constantes del mismo tipo que expresión ordinal.<br />Si son valores consecutivos de...
SentenciaCASE<br />En Turbo Pascal se permite indicar la alternativa ELSE, que significa que si ninguno de los valores de ...
Sentencias de control iterativas en Pascal<br />Sentenciafor-to<br />for variable:=expr-ord1to expr-ord2 do <br />	sentenc...
4) La secuencia de ejecución es la siguiente: <br />	se evalúa expr-ord1<br />	se evalúa expr-ord2 <br />	Variable := valo...
6) La variable de control de la repetición no tiene un valor definido fuera de la misma.<br />7) Si bien Pascal lo permite...
Pudeprobar en Pascal con lassiguientessentencias el funcionamiento de la función for-to-do<br />for i:= 1 to n do <br />be...
Sentenciafor- downto.<br />for variable:= expr-ord1downto expr-ord2do<br />sentencia<br />El tipo de dato de la variable y...
4) La secuencia de ejecución es la siguiente:<br /> 	se evalúa expr-ord1<br />	se evalúa expr-ord2 <br />	variable := valo...
6)La variable de control de la repetición no tiene un valor definido fuera de la misma.<br />7) Si bien Pascal lo permite,...
Ejemplos: <br />
Factorial <br />factorial :=1; <br />for i := n downto1 do <br />factorial := factorial * i;<br />factorial:= 1; <br />for...
Sentencia while<br />Todos los datos que intervienen en la expresión lógica deben estar inicializados antes de la ejecució...
3) la secuencia de ejecución es la siguiente:<br />-si el valor de la expresión booleana es verdadero <br />entonces sente...
Ejemplo:<br />read(a); <br />n:= 10;<br />while (a< n) do<br />begin<br />	a:= sqr(a);<br />	writeln(a);<br />	read(a);<br...
Sentencia repeat - until<br />1 ) todos los datos que intervienen en la expresión booleana deben estar inicializados antes...
3) La sentencia interior al repeat se ejecuta al menos una vez, sin considerar el valor de la expresión booleana.<br />4) ...
Ejemplo: Indique las diferencias que aprecia en los segmentos de programas anteriores	<br />read(x);<br />while x<>0 do<br...
Sentencias repetitivas anidadas<br />repeat<br />read(x);<br />if (trunc(x) = x) then<br />	for i := x to sqr(x) do<br />	...
Bibliografía<br /><ul><li>López García, Guillermo (ed.) (2005).  El ecosistema digital: Modelos de comunicación, nuevos me...
Próxima SlideShare
Cargando en…5
×

Módulo 5 (sin estilo)

491 visualizaciones

Publicado el

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

  • Sé el primero en recomendar esto

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

No hay notas en la diapositiva.

Módulo 5 (sin estilo)

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

×