Fundamentos de programación 1 curso de lectura. Apuntes de clase para el curso “Programación. Configuración básica de la computadora

Introducción.

Lenguaje de programación- un conjunto de palabras clave y un sistema de reglas gramaticales y sintácticas para construir declaraciones que consisten en grupos o estrofas de signos, con la ayuda de los cuales una persona le dice a la computadora una secuencia de comandos.

La especificidad es que las designaciones son comprensibles para los humanos y se pueden convertir en una secuencia de comandos de máquina.

Clasificación lenguajes de programación:

    No estructural (conversión de códigos de máquina en lenguaje ensamblador);

    Modular (tareas → subtareas → algoritmos → funciones);

    Enfoque lógico;

    Enfoque orientado a objetos;

    enfoque funcional;

    enfoque mixto;

    Enfoque orientado a componentes;

Traductor– programa para traducción de programas comprensible para el hombre caracteres en un programa de código de máquina.

El concepto de un algoritmo formal.

Algoritmo formal- una secuencia predeterminada de reglas o comandos bien definidos para obtener una solución a los problemas en un número finito de pasos.

cinta de trabajo es una matriz ordenada linealmente de longitud variable. Cada celda tiene 1 carácter. variable puntero- cabeza de control, que en cualquier momento apunta a cualquier celda de la cinta de trabajo.

Eficiencia del algoritmo– un algoritmo o función es efectivamente computable si existe un algoritmo que lo calcula correctamente y cumple los siguientes requisitos:

    Consiste en un conjunto finito de comandos simples para los cuales el orden de ejecución está definido de manera única;

    Los cálculos deben terminar y dar el resultado en un número finito de pasos;

    Si el argumento está dentro del alcance, no debería resultar en que el argumento esté fuera del alcance.

Se dice que un algoritmo es eficiente si admite una implementación computacional eficiente.

años 20 del siglo XX. – Máquina de Turing (Hilbert, Church (la base de los conceptos de una función recursiva), Kleene, Post, Turing (una descripción del proceso algorítmico))

1936 - Se presentó el concepto de un dispositivo automático capaz de realizar cualquier cálculo imaginable.

Coche abstracto.

∆Von Neumann (1945-EDVAC arquitectura de 3 componentes).

Tal computadora ejecuta un programa que debe almacenarse en la memoria, donde también se almacenan los datos de este programa.

ZU y VVV - acceso directo en memoria.

Variable- un área en la memoria.

Memoria- una secuencia de celdas para almacenar una parte de la información. El acceso a la información se realiza de acuerdo con la dirección de esta celda o por orden de prioridad.

Clasificación de la memoria:

    constante;

    operativo = temporal (v)

CU: para leer comandos de datos de la memoria y coordinación general de comandos.

ALU: para realizar operaciones aritméticas y lógicas simples.

Las principales etapas de resolución de problemas en una computadora.

    Conciencia del problema, formulación del problema. ;

    Declaración formal del problema. (se forma un objetivo, se describe su contenido), qué hará el programa sin especificar cómo), se analiza la naturaleza, la esencia de todas las cantidades utilizadas en la tarea, se determina la condición bajo la cual se resuelve, el resultado este escenario es la especificación del programa);

Especificación del programa una descripción exacta del resultado que desea obtener con la ayuda del programa.

    Selección o desarrollo de un método para resolver problemas (teniendo en cuenta las peculiaridades, el método debe conducir la tarea a operaciones específicas de la máquina);

    Desarrollo de un algoritmo para la resolución de problemas. (el proceso de procesamiento se divide en bloques separados relativamente independientes);

    Desarrollo de estructuras de datos y arquitectura de programas. (empezando por el diseño de la arquitectura, estructuras generales de datos);

    Traducción del algoritmo a un lenguaje de programación. (idiomas requeridos nivel alto con el traductor apropiado a código máquina);

    Desarrollo, depuración y pruebas de sistemas de prueba. programas (búsqueda y eliminación de errores sintácticos y lógicos en el programa). El control de sintaxis lo realiza el traductor, que detecta construcciones y combinaciones de caracteres que son inaceptables desde el punto de vista del lenguaje de programación. Después de la eliminación errores de sintaxis la lógica del trabajo se verifica en el proceso de su ejecución con datos iniciales específicos);

    Solución de la tarea y análisis de los resultados. (La solución múltiple de problemas se realiza en una computadora para diferentes conjuntos de datos iniciales. El resultado es interpretado por un especialista o un usuario que creó el problema).

Las etapas están relacionadas entre sí, pero pueden faltar algunas. Un resultado insatisfactorio conduce a la revisión de una o más de las etapas anteriores.

Criterios de calidad del software.

    Funcionalidad . (Describe las propiedades del software en términos de la integridad del cumplimiento de los requisitos del usuario. La evaluación de la calidad del software debe comenzar con un establecimiento preciso y formal de los requisitos y la verificación del cumplimiento del software con estos requisitos).

    Confiabilidad del software - una característica de su capacidad para realizar las funciones asignadas cuando se reciben solicitudes para su implementación. A diferencia de la fiabilidad corrección del software- cumplimiento de los requisitos, es decir, la diferencia es que la corrección es alguna propiedad estática que, de acuerdo con la especificación, debe tener el programa. Confiabilidad: requisitos dinámicos para el rendimiento del sistema.

    Sentido práctico:

    Facilidad de uso;

    Modificabilidad (la naturaleza de la complejidad de realizar cambios en el programa en caso de errores, etc.)

    mantenibilidad

    Posibilidad de uso múltiple (presencia partes separadas, módulos, etc., que se pueden transferir sin cambios o con cambios menores a otros programas)

    La movilidad es un conjunto de atributos relacionados con la relación entre el nivel de calidad de las funciones del software y la cantidad de recursos utilizados en condiciones específicas. Se caracteriza de 2 formas: teniendo en cuenta la memoria utilizada, la velocidad del programa.

programas de diálogo.

Según el método de comunicación de los programas de uso, los programas de aplicación se dividen en:

    Funcionamiento en modo automático;

    programas de diálogo.

El diálogo con el programa se puede realizar en 2 modos:

          Lote (recibe todos los datos iniciales antes de empezar a trabajar)

          Interactivo (modo pregunta-respuesta)

Interfaz - un sistema de enlaces unificados que determinan el método de interacción entre los componentes de hardware de un sistema informático, entre una persona y una aeronave, etc.

Interacción interactivamente de acuerdo con el siguiente esquema:

    Modo línea de comando(recupera parámetros de operación ingresando comandos)

    Sistema de menús (el programa recibe una señal de control cuando el usuario selecciona un elemento de la lista, que enumera todas las opciones posibles para el funcionamiento del programa).

