Conceptos básicos de programación. Arquitectura de Computadoras. Conceptos básicos de programación



Documentos relacionados
Repaso. Lenguajes formales

Sintaxis y Semántica del Lenguaje. Gramáticas

UNIDAD I. ALGORITMOS

Programación Digital I

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática

Capítulo 1. Algoritmos, diagramas de flujo y programas.

Capítulo 5 IDENTIFICADORES, VARIABLES Y CONSTANTES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Conceptos fundamentales de Algoritmos

Lenguajes No Regulares

Teoría de conjuntos. Tema 1: Teoría de Conjuntos.

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 }

Algoritmos y Diagramas de flujo

Programación y matemática

Notación de Conjuntos

MATEMÁTICAS 1ero ESO

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

descripción del argumento identificador tipo longitud condición restricción

Ing. Ramón Morales Higuera

Etapas para la solución de un problema por medio del computador

UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO

El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.

Modulo 11. Clases y Objetos en Java

Diagramas de Flujo Programación Estructurada. Diagramas de Flujo y Pseudocódigo

Clase adicional 2. Estructuras básicas de control. Temas

1. Algoritmo, Pseudocódigo, Diagramas de flujo.

SISTEMAS DE NUMERACIÓN

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.

Tema 1: Algoritmos y programas

Fundamentos de programación

Declaración de variables. Sentencias de entrada/salida

Realizar en una hoja blanca el diseño de su menú de navegación y la abstracción de los elementos principales de su proyecto.

METODOLOGÍA COMMONKADS.

2.Teoría de Autómatas

µ-c: Manual de referencia del lenguaje Micro-C

APUNTES PARA LENGUAJES Y COMPILADORES

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación

Tema 1.1. Un lenguaje mínimo y su procesador: Introducción

Introducción a Transact-SQL

UNIDAD DE APRENDIZAJE II UNIDAD DE APRENDIZAJE 2 ( 12 HORAS)

Representación de los números naturales

5. RECURRENCIAS LINEALES

Introducción a MATLAB

TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE. Definición de Ingeniería del Software

7.3. Estructura de un programa

Introducción a la Teoría de Automátas

INSTITUTO TECNOLÓGICO DE APIZACO TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

Los números naturales

TEMA 2: Lenguajes de programación

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

PRIMITIVAS ALGORITMICAS Y METODOS DE REPRESENTACIÓN DE ALGORITMOS

Definición formal de autómatas finitos deterministas AFD

FUNCIONES. Definición de función. Ejemplos.

TEMA 4 El tipo conjunto

Facultad de Ciencias Exactas, Ingeniería y Agrimensura UNR INFORMATICA

SEGMENTOS RECTILÍNEOS: DIRIGIDOS Y NO DIRIGIDOS

Teoría de Autómatas y Lenguajes Formales. Capítulo 1: Introducción. Teoría de Autómatas y Lenguajes formales es un repaso a la informática teórica.

LENGUAJES Y GRAMÁTICAS

EL CONJUNTO DE LOS NÚMEROS REALES

TEORIA DE NUMEROS (I) REGLAS DE DIVISIBILIDAD

INSTITUTO SUPERIOR DE FORMACIÓN TÉCNICA Nº 177

Introducción a MATLAB

Lógica y Programación

Conocimientos previos

REPRESENTACIÓN SÍMBOLICA DE UNIONES SOLDADAS UNE-EN ISO 2553:2014

Unas definiciones del Diccionario de la RAE

Tema 1. Álgebra lineal. Matrices

Conceptos Básicos de Funciones

Prácticas de Lenguajes, Gramáticas y Autómatas

Programación en Capas con Visual C#: desarrollo rápido de aplicaciones

SISTEMA DE NUMERACIÓN BINARIO

La Jerarquía de Chomsky

Unidad Académica de Ingeniería Eléctrica. Programa del curso: Lenguaje de Programación I y Lab.

CONJUNTOS. Consideremos, por ejemplo, los siguientes conjuntos:

UNIDAD III 3.2 USO DE FUNCIONES MATEMÁTICAS LÓGICAS Y DE BUSQUEDA

UNIVERSIDAD SAN MARCOS

Proposiciones Condicionales

Conjuntos. Dra. Noemí L. Ruiz Limardo Revisado 2011 Derechos Reservados

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Matemáticas domésticas: Compras, facturas, ingresos

E/S POR CONSOLA DE C++ Parte I. Elementos Básicos Dr. Oldemar Rodríguez R.

Complejidad algorítmica. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A.

PRÁCTICA 4. EL ENTORNO DE UN ROBOT EN C++

Los números complejos

Informática, computadora, y programación. Fundamentos de programación. El hombre y sus primeros intentos de procesar la información

DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I

A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de

Introducción a las sentencias de control

Transcripción:

Arquitectura de Computadoras Conceptos básicos de programación 1. Introducción: Programación es el conjunto de actividades implicadas en la descripción, el desarrollo y la implementación eficaz de soluciones algorítmicas (resuelven problemas) a problemas (entidades manejadas por la especificación) bien especificados (sin ambigüedades ni contradicciones). Supongamos un fichero ordenado alfabéticamente. Si quisiéramos introducir una nueva ficha: Apellidos/Nombre Edad Domicilio Teléfono E-Mail Nueva problema Precondiciones de un problema: Es el conjunto de características y relaciones existentes entre los datos de entrada. Datos Montón fichas Fichas individuales Ficha X de Características Compuesto de subentidades. La entidad montón es físicamente divisible. Está ordenado alfabéticamente. Compuesta por subentidades. Es físicamente indivisible. No hay un orden espacial entre las subentidades. Tiene las mismas características que las individuales. Postcondiciones de un problema: Es el conjunto de características y relaciones existentes entre los datos de salida. Datos Dos submontones Características Uno contiene las fichas que preceden a X. El otro contiene las fichas restantes. Los submontones permanecen ordenados. Para encajar la ficha X en su debida posición utilizamos un algoritmo. Un algoritmo es una sistemática o conjunto de pasos que transforma los datos de entrada

cumpliendo las precondiciones en datos de salida cumpliendo las postcondiciones. Así, un programa se puede también definir como la codificación o implementación en ese lenguaje de programa. 2. Métodos de resolución de problemas: Notación: (P, Q) Problema {P} Datos de entrada {Q} Datos de salida {P} S {Q} Solución Estrategia de divide y vencerás: Consiste en dividir el problema en problemas más sencillos que sepamos su solución. (P, Q) (P, R) Λ (R, Q) {P} S 1 {R} {R} S 2 {Q} Por composición secuencial: {P} S {Q} = S 1 ; S 2 Estrategia de análisis por casos: (P, Q) {P} S {Q} (P y B, Q) {P y B} S 1 {Q} {P y no B) {P y no B} S 2 {Q} Si los datos de (P, Q) cumplen la precondición B, entonces, S = S 1. Si los datos no cumplen B, entonces, S = S 2. Estrategia de resolución por analogía: (P, Q) (P, Q ) {P} S {Q} {P } S {Q } S es una transformación de S. 3. Sintaxis y semántica de lenguajes de programación: Sintaxis es un conjunto de reglas formales que especifican y permiten verificar la correcta composición de programas. Notaciones: Hay tres tipos de notaciones: BNF: Utilizamos terminales, no terminales, reglas de producción y metasímbolos. 1. Terminales: Es cualquier símbolo que utiliza con entidad propia. Corresponden a las palabras reservadas del lenguaje. Se representan con mayúsculas.

2. No terminales: Son los símbolos que se definen en términos de otros mediante las reglas de producción. Se representan en minúsculas de esta forma: <no terminal>. 3. Reglas de producción: Son reglas que permiten definir un no terminal. <no terminal> ::= lista de terminales y no terminales. 4. Metasímbolos: Son los símbolos de la notación: Igual ::= y alternativa. Ejemplo de reglas BNF para la sintaxis de enteros: <Número entero> ::= <signo opcional> <secuencia dígitos> <signo opcional> ::= + - <nada> <nada> ::= <secuencia dígitos> ::= <dígito> <dígito><secuencia dígito> <dígito> ::= 0 1 3 4 5 6 7 8 9 Ejemplo de sintaxis de la sentencia WHILE-IO: <Sentencia WHILE> ::= WHILE <expresión> IO <sentencia> EBNF: Es similar al BNF con algunos cambios: 1. Desaparece la recursión. 2. Los terminales van entre comillas. 3. Los no terminales van capitalizados. 4. Se añaden nuevos metasímbolos: {X} Lo que hay entre las llaves puede aparecer 0, 1, 2, 3,... veces. [X] Lo que hay entre corchetes puede aparecer o no. (X) Los paréntesis sirven para hacer agrupaciones. Ejemplo de reglas EBNF para la sintaxis de enteros: Número entero ::= [ + - ] {} ::= 0 1 3 4 5 6 7 8 9 Ejemplo de sintaxis de la sentencia IF-THEN-ELSE: Sentencia IF-THEN-ELSE ::= IF Expresión THEN sentencia [ ELSE sentencia ] Ejemplo de sintaxis de expresiones con números enteros: Expresión de números enteros ::= Término { [ + - ] Término } Término ::= Factor { [ * div ] Factor} Factor ::= ( Expresión ) Variable Constante Constante ::= 0 1 3 4 5 6 7 8 9 Diagramas sintácticos: La sintaxis se representa mediante dibujos. Terminales: Terminales

No terminales: No terminales X X Y: Y {}: []: Ejemplo: Identificador ::= Letra { Letra } Letra Letra Ejemplo: Sentencia IF-THEN-ELSE ::= IF Expresión THEN Sentencia [ ELSE Sentencia ] IF Expresión THEN Sentencia ELSE Sentencia

http://www.loseskakeados.com Conceptos básicos de programación.