Cómo dibujar un diagrama de bloques de algoritmos paralelos. Representación de algoritmos en forma de diagramas de bloques.

31.01.2019 aprenderpascal

Entonces, habiendo omitido los largos y tediosos elogios a Pascal, que a los editores de muchos sitios les encanta publicar en sus artículos, pasemos directamente a lo más básico: la programación.

En las escuelas, por regla general, el estudio de Pascal comienza con la resolución de los problemas más simples, elaborando varios algoritmos o diagramas de flujo, que muchos a menudo ignoran, considerándolos una tontería inútil. Pero en vano. Yo, como cualquier otra persona que sabe al menos un poco de programación (no importa dónde, en Pascal, C, Delphi), puedo asegurarles que la capacidad de elaborar diagramas de manera correcta y rápida es la base, la base de la programación.

El diagrama de flujo es una representación gráfica de un algoritmo. Consta de bloques de funciones que realizan diversos propósitos (entrada/salida, inicio/fin, llamada de función, etc.).

Hay varios tipos principales de bloques que son fáciles de recordar:

Decidí dedicar la lección de hoy no solo al estudio de diagramas de flujo, sino también al estudio de algoritmos lineales. Como recordará, un algoritmo lineal es el tipo de algoritmo más simple. Su característica principal es que no contiene ninguna característica. Esto es precisamente lo que hace que trabajar con él sea sencillo y agradable.

Esta tarea no debería presentar ninguna dificultad especial, ya que se basa en fórmulas para calcular el área y el perímetro de un rectángulo que todos conocemos, por lo que no nos obsesionaremos en deducir estas fórmulas.

Creemos un algoritmo para resolver tales problemas:

1) Lee el problema.
2) Escriba las variables conocidas y desconocidas para nosotros en "dado". (En el problema No. 1, las variables conocidas incluyen los lados: a, b; las variables desconocidas son el área S y el perímetro P)
3) Recuerda o crea las fórmulas necesarias. (Tenemos: S=a*b; P=2*(a+b))
4) Haz un diagrama de bloques.
5) Escriba la solución en el lenguaje de programación Pascal.

Escribamos la condición de una forma más concisa.

Encontrar: S, P

Solución al problema número 1.

La estructura del programa que soluciona este problema también es sencilla:

  • 1) Descripción de variables;
  • 2) Ingresar los valores de los lados del rectángulo;
  • 3) Cálculo del área de un rectángulo;
  • 4) Cálculo del perímetro del rectángulo;
  • 5) Visualización de valores de área y perímetro;
  • 6) El fin.

Y aquí está la solución:

Rectángulo del programa; Var a, b, S, P: número entero; Empezar a escribir("¡Ingrese los lados del rectángulo!"); leerln(a, b); S:=a*b; P:=2*(a+b); writeln("Área del rectángulo: ", S); escribir("Perímetro del rectángulo: ", P); Fin.

Tarea #2: La velocidad del primer auto es V1 km/h, la del segundo es V2 km/h, la distancia entre ellos es S km. ¿Cuál será la distancia entre ellos después de T horas si los autos se mueven en diferentes direcciones? Los valores de V1, V2, T y S se configuran desde el teclado.

Realizamos la solución, nuevamente, siguiendo el algoritmo. Después de leer el texto, pasamos al siguiente punto. Como ocurre con todos los problemas físicos o matemáticos, ésta es una notación de las condiciones del problema:

Dado: V1, V2, S, T
Encontrar: S1

Luego viene la parte más importante y al mismo tiempo más interesante de nuestra solución: elaborar las fórmulas que necesitamos. Como regla general, en las etapas iniciales del entrenamiento, conocemos bien todas las fórmulas necesarias y están tomadas de otras disciplinas técnicas (por ejemplo, para encontrar el área de varias figuras, para encontrar velocidad, distancia, etc. .).

La fórmula utilizada para resolver nuestro problema es la siguiente:

El siguiente punto del algoritmo es un diagrama de bloques:

Solución al problema número 2.

Y también la solución escrita en Pascal:

Distribución de Programas; Var V1, V2, S, T, S1: entero; (Ingrese) comience a escribir ("Ingrese la velocidad del primer automóvil: "); lectura(V1); write("Ingrese la velocidad del segundo auto: "); lectura(V2); escribir("Ingrese la hora: "); leer(T); escribir("Ingrese la distancia entre autos: "); leer(S); S1:=(V1+V2)*T+S; writeln("A través de ", t,"h. distancia ", S1," km."); Fin.

Quizás pienses que estos dos programas son correctos, pero no lo son. Después de todo, el lado del triángulo puede ser 4,5, no 4, ¡y la velocidad del automóvil no es necesariamente un número redondo! Y Integer son solo números enteros. Por tanto, cuando intento escribir otros números en el segundo programa, aparece un error:


Tenga en cuenta que en Pascal, como en cualquier otro lenguaje de programación, la fracción decimal se ingresa con un punto, no con una coma.

Para resolver este problema, es necesario recordar qué tipo en Pascal es responsable de los números no enteros. En analizamos los tipos principales. Entonces este es un tipo real: Real. Así es como se ve el programa corregido:

Como puede ver, este artículo es una lectura útil tanto para principiantes como para usuarios de Pascal más experimentados, ya que elaborar diagramas de flujo no solo es muy simple y rápido, sino también muy emocionante.

En la vida, a menudo nos encontramos con diferentes situaciones en las que realizamos las mismas acciones específicas. Para despertarnos a tiempo, debemos recordar activar la alarma. Para saciar nuestra hambre, debemos seguir los mismos pasos para preparar comida deliciosa. Para realizar un trabajo que nos resulta familiar, a menudo también hacemos lo mismo.

Este comportamiento puede denominarse de diferentes formas, según el contexto en el que se considere. Si lo miramos desde la perspectiva de la eficiencia operativa, estas acciones pueden denominarse hábitos o habilidades. Si lo consideramos desde el punto de vista de la visualización del proceso, entonces la descripción de la secuencia de acciones, cuya estricta ejecución conduce a la solución de las tareas asignadas en un cierto número de pasos, se denomina algoritmo de acción.

¿Cómo se crean los algoritmos de acción?