Los programas se dividen en consola aplicaciones y aplicaciones con una interfaz gráfica. Al diseñar una interfaz hombre-computadora, se deben tener en cuenta los requisitos para garantizar una interacción efectiva entre el usuario y el sistema.

Requisitos:

    Interfaz natural;

    Interfaz serial (cada acción actual del usuario debe estar determinada por el resultado de la acción anterior)

    Interfaz no redundante

    La interfaz debe brindar soporte al usuario;

    La interfaz debe ser flexible (habilitar funciones de personalización de la interfaz)

Ciclo de vida del programa.

El período desde el concepto inicial hasta la obsolescencia.

El ciclo de vida incluye las siguientes etapas:

    Desarrollo de requisitos para el sistema;

    Desarrollo de requisitos de software;

    Diseño general;

    Diseño detallado;

    Creación de módulos individuales;

    Pruebas de módulos individuales;

    Combinación de módulos en sistemas;

    Liberación del sistema;

    Operación de mantenimiento del sistema;

Modelos para la creación de sistemas.

    Cascada (cascada)

No es posible el retorno de la etapa anterior.

    Modelo de desarrollo del sistema.

    Cíclico.

Métodos de representación de algoritmos.

Las propiedades de certeza de un algoritmo requieren implementación al describir sus lenguajes formales. Sin embargo, el grado de formalización (qué tan estricta debe ser la sintaxis del lenguaje) así como la presentación del algoritmo está determinada por lo que se pretende que sea la ejecución. Ejecutor formal de un sujeto o dispositivo que es capaz de percibir y analizar la indicación del algoritmo, cambiar su estado de acuerdo con ella y tiene un mecanismo de control capaz de procesar la información poco a poco.

En programación, hay ciertas representaciones de algoritmos diseñados para diferentes ejecutantes:

    Si para una persona el registro se puede formalizar por completo, la claridad y la visibilidad son esenciales;

    Para los dispositivos técnicos, la falta de ambigüedad de comprensión y ejecución es importante, así como la restricción de estructuras gramaticales permisibles;

Formas de representación de algoritmos:

    Simbólico (una secuencia de líneas, cada una de las cuales contiene una descripción de una o más acciones elementales). El orden de ejecución del algoritmo viene dado por:

    1. EN explícitamente(indicando la etiqueta de la secuencia);

      De forma implícita (la naturaleza elemental de la acción está determinada por las capacidades del ejecutante).

El método simbólico es básico: es comprensible tanto para humanos como para computadoras.

    formulario Pomagovosnaya: una secuencia numerada de líneas, cada una de las cuales contiene una descripción de acciones específicas en lenguaje natural (para humanos): algoritmos para cálculos matemáticos sobre números finitos;

Algoritmo de Euclides:

        Si a=b, resulta a;

        Si a>b, ?(a-b), a=a-b → 1) ;

        si un

    Las fórmulas son un registro de línea de acciones que proporcionan procesamiento de datos numéricos, simbólicos y lógicos.

    El pseudocódigo es un lenguaje orientado al ser humano, parcialmente formalizado (solo las reglas para escribir estructuras de guía están estrictamente definidas en el pseudocódigo) que le permite escribir un algoritmo en una forma muy similar a los lenguajes de programación de alto nivel.

Estructuras de guía de pseudocódigo:

      Guías externas del algoritmo;

      Ramificación (si, entonces, si no, todo)

      Ciclo (por ahora - repetir - terminar - por ahora)

Algoritmo de Euclides:

Mientras a≠b repite

si a > b entonces

Terminara si

Fin adiós

D. Lenguaje de programación- lenguaje formalizado artificialmente para computadoras

    Gráfico (para representar elementos individuales usando algún conjunto formas geométricas). Solo para humanos.

visibilidad

Intensidad laboral

→ línea de conexión

Programación estructural.

Hasta mediados de los años 60, no existía una teoría del desarrollo de algoritmos y el proceso de desarrollo estaba determinado por la experiencia y la habilidad del programador. Sin embargo, a medida que crecía la complejidad de los programas, se hizo necesario crear una metodología para desarrollar un programa, que se materializó en forma de programación estructurada. Las ideas de tal programación fueron expresadas por Dijkstra (1965).En el mismo año, los matemáticos italianos Bohm, Giacopini formularon el teorema de estructura que subyace a esta programación.

bloque de funciones parte de un algoritmo organizado como una acción simple que tiene 1 entrada (ejecución de la misma acción) y 1 salida (después de la finalización, la misma acción siempre comienza a ejecutarse).

