Presentación "Lenguaje de programación Pascal. Editor de texto en lenguaje.". Fundamentos de la programación en Pascal Presentación en Pascal

Nikolaus Wirth Pero sería un error pensar que Pascal es un lenguaje exclusivamente para aprender. Esto es lo que N. Wirth (1984) dijo al respecto: “Se ha argumentado que Pascal se desarrolló como un lenguaje para la enseñanza. Aunque esta afirmación es cierta, pero su uso en el entrenamiento no fue el único propósito. De hecho, no creo en el éxito de usar durante el entrenamiento herramientas y técnicas que no pueden usarse para resolver algunos problemas prácticos. * *


Lenguaje de programación Pascal Desde entonces, Pascal se ha vuelto cada vez más popular, no solo como un lenguaje para enseñar los principios de la programación, sino también como un medio para crear programas bastante complejos. software. En su forma original, Pascal tenía capacidades bastante limitadas, pero la versión extendida de este lenguaje, Turbo Pascal, es un poderoso lenguaje de programación.


¿Por qué PASCAL? El lenguaje de programación Pascal lleva el nombre del científico francés Blaise Pascal, quien inventó la primera máquina calculadora mecánica en 1642. Era un sistema de ruedas dentadas que interactuaban, cada una de las cuales correspondía a un dígito de un número decimal y contenía los números del 0 al 9. Cuando la rueda daba una vuelta completa, la siguiente se desplazaba un dígito. La máquina de Pascal era una máquina sumadora.


Información básica sobre lenguajes de programación El lenguaje es un sistema de signos. El lenguaje informático (lenguaje de máquina) es un sistema de signos binario. Por lo tanto, para que una computadora entienda un programa escrito, debe traducirse a un lenguaje que la computadora pueda entender. Este proceso de traducción se llama traducción.




Entorno integrado Turbo Pascal-7.0 Borland International desempeñó un papel muy importante en la distribución masiva de Pascal. Se las arregló para crear el famoso entorno de desarrollo Turbo. Fue un gran paso adelante para facilitar el proceso de programación. ¿Por qué turbo? Turbo en la traducción de la jerga inglesa significa aceleración. El compilador que forma parte de Turbo Pascal traduce muy rápidamente un programa de un lenguaje de programación a códigos de máquina.




Los principales medios de la lengua Los símbolos de la lengua son signos elementales utilizados en la elaboración de textos. El alfabeto de una lengua es un conjunto de tales símbolos. El alfabeto Turbo Pascal 7.0 incluye: todas las letras latinas mayúsculas y minúsculas números arábigos (0 – 9) símbolos + - * / =,. ; : _ () ( ) y otras palabras auxiliares (reservadas)


Para registrar comandos, nombres de funciones, términos explicativos Turbo Pascal 7.0, hay un conjunto de palabras estrictamente definidas, que se llaman auxiliares o reservados (estas son abreviaturas mnemotécnicas en inglés). Las palabras de función se dividen en tres grupos: operadores (READ, WRITELN, etc.) nombres de función (SIN, COS, etc.) palabras clave (VAR, BEGIN, END, etc.) Características básicas del lenguaje


El nombre de un valor es su designación, esta es una palabra de letras, números y guiones bajos, que comienza con una letra. Números: enteros, reales: punto fijo (-1,23; 654,2), punto flotante (2, 437,). Seis operaciones: + suma, - resta, / división, * multiplicación, mod encontrar el resto, div división de enteros.


Una expresión aritmética se construye a partir de nombres, números, signos de operaciones aritméticas, funciones matematicas. Los paréntesis se utilizan para indicar el orden de las operaciones. Para elevar al cuadrado, se usa la notación sqr(x). Para extraer la raíz cuadrada, se usa la notación sqrt(x). El módulo se denota abs(x).


Operador de asignación Nombre de variable:= expresión aritmética. x:= 3,24 o x:= x+4. Tipo de variable 1. Si la variable de la izquierda es de tipo real, entonces la expresión aritmética puede ser de tipo entero o real. 2. Si la variable de la izquierda es de tipo entero, entonces la expresión aritmética es solo entera.


La estructura del programa en Pascal Parte 1 - descripción de datos y operadores. Parte 2 - bloque de programa. Vista general del programa: Program (nombre del programa) label (lista de etiquetas) const (lista de valores constantes) type (descripciones de tipos de datos complejos) var (descripciones de datos del programa) begin (inicio del bloque de programa) (algoritmo) end. (fin del programa)


Nombre del programa: no más de 8 caracteres, comienza con una letra. terminar con punto. La parte descriptiva consta de 4 apartados: etiquetas, constantes, nombres y tipos de variables. var variable nombre y tipo: entero (integer), real (real). Por ejemplo: var i, j: entero; x:real; La descripción de cada tipo termina con un punto y coma. El bloque de programa contiene operadores que describen el algoritmo para resolver el problema.


Declaraciones de entrada y salida: leer (lista de nombres): detiene el programa y espera a que el usuario escriba números en el teclado (separados por un espacio) y presione ENTER. Por ejemplo: leer (i, j); Después de la operación de este operador, el cursor se ubica después del último número pero no se traduce a una nueva línea. Para mover el cursor a una nueva línea después de ingresar datos, use la declaración readln (lista de nombres). escribir (lista de salida) - Escribe datos en la pantalla. Lista de resultados: nombres separados por comas de los resultados de los cálculos y textos explicativos en apóstrofes. Por ejemplo: escribe(x=, x); Se imprimirá un número de punto fijo en la pantalla. Por ejemplo: escribe(x=, x:6:2); la pantalla mostrará un número de 6 dígitos, dos de ellos después del punto decimal, (x =). El cursor se mueve a una nueva línea por el operador de salida vacío writeln. readln operador de entrada vacío






Trabajando en el sistema Turbo Pascal Alt + F10 - menú Archivo - Nuevo - crear un nuevo archivo Entrar - debe colocarse al final de cada línea Ctrl + Y - eliminar la línea Entrar - insertar una línea Para ejecutar el programa, seleccione Ejecutar en el menú Traductor - traduce el programa del lenguaje Pascal al lenguaje de máquina y busca errores de sintaxis. 1. Si se encuentran errores, el editor regresará y el cursor señalará el error. 2.Si no se encuentran errores, el programa se ejecuta










A veces, después de las palabras THEN y ELSE, debe ejecutar no una, sino varias declaraciones. Luego, estos operadores se encierran entre corchetes de operador. El paréntesis de apertura es la palabra COMIENZO, el paréntesis de cierre es la palabra FIN. No hay punto y coma antes de la palabra ELSE. Se recomienda que cada par BEGIN - END se escriba en una columna. IF condición ENTONCES comienza la instrucción 1; operador 2; sentencia N termina ELSE comienza sentencia 1; operador 2; operador M fin ;




programa E3; var a,b: entero; comenzar a escribir (ingrese dos números enteros separados por un espacio, luego presione); readln(a,b); si a mod 2 = 0 entonces escribe (a es par) de lo contrario escribe (a es impar); si b mod 2 = 0 entonces escriba (b - par) de lo contrario escriba (b - impar); readln fin.


3 si a>0 6 si a 0 6 si a 0 6 si a 0 6 si a0 6 si a title="3 si a>0 6 si a


programa E31; var a, y: real; comenzar a escribir (ingrese el número y luego presione); readln(a); si a >0 entonces y:=3 sino y:=6; escribir(y=,y); readln fin. 0 entonces y:=3 sino y:=6; escribir(y=,y); readln fin."> 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end." title="programa E31; var a, y: real; comenzar a escribir (ingrese el número y luego presione); readln(a); si a >0 entonces y:=3 sino y:=6; escribir(y=,y); readln fin."> title="programa E31; var a, y: real; comenzar a escribir (ingrese el número y luego presione); readln(a); si a >0 entonces y:=3 sino y:=6; escribir(y=,y); readln fin."> !}


A+b si a>b a*b si a b a*b si a b a*b si a b a*b si ab a*b si a title="a+b si a>b a* b si a


