¿Cómo se llama el operador de salida del mensaje? Operador de E/S en Pascal. Una descripción de algunos tipos de datos estándar y las operaciones y funciones integradas que se les aplican. Operadores de salida

La interacción del programa con el entorno externo (usuario, otros programas, datos almacenados) es absolutamente necesaria. Responsable de dicha interfaz en lenguajes de programación. Declaraciones de E/S información. Estas instrucciones le permiten ingresar datos en el programa mientras el programa se está ejecutando (y no en la etapa de escritura) y generar los datos calculados en una forma comprensible para los humanos.

Estos comandos le permiten ingresar datos en variables individuales o en múltiples variables a la vez durante la ejecución del programa desde el teclado. Los elementos de la lista de entrada pueden ser nombres de variables, que deben completarse con valores ingresados ​​desde el teclado.

La ejecución de las declaraciones de entrada ocurre de la siguiente manera: el programa se suspende, se muestra un cursor en la pantalla y la computadora espera que el usuario proporcione un conjunto de datos para las variables cuyos nombres se indican en la lista de entrada. El usuario ingresa los signos necesarios usando el teclado en el orden en que los requiere la lista de entrada y presiona Enter. Después de esto, los datos escritos pasan a las variables correspondientes y la ejecución del programa continúa. Los datos de entrada están separados por espacios.

Al ingresar datos fuente se produce una transformación de la forma de representación externa a la interna, determinada por el tipo de variables. Las variables que componen la lista de entrada pueden ser de tipo entero, real o de caracteres. No se permite leer datos de origen booleanos.

La diferencia entre el funcionamiento de los operadores Read y Readln en Pascal es la siguiente: después de ejecutar Read, el valor del siguiente dato se lee de la misma línea, y después de ejecutar Readln, de una nueva línea.

Estos operadores le permiten mostrar datos de la lista de salida en la pantalla del monitor. Los elementos de la lista de salida pueden ser nombres de variables, expresiones y constantes. Antes de mostrar los valores de las expresiones, la computadora primero los evalúa. Los elementos de la lista, como en las declaraciones de entrada, están separados por comas.

La diferencia entre los dos operadores de salida en Pascal es la siguiente: después de ejecutar el operador Writeln (desde la línea Write), se produce una transición a una nueva línea, y después de ejecutar la instrucción Write, la transición a una nueva línea no ocurre y se imprime en posteriores comandos de salida Write o Writeln se producirán en la misma línea. Al llamar al operador Writeln sin parámetros, simplemente salta a una nueva línea.

En BASIC, cada nueva instrucción PRINT imprime valores en una nueva línea.

Las variables que componen la lista de salida pueden ser de tipo entero, real, de caracteres o booleano. Además de los nombres de las variables, se pueden utilizar expresiones y cadenas como elemento de la lista de salida.

Cada valor se envía a una línea de la pantalla de acuerdo con el ancho del campo de salida, determinado por la implementación específica del lenguaje.

La forma de representación de los valores en el campo de salida corresponde al tipo de variables y expresiones: los valores de tipo entero se muestran como números decimales enteros, de tipo real, como números decimales reales con orden decimal, de tipo tipo de carácter y cadena - en forma de caracteres, de tipo lógico - en forma de constantes lógicas VERDADERO y FALSO.

Considere el procedimiento para leer información de un archivo en Pascal.

Primero necesitas declarar una variable de archivo. Las variables de archivo tienen usos específicos. No puede realizar ninguna operación sobre ellos (asignar un valor, comparar, etc.). Sólo se pueden utilizar para realizar operaciones sobre archivos (lectura, escritura, etc.).

Antes de que pueda ocurrir E/S, se debe asociar una variable de archivo con un archivo externo específico mediante el procedimiento Asignar.

Asignar(<Имя файловой переменной>,<Имя файла>);

El nombre del archivo se especificará como una constante de cadena o mediante una variable de cadena. El nombre del archivo debe coincidir con las reglas del sistema operativo actualmente en ejecución. Si la línea de nombre está vacía, entonces la variable del archivo está asociada con un dispositivo de entrada/salida estándar (normalmente la consola).

Luego de esto, se deberá abrir el expediente mediante alguno de los procedimientos:

Reiniciar(<Имя файловой переменной>);

Se abre un archivo existente para lectura y el puntero del componente actual del archivo se establece al principio del archivo. Si el archivo físico correspondiente a la variable de archivo no existe, se produce una condición de error de E/S.

Volver a escribir(<Имя файловой переменной>);

Se abre un nuevo archivo vacío para escritura y se le asigna el nombre especificado por el procedimiento Asignar. Si ya existe un archivo con el mismo nombre, se destruye. Después de trabajar con un archivo, normalmente se debe cerrar mediante el procedimiento Cerrar.

Cerca(<Имя файловой переменной>);

Este requisito deberá cumplirse para el archivo en el que se realizó la grabación.

