Lenguaje C
Enviado por joseoliv • 12 de Junio de 2014 • 7.097 Palabras (29 Páginas) • 322 Visitas
Programación de computadoras
Lenguaje C
Introducción
1. Ciclo de vida, algoritmos y diagrama de flujo
1. La resolución de problemas
2. Análisis del problema
3. Diseño del algoritmo
4. Resolución del problema
5. Algoritmo
6. Diagrama de flujo
2. Datos, constantes, variables, acumuladores, banderas y contadores
1. Tipos de datos
1. Datos numéricos
2. Datos lógicos
3. Caractéres
2. Constantes y variables
3. Contador
4. Acumulador
5. Banderas
3. Expresiones
1. Expresiones aritméticas
2. Expresiones lógicas
4. Diseño Top-Down
5. Estructura general de un programa en C
6. Entrada y salida de datos en C
7. Estructuras de desición
1. Estructura de desición if-else
2. If's anidados
3. Estructura de descición multiple Switch
8. Estructuras de repetición
1. Estructuras de control de repetición while y do/while
2. Estructura de control de repetición for y for's anidados
9. Arreglos unidimensionales
10. Arrays
11. Funciones
Introducción
El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo el sistema operativo UNIX.
El lenguaje C, a diferencia de lenguajes como Basic y Pascal que son lenguajes de alto nivel, es un lenguaje de nivel medio ya que combina las propiedades de un lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador.
Es esa misma característica la que le da a este lenguaje más potencia y dominio sobre los recursos del sistema. Entre una de las características más importantes de C está la portabilidad, esto es, un programa escrito en C se puede trasladar fácilmente entre distintos sistemas operativos como Windows, DOS o Linux.
A algunos estudiantes que se inician en el estudio de C la visión del lenguaje les causa miedo (lo digo por experiencia) porque C tiene fama de ser un lenguaje difícil, nada más lejos de la verdad. Una vez que se entiende cómo trabaja es fácil dominarlo, por algo C es el preferido de muchos programadores que lo consideran un lenguaje "elegante". Por no ser un lenguaje de alto nivel, C le relega al programador cierto grado de responsabilidad en el desarrollo de los programas.
Ciclo de vida, algoritmos y diagrama de flujo
La resolución de problemas
La principal razón para aprender a programar y conocer los lenguajes de programación es utilizar la computadora como herramienta para solucionar problemas. La resolución de problemas se divide en tres fases:
Análisis del problema
El propósito de esta fase es ayudar al programador a comprender el problema. El problema debe estar bien definido si se desea llegar a una solución satisfactoria, para lo cual se requiere que las especificaciones de entrada y salida sean descritas con detalle.
Diseño del algoritmo
Una computadora solo puede solucionar problemas cuando se le proporcionan los pasos sucesivos a realizar, a estos pasos sucesivos que indican las instrucciones a realizar se les llama "algoritmos". Las fases para realizar el diseño del algoritmo son:
• Diseño descendente
• Refinamiento de pasos
• Uso de herramientas de programación: diagrama de flujo o pseudocódigo
Resolución del problema
Una vez que el algoritmo está diseñado y representado mediante una herramienta de programación (pseudocódigo o diagrama de flujo) se lleva a cabo la fase de la resolución del problema mediante la computadora, la cual se divide a su vez en las siguientes subfases:
1. Codificación del algoritmo, que consiste en utilizar un lenguaje de programación siguiendo las reglas gramaticales del mismo (sintaxis) para convertir el algoritmo en un programa
2. Ejecución del programa utilizando un compilador del lenguaje
3. Comprobación del programa
Algoritmo
Se denomina algoritmo al conjunto de instrucciones que especifican la secuencia de operaciones a realizar para resolver un problema específico. Es decir, es un conjunto de pasos a seguir para llegar a cierto fin medible o comprobable.
Los algoritmos son independientes del lenguaje de programación y de la computadora que se vaya a emplear para ejecutarlo.
Todo algoritmo debe ser:
1. Preciso, es decir, indicar el orden en el que ha de realizarse cada paso
2. Definido, es decir, se debe obtener el mismo resultado cada vez que se ejecute con las mismas especificaciones de entrada
3. Finito, es decir, debe terminar en algún momento o debe tener un número finito de pasos
Diagrama de flujo
Técnica especializada para representar algoritmos mediante el uso de figuras, las cuales se unen mediante flechas denominadas líneas de flujo que indican el orden en que se deben ejecutar.
Datos, constantes, variables, acumuladores, banderas y contadores
Tipos de datos
Las computadoras pueden trabajar con varios tipos de datos, los algoritmos y programas operan sobre estos. Existen dos clases de datos: datos simples y datos compuestos.
Los distintos tipos de datos se representan como un conjunto o secuencia de dígitos binarios (bits). Los lenguajes de programación de alto nivel nos permiten basarnos en abstracciones para no manejar los detalles de representación interna.
Los tipos de datos simples son: numéricos (enteros y reales), lógicos y caracteres.
Datos numéricos
Este tipo de datos se divide en enteros y reales.
Los enteros son aquellos números que no tienen componente fraccionario o decimal y dentro de la computadora son un subconjunto finito de los números enteros. Estos números pueden ser negativos o positivos y el rango es de –32,768 a 32,767.
El tipo de datos "real" son aquellos números que tienen una parte fraccionaria y pueden ser positivos y negativos dentro de la computadora forman un subconjunto de los números reales. Para representar números muy pequeños o muy grandes se emplea la notación de punto flotante, que es una generalización de la notación científica. En esta notación se considera al número real como mantisa y al exponente la potencia de 10 a la que se eleva este número.
Datos lógicos
Este tipo de dato es aquel que solo puede tomar uno de 2 valores: verdadero (true) o falso (false). En lenguaje C no existe el tipo lógico pero se puede implementar con un número entero conociendo que 0 es falso y cualquier número diferente de cero verdadero.
Caracteres
El dato tipo carácter puede tomar un valor de un conjunto finito y ordenado de caracteres o símbolos que la computadora reconoce (código ASCII). Este tipo de dato ocupa un byte y almacena un solo carácter.
Existe también el dato tipo cadena (compuesto) que es una sucesión de caracteres que se encuentran delimitados por comillas, la longitud de una cadena es el número de caracteres comprendidos entre los delimitadores.
Tipos de datos Descripción Memoria
Int Entero 2 bytes
Char Caracter 1 byte
Float Flotante 4 bytes
Double Flotante de doble precisión 8 bytes
Constantes y variables
Una constante es un dato que permanece sin cambio durante el desarrollo del algoritmo o durante la ejecución del programa. La mayoría de los lenguajes de programación nos permiten el manejo de diferentes tipos de constantes, estas pueden ser enteras, reales, caracteres y cadenas. En lenguaje C una constante se define por medio de la instrucción #define (directiva del procesador).
Una variable es un dato cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa. Hay diferentes tipos de variables: enteras, reales, caracteres y cadenas. Una variable que es de cierto tipo solo puede tomar valores que correspondan a ese tipo. Si se intenta asignar un valor de tipo diferente se producirá un error.
Una variable se identifica por dos atributos: el nombre de la variable (identificador) y el tipo de la variable. El identificador se puede formar con caracteres alfanuméricos y el carácter de subrayado ( _ ) empezando siempre por una letra. No se admiten como identificadores palabras reservadas del lenguaje de programación que se esté utilizando. Los nombres de variables que se elijan para el algoritmo o programa deben ser significativos y tener relación con el objeto que representa. En lenguaje C la sintaxis para definir una variable es:
tipo_de_dato identificador;
Contador
Los procesos repetitivos requieren contar los sucesos y acciones internas, una forma de hacerlo es mediante un contador. Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada repetición. La forma en que se construye un contador es la siguiente:
int contador = 1; //variable con valor inicial de 1
contador = contador+1;
contador += 1;
contador ++;
Acumulador
Un acumulador o totalizador es una variable cuya función es almacenar cantidades resultantes de operaciones sucesivas. Realiza la misma función que un contador con la diferencia de que el incremento o decremento es variable en lugar de constante.
int acumulador = 0;
acumulador = acumulador + valor;
acumulador += valor;
Banderas
Una bandera, también denominada interruptor
...