programa E32; var a,b,x: reales; comience a escribir (ingrese dos números separados por un espacio y luego presione); readln(a); si a >b entonces x:=a+b sino x:=a*b; escribir(x=,x); readln fin. b entonces x:=a+b sino x:=a*b; escribir(x=,x); readln fin."> b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end." title="programa E32; var a,b,x: real; comience a escribir (ingrese dos números separados por un espacio y luego presione); readln(a); si a >b entonces x:=a+b sino x:=a*b; escribir(x=,x); readln fin."> title="programa E32; var a,b,x: real; comience a escribir (ingrese dos números separados por un espacio y luego presione); readln(a); si a >b entonces x:=a+b sino x:=a*b; escribir(x=,x); readln fin."> !}




Organización de bucles Las acciones repetitivas en programación se llaman bucles.Operador de salto incondicional goto n, n es un número entero (no más de 4 caracteres), una etiqueta. La etiqueta se repite 3 veces: 1. En la sección Etiqueta; 2.En la instrucción goto; 3.Ante el operador al que se le realiza un salto incondicional.


Organización de ciclos con la ayuda de operadores de transiciones condicionales e incondicionales. Una tarea. Encuentra la suma de los primeros veinte números. (1+2+3….+20). un ……………20 S ………….


Algoritmo de Euclides: cada vez disminuiremos el mayor de los números por el valor del menor hasta que ambos números se igualen. Por ejemplo: Inicial 1 paso 2 paso 3 paso a= 25 b= mcd(a,b)=5


Programa E5; var a, b: entero; comenzar a escribir (mcd=,a); readln; fin. escribir (Ingrese dos números naturales separados por un espacio); readln(a,b); while ab do si a>b entonces a:=a-b else b:=b-a; b entonces a:=a-b otra cosa b:=b-a;"> b entonces a:=a-b otra cosa b:=b-a;"> b entonces a:=a-b otra cosa b:=b-a;" title="Program E5 ;var a, b: entero;begin write(gcd=,a);readln;end.write(Ingrese dos números naturales separados por espacios);readln(a,b);while ab do si a>b entonces a:= a-b sino b:=b-a;"> title="programa E5; var a, b: entero; comenzar a escribir (mcd=,a); readln; fin. escribir (Ingrese dos números naturales separados por un espacio); readln(a,b); while ab do si a>b entonces a:=a-b else b:=b-a;"> !}




B entonces a:=a-b; si b>a entonces b:=b-a escriba (Ingrese dos enteros positivos separados por un espacio); readln (a,b);" title="Program E6; var a, b: integer; begin write (HOD=,a); readln; end. repetir hasta a=b; si a>b entonces a :=a-b; si b>a entonces b:=b-a write (Ingrese dos números naturales separados por espacios); readln (a,b);" class="link_thumb"> 40 !} programa E6; var a, b: entero; comenzar a escribir (HOD=,a); readln; fin. repetir hasta a=b; si a>b entonces a:=a-b; si b>a entonces b:=b-a escriba (Ingrese dos enteros positivos separados por un espacio); readln(a,b); b entonces a:=a-b; si b>a entonces b:=b-a escriba (Ingrese dos enteros positivos separados por un espacio); readln (a,b);"> b entonces a:=a-b; si b>a entonces b:=b-a escribe (Ingresa dos números naturales separados por espacios); readln (a,b);"> b entonces a:= a-b; si b>a entonces b:=b-a escriba (Ingrese dos enteros positivos separados por un espacio); readln (a,b);" title="Program E6; var a, b: integer; begin write (HOD=,a); readln; end. repetir hasta a=b; si a>b entonces a :=a-b; si b>a entonces b:=b-a write (Ingrese dos números naturales separados por espacios); readln (a,b);"> title="programa E6; var a, b: entero; comenzar a escribir (HOD=,a); readln; fin. repetir hasta a=b; si a>b entonces a:=a-b; si b>a entonces b:=b-a escriba (Ingrese dos enteros positivos separados por un espacio); readln(a,b);"> !}




Tema de la lección: "Ciclos (repetición) en programas"

1) Repetir y consolidar el conocimiento de la elaboración de programas de ramificación lineales; 2) Aprenda a escribir programas usando un operador cíclico - FOR i:=1 TO n DO Begin sentencias (cuerpo del bucle) end ; 3) Aplicar operadores en la resolución de problemas típicos. El propósito de la lección:

Falta insertar: Program Sql; Var A, B, C, D, XI, X2: ??? ; Begin Writeln ("Ingrese los coeficientes de la ecuación cuadrática '); Readln (???); D:=B*B-4*A*C; Si D

Preguntas al grupo: 1) ¿Cuál es la diferencia entre programas ramificados y lineales? 2) ¿Con la ayuda de qué operadores se realiza la elección en los programas? 3) comienzo….fin - ¿Qué es? ¿Cuáles son las reglas para usar el programa?

1) operadores de E/S; 2) operadores de elección; 3) a:=a+3 - ¿qué pasará? 4) Listar tipos de datos; 5) Eliminar AND, OR, END, NOT, IF innecesarios; 6); - ¿Qué significa eso? 7) ¿Cómo se marca el final del programa? 8) Haz una lista de las operaciones aritméticas. 9) ¿Cuánto es 120 mod 65 = ? 10) Declaraciones de bucle.

Organizar en consecuencia: 1. Lectura 2. Fin 3. Inicio 4. Número entero 5. ; 6. Si... Entonces 7. := 8. Entrar 9. Terminar 10. Números enteros 11. Asignar 12. Siguiente acción 13.Iniciar 14.Si...entonces

¿El resultado es menor que 3? a:= 7 b:= - 10 a:=a*(- 7) b:=159 a:=b+a

Encuentra 5 errores en el programa: Program krug ; VAR Pi, r, S: reales; Pi:=3.14, WRITELN('vvedite radiuc r='), READ(r); S=Pi*r*r; ESCRIBIR('Ploshad kruga S= ', S) fin

círculo de programa; VAR Pi, r, S: real; begin Pi:=3.14 , WRITELN('vvedite radiuc r=') , READ(r); S:=Pi*r*r; ESCRIBIR('Ploshad kruga S= ', S) fin.

Tarea №1 Dado un número entero N , determinar si es par o impar. 2, 4, 6, ... son pares, porque dividido sin resto por 2(N mod 2 =0) 1, 3, 7, ... - impar, porque dividido por 2 con resto 1(N mod 2 =1)

Algoritmo Algoritmo Chislo; var N: números enteros; iniciar salida ('vvedite chislo') ; Entrada (N) ; IF N mod 2 = 0 T O Salida (N, '- chetnoe'); IF N mod 2 =1 A O Salida(N,'- nechetnoe'); el fin.

Tarea № 2 Dado un número entero de dos dígitos N (DE), donde D - el número de decenas, E - unidades. Determina si la suma de los dígitos de este número será 10. Ejemplo: el 28 tendrá la suma S=2+8=10, pero el 27 no tendrá S=2+7=9 Contaremos las decenas: D = N div 10 , y unidades: E= N mod 10

Algoritmo Algoritmo Chislo; vars N,E,D,S: enteros; iniciar salida ('vvedite chislo') ; Entrada (N) ; E:=N módulo 10; D:=N división 10; S:=E+D; IF S = 10 T O Output('summa= 10') De lo contrario ('summa10'); el fin.

Definición: Programas en los que el mismo tipo de acciones se repiten muchas veces - programas cíclicos (con repetición).

Tarea: Dados 100 números naturales del 1 al 100 (1,2,3, ... 99,100) Calcular su suma y salida a la variable S.

Algoritmo de suma; Variable i,S: enteros; Inicio S:=0; Para i:=1 a 100 repetir Inicio S:= S + i cuerpo Fin; ciclo Conclusión (S) Fin.

suma del programa; VAR i , S: entero; ComienzoS:=0; FOR i:=1 TO 100 DO begin S:=S+i body end; final del bucle WRITE(S).

suma del programa; VAR i , S: entero; ComienzoS:=0; PARA i:=1 A 100 COMIENZA S:=S+i ; cuerpo WRITE('S', i, '=', s) del final del ciclo; fin.

El cuerpo del ciclo son las mismas acciones que deben repetirse muchas veces. Encerramos el cuerpo del ciclo entre paréntesis del operador begin…..end;

ALT + F9 - corregir errores CTRL + F9 - ejecutar el programa ALT + F5 - ver el resultado

Tarea: 1) Muestre la columna de la tabla de multiplicar de cualquier número entero N por números del 1 al 10. Ejemplo: N = 5, entonces la columna será así - 1*5=5 2*5=10 3*5= 15 i * N = P , donde i cambia de …… .. 1…10 10*5=50