Al considerar un ejemplo del operador de asignación, nos enfrentamos a la necesidad de conocer el resultado de la ejecución del programa. Descubrimos cómo almacenar información (en variables), cómo procesarla (usando expresiones), pero dos procesos de información fundamentales quedaron fuera de nuestra atención: recibir información y transmitirla al mundo externo a la computadora. Hasta ahora, nuestros programas sólo pueden utilizar información que se encuentra directamente en el texto del programa. Tampoco fue posible saber qué valores tienen actualmente las variables. Programar en tales condiciones deja de tener sentido.

La interacción de los dispositivos de procesamiento y almacenamiento de información con medios externos (al menos con el usuario) es absolutamente necesaria. En Pascal, los operadores de entrada/salida de información son responsables de dicha interfaz. Estas instrucciones le permiten ingresar argumentos y parámetros de cálculo durante la ejecución del programa (y no en la etapa de escritura) y generar los datos calculados en una forma comprensible para los humanos.

Declaraciones de entrada (formatos de declaración):

Leer(<Список ввода>); Leer (<Список ввода>);

En este formato, estos comandos permiten ingresar datos en variables durante la ejecución del programa desde el teclado. Los elementos de la lista de entrada pueden ser nombres de variables, que deben completarse con valores ingresados ​​desde el teclado. La ejecución de las declaraciones de entrada ocurre de la siguiente manera: el programa se suspende, se muestra un cursor en la pantalla y la computadora espera que el usuario proporcione un conjunto de datos para las variables cuyos nombres se indican en la lista de entrada. El usuario ingresa los valores requeridos desde el teclado en el orden en que los requiere la lista de entrada y presiona Enter. Después de esto, los datos escritos pasan a las variables correspondientes y la ejecución del programa continúa.

Nota: Los datos ingresados ​​están separados por espacios.

La diferencia entre el funcionamiento de los procedimientos Read y Readln (desde la línea Read) es la siguiente: después de ejecutar Read, el valor de los siguientes datos se lee desde la misma línea, y después de ejecutar Readln, desde una nueva línea.

También hay dos comandos para mostrar información en Pascal:

Escribir(<Список вывода>); Escribir(<Список вывода>);

Este formato de uso de Write y Writeln le permite mostrar datos de la lista de salida en la pantalla del monitor. Los elementos de la lista de salida pueden ser nombres de variables, expresiones y constantes. Antes de mostrar los valores de las expresiones en la pantalla, la computadora primero los calculará. Los elementos de la lista, como en las declaraciones de entrada, están separados por comas. La diferencia entre los dos operadores de salida es la siguiente: después de ejecutar el operador Writeln (desde la línea Write), se produce una transición a una nueva línea, y después de ejecutar la instrucción Write, la transición a una nueva línea no ocurre y se imprime en las siguientes Los comandos de salida Write o Writeln se producirán en la misma línea. Al llamar al operador Writeln sin parámetros, simplemente salta a una nueva línea.

A continuación se muestra un ejemplo del uso de los operadores de entrada y salida:

Interfaz del programa;

Write("Ingrese el radio del círculo"); (Imprimir en la pantalla solicitando información)

Leer(R); (Introduciendo el valor en

variable R desde el teclado)

S:=4*ARCTAN(1)*SQR(R); (Calcular el área de un círculo (pR2))

Writeln("El área de un círculo con radio ",R," es ",S)

Este programa solicita al usuario el radio de un círculo, brinda la posibilidad de ingresar su valor, calcula y muestra el área de un círculo con este radio. Por lo tanto, es posible, sin realizar cambios en el texto del programa, ingresar diferentes valores de radio y obtener los valores correspondientes del área del círculo. Para hacer esto, simplemente ejecute el programa varias veces. Este programa también demuestra la siguiente regla: la salida de los resultados debe comentarse para que el significado de los números impresos sea claro. De hecho, uno podría limitarse a Writeln(S), pero el significado del número generado por el programa en este caso sería claro sólo para quien escribió el programa.

Para ver el resultado de este programa, primero debe compilarse. Puede hacer esto en Pascal presionando la combinación de teclas Ctrl+F9. Se comprobará si hay errores en el programa (si se encuentra alguno, recibirá un mensaje en la parte superior de la pantalla y el cursor se moverá a la ubicación del error). Si no se encuentran errores, se mostrará el resultado y podrá verlo presionando la combinación de teclas Alt+F5.

Escribir un programa en Pascal es similar a escribir un archivo de texto normal, solo que para esto se utiliza el entorno TurboPascal. Puede iniciarlo desde su escritorio.

Ejemplo. Determine el volumen y el área de la superficie lateral de un cilindro con un radio de base R dado y una altura H.

Cilindro de programa;

R, (radio de la base del cilindro)

H, (altura del cilindro)

V, (volumen del cilindro)

S: reales; (superficie lateral del cilindro)