Nos encontramos constantemente con esto en la vida cotidiana. ¿Qué acciones realizamos para recargar nuestra cuenta de teléfono móvil? Cada uno de nosotros es diferente. Dado que hay varias formas de recargar una cuenta, todos lo hacemos de manera diferente. El resultado, sin embargo, es siempre el mismo: la aparición de fondos en el teléfono.

U otro ejemplo: para copiar una imagen o texto, haga clic derecho en la imagen, luego seleccione "Copiar", colóquelo en la ubicación deseada, haga clic derecho en "Pegar" y se logrará el resultado.

Todo esto es una determinada secuencia de acciones, como resultado de lo cual la tarea se resuelve por diversos medios. Pero por ahora esto es solo nuestro conocimiento, que se convierte en habilidades y habilidades, y si se describe este proceso, podremos ver claramente el algoritmo de nuestras acciones y transmitirlo a otras personas. No todo es ni siempre está claro en palabras.

Describe la secuencia de acciones: será recordada.

Crear algoritmo de acciones posible describiendo o representando su secuencia. ¿Todos saben lo que hay que hacer para plantar un árbol? Quizás los pasos básicos sean claros para todos, pero no todos recuerdan cuándo regar un árbol, antes o después de plantarlo. El algoritmo creado permitirá que todas las acciones se realicen en la secuencia correcta.

Para describir una secuencia de acciones más compleja, tendrás que intentar escribirlas todas en detalle. Se puede tomar un ejemplo de todo tipo de reglas e instrucciones: detallan muy claramente los pasos que debemos seguir. Pero hay situaciones en las que a una determinada acción le sigue no un paso, sino varios, en función del resultado anterior. En este caso, también se anotan las acciones propuestas para que la persona pueda navegar fácilmente en diferentes situaciones y sepa lo que debe hacer.

El algoritmo de acciones en gráficos es un diagrama de flujo.

Si representamos gráficamente los algoritmos de acción, utilizando formas geométricas con líneas de conexión que muestran el orden en que se realiza la acción, obtendremos un diagrama de flujo. Un diagrama de flujo es muy superior a las reglas, instrucciones y algoritmos secuenciados de acciones en términos de claridad y legibilidad.

Imagina que necesitas enseñarle algo a otra persona. Conoces perfectamente todas las acciones en una secuencia determinada. Tu tarea es mostrar cómo se debe hacer y transmitir tus conocimientos para que la otra persona los recuerde y los sepa igual que tú. La transmisión oral de conocimientos permite la improvisación y cierta arbitrariedad. La mejor manera es utilizar un diagrama de flujo que explique la secuencia y las posibles opciones. Como ejemplo, aquí hay una guía divertida para aprender esquemas de blogs:

La mejor condición para obtener resultados es la repetición de acciones. Esto definitivamente afecta la velocidad para lograr resultados en el futuro. Cuanto más a menudo tengas que repetir las mismas acciones, más rápido aprenderás a realizar la secuencia de acciones, lo que significa que cada vez necesitarás menos tiempo para completarlas.

Los diagramas de flujo se utilizan en ventas.

En el sector de ventas, está muy extendida esta formación mediante el desarrollo de algoritmos y su representación en forma de diagramas de flujo. Se utilizan con mayor frecuencia en situaciones de conversaciones telefónicas en centros de llamadas y para llamadas "en frío". La cultura corporativa está ganando impulso, por lo que muchas empresas ya no permiten que los empleados hagan "bromas", ni siquiera los talentosos, sino que les ofrecen actuar de acuerdo con un escenario previamente desarrollado, representando la "cara de la empresa" en varias etapas. El efecto aparece literalmente después de varios días de hacer las cosas “sobre el papel”. Con el tiempo, el empleado recuerda muchos de los algoritmos descritos y, en el futuro, podrá comunicarse libremente sin temor a en qué dirección tomará la conversación.

Los algoritmos de acción y los esquemas de blogs se desarrollan no sólo en el ámbito de ventas. Se utilizan ampliamente en la formación y práctica de médicos, programadores, informáticos y muchas especialidades técnicas.

Vale la pena intentar aprender a operar utilizando diagramas de flujo similares. Después de todo, cuando te encuentras por primera vez con una gran cantidad de acciones y tareas que al principio te resultan incomprensibles, piensas en lo mucho que te falta un diagrama de flujo desarrollado. Después de mucho tormento, no puedes soportarlo y empiezas a desarrollarte y crear por tu cuenta. A la gente eficaz no le gusta el tiempo de inactividad. Y los diagramas de flujo simplifican enormemente la vida y le permiten comprender la solución de problemas complejos.

Servicios para desarrollar diagramas de flujo.

Hay servicios en Internet que pueden ayudarle a crear dichos diagramas de flujo. Uno de ellos es Cacoo. Con su ayuda, puede convertir fácilmente sus algoritmos en varios diagramas, diagramas de flujo y gráficos. Descubrirás que es una actividad muy placentera y alegre transformar lo que sabes en ciencia para otras personas.

- El buen humor está garantizado. En la etapa inicial, puedes utilizar las funciones de una cuenta gratuita, pero en el futuro tendrás que pagar para acceder. Naturalmente, el acceso gratuito tiene limitaciones en comparación con el pago. Pero para aprender y dar los primeros pasos, la funcionalidad es suficiente.

Habiendo desarrollado algoritmos de acción y convertidos en diagramas de bloques Con la ayuda de Cacoo, puedes crear un buen humor durante mucho tiempo no sólo para ti, sino también para otras personas que están aprendiendo lo básico.

Crea diagramas de bloques de juego para tus hijos

Para resumir lo anterior, observo que ahora es posible utilizar algoritmos de acción y diagramas de flujo en diversas situaciones de la vida. Incluso sus hijos disfrutarán mucho realizando tareas que no sean las más interesantes, siguiendo indicaciones claras. Si tienes alguna idea sobre dónde y cómo usarlo algoritmo de acciones, compartan los comentarios, queridos lectores. Realmente me gustaría saber acerca de sus algoritmos.

mi diagrama de flujo

Este es el diagrama de flujo que se me ocurrió la primera vez. Para ampliar una imagen, haga clic en ella. Después de ir a Cacoo, en la entrada "ver figura", haga clic en la imagen. Se abrirá en una ventana grande. ¡Buena suerte!