Tarea: comentario sobre el programa para la tarea "Sobre la columna de la tabla de multiplicar"

¡GRACIAS POR SU ATENCIÓN!

  1. 1 pascual
  2. 2. Pascal Pascal fue desarrollado por el científico suizo Niklaus Wirth. Pascal se considera la herramienta más importante para enseñar métodos de programación estructurada y desde 1983 se ha introducido en el plan de estudios de las escuelas para estudiantes que se especializan en informática. En el futuro, el lenguaje Pascal fue mejorado y adquirió nuevas propiedades que son diferentes a la versión del autor.
  3. 3. Pascal es relativamente fácil de aprender, bastante claro y lógico, y siendo el primer lenguaje de programación en aprender, enseña buen estilo.
  4. 4. Al igual que los lenguajes naturales, cada lenguaje de programación tiene su propio estilo y reglas. La sintaxis de un lenguaje de programación es un conjunto de reglas que determinan cómo construir programas correctos a partir de los caracteres del alfabeto.
  5. 5. Alfabeto pascual 26 minúsculas latinas y 26 mayúsculas latinas: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z guión bajo _ 10 dígitos: 0 1 2 3 4 5 6 7 8 9 signos de operación: + - * / =<> < > <= >= := @ delimitadores (separadores): . , " () (. .) ( ) (* *) .. : ; especificadores: ^ # $
  6. 6. Estructura del programa (1. encabezado del programa) program Program_Name; (2. sección para especificar módulos usados) uses List_of_Used_Modules; (3. Sección de descripción) label Label_Descriptions; const Descripciones_Consts; escriba TipoDescripciones; var Variable_Descripciones; procedimiento Descripciones_de_procedimientos_y_funciones; función exporta Descripciones de_Nombres_Exportados; (4. Sección de declaraciones) comienzan las declaraciones terminan.
  7. 7. Estructura simplificada del programa (1. encabezado del programa) program Program_Name; (2. sección para especificar módulos usados) uses List_of_Used_Modules; (3. Sección Descripciones) const Descriptions_Consts; var Variable_Descripciones; (4. Sección de declaraciones) comienzan Las declaraciones del programa terminan.
  8. 8. Los comandos del lenguaje de programación se llaman operadores El separador de operadores en Pascal es; (punto y coma)
  9. 9. Un comentario es un fragmento de texto del programa, delimitado por símbolos ( ). Los comentarios en el programa realizan una función informativa. (Mi primer programa) programa primero; begin writeln('¡Hola, mundo!') end.
  10. 10. Ejemplo: perímetro del programa del perímetro del rectángulo; (encabezado del programa) usa crt; (crt - necesario para borrar la pantalla) var a,b:integer; (declaración de variable) P:entero; Begin (inicio del programa) clrscr; (pantalla clara) a:=12; (asignamos el valor 12 a la variable a) b:=7; (asignamos el valor 7 a la variable b) P:=2*(a+b); (el valor de la expresión se asigna a P) write("P = ",P); (mostrar el valor de P) fin. (fin del programa)
  11. 11. El programa en su trabajo trata con datos. Algunos datos se configuran antes de que comience el programa, y ​​después de que comienza, conservan sus valores invariables durante toda la duración del programa. Estas son constantes. Otros datos pueden cambiar durante la ejecución del programa. Se llaman variables.
  12. 12.  La diferencia entre una variable y una constante es bastante obvia: durante la ejecución de un programa, se puede cambiar el valor de una variable, pero no el valor de una constante. variablesvariables constantesconstantes datosdatos
  13. 13. Por una variable, nos referimos a una celda ("caja") donde una computadora puede escribir ("agregar") datos. Por celda, en realidad queremos decir una "pieza de memoria" que almacena información. Para utilizar la información almacenada en una celda, cada celda debe tener su propio nombre o, como suele decirse, un identificador. a b suma 5 3 8
  14. 14. Identificadores. Los nombres (identificadores) son los elementos del lenguaje - constantes, etiquetas, tipos, variables, procedimientos, funciones, módulos, objetos.  Un identificador es una secuencia de letras, números y guiones bajos que comienza con una letra o guión bajo y no contiene espacios.
  15. 15. El nombre puede contener cualquier número de caracteres, pero 63 caracteres son significativos.  No se permite el uso de palabras de función y nombres estándar como nombres en el lenguaje PASCAL, que se utilizan para nombrar constantes estándar, tipos, procedimientos, funciones y archivos.  Ejemplos de nombres de lenguaje PASCAL: A b12 r1m SIGMA gamma I80_86
  16. 16. En Pascal, se ignora la diferencia entre letras minúsculas y mayúsculas, por lo que los nombres NaMe y name son iguales.
  17. 17. Palabra funcional es una palabra que en el lenguaje PASCAL tiene un significado semántico determinado que no se puede cambiar. A veces se le llama palabra clave.
  18. 18. Palabras de servicio (reservadas): EXPORTACIONES ABSOLUTAS CONJUNTO DE BIBLIOTECA ENSAMBLADOR MOD EXTERNA SHL Y NOMBRE FAR SHR ARRAY ARCHIVO NIL CADENA ASM PARA CERCA ENTONCES ENSAMBLADOR ADELANTE NO COMENZAR FUNCIÓN TIPO DE OBJETO CASO IR A UNIDAD CONST SI O HASTA CONSTRUCTOR IMPLEMENTACIÓN EMPAQUETADO UTILIZA DESTRUCTOR EN PRIVADO VAR DIV ÍNDICE PROCEDIMIENTO VIRTUAL DO PROGRAMA HEREDADO MIENTRAS ABAJO EN LÍNEA PÚBLICO CON ELSE INTERFAZ REGISTRO XOR FIN INTERRUPCIÓN REPETIR EXPORTACIÓN ETIQUETA RESIDENTE
  19. 19. No se pueden utilizar espacios dentro de caracteres dobles y palabras reservadas. Hay nombres que se llaman estándar. sin cos real true A diferencia de las palabras de función, el programador puede redefinir el significado de los nombres estándar.
  20. 20. Esta es una indicación al compilador de cuánta memoria reservar para las variables de nuestro programa.  En el programa compilado, a todas las variables se les asigna espacio en la memoria y a todas las variables se les asignan valores cero. Todas las variables utilizadas en el programa deben declararse en la sección de declaración de variables después de la palabra reservada var. Declaración de variables
  21. 21. Hay diferentes tipos de datos...
  22. 22. Tipos de datos Los nombres de los tipos estándar son identificadores predefinidos y son válidos en cualquier punto del programa. Se describen en el módulo Sistema estándar, que se incluye en la lista de módulos utilizados por defecto. Los tipos definidos por el usuario son tipos adicionales (simples y estructurados) declarados por el usuario.
  23. 23. Tipos de datos estándar 1. grupo de tipos enteros (Shortint, Integer, Longint, Byte, Word); 2. grupo de tipos reales (Single, Real, Double, Extended, Comp); 3. lógicos (tipos booleanos) (Boolean, ByteBool, WordBool, LongBool); 4. carácter (Carácter); 5. cuerda (Cadena); 6. índice (Puntero); 7. tipo de texto (Texto).
  24. 24. Grupo de tipos enteros Tipo nombre Tipo rango de valores memoria requerida Entero corto con signo Shortint -128 .. 127 1 byte Entero con signo Entero -32768 .. 32767 2 bytes Entero largo con signo Entero largo -2147483648 .. 2147483647 4 bytes Corto sin signo entero Byte 0 .. 255 1 byte Entero sin signo Palabra 0 .. 65535 2 bytes
  25. 25 Varb: byte; summa, cuenta: entero; Declarando variables de tipo entero summa:= -365; Utilizar
  26. 26. Los números en PASCAL generalmente se escriben en notación decimal. Se puede omitir el signo positivo del número. Los números enteros se escriben en forma sin punto decimal, por ejemplo: 217 -45 8954 +483
  27. 27. El grupo de tipos reales define los datos que se implementan mediante un subconjunto de números reales. Var A: real; empezar... A:=0.65; … fin.
  28. 28. Nombre del tipo Tipo Rango de valores Número de dígitos de la mantisa Tamaño (bytes) Número real de precisión simple Real 2.9e-39 .. 1.7e+38 11 6 Número real Simple 1.5e-45 .. 3.4e+ 38 7 4 Número real de doble precisión Doble 5.0e-324 .. 1.7e+308 15 8 Precisión extendida Número real extendido 3.4e-4932 .. 1.1e+4932 19 10 Comp Real Entero -9.2e+18 .. 9.2e +18 19 8
  29. 29. Los números reales se escriben en forma con punto decimal o en forma usando el orden decimal, que se representa con la letra E: 28.6 0.65 -0.018 4.0 5E12 -1.72E9 73.1E-16
  30. 30. El tipo de dato booleano corresponde al identificador booleano. Las variables booleanas tienen un tamaño de 1 byte y pueden contener valores VERDADERO o FALSO. El valor FALSO corresponde a 0, cualquier número distinto de cero se considera VERDADERO. Botón Var, indicador: booleano; Botón de inicio:=verdadero;
  31. 31. El tipo de carácter corresponde al identificador estándar Char. Las variables y constantes de tipo carácter pueden tomar valores de un conjunto de caracteres de código ASCII. Var símbolo, bukva, z: char; Declaración de variables simbólicas
  32. 32. El tipo de cadena corresponde al identificador estándar Cadena. VarS: Cadena; (cadena de 0 a 255 caracteres) S2: Cadena; (cadena de 5 caracteres)
  33. 33. Una cadena de caracteres es una secuencia de caracteres del conjunto de caracteres ASCII entre comillas simples. Las cadenas en PASCAL son una secuencia de caracteres escritos entre apóstrofes. Si es necesario usar el apóstrofe como un carácter significativo en una cadena, se deben escribir dos apóstrofes. Ejemplos de cadenas: "STRING" "STRING" "AD" "UTANT"
  34. El tipo de carácter, así como los tipos enteros y booleanos, se denominan tipos ordinales.  El conjunto de valores válidos de cualquier tipo ordinal es una secuencia ordenada, cada elemento del cual tiene su propio número ordinal (a partir de 0).
  35. 35. La función Ord devuelve el número ordinal de este valor en la declaración de tipo. Ord(2)=2, Ord('0')=48 Writeln(ord('e')); WriteIn(ord('9'));
  36. 36. Tabla de codificación ASCII ASCII (Código estándar estadounidense para el intercambio de información; pronunciado "asci") es una codificación informática para representar el alfabeto latino, los números arábigos, algunos signos de puntuación y los caracteres de control. Fue presentado por el American Standards Institute ANSI.