En la programación estructurada, existen 3 opciones para organizar el flujo de control:

    Flujo lineal (varios bloques de funciones se ejecutan secuencialmente;

    derivación;

    cíclico.

Un algoritmo se denomina estructural si puede representarse mediante una secuencia de bloques funcionales enumerados.

Características de los algoritmos estructurales.

    Claridad y facilidad de percepción;

    Comprobabilidad;

    Modificabilidad.

Teorema estructural:

A cualquier algoritmo no estructural se le puede asignar un algoritmo estructural equivalente, cualquier programa se puede escribir solo usando construcciones de condición y bucle.

Información preparada para propósitos específicos, a menudo implicando un formato específico. en informática, 3 diferentes significados este término:

    Estos son objetos que no son instrucciones, es decir, operandos procesados ​​por el programa. Los valores de las constantes y archivos variables datos, lo opuesto a los archivos de programa. El significado del término depende del contexto. equipos en idioma original son datos para el compilador. El código objeto obtenido como resultado del trabajo del compilador son los datos iniciales para el cargador después del inicio de la ejecución. El código objeto se convierte en el programa.

    en el contexto de los programas, la palabra "datos" puede interpretarse en el sentido de "datos de entrada", en contraposición a los resultados del trabajo de los resultados del programa, sus datos de salida. En este caso, los resultados de un programa pueden ser datos para otro.

    los datos pueden significar algo más que texto, voz, imágenes. El procesamiento de datos se opone al procesamiento de texto, voz, imágenes. Este uso del término enfatiza el alto formato de los datos en las aplicaciones tradicionales de procesamiento de datos en oposición a las estructuras menos estrictas que se utilizan para representar el texto en lenguaje natural en el procesamiento audiovisual.

El valor de la variable es data.

Información.

Con respecto a los términos procesamiento de la información, tecnología de la información (TI), teoría de la información.

La información es una colección de símbolos. Los símbolos se definen como imágenes que llevan una carga semántica. Alguno cantidad de información puede verse desde 3 puntos de vista principales:

    con comportamiento (la creación de una porción de información se lleva a cabo por alguna razón, y la recepción de esta información puede conducir a algún resultado, una acción observada u operación mental);

    con matemática y lingüística (una parte de la información se puede escribir correlacionándola con otra información, indicando su significado y estructura)

    con aspectos físicos y técnicos (aspectos físicos de la manifestación de la información, su transportador de materiales, la resolución y precisión con que se registran, la cantidad de información que se produce, transmite o recibe, etc.).

La información se puede crear, transmitir, almacenar, buscar, copiar de una forma u otra, procesar, destruir. Las muestras informativas pueden existir en la mayoría diversas formas(luz, sonido, ondas de radio, corriente o voltaje eléctrico, campos magnéticos, letreros en papel). La información puede ser transportada por cualquier estructura material o flujo de energía.

El programa está en un lenguaje de alto nivel.

Etapas de existencia del software (no el ciclo de vida del programa):

expuesto transmisiones(procedimiento de traducción de un lenguaje de alto nivel a Lenguaje de máquina.) Durante la traducción, se puede utilizar la transición a un idioma intermedio: se pueden utilizar traducciones cruzadas. El lenguaje ensamblador se puede utilizar como lenguaje intermedio.

ensamblador Un programa que traduce del lenguaje ensamblador al lenguaje máquina.

Lenguaje de máquina- un lenguaje que utiliza instrucciones de máquina escritas en un formato aceptado por un dispositivo informático particular.

El lenguaje ensamblador es una notación mnemotécnica para lenguaje de máquina (add-add).

Traductor– un programa que realiza el procedimiento de traducción. 2 tipos:

    compilador;

    intérprete.

    1. Compilador- traduce el texto del programa en lenguaje máquina en su totalidad.

El resultado del trabajo es un archivo objeto que contiene un programa en lenguaje de máquina e información sobre los datos utilizados por el programa. Archivo de objeto que se está procesando enlazador(enlazador) o editor de enlaces.

enlazador procesa archivos de objetos, resuelve enlaces externos(pone a disposición llamadas a objetos de función o datos de otros archivos de objetos o bibliotecas estándar), realiza el trabajo preparatorio necesario para la posterior carga del programa para su ejecución. En el caso de BorlandC, obtenemos un archivo ejecutable (.exe).

Cargador de programas de alojamiento codigo ejecutable y datos en la memoria de la computadora y transferir el control a la primera comando ejecutable programas

Cuando Computadoras personales Las funciones del gestor de arranque se comparten entre el sistema operativo y el código incluido en el ejecutable.

La ejecución del programa comienza con la carga en el registro del contador de comandos ejecutables de la CPU, la dirección de la primera instrucción ejecutable del programa.

El dispositivo de control lee el código de comando en esta dirección, lee los valores de los operandos (si los hay) de acuerdo con él, transfiere el código y los operandos a la ALU, que realiza las operaciones necesarias.

Una vez completada la instrucción, el valor del registro del contador del programa se incrementa por el valor de la longitud de la instrucción, que se conoce a partir del código de operación.

El procedimiento se repite hasta que se cumple el comando. detener. El programa ejecutable generalmente termina con la devolución del control al programa que llamó a este programa (SO).

      Intérprete- lee el programa en el idioma fuente por comando o línea por línea, lo traduce a lenguaje máquina y lo envía para su ejecución.

La entrada es un programa en un lenguaje de programación. El resultado es un comando línea por línea.

Un ejemplo de un comando de máquina, un lenguaje de alto nivel.

El operador goto es una bifurcación incondicional.

goto_"etiqueta";

"Etiqueta" - un identificador que define un punto en el texto del programa. En C, una etiqueta salta a una declaración específica o una declaración vacía.

A=B+C; después de la compilación

M:A=D+E; goto se traducirá como saltar. El operando del programa debe ser una dirección. La etiqueta M después de la compilación recibirá su valor como una dirección relativa al comienzo del código ejecutable, a partir del cual, después de la traducción a lenguaje máquina, se escribirán los comandos correspondientes a A=D+E. (Lun enlace relativo). Cuando se carga el diseño de la memoria, la referencia relativa será reemplazada por la dirección real (referencia absoluta en algún formato). Después de que la dirección del comando de salto ingrese al contador del programa, el valor de la dirección absoluta de la etiqueta M se cargará en el registro del contador del programa, que es un salto incondicional.

Sobre el operador A=D+E. el operador real A=D+E dará lugar a la aparición de los comandos de la máquina: adición, reenvío.

Intérprete de línea de comandos.

identificador una cadena de caracteres utilizada para identificar o nombrar algún elemento del programa. El tipo de elemento con nombre depende del lenguaje de programación (puede ser una variable, una estructura de datos, un procedimiento, un operador, una construcción de alto nivel o el propio programa).

Nombre– designación de un objeto en un programa o sistema. El nombre denota una entidad, independientemente de su ubicación física o dirección. Los nombres se utilizan con el fin de fijarlos durante mucho tiempo, por ejemplo, al módulo que se describe (una subrutina para calcular la raíz cuadrada) o por conveniencia (es más fácil para una persona reconocer nombres que direcciones).

Todos los nombres se convierten en direcciones mediante un proceso llamado búsqueda de nombres. En muchos idiomas, un nombre es un identificador simple, que es una cadena de letras o una cadena de texto. En idiomas más desarrollados, el nombre puede estar compuesto. Los elementos se agrupan en un nombre de acuerdo con las reglas gramaticales del idioma.

En el ejemplo anterior (con goto), el identificador se usa para nombrar la dirección donde se colocará la declaración, que se ejecutará inmediatamente después de la declaración. salto incondicional ir a.

Criterios de calidad del programa.

Las siguientes propiedades se utilizan para definir la calidad:

    Bien;

    Eficiencia;

    replicabilidad;

    modificabilidad;

    Estilo de programación.

    bajo prueba exactitud los programas entienden las matemáticas formales Confirmación de que la semántica del programa cumple con los requisitos establecidos en la especificación de este programa.

Semántica- una parte de la definición de una lengua, relativa a la indicación del significado y la acción del texto, compilada de acuerdo con las reglas sintácticas de esta lengua.

Sintaxis- reglas que determinan, en el caso de un lenguaje de programación, las secuencias permitidas de construcciones del lenguaje, así como la secuencia y disposición de los símbolos en el programa. Las reglas de sintaxis definen solo la forma de varias construcciones del lenguaje, pero no dicen nada sobre su contenido semántico.

Análisis sintáctico (parsing) se refiere al proceso de decidir si una cadena de caracteres dados es una oración idioma dado y, si es así, entonces adicionalmente el proceso de determinar la estructura sintáctica de la cadena de entrada según lo determinado por la gramática.

Gramática- una de las principales aproximaciones a la descripción de un lenguaje formal infinito por medios finitos. Contiene un conjunto de reglas que se utilizan para derivar una cadena de otra reemplazando subcadenas. Las cadenas de un idioma específico se derivan de alguna cadena inicial aplicando repetidamente estas reglas.

Especificación de software- una descripción precisa del resultado que desea lograr con la ayuda del programa. La descripción debe indicar exactamente qué debe hacer el programa, no cómo. Para los programas que terminan su trabajo con algún resultado, la especificación del programa puede tomar la forma de una especificación de "entrada-salida" que describe el mapeo deseado de un conjunto de entradas a un conjunto de salidas.

Para programas cíclicos en los que no se puede especificar un punto de terminación, no se puede dar una especificación simple de "E/S". En este caso, se especifican funciones individuales que son implementadas por el programa en el curso de una operación cíclica.

Al probar la corrección de los programas secuenciales típicos escritos en algún lenguaje de procedimiento imperativo, la descripción del programa se presenta en forma de dos declaraciones simples: entrada y salida. Las declaraciones expresan las propiedades de ciertos elementos del programa y las relaciones entre ellos. La prueba consiste en demostrar formalmente que la semántica del programa es compatible con las sentencias de entrada y salida. Programa de solución ecuación cuadrática: a, c, c - entrada; x1, x2 - días libres.

Lenguajes imperativos y declarativos.

Idiomas imperativos (procedimientos). Clase de lenguajes de programación.

Un programa escrito en un lenguaje procedimental especifica explícitamente cómo obtener el resultado deseado sin especificar las propiedades esperadas del resultado. El resultado se especifica implícitamente solo por la forma en que se obtiene utilizando un determinado procedimiento. El procedimiento para obtener el resultado deseado tiene la forma de una secuencia de operaciones y, por lo tanto, es típico que los lenguajes de procedimiento indiquen la lógica de control en el programa y el orden en que se ejecutan los operadores. Estos lenguajes suelen tener operadores de asignación que destruyen información (el valor asignado reemplaza al anterior) y también depende del orden de ejecución. Los lenguajes procedimentales están estrechamente relacionados con el modelo de computación de von Neumann (C, Pascal, Fortran).

Los imperativos se contrastan con los lenguajes declarativos (Prolog).

Cuando se utiliza un lenguaje declarativo en un programa, se indica explícitamente qué propiedades debe tener el resultado, pero no dice cómo se obtendrá. Es adecuado cualquier método para obtener un resultado que tenga las propiedades requeridas.

En estos lenguajes, no existe el operador de asignación y el concepto de ordenación y el concepto de ordenación y flujo de comandos. Idealmente, un programa en este lenguaje representa un sistema desordenado de ecuaciones que caracteriza el resultado deseado. Una de las ventajas es que el algoritmo para lograr el resultado deseado puede tener un alto grado de paralelismo.

    Confiabilidad del software.

Características de la capacidad del sistema de software para realizar las funciones que se le asignan (al recibir los requisitos para su implementación). El concepto de confiabilidad del software difiere significativamente del concepto de prueba de corrección del programa.

Bien- alguna propiedad estática que, de acuerdo con las especificaciones, debe tener el programa.

Fiabilidad se refiere a los requisitos dinámicos colocados en el sistema para satisfacer los requisitos.

Programa ser correcto puede considerarse poco fiable si las especificaciones que cumple no cubren todos los requisitos de los usuarios para este programa.

Un programa que no es completamente correcto puede considerarse confiable si los errores cometidos en él son pequeños, ocurren raramente, en períodos de tiempo no críticos, o pueden ser fácilmente evitados por el usuario (solucionador de ecuaciones cuadráticas).

Aseguramiento de la calidad del software.

El proceso de confirmar la alta calidad de un sistema de software y su documentación asociada para garantizar que el sistema es apto para su propósito en todos los aspectos.

Para ello, comprueba funciones necesarias, monitorear el cumplimiento de los estándares en la programación, verificar la integridad de la documentación del programa y su cumplimiento con los estándares, analizar la calidad de las instrucciones y manuales de usuario para trabajar con el sistema; se puede investigar la confiabilidad del software y realizar las comprobaciones necesarias para determinar el grado de conveniencia del sistema y la documentación durante la operación.

Estándares de programación- un sistema de reglas o convenciones que restringen la presentación de programas producidos por una organización en particular.

    Eficiencia– en términos de calidad del software programa efectivo será de acuerdo con 2 criterios mutuamente excluyentes:

    Tiempo de espera;

    La cantidad de memoria utilizada;

(Se dan las variables a y b. El resultado es a = b, y b = a)

    Estilo de programación.

(Fundamentos del lenguaje C++,Isemestre)

Introducción

El primer semestre se ocupa de las construcciones básicas del lenguaje C y la tecnología básica de programación (programación estructurada).

La programación estructurada es una tecnología para la creación de programas que, siguiendo ciertas reglas, reduce el tiempo de desarrollo y el número de errores, además de facilitar la posibilidad de modificar un programa.

    1. Algoritmo y programa

Un algoritmo es una receta exacta que define el proceso computacional que va desde el cambio de los datos iniciales hasta el resultado final, es decir, es una receta para lograr algún objetivo.

algoritmo

Un conjunto de herramientas y reglas para representar un algoritmo en una forma adecuada para su ejecución por una computadora se llama lenguaje de programación, un algoritmo escrito en este lenguaje se llama programa.

Primero, siempre se desarrolla un algoritmo de acción y luego se escribe en uno de los lenguajes de programación. El texto del programa es procesado por programas de servicios especiales: traductores. Los lenguajes de programación son lenguajes artificiales. Se diferencian de los lenguajes naturales en un número limitado de "palabras" y reglas muy estrictas para escribir comandos (operadores). La totalidad de estos requisitos forma la sintaxis del lenguaje de programación, y el significado de cada construcción es su semántica.

    1. Propiedades del algoritmo

    Carácter de masa: el algoritmo debe aplicarse no a un problema, sino a toda una clase de problemas similares (un algoritmo para resolver una ecuación cuadrática no debe resolver una ecuación, sino todas las ecuaciones cuadráticas).

    Eficiencia: el algoritmo debe conducir a un resultado en un número específico de pasos (al dividir 1 por 3, se obtiene una fracción periódica 0.3333(3), para lograr el resultado final, es necesario especificar la precisión de obtención de esta fracción, por ejemplo, hasta 4 decimales).

    Definición (determinación): cada acción del algoritmo debe ser clara para su ejecutante (instrucción para un electrodoméstico en japonés para una persona que no sabe japonés no es un algoritmo, porque no tiene la propiedad de determinismo).

    Discreto: el proceso debe describirse en términos de operaciones indivisibles realizadas en cada paso (es decir, los pasos no se pueden dividir en pasos más pequeños).

Los algoritmos se pueden representar de las siguientes formas:

    descripción verbal del algoritmo.

    descripción gráfica del algoritmo.

    utilizando un lenguaje de programación algorítmico

1.2. Compiladores e intérpretes

Con la ayuda de un lenguaje de programación, se crea un texto que describe un algoritmo compilado previamente. Para obtener un programa que funcione, debe traducir este texto en una secuencia de instrucciones del procesador, lo que se realiza mediante programas especiales llamados traductores. Hay dos tipos de traductores: compiladores e intérpretes. El compilador traduce el texto de un módulo de origen en código de máquina, que se denomina módulo de objeto, en un proceso continuo. Al mismo tiempo, primero mira el código fuente del programa en busca de errores de sintaxis. El intérprete ejecuta el módulo fuente del programa en modo operador por operador, mientras trabaja, traduciendo cada operador a lenguaje máquina.

EN acceso abierto hace varios años, pero traducida al ruso por primera vez. Se tomó como base la versión más reciente, la que comenzó en Harvard en el otoño de 2015.

Pasamos la voz a los chicos de JavaRush.

Antes de convertirse en un programador típico, una persona debe recorrer el camino de un estudiante típico. Por "estudiante" aquí nos referimos a una persona que aprende algo nuevo a fondo. No necesariamente estudia en una universidad: tal vez busca de forma independiente en Internet en busca de información útil. Entre las toneladas basura de informacion en ocasiones se pueden encontrar diamantes reales, aunque con el tamaño y estructura actual red global esto es muy, muy difícil de hacer.

Un día, Zapp, el jefe de JavaRush (JavaRush estará al final del artículo), estaba hurgando en Internet, tratando de encontrar esos diamantes para los principiantes en programación (estudiantes de JavaRush) y se encontró con el CS50. Bajo este acrónimo se encuentra un curso de introducción a los conceptos básicos. Ciencias de la Computación y el arte de programar. Se lee a estudiantes de la Universidad de Harvard y, más recientemente, de Yale. Y "in absentia" en todo el mundo, a través de la plataforma educativa de Internet edX. ¡Y completamente gratis!

Francamente, el curso enganchó a Zapp, aunque por lo general no favorece (por decirlo suavemente) las universidades que llenan a los estudiantes con tecnologías que han perdido su relevancia incluso durante la turbulenta juventud de sus padres. Las conferencias universitarias de "TI" también son aburridas la mayoría de las veces. Tanto es así que los pómulos se reducen. Pero no, CS50 no es así, ¡ni de cerca! Es progresivo (se actualiza constantemente), las conferencias se pueden ver como una serie genial (y no se quedan dormidos en la parte de atrás del salón de clases ni se dedican a sus asuntos), las tareas se eligen con significado. Quiero ver el curso, estudiar y... continuar fusionándome con TI.

En resumen, CS50 hace exactamente lo que debería hacer cualquier curso introductorio: proporciona la base y lo inspira a hacer lo que quiere hacer a continuación. Al mismo tiempo, es universal, es decir, será útil para absolutamente cualquier futuro especialista en TI, independientemente de su especialización. Y, sin embargo, para aprender CS50, no necesita estudiar "análisis matemático", "discreto" y otras matemáticas universitarias. El curso es bastante dominado por un humanista o un estudiante de secundaria. Si sabe inglés, claro. ¿Y si no? Anteriormente, aquellos estudiantes que apenas podían entender el discurso enérgico del disertante solo podían ser ayudados por subtítulos traducidos automáticamente, de los cuales es extremadamente difícil extraer el significado en la realidad.

Pero ahora ni siquiera tienes que aprender inglés. Aunque no, claro, pero ya por trabajo, y no por estudio. Porque nosotros, el estudio JavaRush y VertDider, hemos traducido las conferencias CS50 al ruso.

Lo que se enseña en CS50

Sería un error decir que el CS50 le enseñará a programar desde y hacia, pero, en cuanto a mí, introducción correcta en ciencias de la computación debería ser solo eso. A los estudiantes se les explica todo y poco a poco, pero antes que nada, cómo "piensa" una computadora. su alfabeto es cálculo binario y el concepto de algoritmo y algoritmización se explica inmediatamente, y la búsqueda binaria, más implementación correcta que debe pensar detenidamente, se explica fácil y rápidamente en la conferencia introductoria. Sí, y con efectos especiales en forma de rasgado directorios telefónicos y una máquina binaria de "tubo" caliente especial. Incluso el concepto de complejidad del algoritmo fue explicado en buen ejemplo, que ofrece una forma de calcular rápidamente el número aproximado de personas en la audiencia (había alrededor de medio millar de personas en la audiencia, en todo caso).

Con la programación como tal, CS50 comienza a presentarle la semana "cero". Probablemente para no asustar incluso a los estudiosos de las humanidades más inseguros, los profesores de Harvard muestran ante todo a los estudiantes lenguaje visual Scratch, sobre el que se pueden crear programas simplemente arrastrando y soltando elementos gráficos. Este desarrollo del Instituto de Tecnología de Massachusetts (MIT) está diseñado para enseñar a los estudiantes, pero los conceptos básicos programación procedimental- todo tipo de ciclos y condiciones - ayuda a entender muy rápidamente. Sin embargo, nadie se detiene en Scratch durante mucho tiempo, sino que cambia de inmediato al lenguaje C "excelente y hermoso", y la mayoría tareas practicas Los estudiantes de CS50 lo deciden. Una muy buena opción, aunque solo sea porque C es un poco más bajo que la mayoría de los otros lenguajes actuales, es decir, es bueno para entender cómo funciona una computadora. Además, el conocimiento de los conceptos básicos de C no interferirá con "Linuxoids" y otros administradores. Por cierto, Linux y sus comandos también reciben atención en el curso.

Además, a los estudiantes se les explica el concepto de una función, variables globales, parámetros, valores de retorno. Explicarán el principio de la pila y el "montón" (heap) y qué datos se almacenan allí, hablarán sobre matrices, cadenas y argumentos de línea de comando, depuración, entrada y salida a archivos.

Por supuesto, no funcionará sin los conceptos básicos de algoritmos y estructuras de datos. Los estudiantes recibirán explicaciones muy inteligibles e interesantes de algoritmos de búsqueda (lineal, binario) y ordenaciones (burbuja, selección, combinación), se familiarizarán con árboles y tablas hash.

Obtenga información sobre si debe tener miedo a la recursividad y cuándo es necesaria. Y también sobre cosas tan exóticas como los punteros, que otorgan un gran poder al programador, pero tienen un impacto negativo en la seguridad.

Los oyentes felices de CS50 obtendrán una comprensión de la ciencia de la criptografía y comprenderán el poder de los cifrados más famosos: César, Vigenère, DES.

De la misma manera, superficialmente, pero justo para el primer conocido, el curso le informará sobre el desarrollo web, Conceptos básicos de CSS, HTML, JavaScript y PHP. Y un poco sobre SQL con bases de datos.

En pocas palabras, el CS50 se trata de:

  • Algoritmos y algoritmización de tareas.
  • Abstracciones, estructuras de datos, encapsulación, gestión de memoria.
  • Fundamentos del lenguaje de programación C y programación en general.
  • El concepto de desarrollo web y bases de datos: CSS, HTML, JavaScript, PHP, Ajax SQL.
  • "Diseño adecuado". Que es MVC.
  • Inteligencia artificial.
  • El concepto de encriptación.

Quién enseña, por cuánto tiempo y a quién

CS50 ha evolucionado desde el curso de introducción a la programación habitual hasta convertirse en un auténtico superéxito. Ha sido leído en Harvard desde la década de 1980, pero comenzó a ganar popularidad de manera constante después de que lo dirigió. David Malan. Este profesor de Harvard no es un anciano de pelo canoso que se encierra en sí mismo y en su ciencia. Este es un director apasionado (o director, si se quiere), que sabe contagiar con su entusiasmo, para simplemente contar cosas dificiles e inspírame para continuar mis estudios.

David leyó CS50 por primera vez en 2007, y ya en 2014, el 12% de los estudiantes de Harvard de todas las especializaciones, es decir, más de ochocientas personas, se matricularon en Fundamentos de la programación, lo que lo llevó a la máxima popularidad entre todos los cursos universitarios. Antes de eso, no todo era tan divertido y lleno de gente. digamos una conferencia creador de facebook Mark Zuckerberg en 2005 asistieron hasta 15 estudiantes. Cierto, entonces esto red social estaba ganando impulso. Cada año, muchas personas ayudan a David, tanto otros maestros como estudiantes recientes de CS50. Y un par de Muppets más =).