Write("Ingrese la altura del cilindro: "); LeerLn(H);

Write("Ingrese el radio base: "); LeerLn(R);

V:= Pi*R*R*H;

S:= 2*Pi*R*H; EscribirLn;

WriteLn("Volumen del cilindro = ", V: 5: 2); (Aquí 5 es el número total de posiciones ocupadas por la variable V durante la salida, y 2 es el número de posiciones en la parte fraccionaria del valor V)

WriteLn("Área de superficie lateral = ",);

Asignación de laboratorio.

1. Calcula la circunferencia, el área de un círculo y el volumen de una bola del mismo radio dado.

2. Calcula el valor de la función y = 3x 2 + 4(sin(x)- x 3)

Si recuerda, al considerar un ejemplo del operador de asignación, nos enfrentamos a la necesidad de averiguar el resultado de la ejecución del programa. Descubrimos cómo almacenar información (en variables), cómo procesarla (usando expresiones), pero dos procesos de información fundamentales quedaron fuera de nuestra atención: recibir información y transmitirla al mundo externo a la computadora. Hasta ahora, nuestros programas sólo pueden utilizar información que se encuentra directamente en el texto del programa. Tampoco fue posible saber qué valores tienen actualmente las variables. Programar en tales condiciones deja de tener sentido.

La interacción de los dispositivos de procesamiento y almacenamiento de información con el entorno externo (al menos con el usuario) es absolutamente necesaria. En Pascal, los operadores de entrada/salida de información son responsables de dicha interfaz. Estas instrucciones le permiten ingresar argumentos y parámetros de cálculo durante la ejecución del programa (y no en la etapa de escritura) y generar los datos calculados en una forma comprensible para los humanos.

Primero las declaraciones de entrada (formatos de declaración):

Leer(<Список ввода>);

Leer (<Список ввода>);

En este formato, estos comandos permiten ingresar datos en variables durante la ejecución del programa desde el teclado. Los elementos de la lista de entrada pueden ser nombres de variables, que deben completarse con valores ingresados ​​desde el teclado.

La ejecución de las declaraciones de entrada ocurre de la siguiente manera: el programa se suspende, se muestra un cursor en la pantalla y la computadora espera que el usuario proporcione un conjunto de datos para las variables cuyos nombres se indican en la lista de entrada. El usuario ingresa los valores requeridos desde el teclado en el orden en que los requiere la lista de entrada y presiona Enter. Después de esto, los datos escritos pasan a las variables correspondientes y la ejecución del programa continúa.

Nota: Los datos ingresados ​​están separados por espacios.

La diferencia entre el funcionamiento de los procedimientos Read y Readln (desde la línea Read) es la siguiente: después de ejecutar Read, el valor de los siguientes datos se lee desde la misma línea, y después de ejecutar Readln, desde una nueva línea.

También hay dos comandos para mostrar información en Pascal:

Escribir(<Список вывода>);

Escribir(<Список вывода>);

Este formato de uso de Write y Writeln le permite mostrar datos de la lista de salida en la pantalla del monitor. Los elementos de la lista de salida pueden ser nombres de variables, expresiones y constantes. Antes de mostrar los valores de las expresiones en la pantalla, la computadora primero los calculará. Los elementos de la lista, como en las declaraciones de entrada, están separados por comas.

La diferencia entre los dos operadores de salida es la siguiente: después de ejecutar el operador Writeln (desde la línea Write), se produce una transición a una nueva línea, y después de ejecutar la instrucción Write, la transición a una nueva línea no ocurre y se imprime en las siguientes Los comandos de salida Write o Writeln se producirán en la misma línea. Al llamar al operador Writeln sin parámetros, simplemente salta a una nueva línea.

A continuación se muestra un ejemplo del uso de los operadores de entrada y salida:

Interfaz del programa;

Write("Ingrese el radio del círculo"); (Imprimir en la pantalla solicitando información)

Leer(R); (Ingresando un valor en la variable R desde el teclado)

S:=4*ARCTAN(1)*SQR(R); (Calcular el área de un círculo (pR2))

Writeln("El área de un círculo con radio ",R," es ",S)

Este programa solicita al usuario el radio de un círculo, brinda la posibilidad de ingresar su valor, calcula y muestra el área de un círculo con este radio. Por lo tanto, es posible, sin realizar cambios en el texto del programa, ingresar diferentes valores de radio y obtener los valores correspondientes del área del círculo. Para hacer esto, simplemente ejecute el programa varias veces. Este programa también demuestra la siguiente regla: la salida de los resultados debe comentarse para que el significado de los números impresos sea claro. De hecho, uno podría limitarse a Writeln(S), pero el significado del número generado por el programa en este caso sería claro sólo para quien escribió el programa.

OPERADORES DE ENTRADA Y SALIDA