1 diapositiva

LECCIÓN "CONOCIMIENTO DEL LENGUAJE PASCAL" SOBRE EL TEMA: Profesor de matemáticas e informática, MBO USOSh No. 2, Kalach-on-Don, región de Volgogrado Anisimova N.A.

2 diapositivas

OBJETIVO DE LA LECCIÓN: conocer la estructura del programa, operadores, reglas de formato y puntuación del lenguaje Turbo Pascal.

3 diapositivas

Sistema de programación TURBO PASCAL. Pascal es un lenguaje de programación universal que le permite resolver una amplia variedad de problemas de procesamiento de información.

4 diapositivas

1) lenguaje de programación Turbo Pascal; 2) un entorno de programación integrado (compilador: traduce el programa a código máquina e intérprete: ejecuta comandos) COMPOSICIÓN DEL SISTEMA DE PROGRAMACIÓN TR:

5 diapositivas

1) letras latinas - grandes y pequeñas; 2) letras del alfabeto ruso - grandes y pequeñas; 3) números - del 0 al 9; 4) signos de operaciones - +, -, /, *, =, =; 5) caracteres de separación - () ( ) ; . , ‘ _% & # etc. Alfabeto del lenguaje de programación TURBO PASCAL

6 diapositivas

7 diapositivas

Encabezado del programa Sección de declaración de variables Sección de declaración (cuerpo principal)

8 diapositivas

La sección de declaración de variables comienza con la palabra Var seguida de una lista separada por comas de nombres de variables del mismo tipo. Hay dos tipos de números en Pascal: reales y enteros. Los nombres de las variables se componen de letras y números latinos, siendo el primer carácter una letra. VAR lista de variables del mismo tipo: INTEGER; lista de variables similares: REAL;

9 diapositivas

La sección del operador es la parte principal del programa. El comienzo y el final de una sección se marcan con las palabras de servicio BEGIN y END, que son corchetes de operadores. Entre estas palabras se colocan todos los comandos del algoritmo escritos en Pascal (operadores). El separador de operadores es un punto y coma. Se coloca un punto al final del programa. COMENZAR A LEER (lista de entrada); READLN(lista de entrada); variable:=expresión aritmética; ESCRIBIR (lista de salida); ESCRIBIR(lista de salida); FIN.

10 diapositivas

La entrada de los datos iniciales desde el teclado se produce en el operador READ o READLN (leer). La declaración READLN difiere de READ solo en que después de ingresar los datos, el cursor se mueve al principio nueva línea. variable:=expresión aritmética; ESCRIBIR (lista de salida); ESCRIBIR(lista de salida); FIN. LEER (lista de entrada); READLN(lista de entrada);

11 diapositivas

variable:=expresión aritmética; Operador de asignación aritmética: a la izquierda una variable, a la derecha una expresión aritmética a evaluar. El carácter compuesto:= se lee como "asignar". Primero se evalúa la expresión aritmética, luego se asigna el valor resultante a una variable Ejemplo: a:= sqr (x) + sin (y) / (12*z + 5)

12 diapositivas

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 |x| x suma resta multiplicación división división entera resto de la división

13 diapositivas

Reglas para escribir expresiones aritméticas Una expresión aritmética se escribe en una cadena No se pueden poner dos signos de operaciones aritméticas seguidas No se puede omitir el signo de multiplicación entre factores Solo se usan paréntesis La secuencia de operaciones está determinada por sus prioridades () F(x) ) * / + - módulo div

14 diapositivas

La salida de los resultados se produce por WRITE o WRITELN (escritura). Los resultados se muestran en el orden en que aparecen. La diferencia entre la ejecución de las declaraciones WRITE y WRITELN es que después de realizar la operación de salida en la declaración WRITELN, el cursor se mueve al comienzo de una nueva línea. ESCRIBIR (lista de salida); ESCRIBIR(lista de salida);

15 diapositivas

Tarea 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Vasya 5) “PesBarbos” 7) 8) _ABBA 9) A+B

16 diapositivas

programa tarea1; var a, b: entero; x, y: reales; comenzar un:= 5; 10:=x; y:= 7,8; b:= 2,5; x:= 2*(a + y); a:= b + x; fin. el nombre de la variable debe estar a la izquierda del signo:= las partes enteras y fraccionarias están separadas por una coma y el tipo no coincide Tipo no coincide TAREA 2: Buscar errores en la entrada del programa.