Es posible que haya oído hablar de Susan Wojcicki, director ejecutivo YouTube. Entonces, en 1990, se graduó de Harvard. Facultad de historia y literatura, por extraño que parezca. En el año pasado la niña saltó y decidió aprender más sobre computadoras, por lo tanto, eligió el CS50. Luego estaba Silicon Valley, la amistad con Larry y Sergey (los mismos Larry y Sergey), su propio parque de diversiones, todo. Así es como el CS50 puede cambiar vidas.

¿Y ustedes, señores traductores, quiénes son ustedes?

VertDider es nuestro socio, un excelente estudio de traducción y locución. Entre las obras del estudio - muchas interesantes y traducciones útiles materiales sobre tecnología, astronomía, religión, educación y neurociencia.

Dónde encontrar conferencias traducidas

Aquí está la página donde aparecen las conferencias del curso en ruso. Estarán disponibles de forma gratuita para todos los usuarios de Internet. La traducción de la primera conferencia apareció el 20 de junio, la próxima será el 27 de junio y más, tan pronto como estén listas.

Siga las actualizaciones en las páginas de JavaRush en las redes sociales.

Camaradas ingenieros, ya han pasado cuatro años desde que comencé a dar clases en . Durante este tiempo, he acumulado una gran cantidad de ejemplos de códigos y materiales, alrededor de 90 conferencias. Debo decir que durante todo el período de mi actividad profesional (y esto son 24 años escribiendo código casi a diario), nunca he elevado mi nivel de programación, como en los últimos años, trabajando con estudiantes. Si antes me parecía que escribir corto, complejo e impresionante es el colmo de la habilidad, ahora me di cuenta de que los estudiantes deben entender mi código después de explicaciones mínimas, de lo contrario no es bueno. Llegué a la conclusión de que esta capacidad puede y debe extenderse no solo al código de entrenamiento, sino también a todo el código de trabajo. Además, el código de entrenamiento no debería diferir significativamente del código de trabajo, porque estamos enseñando a los futuros ingenieros a hacer sistemas reales, no de entrenamiento. Y después de numerosas solicitudes, decidí grabar todas las conferencias en forma de screencasts, que inmediatamente después del final de la conferencia se envían a YouTube. Durante este año académico, planeo grabar 100 conferencias, de las cuales ya publicado 23, los materiales para otras 67 conferencias están listos y 10 nuevas conferencias aún están en preparación.

