Menú
Está libre
registro
hogar  /  Firmware/ Universidad Estatal de Artes de la Imprenta de Moscú. Estructura de bloques del programa

Universidad Estatal de Artes Gráficas de Moscú. Estructura de bloques del programa

Como se señaló anteriormente, el cuerpo de función puede ser cuadra o operador compuesto. Cuadra cómo un conjunto de descripciones de objetos y operadores puede incluir anidado bloques, y luego externo y local variables con respecto al bloque, y global variables descritas fuera de las funciones del programa.

Además de los atributos nombre y escribe objeto, hay dos atributos más: alcance y toda la vida definido por clase de almacenamiento (memoria) por defecto o configurado por el programador. Alcance (visibilidad) Es parte del texto del programa en el que ver y tal vez usó este objeto... Las variables descritas en el bloque adjunto son externas a los bloques anidados y los incluyen en su alcance con una excepción: interno variable tiene una prioridad encima epónimo externo variable cerrándola, e incluso se puede anular el tipo de una variable interna.

Toda la vida Es el intervalo de tiempo durante el cual el valor de un objeto (variable o función) disponible para usar en alguna parte del programa. La vida útil de una variable puede ser local o global... Objetos global de por vida, tiene una memoria asignada y un cierto valor durante todo el tiempo de ejecución del programa. Para local el objeto se destaca nuevoárea de memoria cada vez que se ingresa un bloque, y liberado al salir del bloque, mientras que el valor del objeto está perdido... Las variables descritas en la función, incluidos los parámetros formales, tienen local alcance. Las funciones mismas en el programa son externo en relación el uno con el otro y tener global vida útil, es decir, existen durante todo el tiempo de ejecución del programa.

Un programa en C es un módulo de programa separado que se formatea y escribe en la memoria externa como archivo original con la extensión “.c”, por ejemplo, myprog.c.

La estructura del módulo de programa y el alcance de sus objetos se pueden representar mediante el siguiente diagrama:

/ * Objetos y descripciones globales * / / * Alcance * /

Directivas del pre procesador un global macros

prototipos de funciones

descripciones de tipo

descripciones de variables globales

encabezado de función local