PASCAL INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN 2006 ESTRUCTURA DEL CURSO Interfaz y definiciones principales; estructura del programa; mostrar información de texto; entrada de teclado; conexión y uso de módulos del sistema; trabajar con tipos de datos básicos (entero, real, cadena, matriz, archivo), trabajar con gráficos; uso de subrutinas (procedimientos y funciones); uso de módulos. 2 INTERFAZ DEL ENTORNO PASCAL El lenguaje de programación Turbo Pascal 7.0 está encerrado en una carcasa de herramientas. Incluye: un editor de texto de múltiples ventanas; enlazador de programas; depurador de programas; sistema de ayuda; compilador. 3 INTERFAZ PASCAL ENVIRONMENT 4 Lista de archivos abiertos: Alt + 0 Acceso rápido a archivos abiertos: Alt +<№ окна> DEFINICIONES BÁSICAS Una palabra reservada es una palabra especial utilizada por un lenguaje de programación para separar áreas lógicas de un programa. Un operador es un comando de lenguaje que realiza alguna acción (comprobar una condición, organizar un bucle, etc.) Un identificador es un nombre elegido libremente por un programador para los elementos del programa. El tipo de dato es una característica de un identificador que define el conjunto de valores que puede tomar (números enteros o fraccionarios, cadenas de caracteres, expresiones lógicas, etc.). 5 ESTRUCTURA GENERAL DEL PROGRAMA Programa Program_name; Utiliza la sección de complementos; Sección de descripción de la etiqueta de las etiquetas; Sección const de la declaración de constantes; Sección de tipo que describe los tipos de datos nativos; Sección de declaración de variables Var; Inicio El cuerpo principal del programa; fin. Código mínimo: 6 SALIDA DE PANTALLA Para mostrar información en pantalla se utilizan los siguientes operadores: Write o Writeln. F9 - Compilar + Verificar Ctrl+F9 - Ejecutar F9 → Ctrl+F9 - Evitar errores Mostrar los resultados de la ejecución del programa 7 SALIDA DE PANTALLA Resultado de las instrucciones: WRITE "Vacío" WRITELN instrucción agrega una cadena vacía WRITELN 8 EJERCICIO Mostrar información en la pantalla como se muestra a continuación ¡Hola! ¡Me alegro de verte! llámame computadora. Material utilizado: Sentencias de salida: Write, WriteLn Operador "Vacío" WriteLn; inserta una cadena vacía. 9 CONEXIÓN DE MÓDULOS ADICIONALES Los módulos adicionales amplían las capacidades de sus programas mediante la introducción de operadores adicionales. Los módulos se conectan en la sección Usos. ProgramaMi; Utiliza Módulo1, Módulo2; ________________________ ________________________ ____________________________ ________________________ MÓDULO 1 Conjunto de recursos 1 … MÓDULO N Módulos: Conjunto de recursos propios del sistema N Borrado de la pantalla de texto Esperando que se presione una tecla Módulo conectado llamado CRT 10 SALIDA DE PANTALLA ALEATORIA GotoXY (X, Y: entero) Donde X, Y – familiaridad coordinar en la pantalla. X puede tomar valores de 1 a 80, e Y de 1 a 25. Por ejemplo: Program My_program; (Conexión del módulo) Utiliza Crt; Comenzar (Borrar pantalla) ClrScr; (salida de datos) GotoXY(1, 1); escribir("▒"); Ir a XY(80, 1); escribir("▒"); Ir aXY(1, 25); escribir("▒"); Ir a XY(80, 25); escribir("▒"); (retardo de pantalla) ReadKey; fin. El programa muestra el símbolo “▒” (código 177) en las esquinas de la pantalla. 11 SALIDA EN COLOR TextColor (Color); Especifica el color de los caracteres. Fondo de texto (color); Especifica el color de la familiaridad. ProgramaMiPrograma; Utiliza crt; Comenzar TextColor (Rojo); Fondo de texto (azul); Escribir("Fuera"); Color de texto (blanco); Escribir("hierba, "); Color de texto (verde); Fondo de texto (amarillo); Escribir("sobre la hierba"); Fondo de texto (Magenta); Escribir("leña. "); Fin. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Colores Negro Azul Verde Cian Rojo Magenta Marrón LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 12 – negro – azul – verde – cian – rojo – lila - marrón - gris claro - gris oscuro - azul - verde claro - cian claro - rosa - lila claro - amarillo - blanco VALORES Operaciones de datos IDENTIFICADORES El término identificador se aplica a constantes, variables, funciones, procedimientos, componentes y otros definidos por el usuario objetos Caracteres permitidos: letras latinas, números, guión bajo Restricciones: no debe comenzar con un dígito, pero puede comenzar con un guión bajo No puede tener varias palabras No puede coincidir con ninguna de las palabras clave Los identificadores no distinguen entre mayúsculas y minúsculas . Identificadores incorrectos: Datos Mi nombre 2Array Var ( ( ( (se usan caracteres rusos) Hay un espacio) Comienza con un número) Coincide con la palabra clave) números, cadenas de caracteres, expresiones lógicas, etc.). 16 TIPO DE DATOS ENTEROS 17 Conjunto finito de valores posibles tipo byte shortint palabra entero longint range 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647 ! ¡Fuera de rango da como resultado un error! tamaño DECLARACIÓN DE VARIABLES Una variable es un identificador capaz de almacenar algún valor (un número, una cadena, etc.) y cambiarlo durante la operación del programa. Sintaxis: Var<имя переменной> : <тип переменной>; Programa nombre_programa; Utiliza la sección de complementos; Sección de declaración de variables Var; Inicio El cuerpo principal del programa; fin. Espacio reservado en la memoria de la computadora para 3 variables 18 AJUSTE DE VALORES A LAS VARIABLES Para establecer el valor de una variable, debe usar el operador de asignación: = Sintaxis del registro:<Переменная> := <Значение>; El valor 3 se ingresa en la variable (entero) denominada A 19 OPERACIONES CON VARIABLES ENTERAS 20 Operaciones aritméticas: + - * / Operaciones estándar: div | modificación | sqr No se puede usar con tipos enteros Una variable llamada S se establece en la suma de los valores almacenados en las variables X e Y El valor almacenado en una variable llamada S se muestra en la pantalla EJERCICIO 21 1. Escriba un programa que muestre el resultado de multiplicar los números 15 y 20 2. Escribir un programa que muestre el valor de la función f 2 x 3 y , cuando x=11, y=3 Material utilizado: Las variables se declaran en la sección Var El tipo entero se llama Entero La sintaxis para asignar un valor a una variable es:<Переменная> := <Значение> ; Se coloca un letrero después de cada operador; (excepto inicio y fin último) TIPO DE DATO REAL Conjunto de valores √ √ Tipo ordinal Tipo real Compatibilidad unidireccional: Real Integer Real! ¡Fuera de rango y el incumplimiento de las reglas de compatibilidad conduce a un error! 22 OPERACIONES CON VARIABLES REALES 23 Operaciones estándar: pi | cuadrado | pecado | Porque | abdominales | exp | Ronda Ln | Trunc (real → entero) Por ejemplo (X, S – Tipo real): X:= pi/3; S:= Sin(X) * 100; Escribir (Redondo (S)); La relación de los valores almacenados en las variables X e Y se ingresa en una variable llamada S. La posición del número y la cantidad de caracteres en la parte fraccionaria del número E indica la potencia del número. 5.6E-5 = 5.6·10-5 TIPO DE DATOS DE CADENA 24 Las cadenas son un conjunto ordenado de caracteres. Las cadenas se encierran entre apóstrofes. Las cadenas no son compatibles con tipos enteros y reales. Tipo Rango Cadena 255 caracteres ( operadores de cadena básicos ) + ( concatenación ) Longitud (S); (longitud de la cadena) Por ejemplo: X:= 'Vasya'; Write('En tu nombre', Longitud(X), 'lit.'); S:=X; X:=S; EJERCICIO Escriba un programa que muestre el resultado de dividir los números 12.89 y 0.22 con solo tres dígitos significativos después del punto decimal, en el siguiente formato: primer número dividido por el segundo número = resultado Escriba (X:1:3, ' razdelit na ' , y:1 :3, ' = ' z:1:3) Material utilizado: El tipo de cadena se denomina Cadena Las cadenas se encierran entre postrófos Las cadenas se concatenan con un signo + En la declaración de visualización, los diferentes tipos se separan con una coma 25 TECLADO ENTRADA 26 Para ingresar información desde el teclado, debe utilizar el operador de entrada: Read o ReadLn. Sintaxis: Leer (N1, N2, ... Nn); Donde N1, N2, ... Nn son variables (entero, real, cadena) En la variable X se ingresa el valor ingresado desde el teclado, luego de ingresar el valor se debe presionar la tecla Enter, si existen varias variables en el operador, se ingresan separados por un espacio o presionando una tecla Enter EJERCICIO 27 1. Escriba un programa de mini-calculadora que calcule la suma de dos números ingresados ​​desde el teclado. 2. Escriba un programa que le pregunte su nombre y, después de escribir su nombre, muestre un saludo. Por ejemplo, si ingresó el nombre Vanya, el programa mostrará la frase: ¡Hola, Vanya! Material utilizado: Sentencias de entrada: Read, ReadLn OPERADORES OPERADOR CONDICIONAL 29 El operador condicional implementa “branching”, es decir cambia el orden de ejecución de los operadores dependiendo de la verdad o falsedad de alguna condición. Comprobación de condiciones NO Acción 1 Iré a la playa Está lloviendo SI Acción 2 Cogeré un paraguas Acción 3 Iré al cine COMPROBAR CONDICIONES Operaciones de comparación: > - más< - меньше = - равно >= - mayor o igual<= - меньше или равно <>- no igual a 30 Operaciones lógicas: No Y O - No -Y - O Por ejemplo: Si Mi altura > la altura de Petya, Entonces soy más alto que Petya Si (está lloviendo) O (está nevando), Entonces me quedaré en casa Si no ((está lloviendo) Y (viento)), entonces iré a caminar Cuando use operaciones lógicas, las condiciones están encerradas entre paréntesis SINTAXIS DE LA DECLARACIÓN CONDICIONAL Forma abreviada: Si<условие>después<оператор>; Por ejemplo, si el valor en la variable X es menor que 0, entonces el valor 1 se escribe en la misma variable: Si X<0 Then X:= 1; Полная форма: If <условие>después<оператор_1>más<оператор_2>; Por ejemplo: Si X>5 Entonces X:= X - 1 Si no X:= X + 1; Solo se puede usar un operador después de las palabras Entonces y Si no Antes de la palabra Si no, firmar; falta 31 EJERCICIO 32 1. Escriba un programa que reciba una cantidad de entrada en dólares y una cantidad en euros, y luego muestre en qué moneda la cantidad es mayor (1 dólar = 28 rublos, 1 euro = 35 rublos) 2. Escriba un programa , que toma tres números como entrada y luego muestra el máximo de ellos. Material utilizado: Formas del operador condicional: If<условие>Después<оператор>; Si<условие>Después<оператор_1>Más<оператор_2>; Antes de firmar Else; no establecido Operaciones de comparación: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Entonces comienza X:= 1; Y:= -1; WriteLn('Información aceptada'); End Else WriteLn('Error'); 33 OPERADOR DE SELECCIÓN DE CASO La declaración de elección se utiliza para reemplazar construcciones de declaraciones condicionales anidadas. Sintaxis de notación de casos<порядковая_переменная>de<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Más<оператор_N+1>; fin; Puede usar paréntesis en la instrucción select Cadena opcional 34 SELECT STATEMENT CASE Caso Estatura del estudiante de 16 a 30: Usted es un estudiante de escuela primaria; 31,32,33: Estás en la clase 5-6; 34..50: Eres un estudiante de secundaria Se usa una coma para enumerar valores, dos puntos se usan para seleccionar un rango De lo contrario, claramente no eres un estudiante; fin; Caso x de -128..-1: writeln('Negativo'); 0: writeln('Nil'); 1..127: writeln('Positivo') Else WriteLn('Fuera de rango'); fin; 35 EJERCICIO Escribe un programa que, dado un número, muestre el día de la semana correspondiente. Por ejemplo, ingrese el número 2, el programa debería generar 'Martes'. Si el número está fuera de 1..7, se debe mostrar un mensaje de que no existe tal día. Material utilizado: Operador de selección: Caso<порядковая_переменная>de<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Más<оператор_N+1>; fin; 36 CICLOS 37 Se denominan cíclicos los algoritmos en los que la ejecución de unos operadores se realiza repetidamente con los mismos datos modificados (por ejemplo, el procedimiento de multiplicación de números mediante su suma múltiple). Hay tres instrucciones de bucle en Pascal: For (bucle con un parámetro o para un número específico de repeticiones) Mientras (bucle MIENTRAS) Repetir (bucle ANTES) Si se conoce el número de repeticiones, entonces es mejor usar el operador de bucle con un parámetro BUCLE CON PARÁMETRO 38 Bucle para un número específico de repeticiones con valor de parámetro creciente o decreciente For (param) := (start_value) To (end_value) Do (operator) ; Cuerpo del bucle Comentarios El parámetro es un tipo entero; Puede usar corchetes de operador en un bucle; No puede cambiar el parámetro de bucle en el cuerpo del bucle; El parámetro de ciclo se incrementa en uno; Valor inicial > valor final; de lo contrario, se ignora el cuerpo del ciclo; Para disminuir el parámetro, en lugar de To, use DownTo. BUCLE CON PARÁMETRO 39 Escriba un programa que solicite números enteros (a, b), donde a := <нач_зн>A<кон_зн>Hacer<оператор>; El parámetro es de tipo entero (generalmente Integer); Puede usar corchetes de operador en un bucle; El parámetro del bucle se incrementa en 1. 40 BUCLE WHILE El bucle Mientras primero prueba la condición, y sólo si es verdadera ejecuta el cuerpo del bucle. while (condición) do (sentencia); En el cuerpo del código escrito a continuación, el bucle nunca se ejecutará: x:=1; Mientras x>1 hacer x:=x-1; Puedes obtener un bucle infinito. Por ejemplo: x:=1 Mientras que x>0 do x:=x+1; 41 WHILE LOOP Un programa que muestra la suma de números de a a b. Mientras no se presione ninguna tecla, comience Delay(2000); fin; El bucle se ejecuta hasta que la variable cambiante f se vuelve mayor que el valor b 42 EJERCICIO 43 1. Los astronautas decidieron plantar abedules en la luna, y cada año para duplicar el número de abedules, en el primer año plantaron 3 abedules. Imprima en la pantalla en cuántos años el número de abedules superará los 10 000. 2. Escriba un programa que determine el máximo de los números ingresados ​​​​desde el teclado (la entrada del número termina con el número 0). A continuación se muestra un diseño de pantalla recomendado: Introducir números. Ingrese 0 para completar la entrada 89 15 0 El número máximo es 89. Material utilizado: Mientras Instrucción de bucle: Mientras<условие>hacer<оператор>; El ciclo While primero prueba la condición y solo si es verdadera ejecuta el cuerpo principal del ciclo. REPEAT LOOP 44 El bucle Repeat primero ejecuta el cuerpo del bucle y sólo entonces comprueba la condición Repetir (cuerpo_del_bucle) Hasta (condición); No hay necesidad de usar una declaración compuesta en el bucle de repetición, porque esta construcción prevé la ejecución no de una, sino de varias sentencias encerradas entre las palabras Repetir y Hasta. REPEAT LOOP ("Hasta entonces") Un programa que muestra la suma de números de a a b. El bucle se ejecuta hasta que la variable cambiante f se vuelve mayor que el valor b 45 COMPARACIÓN DE BUCLES For While Repetir 46 La elección del modelo de bucle depende únicamente de la conveniencia de su uso en una situación particular. Casi siempre podemos usar otro tipo de ciclo en lugar de uno EJERCICIO Calcula el valor de la función y x 3 x 2 16 x 43 para x variando en el rango de -4 a 4 inclusive con un paso de 0.5. Material utilizado: Declaración de bucle Repetir: Repetir<тело_цикла>Hasta que<условие>El ciclo Repetir primero ejecuta el cuerpo del ciclo, y solo entonces verifica la condición 47 INTERRUPCIÓN DE CICLOS 48 Los procedimientos se utilizan para el control flexible de los operadores cíclicos: Break - salir del ciclo; Continuar: finalización del siguiente paso del ciclo; Ejemplos: Encuentre el número mínimo i para el cual la suma de los números del 1 al i es mayor que 100. Tan pronto como s (la suma de los números del 1 al i) sea mayor que 100, se activa la instrucción break y el ciclo sale . s:=0; para I:= 1 a 100 comience si s>100 luego interrumpa; s:= s + yo; fin; Writeln ('número mínimo i tal que (1+2+..+i)>100 es igual a ',i); Se ingresan 10 números desde el teclado y la suma de solo números positivos se considera en el bucle. Si el número es negativo, entonces se ejecuta la instrucción continuar, que inicia el siguiente paso del bucle. s:=0; para I:= 1 a 10 comience Readln(k); si k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A := 7; ARRAYS Una matriz se declara en la sección Var: (Nombre) : Array [ (start_value) .. (end_value) ] of (type) ; Ejemplos de declaraciones de matrices: Var A: matriz de cadenas; B: Arreglo de Reales; C: matriz de enteros; Ejemplos de cómo llenar arreglos con valores: A:='Vasya'; A:='Petia'; A:='Masha'; A:='Olesia'; Escribe un); Para f:=1 a 10 hacer C[f] := f*2; Para f:=1 a 10 haga WriteLn(C[f]); 51 EJERCICIO 52 Escriba un programa que solicite al usuario 7 enteros y los almacene en una matriz. La matriz contiene el elemento máximo y se muestra en la pantalla. Por ejemplo: Introduzca el primer número: 4 Introduzca el segundo número: 8 Introduzca el tercer número: 9 Introduzca el cuarto número: 2 Introduzca el quinto número: 4 Introduzca el sexto número: 5 Introduzca el séptimo número: 0 Número máximo: 9 Material utilizado: Declaraciones de matrices:<Имя>:Formación[<нач_зн> … <кон_зн>] de<тип>; Acceso a la matriz:<Имя массива> [ <Индекс>] GENERADOR DE NÚMEROS ALEATORIOS (RNG) Para generar números aleatorios en el programa se utilizan los siguientes operadores: Randomize – Inicialización de RNG. Se declara solo al comienzo del programa; Aleatorio: genera un número aleatorio de 0 a 1 (tipo real); Aleatorio (N): genera un número aleatorio de 0 a N-1 (tipo entero); 53 ARREGLOS MULTIDIMENSIONALES 54 Lista de intervalos para cada dimensión del arreglo (Nombre) : Array [ (start_value) .. (end_value) , (start_value) .. (end_value) , (etc) ] of (type) ; Un ejemplo de declaración de una matriz bidimensional (matriz, tabla) con 4 filas y 6 columnas: Var A: matriz de enteros; Un ejemplo de cómo llenar una matriz: For i:=1 to 4 do For j:=1 to 6 do A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 EJERCICIO Escriba un programa que llene una matriz bidimensional con números aleatorios de -10 a 20 e imprima la suma de los elementos situados a lo largo de la diagonal de la mesa. Material utilizado: Inicialización RNG: Aleatorizar Número aleatorio de 0 a N-1: Aleatorio (N) 55 TRABAJO CON ARCHIVOS TRABAJO CON ARCHIVOS 57 [correo electrónico protegido]$ku⌂|"Hd9v*9(L*M=BYGRMxduB █ 8e*BOtCDrTVzHGJ1aBD>@B\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?Hq>vF(LmBcV^Adz4P4 .6b]o(Qk²8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o(Qk █ 8c8df]e"v,su>+),VAEFÁjFV,W$Q- █ y0G1GjN$-eÁ|sqZ0`QnВ%\BD%y █ █ █ - terminador de línea █ - archivo terminador Variable Creación, lectura, escritura, cierre TRABAJO CON ARCHIVOS La secuencia de acciones cuando se trabaja con archivos: 1. Declarar una variable de archivo (FP); 2. Asociar un FP con un archivo; 3. Abrir un archivo para lectura/escritura; 4. Operaciones con expediente 5. Cierre del expediente (también se rompe la conexión entre el expediente y el FP) 1. Declaración del FP<Имя>: Archivo de<тип> ; <Имя>:texto; Varf: Texto; h: Archivo de Entero; 2. Asociación de la FP con el archivo Assign (<ФП>, <имя файла>); Asignar (f, 'c:\my\Data.ghm') 58 TRABAJAR CON ARCHIVOS 3. Abrir un archivo para lectura/escritura Restablecer (<ФП>); - abre el archivo para leer Rewrite (<ФП>); - abre el archivo para escribir 4. Operaciones con el archivo Leer (<ФП>, <П1> , <П2>, …); - lee en variables<П1>, <П2>etc. un elemento en la posición del puntero. Escribe(<ФП> , <П1> , <П2>, …); - escribe los valores de las variables en el archivo<П1>, <П2>etc. un elemento en la posición del puntero. EoLn(<ФП>); - devuelve True si se ha llegado al final de la cadena. EoF(<ФП>); - devuelve True si se ha llegado al final del archivo. 5. Cerrar el archivo Cerrar (<ФП>); 59 TRABAJO CON ARCHIVOS Simplifica el programa si sabes que la matriz es 5x5 (usa el bucle For) 60 EJERCICIO 61 Escribe el programa "DOM-3". El primer archivo contiene los nombres de los participantes en el caso nominativo. En el segundo, los mismos nombres, pero en acusativo. En el tercero, una lista de expresiones de sentimientos o algún tipo de acción (ama, no ama, besa, quiere morder, ama, respeta, odia, quiere ver, abraza). El programa debe tomar aleatoriamente información de estos archivos y crear uno nuevo de acuerdo con el siguiente principio:<имя в им. пад> <чувство/действие> <имя в вин. пад> Olga ama a Sergey Oleg quiere ver a Roman Katya respeta a Nastya Etc. Material utilizado: Nombre de los operadores: Asignar, Reescribir, Restablecer, Escribir, Leer, Cerrar. GRÁFICOS GRÁFICOS Para trabajar con gráficos en Pascal, se necesitan dos archivos: el módulo graph.tpu y el controlador del adaptador gráfico egavga.bgi. El primero está en el directorio \UNITS y el segundo está en \BGI. ! controlador egavga.bgi. ¡Requerido cuando se ejecuta un archivo exe! Para dibujar, necesita: 1. conectar el módulo GRAPH (en la sección Usos); 2. inicializar gráficos (InitGraph); 3. dibujar algo; 4. cerrar el modo gráfico (CloseGraph) 63 GRÁFICOS Inicialización del modo gráfico Dibujar una línea. El bolígrafo va del punto (0,0) al punto (639, 479). PROGRAMA Cartilla_1; Utilice Gráfico, crt; VarGd,Gm: Entero; COMENZAR Gd:=0; InitGraph (Gd,Gm,'d:\BP\bgi"); Línea (0,0,639,479); ReadKey; CloseGraph; END. 639 px. Sistema de coordenadas 479 px. triángulo 2. Dibuja un rectángulo en el centro de la pantalla con lados dos veces más pequeños que los lados correspondientes de la pantalla Material utilizado: Módulo de gráficos: Graph Inicialización de gráficos: InitGraph Modo de gráficos de cierre: CloseGraph;GRAPHICS + COLOR SetColor(Color: word); Establece el color de la pluma GetColor: word; Devuelve el color del lápiz SetBkColor(color: palabra); Establece el color de fondo GetBkColor: palabra; Devuelve el color de fondo Colores Negro Azul Verde Cian Rojo Magenta Marrón LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 66 - negro - azul - verde - cian – rojo – lila – marrón – gris claro – gris oscuro – azul cielo – verde claro – cian claro – rosa – lila claro – amarillo – blanco PRIMIDADES GRÁFICAS Línea (x, y); Dibuja una línea desde la coordenada actual de la pluma hasta las coordenadas (x, y). MoveTo(x, y); Establece la pluma en las coordenadas (x, y). PutPixel(x, y, Color); Dibuja un punto en las coordenadas (x,y) con Color. GetPixel(x, y): palabra; Devuelve el color del punto en las coordenadas (x,y). Rectángulo(x1, y1, x2, y2); Dibuja el contorno de un rectángulo. Círculo (x, y, r); Dibuja un círculo con centro en (x,y) y radio r. SetLineStyle (Ln, 0, T) Cambia los parámetros de los contornos. Ln - estilo de línea (0..3): 67 x1, y1 T - grosor de línea: 1 = normal; 3 = grueso. RellenarElipse(x, y, xr, yr); Dibuja una elipse rellena centrada en (x,y) con radios Xr e Yr. EstablecerEstiloRelleno(Tipo, Color); Establece el tipo (0..11) y el color del sombreado de las formas cerradas ClearDevice; Borra la pantalla gráfica pintándola con el color de fondo actual x2, y2 PRIMIDADES GRÁFICAS 68 EJERCICIO 69 1. Escriba un programa que dibuje una casa en la pantalla del monitor; 2. Escriba un programa que dibuje un cielo estrellado en la pantalla del monitor con estrellas de radio aleatorio (de 1 a 5 píxeles) y ubicación aleatoria. El color también es aleatorio (blanco, gris claro, gris oscuro); Material utilizado: SetColor (Color: palabra); - Establece el color del dibujo SetBkColor (color: palabra); - Establece el color de fondo actual. línea (x, y); - Dibuja una línea desde la coordenada actual de la pluma hasta las coordenadas (x, y). MoveTo(x, y); - Establece la pluma en las coordenadas (x,y). PutPixel(x, y, Color); - Dibuja un punto con coordenadas (x,y) con Color. Rectángulo(x1, y1, x2, y2); - Construye un contorno de rectángulo a partir de líneas del color actual. Círculo (x, y, r); - Dibuja un círculo con centro en (x,y) y radio r. RellenarElipse(x, y, xr, yr); - Dibuja una elipse rellena centrada en (x,y) con radios Xr e Yr. GRÁFICOS + ANIMACIÓN Pausa en mseg. 70 SUBPROGRAMAS SUBPROGRAMAS Las subrutinas le permiten seleccionar una parte repetitiva del código en fragmentos separados e insertarlos en los lugares necesarios del programa. Una función, a diferencia de un procedimiento, devuelve el resultado de la llamada. Procedimientos Funciones Subrutinas: escritas entre palabras clave Comienzo Fin; se identifican por nombres, que se escriben de acuerdo con las reglas para especificar identificadores; puede tener parámetros de entrada y salida; repetir completamente la estructura del programa principal. 72 Programa Mi; Subrutina 1 [Código de subrutina 1] Subrutina 2 [Código de subrutina 2] Comenzar Subrutina 2 Subrutina 1 Ejemplo de rutinas del sistema: Write("OK"); ClrScr; Longitud (S); aleatorio; // // // // procedimiento con un parámetro procedimiento sin parámetros función con un parámetro función sin parámetros Subrutina 2 Fin. SUBPROGRAMAS (SPR) Anidamiento de subprogramas Programa Subprograma 1 Subprograma 3 Subprograma 4 Subprograma 2 . Los nombres de las variables descritas en la DEP pueden ser los mismos que los nombres de las variables de otras DEP (se puede declarar la misma variable en cada una de las DEP). El nombre de la variable descrita en el PPR blinda las variables del mismo nombre del PPR que encierra al dado (si se declaran las mismas variables en el PPR1 y PPR3, entonces estas variables serán únicas en cada PPR). Las variables de programa se denominan globales y las variables de subprograma se denominan locales. PROCEDIMIENTOS SIN PARÁMETROS Sintaxis del registro: Procedimiento (nombre del procedimiento); (Sección de variables, constantes, tipos, etiquetas, módulos) Begin (Cuerpo del procedimiento); fin; Ejemplo de uso de un procedimiento sin parámetros: 74 PROCEDIMIENTOS SIN PARÁMETROS Ejemplo de escape de variables del mismo nombre: Programa Mi_programa; Utiliza crt; varA:cadena; // Descripción del procedimiento Procedimiento My_Procedure; varA:cadena; Begin A:= "Subrutina"; escribir en (A); fin; Empezar A:= "Cuerpo"; escribir en (A); mi_procedimiento; escribir en (A); fin. // Llamada a procedimiento 75 PROCEDIMIENTOS CON PARÁMETROS 76 Para que las subrutinas sean más universales, se utilizan mecanismos especiales para el intercambio de datos entre el programa y sus subrutinas. Procedimientos del sistema con parámetros: SetColor (Rojo); ( Procedimiento con Rectangle (0, 0, 639, 479); ( Procedimiento con InitGraph (Gd,Gm,'d:\BP\bgi"); ( Procedimiento con ( parámetros un parámetro ) varios parámetros ) varios tipos diferentes ) ) Grabación procedimientos de sintaxis con parámetros Procedimiento (Nombre) ((Área de variables de entrada) Var (Área de variables de salida (cada variable tiene su propio Var))); Estructura de áreas: Variable_1, Variable_2, …: Tipo; .. ......... ............. Variable_N-1, Variable_N, ... : Tipo, cualquiera de las regiones puede estar ausente PROCEDIMIENTOS CON PARÁMETROS Uso de parámetros de entrada Procedimiento para dibujar un rectángulo que bordea la pantalla, color especificado Sin parámetros Con parámetros Procedimiento Cir; Begin SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Procedimiento Cir (i, b:Integer); Begin SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Llamada a un procedimiento en un programa: Llamada a un procedimiento en un programa: i:=6; b:=12; Cir; Cir (6, 12);77 PROCEDIMIENTOS CON PARÁMETROS Uso de parámetros de salida de un Procedimiento ra de convertir un ángulo de grados a radianes. PROGRAMA EX_26_3; VAR x,a: real; PROCEDIMIENTO Rad(alfa: real; var betta: real); (variable de salida) BEGIN Betta:= pi*alfa/180; FIN; BEGIN Write("Ingrese el ángulo en grados: "); readln(x); Rad(x, a); (Llamada a procedimiento) Writeln("Es igual al ángulo en radianes = ",a:6:4); FIN. 78 EJERCICIO 79 1. Escribe un procedimiento para dibujar un triángulo en el siguiente formato: Triángulo (x1,y1, x2,y2, x3,y3, Color) 2. Escribe un procedimiento para calcular el área de un rectángulo en el siguiente formato: SRect (a, b, S) donde S es el parámetro de salida del procedimiento. Material utilizado: Procedimiento (Nombre) ((Área variable de entrada) Var (Área variable de salida)); Estructura de área: Variable_1, Variable_2, … : Tipo; ........................ Variable_N-1, Variable_N, … : Tipo; FUNCIONES 80 Sintaxis de la función Función ((Área de variables de entrada) Var (Área de variables de salida)): (Tipo) ; Diseño de procedimientos Diseño de funciones Procedimiento S(a,b:real; var s:real); Comienzo s:= a+b; fin; Función Suma(a,b: real): real; Comienzo Suma:= a+b; fin; Llamada de procedimiento Llamada de función S(10, 20, A); Escribe un); R:= S(10, 20); EscribirLN(A); EscribirLN (S(20, 30)); Es recomendable diseñar alguna subrutina como función sólo si se espera algún resultado de su trabajo. Si una subrutina está enfocada únicamente a realizar una determinada secuencia de acciones (mostrar, dibujar, etc.), es mejor escribirla como un procedimiento. EJERCICIO Escriba una función para calcular el área de un rectángulo en el siguiente formato: SRect (a, b) Material utilizado: Función (Nombre) ((Variable de entrada área) Var (Variable de salida área)): (Tipo); Estructura de área: Variable_1, Variable_2, … : Tipo; ........................ Variable_N-1, Variable_N, … : Tipo; 81 MÓDULOS MÓDULOS 83 Una unidad (UNIT) es una unidad de programa independiente cuyos recursos (procedimientos y funciones) pueden ser utilizados por otros programas. ProgramaMi1; Utiliza Módulo1, Módulo2; __________________________ __________________________ ________________________________ __________________ MÓDULO 1 Kit de recursos 1 … Program My2; Utiliza Módulo1, Módulo2; __________________________ __________________________ ________________________________ __________________ MÓDULO N Conjunto de recursos N Los módulos se conectan al programa a través de la sección USOS DE MÓDULOS. ESTRUCTURA 84 El módulo consta de las siguientes partes: 1. Cabecera del módulo. 2. Parte de la interfaz. (descripciones de objetos visibles) 3. Parte de implementación. (descripciones de objetos ocultos) 4. Parte de inicialización (opcional). Unidad (nombre del módulo); Interfaz (Sección de variables globales, constantes, tipos) (Módulos) (Lista de encabezados de procedimientos y funciones) Implementación (Sección de variables locales, constantes, tipos) (Implementación de procedimientos y funciones) Begin (Parte de inicialización) End. ! ¡El nombre del encabezado del módulo debe coincidir con el nombre del archivo del módulo! MÓDULOS Ejemplo de módulo: Unidad Mi_Unidad; Interfaz Varms: Matriz de Real; ( Matriz global ) Función Cub(x:integer):Integer; (Función Cub = x^3) Función ext4(x:integer):Integer; ( Función ext4 = x^4 ) Función de implementación Cub(x:integer):Integer; (Implementación de la función Cub) Begin Cub:= x*x*x; fin; Función Ext4(x:entero):Entero; (Implementación de la función ext4) Begin Ext4:= x*x*x*x; fin; fin. 85 EJERCICIO 86 Escriba un módulo con una función y un procedimiento: ( Función cálculo X1=1/x ) X1(a:real):real; ( El procedimiento para imprimir la palabra S en la pantalla, en la posición X, Y WriteXY(S: String; X, Y: Iteger); Material utilizado (estructura del módulo): Unidad (Nombre del módulo); Interfaz ( Sección de variables globales, constantes, tipos) (módulos) (Lista de encabezados de procedimientos y funciones) Implementación (Sección de variables locales, constantes, tipos) (Implementación de procedimientos y funciones) Begin (Parte de inicialización) End.)