Consideremos la organización de la entrada y salida de datos desde un dispositivo terminal. Un dispositivo terminal es un dispositivo con el que interactúa el usuario, normalmente una pantalla (display) y un teclado. Para la entrada y salida de datos se utilizan procedimientos estándar de entrada y salida de Lectura y Escritura, operando con archivos secuenciales estándar INPUT y OUTPUT.

Estos archivos se dividen en líneas de longitud variable, separadas entre sí por un terminador de línea. El final de la línea se especifica presionando la tecla ENTER.

Para ingresar datos de origen, se utilizan operadores de procedimiento de entrada:

Leer(A1,A2,...AK);

LeerLn(A1,A2,...AK);

El primero de ellos implementa la lectura de valores K de los datos fuente y la asignación de estos valores a las variables A1, A2,..., AK. El segundo operador implementa la lectura de K valores de los datos de origen, omitiendo los valores restantes hasta el comienzo de la siguiente línea y asignando los valores leídos a las variables A1, A2,..., AK. El tercer operador implementa saltar una línea de datos de origen.

Al ingresar datos fuente se produce una transformación de la forma de representación externa a la interna, determinada por el tipo de variables. Las variables que componen la lista de entrada pueden ser de tipo entero, real o de caracteres. No se permite leer datos de origen booleanos en PASCAL.

Las declaraciones de entrada al leer valores de variables de tipo entero y real omiten los espacios que preceden al número. Al mismo tiempo, estos operadores no omiten los espacios que preceden a los valores de las variables de caracteres, ya que los espacios son caracteres iguales en las cadenas. Un ejemplo de escritura de declaraciones de entrada:

var rV, rS: Real;

iW, iJ: Entero;

................

Leer(rV, rS, iW, iJ);

Los valores de los datos de origen se pueden separar entre sí mediante espacios y presionando las teclas Tabulador e Intro.

Para mostrar los resultados del programa en pantalla se utilizan los siguientes operadores:

Escribir(A1,A2,...AK);

EscribirLn(A1,A2,...AK);

El primero de estos operadores implementa la salida de los valores de las variables A1, A2,...,AK a una línea de la pantalla. El segundo operador implementa la salida de los valores de las variables A1, A2, ..., AK y la transición al comienzo de la siguiente línea. El tercer operador implementa saltar una línea y pasar al comienzo de la siguiente línea.

Las variables que componen la lista de salida pueden ser de tipo entero, real, de caracteres o booleano. Además de los nombres de las variables, se pueden utilizar expresiones y cadenas como elemento de la lista de salida.

Cada valor se envía a una línea de la pantalla de acuerdo con el ancho del campo de salida, determinado por la implementación específica del lenguaje.

La forma de representación de los valores en el campo de salida corresponde al tipo de variables y expresiones: los valores de tipo entero se muestran como números enteros decimales, de tipo real, como números decimales reales con orden decimal, del carácter tipo y cadena - como caracteres, del tipo lógico - como constantes lógicas VERDADERO y FALSO.

El operador de salida le permite establecer el ancho del campo de salida para cada elemento de la lista de salida. En este caso, el elemento de la lista de salida tiene la forma A:K, donde A es una expresión o cadena, K es una expresión o una constante entera. Si el valor de salida ocupa menos posiciones en el campo de salida que K, se colocan espacios antes de este valor. Si el valor mostrado no cabe en el ancho del campo K, se asignará el número requerido de posiciones para este valor. Para valores de tipo real, un elemento de la lista de salida puede tener la forma A:K:M, donde A es una variable o expresión de tipo real, K es el ancho del campo de salida, M es el número de dígitos de la parte fraccionaria del valor de salida. K y M son expresiones o constantes de tipo entero. En este caso, los valores reales se emiten en formato decimal con coma fija. Un ejemplo de escritura de declaraciones de salida:

. . . . . . . . . . . .

var rA, rB: Real; iP,iQ:Entero;

bR, bS: booleano; chT, chV, chU, chW: Char;

. . . . . . . . . . . .

EscribirLn(rA, rB:10:2);

EscribirLn(iP, iQ:8);

EscribirLn(bR, bS:8);

WriteLn(chT, chV, chU, chW);

Etiquetas. Operador de salto incondicional.

Cada casa en la calle tiene su propio número, cada persona tiene su propio nombre, incluso las celdas de memoria de la computadora tienen cada una su propia dirección. Todo esto se toma para poder indicar inequívocamente el objeto que se está definiendo. De manera similar, las etiquetas se utilizan para indicar declaraciones en programas.

Una etiqueta en el estándar del lenguaje Pascal es un número entero no negativo. Todas las etiquetas utilizadas en el programa deben aparecer en la sección de descripción de la etiqueta, comenzando con la palabra de servicio Etiqueta, por ejemplo:

Sólo se puede marcar una declaración con una etiqueta. La etiqueta está separada de la declaración marcada por dos puntos.

6: Escritura(14/2);