En esta lección veremos de forma práctica: cómo escribir diferentes tipos de algoritmos, y también cómo "leer" un algoritmo usando un diagrama de flujo ya preparado.

Son posibles las siguientes situaciones: en el momento en que nos acercamos a la carretera, la luz roja o verde estaba encendida. Si el semáforo está en verde, puedes cruzar la calle. Si el semáforo está en rojo, deberá esperar hasta que se ponga verde y luego cruzar la calle.

Por tanto, el algoritmo queda así:

  1. Acércate al semáforo.
  2. Mira su luz.
  3. Si el semáforo está en verde, cruce la calle.
  4. Si el semáforo está en rojo, espere hasta que el semáforo se ponga verde y luego cruce la calle.

El diagrama de bloques de este algoritmo es el siguiente:

Arroz. 3. Diagrama de bloques por ejemplo 2.

Compilación de algoritmos cíclicos.

Veamos un ejemplo de creación de un algoritmo cíclico. Ya hemos hablado varias veces de la conversión de números del sistema decimal a binario. Ahora es el momento de formular claramente este algoritmo.

Recordemos que su principio consiste en dividir un número entre 2 y anotar los restos resultantes de la división.

Ejemplo 3. Cree un algoritmo para convertir números del sistema decimal al sistema binario.

Es decir, el algoritmo quedará así:

  1. Si un número es 0 o 1, esta será su representación binaria.
  2. Si el número es mayor que 1, lo dividimos entre 2.
  3. Escribimos el resto resultante de la división en el último dígito de la representación binaria del número.
  4. Si el cociente resultante es igual a 1, lo sumamos al primer dígito de la representación binaria del número y detenemos los cálculos.
  5. Si el cociente resultante es mayor que 1, reemplazamos el número original por él y volvemos al punto 2).

El diagrama de bloques de este algoritmo es el siguiente:

Arroz. 4. Diagrama de bloques por ejemplo 3.

Nota: Considere si hay alguna forma de simplificar el diagrama de flujo anterior.

Algoritmos de "lectura"

Ejemplo 4. Según el diagrama de flujo dado, realice las acciones del algoritmo para el número 23.

Arroz. 5. Diagrama de bloques por ejemplo 4.

En esta lección, analizamos ejemplos de composición de algoritmos, así como un ejemplo de "lectura de un algoritmo" utilizando un diagrama de flujo ya preparado.

En la próxima lección discutiremos juegos y estrategias ganadoras.

¿Cómo matar a Koshchei?

Probablemente todos recuerden un cuento de hadas de la infancia, que cuenta sobre el paradero de la muerte de Koshchei el Inmortal: “Mi muerte está en la punta de una aguja, que está en un huevo, el huevo está en un pato, el pato está en una liebre, la liebre está sentada en un cofre, el cofre está bien cerrado y enterrado bajo el roble más grande de la isla de Buyan, en medio del mar océano..."

Arroz. 6. Koschey el Inmortal y Vasilisa la Sabia ().

Supongamos que en lugar de Iván el Tsarevich, Iván el Loco fue arrojado a luchar contra Koshchei. Ayudemos a Vasilisa la Sabia a crear un algoritmo para que incluso Iván el Loco pueda matar a Koshchei.

  1. Por supuesto, primero debes encontrar la isla Buyan (supongamos que Iván el Loco es capaz de hacer tales cosas).
  2. Dado que el cofre está enterrado debajo del roble más grande, primero debes encontrar el roble más grande de la isla.
  3. Entonces necesitas desenterrar el cofre.
  4. Antes de atrapar la liebre, debes romper el fuerte candado.
  5. Ahora puedes conseguir la liebre.
  6. Necesitas sacar un pato de una liebre.
  7. Retire el huevo del pato.
  8. Rompe el huevo y saca la aguja.
  9. Rompe la aguja.

Este también es un algoritmo lineal, aunque más largo que el algoritmo para iniciar el programa Paint.

Su diagrama de bloques se ve así:

Arroz. 7. Diagrama de bloques.

En una encrucijada...

Y nuevamente recurrimos a personajes de cuentos de hadas en busca de ejemplos de varios algoritmos. Cuando hablamos de algoritmos con ramificación, entonces, por supuesto, uno no puede evitar recordar al héroe parado en una encrucijada cerca de una piedra.

Arroz. 8. Bogatyr en una encrucijada ().

En la piedra está escrito:

“Si vas a la derecha perderás tu caballo, te salvarás; Si vas hacia la izquierda te perderás, pero salvarás tu caballo; Si sigues recto, perderás a ti y a tu caballo”.

¿Intentemos crear un algoritmo de acciones que fue compilado por el autor de la inscripción en la piedra para viajeros?

  1. Si vamos a la derecha perderemos nuestro caballo. Si no vamos a la derecha, entonces nos quedan dos opciones (creemos que el viajero no volverá): seguir recto e izquierda.
  2. Si vamos a la izquierda nos perderemos, pero salvaremos al caballo.
  3. Si vamos recto, nos perderemos a nosotros y a nuestro caballo.

El diagrama de bloques de este algoritmo se ve así:

Arroz. 9. Diagrama de bloques.

nabo

Los cuentos populares rusos no nos han dejado sin un algoritmo cíclico. Y, curiosamente, se escondió en uno de los cuentos de hadas más simples: "El nabo".

Arroz. 10. Nabo.

Recordemos la trama del cuento de hadas: el abuelo tira y tira, pero no puede sacarlo. Luego, uno tras otro, aparecen nuevos personajes para ayudar al abuelo, y así sucesivamente hasta que llega el ratón.

Intentemos crear un algoritmo para las acciones de todos los personajes del cuento de hadas para que aún puedan sacar el nabo.

  1. Al principio, el abuelo se acercó a Repka y trató de sacarlo.
  2. Como no fue posible sacar a Turnip, se necesitó la ayuda del siguiente personaje.
  3. Y esto sucede hasta que aparece el ratón (o, en otras palabras, hasta que se arranca el nabo).

En forma de diagrama de bloques, este algoritmo se ve así:

Arroz. 11. Diagrama de bloques.

  1. Bosova L.L. Informática y TIC: Libro de texto para 6º de primaria. - M.: BINOM. Laboratorio de Conocimiento, 2012
  2. Bosova L.L. Ciencias de la Computación: Cuaderno de trabajo para 6to grado. - M.: BINOM. Laboratorio de Conocimiento, 2010.
  3. Bosova L.L., Bosova A.Yu. Lecciones de informática en los grados 5-6: Manual metodológico. - M.: BINOM. Laboratorio de Conocimiento, 2010.
  1. Portal de Internet “Comunidad de Ayuda Mutua Docentes” ().
  2. Portal de Internet “Nsportal.ru” ().
  3. Portal de Internet “Festival de Ideas Pedagógicas” ().
  1. §3.3, 3.4 (Bosova L.L. Informática y TIC: Libro de texto para el sexto grado);
  2. Intente crear usted mismo un algoritmo lineal de 5 a 6 cifras;
  3. Haga un diagrama de bloques de un algoritmo cíclico para completar la tarea;
2.1 Desarrollo del algoritmo.

Algoritmo- Este

a. descripción de la secuencia de acciones para resolver un problema o lograr una meta;

b. reglas para realizar operaciones básicas de procesamiento de datos;

do. descripción de cálculos utilizando fórmulas matemáticas.

Antes de comenzar a desarrollar un algoritmo, es necesario comprender claramente la tarea: qué se debe obtener como resultado, qué datos iniciales se necesitan y cuáles están disponibles, qué restricciones existen sobre estos datos. A continuación, debe anotar qué acciones se deben tomar para obtener el resultado requerido a partir de los datos iniciales.

En la práctica, las formas más comunes de presentar algoritmos son:

Verbal (grabaciones en lenguaje natural);

Gráfico (imágenes de símbolos gráficos);

Pseudocódigos (descripciones semiformalizadas de algoritmos en un lenguaje algorítmico condicional, que incluyen tanto elementos de un lenguaje de programación como frases en lenguaje natural, notaciones matemáticas generalmente aceptadas, etc.);

Software (textos en lenguajes de programación).

La forma verbal de escribir algoritmos es una descripción de las sucesivas etapas del procesamiento de datos. El algoritmo se especifica de forma libre en lenguaje natural.

Ejemplo. Escribe un algoritmo para encontrar el máximo común divisor (MCD) de dos números naturales.

El algoritmo podría ser el siguiente:

1. establecer dos números;

2. si los números son iguales, tome cualquiera de ellos como respuesta y deténgase; de ​​lo contrario, continúe ejecutando el algoritmo;

3. determinar el mayor de los números;

4. reemplace el número mayor con la diferencia entre los números mayor y menor;

5. repita el algoritmo del paso 2.

El algoritmo descrito es aplicable a cualquier número natural y debería conducir a una solución al problema. Convéncete de ello utilizando este algoritmo para determinar el máximo común divisor de los números 125 y 75.

El método verbal no está muy extendido por las siguientes razones:

Estas descripciones no son estrictamente formalizables;

Sufre de palabrería en las notas;

Hay margen para la ambigüedad en la interpretación de cada normativa.

La forma gráfica de presentar algoritmos es más compacta y visual en comparación con la verbal.

Cuando se presenta gráficamente, el algoritmo se representa como una secuencia de bloques funcionales interconectados, cada uno de los cuales corresponde a la ejecución de una o más acciones.

Esta representación gráfica se llama diagrama de flujo o diagrama de flujo.

El pseudocódigo es un sistema de notaciones y reglas diseñado para escribir algoritmos de manera uniforme.

Ocupa un lugar intermedio entre los lenguajes naturales y formales.

Por un lado, está cerca del lenguaje natural ordinario, por lo que los algoritmos se pueden escribir y leer en él como texto normal. Por otro lado, el pseudocódigo utiliza algunas construcciones formales y simbolismo matemático, lo que acerca la notación del algoritmo a la notación matemática generalmente aceptada.

En pseudocódigo, no se adoptan reglas sintácticas estrictas para escribir comandos inherentes a los lenguajes formales, lo que facilita la escritura del algoritmo en la etapa de diseño y permite utilizar un conjunto más amplio de comandos diseñados para un ejecutor abstracto. Sin embargo, el pseudocódigo suele contener algunas construcciones inherentes a los lenguajes formales, lo que facilita pasar de escribir en pseudocódigo a escribir un algoritmo en un lenguaje formal. En particular, en el pseudocódigo, así como en los lenguajes formales, existen palabras funcionales cuyo significado se determina de una vez por todas. No existe una definición única o formal de pseudocódigo, por lo que son posibles varios pseudocódigos, que se diferencian en el conjunto de palabras funcionales y construcciones básicas (básicas).

2.2 Diagrama de bloques.

Un diagrama de flujo es una representación gráfica de un algoritmo en el que se representa como una secuencia de bloques funcionales interconectados, cada uno de los cuales corresponde a la ejecución de una o más acciones.

En el diagrama de flujo, cada tipo de acción (ingresar datos iniciales, calcular los valores de las expresiones, verificar las condiciones, controlar la repetición de acciones, completar el procesamiento, etc.) corresponde a una figura geométrica representada como un símbolo de bloque. Los símbolos de bloque están conectados por líneas de transición que determinan el orden en que se realizan las acciones.

Estos son los símbolos más utilizados.

Nombre del símbolo Designación y ejemplo de llenado. Explicación
Proceso Acción computacional o secuencia de acciones.
Solución Comprobación de condiciones
Modificación Inicio del ciclo
Proceso predefinido Cálculos por subrutina, subrutina estándar
E/S E/S en general
inicio-parada Inicio, fin del algoritmo, entrada y salida a la subrutina.
Documento Resultados de impresión

El bloque "proceso" se utiliza para denotar una acción o secuencia de acciones que cambia el significado, la forma de presentación o la ubicación de los datos. Para mejorar la claridad del diagrama, se pueden combinar varios bloques de procesamiento individuales en un solo bloque. La presentación de operaciones individuales es bastante gratuita.

El bloque de "decisión" se utiliza para indicar transiciones de control condicionales. Cada bloque de "solución" debe identificar la pregunta, condición o comparación que define.

El bloque "modificación" se utiliza para organizar estructuras cíclicas. (La palabra modificación significa modificación, transformación). Dentro del bloque se escribe un parámetro de ciclo, para el cual se indican su valor inicial, la condición de contorno y el paso de cambio del valor del parámetro para cada repetición.