concepto de curso

Todos saben que en la industria tenemos problemas importantes con la educación básica en ingeniería:

  • cursos universitarios a menudo obsoletos y dejan mucho que desear,
  • no formado terminología común(en las disputas a menudo llamamos a las mismas cosas Diferentes palabras y cosas diferentes en las mismas palabras), de ahí nos confundimos,
  • articulos y videos en Internet puede ser publicado fácilmente por cualquiera que piense que sus calificaciones son suficientes para esto,
  • en programación ganar experiencia es dificil salida rapida personas de la especialidad, y después de todo, las ideas fundamentales se repiten cíclicamente, pero aquellos que ganaron experiencia en la ronda anterior, con una alta probabilidad, ya no practican y no pueden decirles a sus colegas más jóvenes dónde están los rastrillos y los cuellos de botella.

Crear un curso sobre basado en JavaScript- esto es, por supuesto, una empresa experimental, pero este lenguaje ciertamente no será superfluo para nadie en la TI moderna. por su cuenta desarrolladores de JavaScript muy a menudo hay una formación básica deficiente en ingeniería y una falta de conocimiento fundamental de estructuras de datos, algoritmos, abstracciones básicas, patrones, arquitectura, paradigmas y técnicas de programación. La mayor parte del código que se escribe en la industria hoy en día simplemente se desecha poco después de crearse, luego se vuelve a escribir y se desecha nuevamente. En general, la calidad y el conocimiento rara vez se requieren, excepto en las entrevistas. Es más rentable crear código de mala calidad y mantenerlo, o tirar el código y vender más tiempo para reescribirlo. Además, nuestra industria está completamente divorciada de la ciencia, hay importantes méritos de los especialistas en marketing en esto, porque ya no estamos programando en lenguajes de programación y no en abstracciones, sino que estamos programando en marcos y bibliotecas que nos han "chupado". " en hermoso envoltorio. Recogemos todo de los cubos, a menudo sin ningún conocimiento científico y rara vez podemos responder a la pregunta de por qué lo hacemos de esta manera y no de otra manera. Todo por partes ya está escrito hace mucho tiempo, todo se puede encontrar en Internet, pero resultó que uno no encaja con el otro, es decir, existe por partes, pero juntos no funcionan. Vincular piezas dispares de código es mucho más difícil que hacerlo uno por uno. Esto sucede precisamente por la falta enfoque de sistemas, escisión terminológica y desincronización conceptual de los especialistas. Solo lo que es ideológicamente compatible funcionará en conjunto, lo que se basa en teoría general y normas generales derivadas de esta teoría. Espero que con este curso pueda dar al menos un pequeño paso para lograr un consenso tan importante para la industria.