En todos los programas dados anteriormente, las declaraciones se ejecutaron una tras otra en el orden en que fueron escritas en el texto. Esta estructura algorítmica se llama sucesión directa. Sin embargo, en el lenguaje Pascal existe inicialmente un operador que interrumpe la ejecución lineal del programa, transfiriendo el control a un punto arbitrario. Esta instrucción se llama salto incondicional y tiene el siguiente formato:

Ir a<метка>;

El operador al que se produce la transición debe estar marcado con esta etiqueta.

El operador de salto incondicional debe usarse con extrema precaución para evitar obtener resultados erróneos o realizar un bucle completo del programa. En general, el uso de este comando entre los programadores se considera de mala educación. Como verás, siempre es posible prescindir de él.

ELEMENTOS DE PROGRAMACIÓN ESTRUCTURADA

Un programa estructurado (o subprograma) es un programa compuesto por un conjunto fijo de construcciones básicas. Consideremos las definiciones y métodos básicos para formar estas construcciones en esquemas algorítmicos.

A partir de operaciones, bifurcaciones y fusiones se construyen estructuras básicas: seguimiento, ramificación, ciclo. Usando solo estas tres construcciones, puedes implementar un algoritmo para resolver cualquier problema.

Una construcción que representa la ejecución secuencial de dos o más operaciones se denomina a continuación.

Una construcción que consta de una bifurcación, dos operaciones y una fusión se denomina bifurcación. Es posible que falte una de las operaciones.

Un diseño que tiene líneas de control que conducen a operaciones o ramas anteriores se llama bucle.

Las siguientes construcciones de bifurcación y bucle pueden considerarse operaciones porque tienen una única entrada y una única salida. Una secuencia arbitraria de operaciones se puede representar como una sola operación.

La operación puede ser implementada por cualquier operador del lenguaje PASCAL (simple o compuesto), o un grupo de operadores, con la excepción del operador de transición GOTO.

En el lenguaje PASCAL se ha aumentado el número de estructuras básicas a seis, estas son:

Siguiente;

Derivación;

Bucle con condición previa;

Bucle con poscondición;

Bucle con parámetro;

Operador condicional

Una de las principales estructuras algorítmicas es la ramificación (alternativa).

Si se cumple la condición, se ejecutará la instrucción "1"; de lo contrario, se ejecutará la instrucción "2". Aunque hay dos acciones en el circuito, solo se ejecutará una porque la condición es falsa o verdadera. No hay un tercero. Este esquema permite resolver problemas en los que, dependiendo de las circunstancias imperantes, es necesario realizar una u otra acción. No hay duda de que el número de problemas de este tipo es enorme. Además, es muy difícil idear una tarea realmente importante cuyo algoritmo de ejecución contenga una secuencia directa simple de comandos. Como verá, ni siquiera un ejemplo primitivo tomado de un curso de matemáticas puede resolverse sin utilizar ramificaciones. Entonces, es necesario calcular el valor de la expresión y=1/x. Sabes que una función determinada no siempre tiene un valor, es decir, no todos los valores de los argumentos tienen un valor de resultado. Nuestra tarea es componer el algoritmo de tal manera que el ejecutor nunca llegue a un callejón sin salida, incluso cuando reciba cero como argumento. No es difícil formular esto en lenguaje natural:

1. Obtenga el valor de x.

2. Si x=0, entonces informe que la expresión no tiene valor; de lo contrario, calcule y como 1/x.

La estructura algorítmica anterior se utiliza de esta manera. Se puede expresar en palabras sencillas:

Si<усл.>(Si se cumple la condición)

Eso<действие 1>(luego realiza la acción número 1)

de lo contrario<действие 2>(de lo contrario, realice la acción número 2)

¿Cómo escribir esto en Pascal? Sí, exactamente igual, sólo que en inglés.

Formato del operador condicional en Pascal:

Si<условие>

Entonces<оператор 1>

Demás<оператор 2>;

Tenga en cuenta que solo hay una declaración en las partes Entonces y Elo. Pero, ¿qué hacer para solucionar un problema en el que, para satisfacer o no una condición, es necesario realizar no una, sino varias acciones? Aquí es donde el operador del recinto que ya conoce viene al rescate. Puede encerrar cualquier número de operadores entre corchetes de operador.

Una variante del operador condicional en este caso:

Si<условие>

Entonces comienza<группа операторов 1>fin

De lo contrario comenzar< группа операторов 2>fin;

El punto y coma no se coloca antes de la palabra funcional Else, pero las declaraciones en grupos están naturalmente separadas entre sí por este punto y coma.

Ahora hablemos de las condiciones. En los programas Pascal, las condiciones son expresiones cuyo valor es un valor booleano. Puede ser una variable simple del tipo especificado o una secuencia compleja de declaraciones conectadas por operaciones lógicas.