El bloque "proceso predefinido" se utiliza para indicar llamadas a algoritmos auxiliares que existen de forma autónoma en forma de algunos módulos independientes y para llamadas a rutinas de biblioteca.

Ejemplo. Elabora un diagrama de bloques de un algoritmo para determinar las alturas ha, hb, hc de un triángulo con lados a, b, c, si



Dónde pag = (a + b + c) / 2.
Solución. Introduzcamos la notación entonces h a = t/a, h b = t/b, h c = t/c. El diagrama de flujo debe contener inicio, entrada a, b, c, cálculo p, t, h. a, hb, hc , envíe los resultados y deténgase.

2.3 Estructuras algorítmicas.

Los algoritmos pueden considerarse como ciertas estructuras que constan de elementos básicos (es decir, básicos) individuales. Naturalmente, con este enfoque de los algoritmos, el estudio de los principios básicos de su diseño debería comenzar con el estudio de estos elementos básicos.

La estructura lógica de cualquier algoritmo se puede representar mediante una combinación de tres estructuras básicas: siguiente, ramificación y bucle.

Un rasgo característico de las estructuras básicas es la presencia de una entrada y una salida.

1. A continuación se muestra la estructura básica. Formado a partir de una secuencia de acciones que se suceden una tras otra:

2. Estructura ramificada básica. Proporciona, dependiendo del resultado de la verificación de la condición (sí o no), la elección de una de las formas alternativas de operar el algoritmo. Cada ruta conduce a una salida común, por lo que el algoritmo continuará ejecutándose sin importar qué ruta se elija.

Estructura derivación existe en cuatro variantes principales:

Si-entonces-si no;

La elección es diferente.

1) condición si-si, entonces la acción finaliza si 2) si-si no, si la condición entonces las acciones 1, de lo contrario, las acciones 2 terminan si 3) elección elección con condición 1: acciones 1 con condición 2: acciones 2. . . . . . . . . . . . bajo condición N: acciones N fin de elección

4) elección; en caso contrario, elección según la condición 1: acción 1 según la condición 2: acción 2. . . . . . . . . . . .

bajo condición N: acciones N en caso contrario acciones N+1 fin de elección

Ejemplo. Cree un diagrama de bloques del algoritmo para calcular la función.

La estructura básica es un ciclo. Proporciona la ejecución repetida de un determinado conjunto de acciones, lo que se denomina cuerpo del bucle. La estructura del ciclo existe en tres versiones principales:.

Tipo de bucle

La estructura básica es un ciclo. Proporciona la ejecución repetida de un determinado conjunto de acciones, lo que se denomina cuerpo del bucle. Para.

Indica que se ejecute el cuerpo del bucle para todos los valores de una determinada variable (parámetro de bucle) en un rango determinado.

La estructura básica es un ciclo. Proporciona la ejecución repetida de un determinado conjunto de acciones, lo que se denomina cuerpo del bucle. Adiós.

Ordena que se ejecute el cuerpo del bucle siempre que se cumpla la condición escrita después de la palabra while.

hacer - por ahora

Ordena que se ejecute el cuerpo del bucle siempre que se cumpla la condición escrita después de la palabra while. La condición se verifica después de ejecutar el cuerpo del bucle. Tenga en cuenta que los bucles for y while también se denominan bucles con verificación previa de la condición, y bucles para hacer, while, bucles con verificación posterior de la condición. En otras palabras, es posible que los cuerpos de los bucles for y while no se ejecuten ni siquiera una vez si la condición de finalización del bucle no es inicialmente verdadera. Haga el cuerpo del bucle hasta que se ejecute al menos una vez, incluso si la condición para finalizar el bucle no es inicialmente verdadera. Ciclo para i de i1 a i2 paso i3 cuerpo del ciclo (secuencia de acciones) fin del ciclo

bucle while condición cuerpo del bucle (secuencia de acciones) final del bucle

ciclo del cuerpo del bucle (secuencia de acciones) hasta el final de la condición del bucle

con una precisión determinada (para una serie de potencia alterna dada, la precisión requerida se logrará cuando el siguiente término sea más pequeño en valor absoluto).

Calcular sumas es una tarea cíclica típica. La peculiaridad de nuestro problema específico es que el número de términos (y, en consecuencia, el número de repeticiones del cuerpo del bucle) se desconoce de antemano. Por lo tanto, el bucle debe finalizar cuando se logre la precisión requerida.

Al compilar un algoritmo, es necesario tener en cuenta que los signos de los términos se alternan y aumenta la potencia del número x en los numeradores de los términos.

Terminaremos con un algoritmo muy ineficiente que requiere una gran cantidad de operaciones. Es mucho mejor organizar los cálculos de la siguiente manera: si designamos el numerador de cualquier término con la letra p, entonces el numerador del siguiente término será igual a -р*х (el signo menos asegura la alternancia de los signos de los términos), y el término en sí será m

será igual a p/i, donde i es el número del término.

Un algoritmo que incluye un bucle iterativo se denomina algoritmo iterativo. Los algoritmos iterativos se utilizan en la implementación de métodos numéricos iterativos. En los algoritmos iterativos, es necesario asegurar el cumplimiento obligatorio de la condición para salir del ciclo (convergencia del proceso iterativo). De lo contrario, el algoritmo se repetirá, es decir. la propiedad principal del algoritmo, la eficacia, no se cumplirá.

Bucles anidados.

Puede haber casos en los que sea necesario repetir una determinada secuencia de declaraciones dentro del cuerpo de un bucle, es decir, organizar un bucle interno. Esta estructura se llama bucle dentro de un bucle o bucles anidados. La profundidad de anidamiento de los bucles (es decir, el número de bucles anidados entre sí) puede ser diferente.

Cuando se utiliza una estructura de este tipo, para ahorrar tiempo en la computadora, es necesario mover todas las declaraciones que no dependen del parámetro del bucle interno del bucle interno al externo.

Ejemplo bucles anidados para. Calcule la suma de los elementos de la matriz dada A(5,3).

Ejemplo bucles anidados por ahora. Calcule el producto de aquellos elementos de la matriz dada A(10,10) que se encuentran en la intersección de filas pares y columnas pares.