Todos los materiales del curso en acceso libre en github, y las conferencias son abiertas, se puede asistir de forma gratuita. Cada semana grabo 4 conferencias. También realizamos seminarios y lecciones prácticas pero no se registran.

Estructura del curso

  • Conceptos básicos: abstracciones de programación, variables, operadores, tipos de datos, arreglos, estructuras, tipos escalares y de referencia, mapeos;
  • Conceptos básicos: funciones, contextos y alcance, clases y objetos, prototipos, métodos, lambdas, funciones puras, efectos secundarios, cierres, aplicación parcial, curry, composición, funciones de orden superior, devoluciones de llamada, envoltorios, decoradores, mixins, eventos, interfaz, singleton, iteradores, objetos de función, funtores, mónadas, manipulación de archivos, flujos, sockets, memorización, herencia , generadores, programación asíncrona, encadenamiento, módulos y dependencias, manejo de errores, factorías y pools, temporizadores, expresiones regulares;
  • Materiales auxiliares Palabras clave: git, sistemas de control de versiones y administradores de paquetes, trabajo de consola, pruebas, integración continua, registro, linters, optimización y rendimiento, fugas de memoria, clases ocultas, funciones monomórficas, genéricos, recolección de basura, administración de memoria;
  • Estructuras de datos Palabras clave: colecciones, arreglos y arreglos tipados, búferes, listas, pila, cola, deques, árboles binarios y jerárquicos, árboles multidimensionales, rotación y equilibrio de ramas, conjuntos, hashmaps, gráficos, listas desenrolladas, cola asíncrona, autómatas, iteración de estructuras de datos y buscar;
  • Conceptos extendidos: símbolos, proxies, diferencias, futuros y promesas, lentes, transductores, async/await, recopiladores de datos, composición asíncrona, adaptadores asíncronos, iteradores asíncronos, introspección, reflexión, andamiaje, inversión de control e inyección de dependencia, sandboxes, arquitectura en capas, componente enfoque, capa de acceso a datos, proyecciones de datos, monitoreo de sistemas de archivos, arquitectura cliente-servidor y de tres niveles, agrupamiento y equilibrio, diseño de protocolos, sobrecarga dinámica de módulos, metadatos, unión dinámica, comunicación entre procesos;
  • Ejemplos de código y uso integrado de la tecnología: vivir hojas de calculo, websocket chat, implementación del lenguaje de consulta de gráficos, biblioteca de abstracción asíncrona alternativa metasync, comparación de implementación mismas tareas sobre diferentes paradigmas, comparación de estilos programación funcional, ejemplos de estructura de aplicaciones, enrutamiento de controladores en aplicaciones node.js, aislamiento de código en sandboxes, objetos transaccionales;
  • Paradigmas de programación: imperativo, estructural y no estructural, procedimental, orientado a objetos, prototipo, funcional, lógico, declarativo, asincrónico, reactivo, dirigido por eventos, automático, generalizado, dirigido por datos, multiparadigma, metaprogramación.