En condiciones simples, se pueden utilizar operadores de comparación: >(mayor que),<(меньше), =(равно), <>(no igual), >= (mayor o igual),<=(меньше или равно).

Ejemplos de condiciones simples: A=5 (El valor de la variable A es 5)

(C+D3)>=(D1*(45-2)) (El valor de la expresión del lado izquierdo es mayor o igual que el valor de la expresión del lado derecho)

S<>"ABC" (El valor de la variable S no es igual a la constante de cadena "ABC")

Pongamos un ejemplo de resolución de otro problema: "Elija el mayor de dos números".

A primera vista, la solución es obvia, pero no es tan trivial como parece.

Ejemplo de programa;

Var A, B, C: Real; (A,B - para almacenar argumentos, C - resultado)

Writeln("Ingrese dos números");

Leer(A,B); (Ingrese argumentos desde el teclado)

Si A>B Entonces C:=A Si no C:=B; (Si A>B, entonces el resultado es A, de lo contrario el resultado es B)

Escribir(C); (Mostramos el resultado en pantalla)

Otro ejemplo clásico: "Resolver una ecuación cuadrática usando los coeficientes dados". Esta tarea es más complicada, así que antes de escribir el programa, creemos un algoritmo, escribiéndolo en forma de diagrama de bloques. Primero, ingresamos los coeficientes y luego calculamos el discriminante. Ahora surgen dos posibilidades: o no hay raíces reales en el caso de un discriminante negativo, o estas raíces aún se pueden calcular y mostrar en el caso de un discriminante no negativo (aquí se incluye el caso de que el discriminante sea igual a cero). , hay dos raíces, solo que son iguales J).

Al escribir un algoritmo en un lenguaje de programación, debes tener en cuenta que en la rama “no” no hay una acción, sino tres, por lo que debes utilizar un operador compuesto. No olvides escribir expresiones aritméticas de acuerdo con las reglas del lenguaje Pascal. Por lo demás, este programa no es más complicado que el anterior.

Var A, B, C, D, X1, X2: Real;

Writeln("Ingrese los coeficientes de la ecuación cuadrática");

Si D<0 Then Writeln ("Корней нет! ")

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

Es interesante que un operador condicional pueda actuar como un operador que se ejecuta cuando se cumple o no una condición. En este caso, hablamos de anidar declaraciones condicionales. Al resolver problemas de este tipo, recomiendo encarecidamente elaborar un diagrama de flujo del algoritmo en un cuaderno. Sólo entonces, al redactar el programa, todo lo que tiene que hacer es escribir cuidadosamente toda la parte Entonces primero y luego pasar a la parte Else. Normalmente, al escribir declaraciones condicionales en Pascal (especialmente con múltiples ramas), los comandos se escriben con sangría hacia la derecha y hacia abajo. Esto aumenta la visibilidad y, créanme, reduce el tiempo perdido en la depuración.

Para ilustrar, resolvamos otro problema: “resolver una ecuación de la forma A*x^2 + B*x + C = 0”. No lo confunda con una ecuación cuadrática, para la cual sabíamos que el coeficiente A no es igual a cero. Aquí los coeficientes pueden ser cualquier número. Basándonos en un razonamiento matemático elemental, obtenemos el siguiente algoritmo:

Var A, B, C, D, X, X1, X2: Real;

Writeln("Ingrese los coeficientes de la ecuación (A, B, C)");

Si C=0 Entonces Writeln("X es cualquier número")

Else Writeln("¡Sin raíces!")

De lo contrario, comience X:=-C/B; Writeln("X=",X:8:3) Fin

Si D<0 Then Writeln ("Корней нет! ")

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

Escribir("X1=", X1:8:3, " X2=",X2:8:3)

Ciclo. Tipos de Ciclos.

Un ciclo es la repetición repetida del mismo tipo de acción. El cuerpo del ciclo serán esas mismas acciones que deberán repetirse muchas veces.

Como comprenderá, puede repetir las mismas acciones utilizando el operador de salto incondicional. Si escribe estas acciones en el programa una tras otra, y al final coloca un operador de salto al comienzo de este bloque. Sin embargo, de esta manera sólo puede obtener un programa que se ejecute eternamente (bucles). Esto se puede evitar utilizando un operador condicional junto con el operador de transición, haciendo que la ejecución de la transición dependa del cumplimiento de una determinada condición. Así, obtendremos la estructura de un salto condicional y la capacidad de organizar un bucle final. En términos generales, de esta forma podemos resolver casi cualquier problema que requiera la implementación de un algoritmo cíclico. Por supuesto, con un solo hacha se puede construir una casa. Preguntémonos: "¿Será hermosa esta casa? ¿Cuánto tiempo y esfuerzo puedes ahorrar usando todo tipo de herramientas especiales?" ¿Para qué? - Por comodidad, brevedad, facilidad de lectura del programa y, me atrevo a decir, belleza. Entonces, hay tres tipos de bucles que tienen sus propios operadores Pascal para escribirlos. Estos tipos tienen sus propios nombres convencionales: "Mientras", "Antes", "Con parámetro". Son algo diferentes entre sí y cada uno se utiliza para su propia clase de tareas.