(variables externas del bloque;

operadores;

{ Unidad interior l ronda

descripciones de otras funciones

/ * fin del programa * /

Ejemplo. Utilizando bloques anidados con variables del mismo nombre.

Programa:

(int i = 2; / * i - variable de bloque externa * /

int count = 0; / * recuento - variable externa * /

mientras (cuenta<= i) /* цикл внешнего блока */

(int = 0; / * i - variable local del bloque interno * /


contar ++; / * contador de ciclos * /

printf (“En un bucle: cuenta =% d; i =% d \ n”, cuenta, i);

/ * fin del bloque interior, volver a la variable i del bloque exterior * /

printf (“Fuera del ciclo: cuenta =% d, i =% d”, cuenta, i);

Resultado del programa:

En el recuento de bucles = 1 i = 0

En el recuento de bucles = 2 i = 0

En el recuento de bucles = 3 i = 0

Fuera de cuenta de bucle = 3 i = 2

El programador puede claramente establecer atributos de alcance y vida útil utilizando especificadores de clase de memoria (almacenamiento): para variables(auto - local, registro - registro, estático - estático, extern - externo) y para funciones(estático, externo).

Las variables con clase de almacenamiento automático (predeterminado) y registro se refieren a local en el bloque tanto por el alcance como por la vida útil. Para las variables con la clase auto, la memoria se asigna en la pila (memoria temporal) y con la clase de registro, en uno de los registros de procesador libres.

La memoria para las variables con clase estática se asigna en el segmento de datos (memoria estática del programa), y no en la pila, por lo que guardar su valor en Salida de la cuadra. Si falta explícito inicialización de tales variables, entonces defecto se establecen en 0. Se realiza la inicialización uno veces y no se repite al entrar nuevamente al bloque. Los objetos de clase static tienen local alcance (bloque) y global vida (tiempo de ejecución del programa).

Ejemplo... Usando variables estáticas.

Programa:

ejemplo vacío (int c); / * prototipo de función * /

void main () / * función principal * /

(int count; / * variable de bloque local * /

para (cuenta = 9; cuenta> = 5; cuenta - = 2) / * bucle de contador * /

ejemplo (cuenta); / * Llamada de función * /

ejemplo vacío (int c) / * encabezado de función * /

(int f = 1; / * variable local * /

static int stat = 1; / * variable estática * /

printf ("c =% d, f =% d, stat =% d \ n", c, f, stat);

stat ++; / * cambiar variable estática * /

Resultados del programa: c = 9, f = 1, stat = 1

c = 7, f = 1, stat = 2

Estructura de programa modular

Se adopta un enfoque modular para simplificar la aplicación, mejorar su confiabilidad y eficiencia. La modularización le permite dividir una tarea en bloques funcionales más pequeños, lo que facilita el desarrollo. Al adoptar este enfoque para el diseño del sistema, puede ampliar fácilmente funcionalidad módulos individuales sin afectar fuente otros. Para reducir la complejidad software, debe hacer que los módulos sean más pequeños y más independientes. Se pueden aplicar dos métodos para hacer que los módulos sean más independientes:

Fortalecimiento de las conexiones internas de los módulos;

Debilitamiento de la relación entre módulos.

Esta estructura se utiliza para garantizar la independencia funcional de los módulos del programa, es decir separación máxima de las funciones de los módulos. Esto aumenta la conectividad interna de los módulos y debilita su adhesión externa.

Los módulos del programa tienen una fuerte coherencia interna, ya que contienen métodos que procesan un conjunto específico de datos y tienen su propio propósito funcional.

La estructura modular de la biblioteca se presenta en el Apéndice E en la Figura E.1 y el visualizador en la Figura E.2.

Pruebas

De todas las etapas de la depuración de software, la prueba es la que requiere más tiempo y es la más cara. En el desarrollo de software típico, las pruebas representan aproximadamente el 40% del tiempo total y más del 40% del costo total del software.

Es necesario realizar pruebas para mejorar la confiabilidad del software; de ​​lo contrario, no es necesario. Puede mejorar la confiabilidad eliminando errores. Por lo tanto, realizar pruebas para demostrar la exactitud del programa no tiene sentido. Las pruebas pueden identificar errores, corregirlos y, por lo tanto, mejorar la confiabilidad del software.

Durante la implementación del proyecto, cada clase fue sometida a pruebas exhaustivas, durante las cuales se llevó a cabo un análisis formal del texto del programa, lo que permite detectar una gran cantidad de errores en las primeras etapas de la programación, y verificar la corrección del programa. utilizando determinados conjuntos de datos de prueba. Al mismo tiempo, se controló cada combinación de los datos iniciales, así como la correspondencia de los resultados de cada conjunto de datos inicial con el resultado requerido.

Documentando

Tarea técnica

Muchos proyectos requieren el uso de paisajes. Este paquete de software le permite generar un paisaje tridimensional y lo muestra en la pantalla del monitor.

6.1.1 Propósito del desarrollo

El paquete de software está diseñado para generar y mostrar paisajes.

6.1.2 Requisitos para un programa o producto de software

Para el usuario, la aplicación debe proporcionar las siguientes capacidades:

1) la capacidad de ingresar datos de entrada, como alturas mínimas y máximas, dimensiones del mapa, inclinación de las montañas;

2) generación de paisajes;

3) salvar el paisaje para su uso en programas de terceros;

4) demostración del resultado obtenido al mostrar la imagen en la pantalla.

6.1.3 Requisitos de confiabilidad

El paquete de software debe tener una verificación de la información de entrada para verificar el cumplimiento de los tipos, pertenecientes al rango de valores permitidos y el cumplimiento de la corrección estructural, además, el visualizador debe verificar que el equipo cumpla con los requisitos técnicos y software... En caso de errores, prever la posibilidad de mostrar mensajes de diagnóstico informativos.

6.1.4 Requisitos para la composición y parámetros de los medios técnicos

Para el funcionamiento mínimo del programa, necesita: Computadora personal, 2 GB memoria de acceso aleatorio, 50 MB de espacio libre en el disco duro; teclado, ratón.

Para rendimiento óptimo las aplicaciones necesitan al menos 3 GB de RAM.

6.1.5 Requisitos de compatibilidad de información y software

El programa debe funcionar con Windows 7 y sistemas operativos superiores; DirectX 11; Visual c ++ 2015; ... NET Framework 4.5 y más.

6.1.6 Requisitos para la documentación del software

La documentación del programa debe contener un manual de usuario, documentación para trabajar con la biblioteca.

Guía del usuario

El programa se inicia ejecutando el archivo shell.exe, después de iniciar verá la ventana que se muestra en la Figura 6.1.

Llame al menú "archivo", puede utilizar el botón "borrar" para restablecer los datos a valores estándar... Utilice el botón "Guardar como bmp" para guardar el mapa de altura en formato bmp. El botón "Guardar como obj" se puede utilizar para guardar el terreno en formato obj. Al hacer clic en el botón "Ver", se lanzará el visualizador, en el cual será posible verlo en forma tridimensional, se presenta en la Figura 6.2.

Figura 6.1 - Ventana del programa


Figura 6.2 - Ventana del programa

Llame al menú "configuración", puede utilizar el botón "configuración del programa" para configurar el programa para la visualización. Con el botón "Configuración de procesamiento", puede personalizar el procesador.

El movimiento en el visualizador se realiza mediante los botones del teclado w, a, s, d, que corresponden a las direcciones adelante, izquierda, derecha, atrás.

La cámara está controlada por el ratón.

Documentación de la biblioteca

Para trabajar con la biblioteca, debe incluir el archivo LandscapeGenerator.dll en su proyecto. El proyecto debe declarar una instancia de la clase LandscapeGenerator. La clase contiene los siguientes métodos para cambiar los parámetros del terreno, como ancho, largo, altura mínima y máxima, montañosidad, generación de terreno, retorno del terreno como mapa de bits, ahorro de terreno en formato obj y bmp.

Anteriormente, en Internet, el tipo de diseño tabular estaba muy extendido, al que está dedicado. Sin embargo, con el tiempo, este enfoque para crear una estructura de sitio quedó obsoleto y fue reemplazado por un diseño de bloque.

Diferencias entre diseño de bloque y tabular

Si el diseño de la tabla implica que el contenido de la página está dentro de la etiqueta

, entonces el concepto de diseño de bloques se basa en el uso activo de etiquetas universales
dentro del cual se coloca el contenido, incluidas otras etiquetas.

El diseño del bloque carece de los inconvenientes del diseño de la mesa: los motores de búsqueda está mejor indexado, su código no es tan extenso y los bloques

, que tanto les gusta ser llamados "capas", fueron originalmente concebidos como universales, es decir, "para todo", mientras que
es una tabla que debe usar para mostrar datos tabulares y nada más.

La única desventaja notable del diseño de bloques es que los sitios creados en él se pueden mostrar de diferentes maneras en los navegadores. Para evitar esto, debe hacer que el diseño sea "entre navegadores", es decir, que se muestre por igual en cualquier navegador.

La esencia del diseño de bloques

V editor grafico Se crea un diseño de sitio web: se marca dónde se ubicará qué área de la página (encabezado, parte inferior, barra lateral, contenido principal) y cuánto espacio para tomar, fotografías y fondos se están preparando.

Cada parte de la página se coloca en su propio bloque.

: la parte superior del sitio - en el primero, el menú - en el segundo, el contenido - en el tercero, etc. Cada bloque está lleno de contenido usando HTML, así como colocado y diseñado usando marcado CSS.

El documento HTML final es una colección de bloques.

con contenido adentro. El diseño a menudo se encuentra en un archivo CSS separado conectado a la página con una etiqueta. , o al menos en un recipiente