Sobre los fundamentos de la programación.

Ayuda para enseñar

para estudiantes universitarios Instituciones educacionales, estudiantes

en las áreas de economía, gestión

Nizhny Novgorod


Malizhenkov V.I. Informática y tecnología informática. Un curso de conferencias sobre los conceptos básicos de la programación: Manual educativo y metodológico - Nizhny Novgorod: Editorial de la Universidad Estatal de Nizhny Novgorod, 2011. - 52 p.

El manual discute métodos y técnicas para resolver problemas usando computadora personal, se da la descripción de dos lenguajes de programación: BASIC y Pascal.

Se dan las etapas para resolver el problema en una PC, las estructuras algorítmicas en forma de diagramas de bloques se consideran la base del pensamiento lógico en la preparación de algoritmos para resolver problemas. Luego se da una descripción de los lenguajes de programación BASIC y Pascal, donde se consideran los principales operadores de acuerdo con las estructuras algorítmicas de los diagramas de flujo. Se dan los principios del paradigma de programación estructurada, donde sistema de software se forma como un conjunto de módulos interconectados, cada uno de los cuales representa secuencia lineal estructuras algorítmicas.

La presentación del material teórico va acompañada de una solución. Tareas específicas. Al mismo tiempo, se eligió el problema de la nómina para ilustrar varios enfoques para su solución, que van desde las formas más simples de organizar datos hasta tipos complejos de datos organizados en archivos. Por lo tanto, los estudiantes están preparados para estudiar más material del curso en informática relacionado con bases de datos y hojas de cálculo.

El manual está destinado a la enseñanza de los estudiantes de la Facultad de Ciencias Económicas. Además, puede ser útil para aspirantes a universitarios y todo aquel que esté empezando a aprender programación.

Revisor: Profesor Asociado, Ph.D. Gromnitsky Vladímir Semiónovich

© Malyzhenkov VI, 2011

© Estado de Nizhny Novgorod

universidad. NI Lobachevski, 2011

Introducción…………………………………………………………………….…………..4

Capítulo 1. Fundamentos de la alfabetización informática………………...………………………………………………………………………………………………………… …………………………………………………

1. ¿Qué es una computadora? ....................................... .... .....................................5

2. Configuracion basica PC……………………………………………………..5

3. Sistemas operativos (SO)………………………………………….…7

4. sistema de archivos MS DOS y WINDOWS…………………………………….8

5. Estructura de los sistemas de archivos…………………………………….…………10

Capítulo 2. Tratamiento de datos en el entorno de los lenguajes algorítmicos…………..…11