Ciclo "ADIÓS"

Un grupo de operadores llamado "cuerpo del bucle", a juzgar por este diagrama, se ejecutará siempre que la condición del bucle sea verdadera. El bucle sale cuando la condición ya no es verdadera.

Si la condición es falsa inicialmente, entonces el cuerpo del bucle no se ejecutará ni una sola vez. Si la condición es inicialmente verdadera y no hay acciones en el cuerpo del bucle que afecten la verdad de esta condición, entonces el cuerpo del bucle se ejecutará un número infinito de veces. Esta situación se llama "bucle". Un programa en bucle se puede interrumpir mediante una declaración (presionando Ctrl+C) o mediante una parada de emergencia del programa en sí, en caso de desbordamiento de variable, división por cero, etc., por lo tanto, la estructura de bucle debe usarse con precaución, entendiendo bien que la ejecución repetida a veces debería terminar alguna vez.

En Pascal, la estructura del bucle While se escribe de la siguiente manera:

Mientras<условие>Hacer<оператор>;

¿De verdad, de manera sucinta? En ruso se puede leer esto: "Mientras la condición sea verdadera, ejecute la declaración". Aquí, al igual que en el formato de declaración condicional, solo se debe ejecutar una declaración. Si es necesario realizar varias acciones, se puede utilizar un operador compuesto. Entonces el formato del operador toma la siguiente forma:

Mientras<условие>Hacer

<оператор #1>;

<оператор #2>;

<оператор #3>;

Ciclo "ANTES"

Este tipo de bucle se diferencia del anterior principalmente en que la comprobación de la condición de repetición del cuerpo del bucle no se realiza antes, sino después. Por lo tanto, el ciclo "Antes" se denomina ciclo "con poscondiciones" y el "Mientras" se denomina ciclo "con precondiciones".

Tenga en cuenta también que una nueva iteración (nueva ejecución del cuerpo del bucle) no ocurre cuando la condición es verdadera, sino precisamente cuando es falsa. Es por eso que el bucle recibió su nombre (ejecutar el cuerpo del bucle hasta que se cumpla la condición correspondiente).

10. Operadores de entrada y salida

Consideremos la organización de la entrada y salida de datos desde un dispositivo terminal.

enjambres. El dispositivo terminal es el dispositivo que trabaja con

usuario, generalmente una pantalla (display) y un teclado.

Los procedimientos de entrada estándar se utilizan para ingresar y generar datos.

y salida de lectura y escritura que opera en archivos secuenciales estándar

Entrada y salida.

Estos archivos se dividen en líneas de longitud variable, separadas por cada

entre sí mediante un signo del final de la línea. El final de la línea se especifica presionando la tecla.

Para ingresar datos de origen, se utilizan operadores de procedimiento de entrada:

Leer(A1,A2,...AK);

LeerLn(A1,A2,...AK);

El primero de ellos implementa la lectura de valores K de los datos fuente y la aplicación.

asignando estos valores a las variables A1, A2,..., AK. Segundo operador

implementa la lectura de valores K de los datos de origen, omitiendo los valores restantes

hasta el inicio de la siguiente línea, asignando los valores leídos al

variable A1, A2, ..., AK. El tercer operador implementa el salto de línea usando

datos en ejecución.

Al ingresar los datos de origen, se produce una transformación desde el exterior.

forma de representación en una interna, determinada por el tipo de variables. Educación física-

Las variables que forman la lista de entrada pueden pertenecer a un número entero,

ya sean tipos reales o de personajes. fuente de lectura

El tipo de datos booleano no está permitido en PASCAL.

Declaraciones de entrada al leer los valores de variables enteras y variables.

El tipo real omite los espacios que preceden al número.

Además, estos operadores no omiten los espacios que preceden al valor.

ciones de variables de carácter, ya que los espacios son iguales

caracteres de cadena. Un ejemplo de escritura de declaraciones de entrada:

var rV, rS: Real;

iW, iJ: Entero;

................

Leer(rV, rS, iW, iJ);

Los valores de los datos de origen se pueden separar por espacios.

y presionando las teclas Tab y Enter.

Para mostrar los resultados del programa en la pantalla, utilice

operadores:

Escribir(A1,A2,...AK);

EscribirLn(A1,A2,...AK);

El primero de estos operadores implementa la salida de los valores de las variables A1,

A2,...,AK línea de la pantalla El segundo operador implementa la salida.

valores de las variables A1, A2,..., AK y transición al comienzo de la siguiente

líneas. El tercer operador implementa saltarse una línea e ir al principio.

Proxima linea.

Las variables que componen la lista de salida pueden hacer referencia a un número entero,

