Establecimiento: C.E.M N° 17 Patagonia Asignatura: Fundamentos de Programación Curso: 5° División: 2da, 3ra y 4ta Profesora: María Elisa Méndez Cares Año lectivo: 2009 SENTENCIA REPETITIVA (SENTENCIA WHILE) Diagrama de flujo Código en Pascal Falso Condicion Fin while <condicion> do <Sentencia> Verdadero Sentencia Donde Condicion es una expresión booleana, es decir, que puede tomar el valor verdadero (true) o falso (false). Valores de verdad de las expresiones booleanas: A B Not A Not B A or B A and B True True False False True True True False False True True False False True True False True False False False True True False False Es decir, que la negación lógica (NOT) de un valor true da como resultado el valor false; y la negación lógica de un valor false da como resultado el valor true. La conjunción lógica (AND) de dos valores booleanos solo da el resultado true cuando los dos valores son true. En caso contrario el resultado es false. La disyunción lógica (OR) de dos valores booleanos solo da el resultado false si los dos valores son false. En caso contrario el resultado es true. Ejemplos de expresiones booleanas: 1. (a > b) and (a >c); con a=3, b=2 y c=1. El resultado es True. 2. (a > b) and (a <c); con a=3, b=2 y c=1. El resultado es False. Página 1 de 5 Establecimiento: C.E.M N° 17 Patagonia Asignatura: Fundamentos de Programación Curso: 5° División: 2da, 3ra y 4ta Profesora: María Elisa Méndez Cares Año lectivo: 2009 3. (a < b) and (a <c); con a=3, b=2 y c=1. El resultado es False. 4. (a < b) and (a >c); con a=3, b=2 y c=1. El resultado es False. 5. (a = b) and (a =c); con a=3, b=2 y c=1. El resultado es False. 6. not ((a > b) and (a >c)); con a=3, b=2 y c=1. El resultado es False. 7. not ((a > b) and (a <c)); con a=3, b=2 y c=1. El resultado es True. 8. not ((a < b) and (a <c)); con a=3, b=2 y c=1. El resultado es True. 9. not ((a < b) and (a >c)); con a=3, b=2 y c=1. El resultado es True. 10. not ((a = b) and (a =c)); con a=3, b=2 y c=1. El resultado es True. 11. (a > b) or (a >c); con a=3, b=2 y c=1. El resultado es True. 12. (a > b) or (a <c); con a=3, b=3 y c=1. El resultado es True. 13. (a < b) or (a <c); con a=3, b=2 y c=1. El resultado es False. 14. (a < b) or (a >c); con a=3, b=2 y c=1. El resultado es False. 15. (a = b) or (a =c); con a=3, b=2 y c=1. El resultado es True. 16. not ((a > b) or (a >c)); con a=3, b=2 y c=1. El resultado es False. 17. not ((a > b) or (a <c)); con a=3, b=3 y c=1. El resultado es False. 18. not ((a < b) or (a <c)); con a=3, b=2 y c=1. El resultado es True. 19. not ((a < b) or (a >c)); con a=3, b=2 y c=1. El resultado es True. 20. not ((a = b) or (a =c)); con a=3, b=2 y c=1. El resultado es False. Página 2 de 5 Establecimiento: C.E.M N° 17 Patagonia Asignatura: Fundamentos de Programación Curso: 5° División: 2da, 3ra y 4ta Profesora: María Elisa Méndez Cares Año lectivo: 2009 Ejemplos de sentencias WHILE: 1. Mostrar todos los números enteros entre 0 y N, donde N es un número entero positivo ingresado por teclado. Por ejemplo, N=6, muestra 0123456 Diagrama de flujo Código en Pascal N Cont ← 0 Falso Cont < N Cont Verdadero Cont Program secuencia; Uses crt; Var cont, n: integer; begin writeln(‘ingrese un numero entero positivo’); read(n); cont := 0; while (cont < n) do begin write(cont); cont := cont +1; end; write(cont); End. Cont ← Cont + 1 2. Sumar todos los números enteros entre 0 y N, donde N es un número entero positivo ingresado por teclado. Por ejemplo, N=5, Sum=1+2+3+4+5=15 Diagrama de flujo Código en Pascal N Cont ← 0 Sum ← 0 Cont < N Falso Verdadero Cont ← Cont + 1 Sum← Sum + Cont Sum Program sumatoria; Uses crt; Var cont, n, sum: integer; begin writeln(‘ingrese un numero entero positivo’); read(n); cont := 0; sum := 0; while (cont < n) do begin cont := cont +1; sum := sum + cont; end; write(sum); End. Página 3 de 5 Establecimiento: C.E.M N° 17 Patagonia Asignatura: Fundamentos de Programación Curso: 5° División: 2da, 3ra y 4ta Profesora: María Elisa Méndez Cares Año lectivo: 2009 3. Recibir por teclado un número entero N y muestre en pantalla N asteriscos. Diagrama de flujo Código en Pascal N Cont ← 1 Falso Cont <= N Fin Verdadero ‘*’ Cont ← Cont + 1 Program linea_de_asteriscos; Uses crt; var cont, n: integer; begin writeln(‘ingrese un numero entero positivo’); read(n); cont := 1; while (cont <= n) do begin write(‘*’); cont := cont +1; end; End. 4. Ingrese por teclado números enteros positivos aleatoriamente hasta que se ingrese un número negativo. Diagrama de flujo Código en Pascal N Falso N>0 Verdadero N Fin Program ingresar_numeros; Uses crt; var n: integer; begin writeln(‘ingrese un numero’); read(n); while (n > 0) do begin writeln(‘ingrese un numero’); read(n); end; End. Página 4 de 5 Establecimiento: C.E.M N° 17 Patagonia Asignatura: Fundamentos de Programación Curso: 5° División: 2da, 3ra y 4ta Profesora: María Elisa Méndez Cares Año lectivo: 2009 5. Recibir por teclado un número entero positivo N e imprimir una pirámide de N niveles donde en cada nivel hay tantas asteriscos como el número de nivel. Por ejemplo, para N=5: * ** *** **** ***** Diagrama de flujo Código en Pascal Niveles Nivel ← 1 Nivel <= Niveles Verdadero asteriscos ← 1 Falso Asteriscos <= Nivel Verdadero Nivel ← Nivel +1 ‘*’ Falso Fin Program piramide_de_asteriscos; Uses crt; var niveles, nivel, asteriscos: integer; begin writeln(‘ingrese la cantidad de niveles de la piramide’); read(niveles); nivel := 1; while (nivel <= niveles) do begin asteriscos := 1; while (asteriscos <= nivel) do begin write(‘*’); asteriscos := asteriscos +1; end; nivel := nivel +1; writeln; end; End. asteriscos ← asteriscos + 1 Página 5 de 5