NORMA ESTATAL DE LA UNIÓN URSS

SISTEMA UNIFICADO DE DOCUMENTACIÓN DE SOFTWARE

DIAGRAMAS DE ALGORITMOS, PROGRAMAS, DATOS Y SISTEMAS

CONVENIOS Y NORMAS DE IMPLEMENTACIÓN

GOST 19.701-90
(ISO 5807-85)

COMITÉ ESTATAL DE LA URSS PARA LA GESTIÓN Y NORMAS DE CALIDAD DE LOS PRODUCTOS

NORMA ESTATAL DE LA UNIÓN URSS

Fecha de introducción 01.01.92

Esta norma se aplica a convenciones (símbolos) en diagramas de algoritmos, programas, datos y sistemas y establece reglas para la ejecución de diagramas utilizados para representar diversos tipos de problemas de procesamiento de datos y medios para resolverlos.

La norma no se aplica a la forma de entradas y símbolos colocados dentro o adyacentes a símbolos que sirven para aclarar las funciones que realizan.

Los requisitos de la norma son obligatorios.

1. DISPOSICIONES GENERALES

1.1. Los diagramas de algoritmos, programas, datos y sistemas (en lo sucesivo, diagramas) constan de símbolos con un significado determinado, un breve texto explicativo y líneas de conexión.

1.2. Los esquemas se pueden utilizar en varios niveles de detalle, y el número de niveles depende del tamaño y la complejidad del problema de procesamiento de datos. El nivel de detalle debe ser tal que las distintas partes y las relaciones entre ellas se comprendan como un todo.

1.3. Esta norma define símbolos para su uso en la documentación de procesamiento de datos y proporciona orientación sobre convenciones para su uso en:

1) esquemas de datos;

2) diagramas de programa;

3) esquemas de operación del sistema;

4) esquemas de interacción del programa;

5) diagramas de recursos del sistema.

1.4. La norma utiliza los siguientes conceptos:

1) símbolo básico: un símbolo utilizado en los casos en que se desconoce el tipo exacto de un proceso o medio de almacenamiento o no es necesario describir el medio de almacenamiento real;

2) símbolo específico: un símbolo utilizado en los casos en que se conoce el tipo exacto de un proceso o medio de almacenamiento o cuando es necesario describir el medio de almacenamiento real;

3) diagrama: una representación gráfica de la definición, análisis o método para resolver un problema, en la que se utilizan símbolos para mostrar operaciones, datos, flujo, equipos, etc.

2. DESCRIPCIÓN DEL CIRCUITO

2.1. Esquema de datos

2.1.1. Los esquemas de datos representan la ruta de los datos para resolver problemas y definen los pasos de procesamiento, así como los distintos medios de almacenamiento utilizados.

2.1.2. El esquema de datos consta de:

1) símbolos de datos (los símbolos de datos también pueden indicar el tipo de medio de almacenamiento);

2) símbolos del proceso que se debe realizar con los datos (los símbolos de proceso también pueden indicar funciones realizadas por la computadora);

3) símbolos de línea que indican flujos de datos entre procesos y (o) medios de almacenamiento;

2.1.3. Los símbolos de datos preceden y siguen a los símbolos de proceso. El esquema de datos comienza y termina con caracteres de datos (excepto caracteres especiales).

2.2. Esquema del programa

2.2.1. Los diagramas de programa muestran la secuencia de operaciones en un programa.

2.2.2. El esquema del programa consta de:

1) símbolos de proceso que indican las operaciones reales de procesamiento de datos (incluidos los símbolos que definen el camino que debe seguirse, teniendo en cuenta las condiciones lógicas);

2) símbolos lineales que indican el flujo de control;

3) símbolos especiales utilizados para hacer que el diagrama sea más fácil de escribir y leer.

2.3. Diagrama de funcionamiento del sistema

2.3.1. Los diagramas de operación del sistema representan el control de las operaciones y el flujo de datos en el sistema.

2.3.2. El esquema de operación del sistema consta de:

1) símbolos de datos que indican la presencia de datos (los símbolos de datos también pueden indicar el tipo de medio de almacenamiento);

2) símbolos de proceso, que indican las operaciones que se deben realizar sobre los datos, y también definen la ruta lógica que se debe seguir;

3) símbolos lineales que indican flujos de datos entre procesos y (o) medios de almacenamiento, así como el flujo de control entre procesos;

4) símbolos especiales utilizados para hacer que el diagrama de flujo sea más fácil de escribir y leer.

2.4. Esquema de interacción del programa.

2.4.1. Los diagramas de interacción del programa muestran la ruta de activación del programa y la interacción con los datos correspondientes. Cada programa en el diagrama de interacción del programa se muestra solo una vez (en el diagrama de operación del sistema, un programa se puede mostrar en más de un flujo de control).

2.4.2. El esquema de interacción del programa consta de:

1) símbolos de datos que indican la presencia de datos;

2) símbolos de proceso que indican operaciones que deben realizarse con los datos;

3) símbolos lineales que representan el flujo entre procesos y datos, así como el inicio de procesos;

4) símbolos especiales utilizados para hacer que el diagrama sea más fácil de escribir y leer.

2.5. Diagrama de recursos del sistema

2.5.1. Los diagramas de recursos del sistema representan la configuración de datos y unidades de procesamiento que se requiere para resolver una tarea o conjunto de tareas.

2.5.2. El diagrama de recursos del sistema consta de:

1) símbolos de datos que muestran los dispositivos de entrada, salida y almacenamiento de la computadora;

2) símbolos de proceso que representan procesadores (unidades centrales de procesamiento, canales, etc.);

3) símbolos lineales que muestran la transferencia de datos entre dispositivos de entrada/salida y procesadores, así como la transferencia de control entre procesadores;

4) símbolos especiales utilizados para hacer que el diagrama sea más fácil de escribir y leer.

Se dan ejemplos de implementación de circuitos en.

3. DESCRIPCIÓN DE SÍMBOLOS

3.1. Símbolos de datos

3.1.1. Símbolos de datos básicos

3.1.1.1. Datos

El símbolo muestra datos, el medio de almacenamiento no está definido.

3.1.1.2. Datos memorizados

El símbolo muestra los datos almacenados en una forma adecuada para su procesamiento; el medio de almacenamiento no está definido.

