INTRODUCCIÓN A LA PROGRAMACIÓN I Temario de las clases teóricas

Anuncio
INTRODUCCIÓN A LA PROGRAMACIÓN I
Temario de las clases teóricas:
1− Conceptos Básicos
2− Tipos y Expresiones
3− Notación Algorítmica
4− Funciones
5− Estructuras Estáticas de Datos
6− Ficheros
Laboratorio: implementación algorítmica estudiada en lenguaje C.
Bibliografía:
J. G. Castro y otros Cursos de programación (McGraw−Hill, 1993)
J. Galve, J. C. González y otros Algoritmos (Rama, 1993)
J. A. Cerrada y M. Collado Programación I (UNED, 1994)
Ceballos El abc de MS−DOS 6 (Rama, 1993)
B. W. Fermighan y D. M. Richie El lenguaje C (Prentice hall, 1991)
A. Mata Turbo C/C++ (Paramiufo, 1993)
J. M. Cordero y otros Introducción a la programación; un enfoque práctico (Algaida, 1996)
L. Joganes Fundamentos de programación, algoritmos y estructura de datos (McGraw−Hill, 1996)
• CONCEPTOS BÁSICOS
• Introducción: Informática, sistemas de información y abstracción.
1.1. Autómata y Programas. Máquina de Von Newman.
• Algoritmo (definición, ejemplo)
• Programación, ingeniería de software.
• Introducción al lenguaje C.
• Introducción
Desde el carácter científico la informática es una ciencia que estudia todo lo referente al procesamiento
automático de la información. El carácter técnico es la teoría, diseño, uso y fabricación de computadoras.
1
Sistemas de Información:
DATOS PROCESO INFORMACIÓN
Los datos son los antecedentes necesarios para obtener conocimiento exacto de algo, bien cantidades,
cualidades o hechos. El proceso es la reunión, cálculo, selección, escritura,... de esos datos. La información es
el conocimiento derivado del análisis de ciertos datos. La base de todo es la capacidad de abstracción, un que
ante un determinado concepto u objeto realiza un estudio en dos aspectos complementarios:
• Aspecto de destacar los detalles relevantes.
• Aspecto de ignorar los detalles irrelevantes.
• Autómatas y Programas
Máquina es aquel dispositivo capaz de realizar un trabajo, las máquinas virtuales no son físicas sino una
especificación previa a la posible fabricación de dicha máquina (máquina de Babbage, Máquina de Von
Neuman). Se dan en función del tiempo y necesitan de una acción exterior, las clasificamos en:
• No automáticas. Máquinas que necesitan de un estímulo externo para funcionar (máquina de escribir,
piano).
• Automáticas. Máquinas que requieren mínimos estímulos externos para funcionar, de este modo
distinguimos:
1) No programables. Se caracterizan porque realizan siempre la misma función (caja de música, copiadora,
ascensor).
2) Programables. Realizan diversas operaciones según el programa que las gobierna (tocadiscos,
computadoras).
Definiciones:
Computo es la determinación indirecta de una cantidad o resultado mediante el cálculo de ciertos datos
(tratamiento de la información).
Llamamos computadora u ordenador es un autómata programable de propósito general.
Un programa de ordenador será la descripción de un computo.
Un lenguaje de programación es una convención o pauta para describir hechos que pueden ser evaluados.
Componentes de una computadora:
Memoria. Almacén de programas y datos, componente pasivo cuya calidad viene determinada por su tamaño.
Procesador. Calculador de cómputos, componente activo cuya cualidad viene determinada por su velocidad
de proceso.
Dispositivos Entrada/Salida (Input/Output). Conexión entre la máquina y el exterior.
• Algoritmos
Las máquinas se componen de una parte física llamada hardware y de una parte variable llamada software.
2
Un algoritmo es una sucesión finita de instrucciones que describen como resolver un problema de un mismo
tipo. La necesidad de estudio de los lenguajes algorítmicos como paso previo a la codificación en un lenguaje
de programación comercial es justamente el aspecto de abstracción que nos interesa destacar.
Definiciones:
Coordenada. Conjunto de elementos necesarios para describir un problema. Ejemplo: {t, p}
Dominio. Conjunto de valores que pueden tomar las coordenadas.
Ejemplo: t (−50, 50) y p (encendido, apagado)
Estado. Cada uno de los posibles valores que pueden tomar las coordenadas, utilizamos asertos o predicados
lógicos par describirlos.
Ejemplo {t: ambiente, p: apagado}
• Programación e Ingeniería del Software
La programación es la disciplina de la informática que estudia las técnicas o razonamientos involucrados en el
desarrollo de programas. En su desarrollo distinguimos el hecho a gran escala (ingeniería del software) y el
hecho a pequeña escala (programación).
Etapas de la programación:
• Localización del problema del mundo real que pretendemos solucionar
• Elaboración o análisis de requerimientos. Establecer todo aquello que necesitaremos para dar una posible
solución al problema específico.
• Especificación del problema. Enumeración condicional del problema mediante asertos o predicados
lógicos.
• Diseño o implementación del problema. El objetivo de esta etapa es obtener una representación ejecutable
del problema aunque sea sobre una máquina virtual, hemos de ser capaces de obtener una representación
real del funcionamiento del programa.
• Codificación. A partir de la implementación se obtiene un programa escrito en un lenguaje comercial uy
ejecutable en una máquina real.
Paradigmas de la programación:
• El paradigma imperativo. Se basa en el concepto de bucle y sobre todo en el concepto de asignación.
• El paradigma funcional. Depende del concepto de función matemática.
• El paradigma lógico. Considera al programa como un conjunto de predicados lógicos.
El análisis debe tener corrección del algoritmo que consiste en la comprobación de que la etapa de
implementación coincide con la de especificación, para ver si es correcta respecto al problema. Si se dispone
de varias implementaciones correctas hemos de elegir la más eficiente, esa será aquella implementación que
consuma menos recursos y al mismo tiempo sea rápida. La implementación ha de ser lo mas clara y sencilla
posible, es decir lo más legible que se pueda.
Problema−1: Sumar los n primeros números enteros positivos
• Especificación
3
n: entero
s: entero
• Precondición
Suma n números enteros positivos
• Postcondición: {s= k: 1"k"n .(k)}
• Implementación
Variables, i: entero
Algoritmo
i= 1
s= 0
mientras i<= n
s:= s+i
i:= i+1
fmientras
• Codificación
# include <stdio.h>
void main (void)
{
int s, i, n;
printf (Introduzca un número natural:\n);
scanf (%d,&n);
i=1;
s=0;
while (i<=n);
{
s=s+i;
i++;
4
}
printf (La suma 1+...+%d=%d, n, s);
}
Estudio del lenguaje:
• Léxico. Se detallan los componentes mínimos o lexemas con que se cuentan.
• Sintáctico. Descripción de las convinaciones de lexemas que son correctas.
• Semántico. Indicamos que interpretación tienen las convinaciones sintácticas correctas
2. TIPOS Y EXPRESIONES
2.1 El lexema
Denominamos alfabeto y lo representamos por a un conjunto finito y no vacío de elementos, llamados
símbolos y que serán la base de los lenguajes. Lexema es la unidad mínima e indivisible con significado y se
construye a partir de los símbolos. Ej.: {1, 2,..., 9, +, −} −−> −99
Lenguaje algorítmico:
(A... Z) Mayúsculas
(a... z) Minúsculas
(0... 9) Dígitos
(+, −, *, /...) Símbolos específicos
Diremos que un lexema está sobrecargado cuando es utilizado con más de un significado. Tipos de lexema:
• Identificadores. La Manera de hacer referencia a cada uno de los elementos que intervienen en un algoritmo
es darles un nombre a cada uno. En programación se llaman identificadores a los nombres dados a los
elementos del programa. En nuestro lenguaje de implementación son aquellos lexemas que empiezan por
una letra seguida de un número n arbitrario de letras o dígitos o el símbolo de subrayado. Ej.: s, i, n, suma1,
suma_números
• Palabras reservadas. Son identificadores usados de modo privado y exclusivo del lenguaje no pueden de
utilizados por el programador para llamar a sus propios elementos (variables o constantes). Ej.: while
• Literales y Símbolos de operación. Los literales denotan valores concretos de elementos computables
mientras que los símbolos de operación denotan operaciones sobre el dominio de valores; en general
pueden estar compuestos por varios símbolos de nuestro alfabeto. Ej.: 1, 7
• Separadores. Son lexemas constituidos por uno o una hilera de varios símbolos de puntuación: (, ), {, }, /,...
Dentro de los separadores contaremos con el espacio en blanco y el salto de línea.
Antecedentes necesarios para tener conocimiento exacto de algo (cantidades, cualidades o hechos).
Acciones como la reunión, selección cálculo o escritura.
Un elemento en los conocimientos derivados del análisis de datos.
5
Descargar