tipos reales, de caracteres o booleanos. como elemento

En la lista de salida, además de los nombres de las variables, se pueden utilizar expresiones.

y líneas.

Cada valor se envía a una línea de la pantalla de acuerdo con

dependiendo del ancho del campo de salida específico de la implementación

La forma de presentación de valores en el campo de salida corresponde al tipo

expresiones y expresiones: los valores de tipo entero se generan como decenas enteras

números reales - como decimales reales

números con orden decimal, tipo de caracteres y cadenas, en forma de símbolos

bueyes, tipo lógico - en forma de constantes lógicas VERDADERO y FALSO.

El operador de salida le permite establecer el ancho del campo de salida para cada

elemento de la lista de salida.

el elemento de la lista de salida tiene la forma A:K, donde

A - expresión o cadena, K - expresión o constante entera.

Si el valor de salida ocupa menos posiciones en el campo de salida que K,

entonces este valor está precedido por espacios si el valor de salida es.

no encaja en el ancho del campo K, entonces para este valor habrá una apertura

Se proporciona el número requerido de posiciones. Para valores reales

un elemento de la lista de salida puede tener la forma A:K:M, donde A es una variable o expresión

definición del tipo real, K - ancho del campo de salida, M - número de dígitos

parte fraccionaria del valor de salida K y M - expresiones o constantes.

tipo entero. En este caso, los valores reales se muestran en el formulario.

número decimal de coma fija.

Un ejemplo de escritura de declaraciones de salida:

. . . . . . . . . . . .

var rA, rB: Real;iP,iQ:Entero;

bR, bS: booleano; chT, chV, chU, chW: Char;

. . . . . . . . . . . .

EscribirLn(rA, rB:10:2);

EscribirLn(iP, iQ:8);

EscribirLn(bR, bS:8);

Al ingresar información inicial y generar resultados, cualquier programa interactúa con dispositivos externos. Un caso especial de intercambio de datos con dispositivos externos es el intercambio con la consola. La consola es una combinación de teclado y pantalla de monitor.

Veamos las formas de organizar la entrada y salida de información proporcionada por el lenguaje de programación Pascal.

Procedimiento de entrada

La entrada de datos es el proceso de transferir datos de origen desde un dispositivo externo a la RAM.

El dispositivo de entrada externo suele ser un teclado o un archivo de datos.

Para ingresar datos desde el teclado en Pascal se utilizan los procedimientos read y readln, teniendo el siguiente formato:

  • leer(lista);
  • readln(lista);

El procedimiento readln es similar al procedimiento read, la única diferencia es que después de leer el último valor de una variable de la lista, la siguiente entrada de datos se mueve al comienzo de una nueva línea.

El elemento “lista” es una lista separada por comas de nombres de variables cuyos valores se ingresarán desde el teclado (tenga en cuenta que la lista puede estar vacía), por ejemplo:

  • leer(a, b, c);
  • leer;

Los valores ingresados ​​deben estar separados por espacios en blanco (espacio, tabulación, nueva línea) y su número no está limitado. La entrada de datos para un procedimiento se completa presionando la tecla Enter. Si el procedimiento readln se utiliza sin parámetros, espera a que se presione la tecla Enter.

ATENCIÓN: los valores ingresados ​​deben coincidir con los tipos de las variables, de lo contrario ocurre un error (por ejemplo, la variable b es de tipo entero, pero la entrada es un número real).

Procedimiento de retiro

La salida es el proceso de transferir datos después del procesamiento desde la RAM a un dispositivo externo.

Para mostrar datos en pantalla en Pascal se utilizan los procedimientos write y writeln, los cuales tienen la siguiente forma:

  • escribir(lista);
  • escribir(lista);

Si utiliza el procedimiento de escritura, después de mostrar el último elemento de la lista en la pantalla, el cursor permanecerá en la misma línea. La rutina writeln, una vez completada la salida, mueve el cursor a la siguiente línea. Si no se pasan parámetros al procedimiento writeln, el cursor simplemente se mueve a la siguiente línea.

Reglas para registrar los parámetros del procedimiento de salida.

  1. La lista de salida está separada por comas.
  2. La lista de salida puede contener variables, constantes y expresiones.
  3. Para generar cualquier valor, puede configurar el formato del campo de salida: el número de posiciones en las que se colocará el valor (indicado inmediatamente después del valor de salida, separado por dos puntos):
    • si el valor del valor mostrado es más corto, entonces se "presiona" hacia el borde derecho del campo asignado; de lo contrario, el campo se "expande" al tamaño requerido;
    • Para números reales, el formato del campo de salida brinda la posibilidad de especificar el número de posiciones que se mostrarán y las asignadas para la parte fraccionaria del número (el punto decimal también ocupa una posición).

Por ejemplo:

  • writeln("a = ", a:2, " ", 10 + sqrt(a):2:4, " ", pi:4:2);


gastrogurú 2017