3.1.2. Caracteres de datos específicos

3.1.2.1. Memoria de acceso aleatorio

El símbolo muestra los datos almacenados en el dispositivo de memoria de acceso aleatorio.

3.1.2.2. Memoria de acceso serie

El símbolo representa datos almacenados en un dispositivo de almacenamiento de acceso en serie (cinta magnética, casete de cinta magnética, casete de cinta).

3.1.2.3. Dispositivo de almacenamiento de acceso directo

El símbolo representa datos almacenados en un dispositivo de almacenamiento de acceso directo (disco magnético, tambor magnético, disquete).

3.1.2.4. Documento

El símbolo muestra los datos presentados en el soporte en forma legible (diagrama de la máquina, documento para lectura óptica o magnética, microfilm, rollo de cinta con datos resumidos, formularios de entrada de datos).

3.1.2.5. Entrada manual

El símbolo muestra los datos ingresados ​​manualmente durante el procesamiento desde cualquier tipo de dispositivo (teclado, interruptores, botones, lápiz óptico, tiras de códigos de barras).

3.1.2.6. Mapa

El símbolo muestra datos presentados en un soporte similar a una tarjeta (tarjetas perforadas, tarjetas magnéticas, tarjetas con etiquetas legibles, tarjetas con etiqueta desprendible, tarjetas con etiquetas escaneables).

3.1.2.7. cinta de papel

El símbolo muestra datos presentados en un soporte en forma de cinta de papel.

3.1.2.8. Mostrar

El símbolo muestra datos presentados en forma legible por humanos en un medio en forma de dispositivo de visualización (pantalla de observación visual, indicadores de entrada de información).

3.2. Símbolos de proceso

3.2.1.Símbolos de proceso básicos

3.2.1.1. Proceso

El símbolo representa una función de procesamiento de datos de cualquier tipo (realizar una operación específica o un grupo de operaciones que resulta en un cambio en el valor, forma o disposición de la información, o en determinar cuál de varias direcciones de flujo debe seguirse).

3.2.2. Símbolos específicos del proceso

3.2.2.1. Proceso predefinido

El símbolo muestra un proceso predefinido que consta de una o más operaciones o pasos de programa que están definidos en otro lugar (en una subrutina, módulo).

3.2.2.2. Operación manual

El símbolo representa cualquier proceso realizado por una persona.

3.2.2.3. Preparación

El símbolo representa la modificación de una instrucción o grupo de instrucciones para afectar alguna función posterior (configurar un interruptor, modificar un registro de índice o inicializar un programa).

3.2.2.4. Solución

El símbolo representa una decisión o función de tipo interruptor que tiene una entrada y varias salidas alternativas, una y solo una de las cuales puede activarse después de evaluar las condiciones definidas dentro del símbolo. Los resultados del cálculo correspondiente se pueden escribir junto a las líneas que representan estas rutas.

3.2.2.5. Actividades paralelas

El símbolo representa la sincronización de dos o más operaciones paralelas.

Ejemplo.

Nota. Los procesos C, D y E no pueden comenzar hasta que se haya completado el proceso A; de manera similar, el proceso F debe esperar a que se completen los procesos B, C y D, pero el proceso C puede comenzar y/o completarse antes de que el proceso D comience y/o finalice, respectivamente.

3.2.2.6. Límite de bucle

El símbolo de dos partes representa el principio y el final del ciclo. Ambas partes del símbolo tienen el mismo identificador. Condiciones de inicialización, incremento, terminación, etc. se colocan dentro del símbolo al principio o al final, dependiendo de la ubicación de la operación que prueba la condición.

Ejemplo.

3.3. Símbolos de línea

3.3.1.Símbolo de línea básica

3.3.1.1. Línea

El símbolo representa el flujo de datos o control.

Se pueden agregar flechas direccionales según sea necesario o para mejorar la legibilidad.

3.3.2.Símbolos de línea específicos

3.3.2.1. Transferencia de control

El símbolo representa una transferencia directa de control de un proceso a otro, a veces con la posibilidad de un retorno directo al proceso iniciador después de que el proceso iniciado haya completado sus funciones. El tipo de transferencia de control debe nombrarse dentro del símbolo (por ejemplo, solicitud, llamada, evento).

3.3.2.2. Canal de comunicación

El símbolo muestra la transmisión de datos a través del canal de comunicación.

3.3.2.3. Línea de puntos

Un símbolo representa una relación alternativa entre dos o más símbolos. Además, el símbolo se utiliza para delimitar el área anotada.

Ejemplo 1.

Cuando una de varias salidas alternativas se utiliza como entrada para un proceso, o cuando una salida se utiliza como entrada para procesos alternativos, estos símbolos se conectan mediante líneas de puntos.

Ejemplo 2.

Una salida utilizada como entrada para el siguiente proceso se puede conectar a esa entrada mediante una línea de puntos.

3.4. Caracteres especiales

3.4.1. Conector

El símbolo representa la salida a parte del circuito y la entrada desde otra parte de este circuito y se utiliza para romper una línea y continuarla en otro lugar. Los símbolos de conector correspondientes deben contener el mismo designador único.

3.4.2. terminador

El símbolo representa la salida al entorno externo y la entrada del entorno externo (principio o final del diagrama del programa, uso externo y origen o destino de los datos).

3.4.3.Comentario

El símbolo se utiliza para agregar comentarios descriptivos o notas explicativas con fines de explicación o notas. Las líneas de puntos en un símbolo de comentario están asociadas con un símbolo correspondiente o pueden delinear un grupo de símbolos. El texto de los comentarios o notas debe colocarse cerca de la forma delimitadora.

Ejemplo.

3.4.4. Aprobar

El símbolo (tres puntos) se utiliza en diagramas para indicar la omisión de un símbolo o grupo de símbolos en los que no se especifica ni el tipo ni el número de símbolos. El símbolo se utiliza sólo dentro o entre símbolos de línea. Se utiliza principalmente en diagramas que representan soluciones generales con un número desconocido de repeticiones.

Ejemplo.

4 REGLAS PARA LA APLICACIÓN DE SÍMBOLOS Y EJECUCIÓN DE DIAGRAMAS

4.1. Reglas para usar símbolos.