1. Paradigmas de programación……...………………………………11

2. Etapas de la resolución de problemas en una computadora……………………………………..11

3. Descripción general de los lenguajes de programación (Basic, Pascal)…………..16

3.1 Alfabeto……………………………………………………………….…16

3.2 Descripción de los datos…………………………………………………….17

3.2.1. Tipos de datos………….…………………………………….17

3.2.2 Constantes…………………………………………………………17

3.2.3 Variables…………………………………………...…..19

3.2.4 Funciones…………………..……………………………….20

3.3 Expresiones………………………………………………………………21

3.3.1. Expresiones aritméticas………………………………21

3.3.2.Expresiones lógicas…………….……………………..22

3.3.3 Expresiones de cadenas……………………..…………..23

3.4.Declaraciones ejecutables básicas de lenguajes……………………...23

3.4.1 Operador de asignación…………………………………….24

3.4.2 Operador condicional…………………………………………24

3.4.3 Seleccionar operador por tecla………………..………….25

3.4.4 Sentencias de bucle………………...……………………..27

3.4.5 Operador de salto incondicional…………...……….30

3.4.6 Declaraciones de entrada-salida…………………………30

3.5.Estructura del módulo software………………………………...…31

4. Un ejemplo de resolución de problemas con un enfoque modular………………………….32

5. tipos complejos datos………………...………………………………..35

6. Tratamiento de ficheros de datos…………………………………..………….38

6.1. Conceptos generales……………………..………………………………..38

6.2. Operaciones básicas de procesamiento de archivos………..……………….39

6.3 Operadores (procedimientos) para procesar archivos en Basic y Pascal…...40

7. Principios de la programación estructurada…………..………………..44

8. Descripción de los módulos más simples…………………………………………..46

9. Un ejemplo de compilación de un programa de acuerdo con los principios de la programación estructurada……………………………………………… 47

Literatura…………………………………………………………………………...51

Introducción

El término "informática" apareció por primera vez en Francia a principios de los años 70 y provino de una combinación de dos palabras: información (información, aclaración) y automatización (automático, automático). Así es como la palabra francesa informatica . En ruso, en lugar de una traducción libre de este término como " automatización de la información» el concepto de «información y sus medios procesamiento automático". En los EE. UU., otra frase se ha arraigado: Con computadora ciencia - Ciencias de la Computación.

En nuestro curso, presentaremos la informática como un componente de los siguientes componentes:


Este curso de conferencias está dedicado al estudio de parte software computadoras personales, denominadas herramientas de programación en BASIC y Pascal.

Capítulo 1. Fundamentos de la alfabetización informática.

1. ¿Qué es una computadora?

El término "computadora" se deriva de la palabra inglesa calcular - calcular también se traduce palabra inglesa calcular , sin embargo, bajo calcular generalmente se refiere a la ejecución de operaciones más complejas, incluidas las lógicas. Entonces, había dos tipos de dispositivos informáticos: computadoras y calculadoras.

Desde el punto de vista del usuario, una computadora es un complejo medios tecnicos, diseñado para el procesamiento automático de información en el proceso de resolución de problemas computacionales y tareas de información(procesamiento, almacenamiento, transmisión de información).

CON punto técnico Una computadora es cualquier dispositivo o sistema capaz de realizar una secuencia de operaciones (programa) dada y bien definida. Como dispositivo técnico, la computadora es actualmente la más utilizada y se utiliza en casi todos los campos de la actividad humana, desde electrodomésticos a los cálculos astrofísicos. En este sentido, la clasificación de las computadoras es muy amplia, desde micro hasta supercomputadoras.

Más común en actualmente recibieron computadoras personales. Aparecieron por primera vez en los años 80 del siglo pasado. Las principales razones para el uso generalizado de la PC fueron el enfoque en un usuario, la apertura de la computadora personal, i. posibilidad de unirse dispositivos adicionales dependiendo de las necesidades del usuario y la economía, lo que permitió que la PC se convirtiera en un artículo para el hogar. Actualmente hay más de 1 billón de computadoras personales en el mundo.

2. Configuración básica de PC.

Los principales dispositivos de una computadora personal incluyen:

1) unidad del sistema;

2) vigilar;

3) teclado;

4) "ratón".

EN unidad del sistema contiene un host de PC – tarjeta madre, que contiene el procesador y la RAM de la computadora. El procesador está diseñado para realizar todas las operaciones asignadas a la computadora, la memoria RAM almacena programas durante su operación, así como datos procesados ​​​​directamente.

Además, la unidad del sistema contiene:

disco duro, disco duro - disco duro unidad, disco duro discos magnéticos (disco duro, disco duro) - un dispositivo de almacenamiento de información. La información del HDD se envía a la RAM para su procesamiento oa dispositivos externos. Difiere de memoria de acceso aleatorio sustancialmente grandes volúmenes información almacenada, pero un acceso más lento a ella. El disco duro almacena la parte más importante del software de cualquier computadora: el sistema operativo;

FDD, NGMD - unidad de disquete - un disquete diseñado para transferir información de una computadora a otra;

CD ROM: disco compacto de memoria de solo lectura (la memoria es de solo lectura);

DVD -R, RW: diseño de unidad de video, lectura o lectura y escritura de discos. A diferencia del CD, gran volumen de información almacenada;

Vídeo - y tarjetas de red;

Puertos y conectores para conectar a una computadora varios dispositivos externos(unidades flash, tarjetas de memoria, etc.)

Monitor.

Un monitor es un dispositivo para ver información de entrada y salida, un dispositivo de diálogo.

Los monitores son diferentes tipos: con tubo de rayos catódicos - tubo de rayos catódicos; LCD - cristal líquido, plasma. Actualmente, se utilizan principalmente monitores LCD. Los monitores tienen ciertas características:

1. tamaño de la diagonal de la pantalla (típicamente 14"-21", total de 9" a 42" (23-106 cm);

2. frecuencia de actualización y regeneración de 75 a 110 Hz. Abajo, parpadeando, arriba, desenfocando y duplicando la imagen;

3. resolución: la cantidad de píxeles por milímetro (mín.: 640x480, - 1024x768 - máx.: 1280x1024); el tamaño de píxel es en promedio 0,18-0,25 mm, no superior a 0,28;

4. TSO-92-95-99 - Total Cost Oquupation - estas son clases de protección al consumidor de radiación electromagnética pantalla del monitor.

Teclado.

El teclado es un dispositivo de entrada. Puede utilizar el teclado para introducir textos, comandos de texto y algo comandos especiales(Esc, Ctrl y otros).


Arriba