sábado, 2 de marzo de 2013

Variables y constantes

 Variables y constantes

Declarar variables o constantes consiste en darles un nombre que sirva para identificarlas dentro del programa, y además del nombre se debe indicar el tipo de dato que estas almacenarán. En Turbo Pascal es estrictamente necesario declarar siempre todas las variables y constantes que se vayan a utilizar. Así para declarar una o más variables, ya sea dentro del programa principal, en un procedimiento, o una función; estas deben estar precedidas por la palabra reservada Var en la sección de declaraciones, luego se indican los nombres que las identificarán, y el tipo de datos que van a almacenar, de modo que la sintaxis sería la siguiente:Var NombreVariable: TipoDato;Donde NombreVariable, es tal como lo indica, el nombre que le daremos a cada variable. Mientras que TipoDato es donde especificamos el tipo de datos que podrá almacenar dicha variable.

Elementos de léxico y sintaxis

Conjunto de símbolos que se pueden usar en un lenguaje. Estos símbolos o elementos básicos del lenguaje, podrán ser de los siguientes:

Identificadores: nombres simbólicos que se darán a ciertos elementos de programación (p.e. nombres de variables, tipos, módulos, etc.).

Constantes: datos que no cambiarán su valor a lo largo del programa.Operadores: símbolos que representarán operaciones entre variables y constantes.

Instrucciones: símbolos especiales que representarán estructuras de procesamiento, y de definición de elementos de programación.

Comentarios: texto que se usará para documentar los programas.

Sintaxis:

Consta de unas definiciones, denominadas reglas sintácticas o producciones que especifican la secuencia de símbolos que forman una frase del lenguaje. Estas regla dicen si una frase está bien escrita o no.
 
Las reglas sintácticas pueden contener dos tipos de elementos:

  • Elementos Terminales.
  • Elementos no Terminales, que son construcciones intermedias de la gramática.

UNIDAD II Pseudocódigo


El pseudocódigo es una descripción informal de alto nivel de un algoritmo informático de programación, compacto e informal, que utiliza las convenciones estructurales de un lenguaje de programación verdadero , pero que está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código de lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación.

Linea de tiempo lenguaje C


Localidad de memoria

"Localidad de memoria y palabras reservadas"
 
Memoria Estática

Define la cantidad de memoria necesaria para un programa durante el tiempo de compilación. El tamaño no puede cambiar durante el tiempo de ejecución del programa. Algunos lenguajes de programación utilizan la palabra static para especificar elementos del programa que deben almacenarse en memoria estática. Este tipo de memoria no puede cambiarse una vez es declarada, y tampoco liberarse cuando ya no es necesaria, consumiendo de esta forma recursos innecesariamente.

Memoria Dinámica

Define el tamaño del espacio de memoria necesario para un programa en tiempo de ejecución. El tamaño de los elementos puede cambiar durante la ejecución del programa. Almacena todos los elementos definidos con la palabra new en un programa. Las variables dinámicas son aquellas que crecen de tamaño o se reducen durante la ejecución de un programa. Estas se almacenan en un espacio de memoria llamado heap. El heap se localiza en la región de memoria que esta encima del stack. Su principal ventaja frente a la estática, es que su tamaño puede variar durante la ejecución del programa. (En C, el programador es encargado de liberar esta memoria cuando no la utilice más).

Palabras Reservadas
 
En programación, las palabras reservadas son aquel grupo de identificadores (palabras) que no pueden ser utilizadas por el usuario para nombrar a las variables, funciones, procedimientos, objetos y demás elementos de programación que cree.

Generalmente esto se debe a que el propio
lenguaje de programación ya las utiliza, por esta razón, las palabras reservadas no pueden ser empleadas como identificadores definidos por el usuario.

UNIDAD I Evolución del lenguaje C

Evolcuión del lenguaje C

El lenguaje C es fruto de un lenguaje de programación anterior, el lenguaje B, desarrollado por Ken Thompson, en los Laboratorios Bell en 1970, con la idea de recodificar el sistema operativo UNIX que, hasta esa fecha, se programaba directamente en ensamblador, con el inconveniente de estar vinculado a máquinas concretas (según el juego de instrucciones de cada máquina). Por tanto, se hacía necesario un lenguaje que permitiese al programador abstraerse de la capa hardware y conseguir una mayor portabilidad del código, algo que se realizó en B (basándose en el BCPL de Martin Richard de 1967).
Poco más tarde, también en los Laboratorios Bell, Dennis Ritchie se pone a trabajar en el diseño de un nuevo lenguaje de programación basado en el lenguaje B de Ken Thompson y al que aportó tipos y estructuras de datos que consiguiesen clarificar la programación y obtener un lenguaje mucho más eficiente, así nació el lenguaje de programación C. Ritchie diseñó, desde 1970 a 1972 junto a Brian Kernighan, un lenguaje que permitía realizar una programación estructurada en la que se podían economizar las expresiones a usar y con el que los desarrolladores podrían contar con un buen conjunto de operadores y tipos de datos para programar tanto en alto como en bajo nivel de manera simultánea. 