4.1.1. Un símbolo tiene como objetivo identificar gráficamente la función que representa, independientemente del texto dentro de ese símbolo.

4.1.2. Los símbolos del diagrama deben estar espaciados uniformemente. Mantenga las conexiones a una longitud razonable y reduzca al mínimo el número de líneas largas.

4.1.3. La mayoría de los símbolos están diseñados para permitir que se incluya texto dentro del símbolo. Las formas de los símbolos especificadas en esta norma pretenden servir como guía para los símbolos realmente utilizados. No se deben cambiar los ángulos y otros parámetros que afectan la forma apropiada de los símbolos. Los símbolos deben tener el mismo tamaño si es posible.

Los personajes se pueden dibujar en cualquier orientación, pero siempre que sea posible se prefiere la orientación horizontal. Reflejar la forma de un personaje denota la misma función, pero no es lo preferido.

4.1.4. La cantidad mínima de texto necesaria para comprender la función de un símbolo determinado debe colocarse dentro del símbolo dado. El texto de lectura debe escribirse de izquierda a derecha y de arriba a abajo, independientemente de la dirección del flujo.

Ejemplo.

Si la cantidad de texto colocado dentro de un símbolo excede sus dimensiones, se debe utilizar un símbolo de comentario.

Si el uso de símbolos de comentarios pudiera confundir o interrumpir el flujo del diagrama, el texto debería colocarse en una hoja separada y debería proporcionarse una referencia cruzada al símbolo.

4.1.5. Los esquemas pueden utilizar un identificador de símbolo. Este es el identificador asociado con un símbolo determinado, que identifica el símbolo para uso de referencia en otros elementos de la documentación (por ejemplo, un listado de programas). El ID del símbolo debe ubicarse a la izquierda encima del símbolo.

Ejemplo.

4.1.6. Los diagramas pueden utilizar descripciones de símbolos (cualquier otra información, por ejemplo, para mostrar un uso especial de un símbolo con una referencia cruzada o para mejorar la comprensión de una función como parte de un diagrama). La descripción del símbolo debe ubicarse a la derecha encima del símbolo.

Ejemplo.

4.1.7. En los diagramas de sistemas, los símbolos que representan medios de almacenamiento a menudo representan métodos de entrada/salida. Para usarlo como referencia a la documentación, el texto del diagrama para los símbolos que representan métodos de salida debe colocarse a la derecha encima del símbolo, y el texto de los símbolos que representan métodos de entrada debe colocarse a la derecha debajo del símbolo.

Ejemplo.

4.1.8. Los diagramas pueden utilizar una representación detallada, que se indica mediante un símbolo de barra para el proceso o los datos. El símbolo de la barra indica que hay información más detallada disponible en otra parte del mismo conjunto de documentación.

Un símbolo de raya es cualquier símbolo que tiene una línea horizontal dibujada en su interior en la parte superior. Entre esta línea y la línea superior del símbolo hay un identificador que indica una representación detallada de ese símbolo.

El carácter terminador debe usarse como primer y último carácter de la representación detallada. El primer carácter terminador debe contener una referencia, que también está presente en el carácter de barra.

Símbolo con raya Vista detallada

4.2. Reglas para hacer conexiones.

4.2.1. Los flujos de datos o flujos de control en los diagramas se muestran como líneas. La dirección del flujo de izquierda a derecha y de arriba a abajo se considera estándar.

En los casos en los que se necesita mayor claridad en el diagrama (por ejemplo, al realizar conexiones), se utilizan flechas en las líneas. Si el flujo tiene una dirección distinta a la estándar, las flechas deben indicar esa dirección.

4.2.2. Se deben evitar las líneas que se cruzan en los diagramas. Las líneas que se cruzan no tienen conexión lógica entre sí, por lo que no se permiten cambios de dirección en los puntos de intersección.

Ejemplo.

4.2.3. Se pueden combinar dos o más líneas entrantes en una línea saliente. Si dos o más líneas se fusionan en una sola, se debe cambiar la ubicación de la fusión.

Ejemplo.

4.2.4. Las líneas en los diagramas deben acercarse al símbolo desde la izquierda o desde arriba, y originarse desde la derecha o desde abajo. Las líneas deben dirigirse hacia el centro del símbolo.

4.2.5. Si es necesario, las líneas de los diagramas deben dividirse para evitar intersecciones innecesarias o líneas demasiado largas, y también si el diagrama consta de varias páginas. El conector al comienzo de una ruptura se llama conector externo y el conector al final de una ruptura se llama conector interno.

Ejemplo.

Conector externo Conector interno

4.3. Convenciones especiales

4.3.1. Múltiples salidas

4.3.1.1. Se deben mostrar varias salidas de un símbolo:

1) varias líneas desde este símbolo hasta otros símbolos;

2) una línea de un símbolo determinado, que luego se bifurca en el número correspondiente de líneas.

Ejemplos.

4.3.1.2. Cada salida de símbolo debe ir acompañada de los valores de condición correspondientes para mostrar la ruta lógica que representa, de modo que se identifiquen esas condiciones y las referencias correspondientes.

Ejemplos.

4.3.2. Vista repetida

4.3.2.1. En lugar de un solo símbolo con texto asociado, se pueden usar múltiples símbolos superpuestos, cada uno de los cuales contiene texto descriptivo (usando o generando múltiples medios de almacenamiento o archivos, produciendo múltiples copias de informes impresos o formatos de tarjetas perforadas).

4.3.2.2. Cuando varios caracteres representan un conjunto ordenado, el orden debe ser desde el frente (primero) hacia atrás (último).

4.3.2.3. Las líneas pueden ingresar o originarse desde cualquier punto de los símbolos superpuestos, pero se deben cumplir los requisitos. La prioridad o el orden secuencial de múltiples símbolos no cambia según el punto en el que entra o sale una línea.

Ejemplo.

5. APLICACIÓN DE SÍMBOLOS

Nombre del símbolo

Esquema de datos

Esquema del programa

Diagrama de funcionamiento del sistema

Diagrama de interacción del programa

Diagrama de recursos del sistema

Símbolos de datos

Básico

Datos memorizados

Específico

Memoria de acceso aleatorio

Memoria de acceso secuencial

Dispositivo de almacenamiento de acceso directo

Documento

Entrada manual

cinta de papel




Arriba