Lenguajes de programación 

Lenguaje Maquina

El lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito micro programable, como el microprocesador de una computadora. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa consiste en una cadena de estas instrucciones más un conjunto de datos sobre el cual se trabaja. Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas.
  
Lenguaje Ensamblador

El lenguaje ensamblador, es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, micro controladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware y simbolizan los pasos de procesamiento, los registros del procesador, las posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física o virtual. Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente son portables.
Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, altos rendimientos, o un uso de recursos controlado y reducido. 

Lenguaje de alto nivel

Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Para agilizar la codificación, se desarrollaron programas ensambladores que podían producir una cantidad variable de instrucciones en lenguaje de máquina por cada instrucción del programa fuente.
El desarrollo de las técnicas nemotécnicas y las macroinstrucciones condujo, a su vez, al desarrollo de lenguajes de alto nivel que a menudo están orientados hacia una clase determinada de problemas de proceso. Por ejemplo, se han diseñado varios lenguajes para procesar problemas científico-matemático, asimismo han aparecido otros lenguajes que hacen hincapié en las aplicaciones de proceso de archivos.
A diferencia de los programas de ensamble, los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de computadores sin tener que hacer modificaciones considerables. Esto permite reducir sustancialmente el costo de la reprogramación cuando se adquiere equipo nuevo. Otras ventajas de los lenguajes de alto nivel son:


Lenguaje compilado

Un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).


Lenguajes Interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.


Lenguaje de programación declarativo


Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programación en los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se está buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un lenguaje declarativo como SQL.

La programación declarativa es una forma de programación que implica la descripción de un problema dado en lugar de proveer una solución para dicho problema, dejando la interpretación de los pasos específicos para llegar a dicha solución a un intérprete no especificado. La programación declarativa adopta, por lo tanto, un enfoque diferente al de la programación imperativa tradicional.


 

Introducción Algoritmos y Programación


 ALGOTIMOS Y PROGRAMACIÓN


INTRODUCCION

Para mi esta materia me esta sirviendo de mucho para saber más a serca sobre el desarrollo de las computadoras tambien para saber más a cerca sobre su lenguaje de computacion la verdad al empezar este curso jamas pence que iva a saber mucho sobre los lenguajes de computacion por ejemplo el lenguaje ( C ) o  (C++)  Yo la verdad no sabía nada, sobre este lenguaje no sabia tambien los codigos de computación mm no tenia una vision mas clara sobre las computadoras y hoy le doy las gracias a mi maestra que nos explico correcto este curso por medio de su experiencia profesional y su tipo de herramienta de aprendizaje que a mi como alumno la verdad me ayudo bastante para aprender más afondo a cerca de este fenómenos de las computadoras muchas gracias saludos.

OBJETIVO GENERAL DEL CURSO

Comprender y aplicar los conceptos de la programación estructurada en la construcción de
programas utilizando un lenguaje de programación para la solución de problemas.

TEMAS

1. Introducción a la computación

1.1. Historia de los Lenguajes de programación.
1.2. Procesos de edición, compilación, enlazado
1.3. Entorno del lenguaje “C” y software de aplicación de última generación
1.4. Diagramas de flujo
1.5. Pseudocódigos
1.6. Estructura general de un programa
1.7. Conceptos básicos de identificador, localidad de memoria y Palabras reservadas.

2.  Operadores, variables,constantes, tipos de datos y expresiones

2.1. Elementos de léxico y sintaxis
2.2. Variables y constantes
2.3. Tipos de datos fundamentales
2.4. Operadores y precedencia
2.5. Construcción de expresiones
2.6. Sentencias y bloques de sentencias de programa.
2.7. Funciones básicas de entrada y salida.
3.Control de flujo deprograma
3.1. Control secuencial
3.2. Control selectivo
3.3. Control repetitivo.

4. Funciones básicas.

4.1. Funciones de biblioteca
4.2. Definición de funciones
4.3. Declaración e invocación de funciones.

5. Arreglos

5.1. Inicialización y generación de arreglos
5.2. Arreglos multidimensionales
5.3. Arreglos de caracteres
5.4. Utilización de arreglos.

6. Apuntadores

6.1. Representación de un apuntador
6.2. Precedencia de operadores de apuntadores
6.3. Llamadas por referencia
6.4. Utilización de apuntadores.

7. Cadenas

7.1. Fundamentos de cadenas y caracteres
7.2. Funciones de manejo de cadenas y caracteres.

8. Estructuras

8.1. Definición de estructuras
8.2. Inicialización de estructuras
8.3. Utilización de estructuras con funciones.