Aprende a Programar en C
Por Ángel Arias
1/5
()
Información de este libro electrónico
El lenguaje C se considera que es la base de muchos lenguajes de programación modernos, tales como " Objetive-C y C++. Otros lenguajes de programación tienen una sintaxis inspirada en la de C, como Java y C#.
El lenguaje C es un lenguaje de programación que sigue el paradigma de programación imperativa. Este lenguaje ha desempeñado, y sigue desempeñando un papel importante en la tecnología informática:
* Es el lenguaje de sistema de los sistemas operativos POSIX (Unix y derivados, como BSD, Linux, Mac OS X).
* Es el lenguaje con el que se desarrollan la mayoría de los sistemas operativos y los módulos de los controladores de dispositivos (gestión de dispositivo).
* Aunque no ha avanzado hacia el desarrollo de software de aplicaciones, todavía hay muchas aplicaciones desarrolladas en C y su mantenimiento cuesta mucho menos que reescribir la aplicación completa en otro lenguaje.
Ángel Arias
Ángel Arias es un consultor informático con más de 12 años de experiencia en sector informático. Con experiencia en trabajos de consultoría, seguridad en sistemas informáticos y en implementación de software empresarial, en grandes empresas nacionales y multinacionales, Ángel se decantó por el ámbito de la formación online, y ahora combina su trabajo como consultor informático, con el papel de profesor online y autor de numerosos cursos online de informática y otras materias. Ahora Ángel Arias, también comienza su andadura en el mundo de la literatura sobre la temática de la informática, donde ,con mucho empeño, tratará de difundir sus conocimientos para que otros profesionales puedan crecer y mejorar profesional y laboralmente.
Lee más de ángel Arias
Ingeniería y Arquitectura del Software Calificación: 3 de 5 estrellas3/5Curso de Introducción a la Administración de Bases de Datos Calificación: 3 de 5 estrellas3/5Aprende a Programar con Java Calificación: 4 de 5 estrellas4/5Aprende a programar en C# Calificación: 5 de 5 estrellas5/5Computación en la Nube Calificación: 4 de 5 estrellas4/5Bases de Datos con MySQL Calificación: 4 de 5 estrellas4/5Curso de Programación y Análisis de Software Calificación: 4 de 5 estrellas4/5Las Estafas Digitales Calificación: 5 de 5 estrellas5/5Programación y Lógica Proposicional Calificación: 4 de 5 estrellas4/5Fundamentos de Programación y Bases de Datos Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar en Python Calificación: 5 de 5 estrellas5/5Aprende a Desarrollar Videojuegos Calificación: 3 de 5 estrellas3/5Aprende a Programar a Python Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación de Apps. Android y iPhone Calificación: 5 de 5 estrellas5/5Curso de Marketing Online Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación con Java Calificación: 4 de 5 estrellas4/5Aprende a Programar para Android Calificación: 5 de 5 estrellas5/5Curso de Programación con Java - 2ª Edición Calificación: 5 de 5 estrellas5/5Aprende Programación Web con PHP y MySQL Calificación: 4 de 5 estrellas4/5Marketing Digital y SEO con Google Calificación: 5 de 5 estrellas5/5Las Nuevas Tecnologías y el Marketing Digital Calificación: 3 de 5 estrellas3/5Aprende sobre la Ingeniería de Software Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar en ASP .NET y C# Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar Ajax y jQuery Calificación: 1 de 5 estrellas1/5Fundamentos de Programación y Bases de Datos: 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación y Análisis de Software - Tercera Edición Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación y Análisis de Software - 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesAprende sobre la Ingeniería del Software Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar ASP .NET y C# - Segunda Edición Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación con iOS Calificación: 4 de 5 estrellas4/5
Relacionado con Aprende a Programar en C
Libros electrónicos relacionados
Aprende a Programar en C++ Calificación: 5 de 5 estrellas5/5Programación en C++ Calificación: 2 de 5 estrellas2/5Fundamentos de Programación y Bases de Datos Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación con Java Calificación: 4 de 5 estrellas4/5Desarrollo Web en Java Calificación: 3 de 5 estrellas3/5Estructuras de datos y algoritmos fundamentales Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación y Bases de Datos: 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesCurso de Ingeniería de Software Calificación: 4 de 5 estrellas4/5Aprende a programar con pseudocódigo, diagramas de flujo y ejercicios de ejemplo resueltos en C: Algoritmos y lógica para aprender programación desde cero Calificación: 0 de 5 estrellas0 calificacionesLa Guía Básica de Javascript Calificación: 5 de 5 estrellas5/5Curso de Programación y Análisis de Software Calificación: 4 de 5 estrellas4/5Conexión SQL SERVER & C# (Manual para principiantes) Calificación: 1 de 5 estrellas1/5Programación en Go Calificación: 5 de 5 estrellas5/5Diseño de Software Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar ASP .NET y C# - Segunda Edición Calificación: 0 de 5 estrellas0 calificacionesProgramación y Lógica Proposicional Calificación: 4 de 5 estrellas4/5Aprender Javascript Avanzado con 100 ejercicios prácticos Calificación: 5 de 5 estrellas5/5Introducción a PHP Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar para Android Calificación: 5 de 5 estrellas5/5Linux Essentials: una guía para principiantes del sistema operativo Linux Calificación: 5 de 5 estrellas5/5Curso de Programación y Análisis de Software - 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesAprende Programación Web con PHP y MySQL Calificación: 4 de 5 estrellas4/5Fundamentos de programación: un enfoque práctico Calificación: 5 de 5 estrellas5/5Programación orientada a objetos en Java Calificación: 4 de 5 estrellas4/5Aprenda a Programar con Lazarus: PROGRAMACIÓN INFORMÁTICA/DESARROLLO DE SOFTWARE Calificación: 5 de 5 estrellas5/5Aprende a Programar en ASP .NET y C# Calificación: 0 de 5 estrellas0 calificacionesProgramación Java - Una Guía para Principiantes para Aprender Java Paso a Paso Calificación: 3 de 5 estrellas3/5Python 3 al descubierto - 2a ed. Calificación: 5 de 5 estrellas5/5Aprender a programar: algoritmos y fundamentos de programación orientados a la ingeniería y ciencias Calificación: 0 de 5 estrellas0 calificacionesAndroid: Programación de dispositivos móviles a través de ejemplos Calificación: 0 de 5 estrellas0 calificaciones
Sistemas operativos para usted
El gran libro de Android: 7ª Edición Calificación: 0 de 5 estrellas0 calificacionesAprender Windows 10 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesAdministración de Sistemas Operativos. Un enfoque práctico. 2ª Edición: SISTEMAS OPERATIVOS Calificación: 5 de 5 estrellas5/5Investigación forense de dispositivos móviles Android Calificación: 5 de 5 estrellas5/5Desarrollo de aplicaciones para Android Calificación: 5 de 5 estrellas5/5Windows 10 Paso a Paso (Anniversary Update) Calificación: 5 de 5 estrellas5/5El gran libro de Android 8ªEd. Calificación: 5 de 5 estrellas5/5B4A en Español: Desarrollo Rápido de App utilizando BASIC Calificación: 0 de 5 estrellas0 calificacionesSistema operativo GNU Linux: Un enfoque práctico Calificación: 0 de 5 estrellas0 calificacionesInstalación y Configuración de Sistemas Operativos: SISTEMAS OPERATIVOS Calificación: 0 de 5 estrellas0 calificacionesSistemas Operativos y Aplicaciones Informáticas (MF0223_3): SISTEMAS OPERATIVOS Calificación: 0 de 5 estrellas0 calificacionesConsejos Profesionales de Línea de Comando Bash Calificación: 5 de 5 estrellas5/5Implantación de Sistemas Operativos (GRADO SUP.).: SISTEMAS OPERATIVOS Calificación: 0 de 5 estrellas0 calificacionesCreación de aplicaciones con Android Calificación: 0 de 5 estrellas0 calificacionesDomine Microsoft Windows Server 2012: Servidores Calificación: 0 de 5 estrellas0 calificacionesSistemas Operativos Monopuesto. 2ª Edición (GRADO MEDIO): SISTEMAS OPERATIVOS Calificación: 4 de 5 estrellas4/5Guía definitiva para usar Windows 10 Calificación: 0 de 5 estrellas0 calificacionesAprender Windows 8.1 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesAdministración de Sistemas Operativos: SISTEMAS OPERATIVOS Calificación: 4 de 5 estrellas4/5Sistemas Operativos en Red (GRADO MEDIO).: SISTEMAS OPERATIVOS Calificación: 0 de 5 estrellas0 calificacionesCreación de juegos y aplicaciones para Android Calificación: 0 de 5 estrellas0 calificacionesWindows 10: Windows y variantes Calificación: 5 de 5 estrellas5/5Instalación, Configuración y Clonación de Equipos con Sistemas Operativos Calificación: 5 de 5 estrellas5/5Aprender Windows 8 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesDomestica tu Mac: SISTEMAS OPERATIVOS Calificación: 0 de 5 estrellas0 calificacionesInvestigación forense de dispositivos móviles Android Calificación: 0 de 5 estrellas0 calificacionesWindows XP para inexpertos Calificación: 0 de 5 estrellas0 calificacionesOposiciones Cuerpo de Profesores de Enseñanza Secundaria. Sistemas y aplicaciones informáticas (F.P.). Vol. I. Representación de la Información, Hardware y Estructuras de Datos Calificación: 0 de 5 estrellas0 calificaciones
Comentarios para Aprende a Programar en C
3 clasificaciones1 comentario
- Calificación: 1 de 5 estrellas1/5Muchos errores, faltas y hojas con texto cortado y un gran etc
Vista previa del libro
Aprende a Programar en C - Ángel Arias
Índice de Contenidos
Nota del Autor
Introducción
Un lenguaje de programación
La historia de C
Mi Primer Programa
Nociones mínimas
Variables
Asignación
Los tipos de las variables
Ejemplos de uso
Opciones
Los operadores incrementar y disminuir
AND, OR y XOR
Desplazarse hacia la derecha, hacia la izquierda y el complemento a uno
Ejemplos
Constantes
Las constantes simbólicas
Bloques y Funciones
Verdadero o Falso en C
El bloque if
Bloque Simple if
Bloque if-else
Bloquear if-else if-else
El operador ?
El bloque Switch
Bloque Switch simple
Instrucción switch-case-default
OPERADORES LÓGICOS
NOT !
AND &&
OR | |
==
!=
Evaluación shortcircuit
BUCLES Y CONDICIONALES
While
Do-while
for
Las instrucciones break y continue
Prototype
Definición de funciones
Devolver un valor
Pasar parámetros
Bibliotecas
Declaración de uso
Conexión de una biblioteca
Recursividad
Base de recursividad
Problemas debidos a errores
Arrays y Punteros
Características
Sintaxis
Inicializar una matriz multidimensional
Arrays dinámicos
Asignación
Acceso
Arrays y punteros
Desbordamiento de búfer
Punteros
Sintaxis
Declaración
Asignación
Aritmética de punteros
Funciones y punteros
Pasar una matriz a una función
Primer método
Segundo método
Pasar matrices a funciones
Punteros a funciones
Punteros a punteros
La aritmética de punteros para acceder a un array
Cadenas
La declaración de una cadena
Usando cadenas
Visualización de caracteres en una cadena
Lectura segura de los caracteres de una cadena
Funciones de cadena
Enumeraciones
Estructura
Punteros a estructuras
Bits de campo
Otros usos
Unión
Ventajas y Desventajas
Tipos de datos
Conversiones de tipos
Cast
Un ejemplo de conversión de punteros de función
Lectura y escritura de un archivo
Corrientes estándar
Compilador y Precompilador
Las directivas
#Include
#Line
#Pragma
#Undef
Operadores
El operador #
El operador ##
El operador defined
Macros
__DATE__
__FILE__
__LINE__
__TIME__
__STDC__
Header (Cabecera)
VISIBILIDAD
El conector (el linker)
Ámbito en el archivo de origen
Visibilidad dentro de las funciones
Alcance de los bloques de instrucciones
Visibilidad, accesibilidad, static
Gestión de la Memoria
La memoria: stacky heap
Funciones de asignación dinámica
realloc ()
CGI
Las páginas estáticas y páginas dinámicas
Peticiones GET y POST
GET
POST
ANEXO LIBRERIAS ESTANDAR
Biblioteca del encabezado archivos ANSI C (C89)
Adiciones NA1
La adición de C99
Librerías Estándar de C
ctype.h
Funciones
Errores comunes
errno.h
float.h
limits.h
Valores definidos
locale.h
La estructura lconv
Descripción de los elementos de la estructura
setlocale
math.h
Funciones miembros Pre-C99
setjmp.h
Funciones
signal.h
Declaración
Tipo sig_atomic_t
Designación de las señales
Macro-variables para el manejo por defecto de las señales.
Uso de las funciones
stdarg.h
stddef.h
stdio.h
Los tipos de datos
Archivo
fpos_t
size_t
Constantes
EOF
BUFSIZ
FILENAME_MAX
FOPEN_MAX
_IOFBF
_IOLBF
_IONBF
L_tmpnam
NULL
SEEK_CUR
SEEK_END
SEEK_SET
TMP_MAX veces
Variables
stdin
stdout
stderr
Funciones
clearerr ()
fclose ()
feof ()
ferror ()
fflush ()
fgetpos ()
fopen ()
fread ()
freopen ()
fseek ()
fsetpos ()
ftell ()
fwrite ()
gets ()
remove ()
rename ()
rewind ()
setbuf ()
setvbuf ()
tmpfile ()
tmpnam ()
stdlib.h
Funciones
string.h
Constantes y tipos
Funciones
memcpy ()
strlen ()
strtok ()
time.h
Ciclos de CPU
Representación del tiempo
Representación del tiempo en una estructura
Funciones para el tiempo
time ()
difftime ()
mktime ()
gmtime () y localtime ()
Convierten en cadenas
asctime ()
ctime ()
strftime ()
HERRAMIENTAS
Para Windows
Para GNU/Linux
El Instalador
Microsoft Windows
Bibliotecas para crear interfaces de usuario
Bibliotecas de gráficos 3D (para los videojuegos, los motores gráficos, etc.)
Conclusiones
Bibliografía
Acerca del Autor
Nota del Autor
Esta publicación está destinada a proporcionar el material útil e informativo. Esta publicación no tiene la intención de conseguir que usted sea un maestro de las bases de datos, sino que consiga obtener un amplio conocimiento general de las bases de datos para que cuando tenga que tratar con estas, usted ya pueda conocer los conceptos y el funcionamiento de las mismas. No me hago responsable de los daños que puedan ocasionar el mal uso del código fuente y de la información que se muestra en este libro, siendo el único objetivo de este, la información y el estudio de las bases de datos en el ámbito informático. Antes de realizar ninguna prueba en un entorno real o de producción, realice las pertinentes pruebas en un entorno Beta o de prueba.
El autor y editor niegan específicamente toda responsabilidad por cualquier responsabilidad, pérdida, o riesgo, personal o de otra manera, en que se incurre como consecuencia, directa o indirectamente, del uso o aplicación de cualesquiera contenidos de este libro.
Todas y todos los nombres de productos mencionados en este libro son marcas comerciales de sus respectivos propietarios. Ninguno de estos propietarios han patrocinado el presente libro.
Procure leer siempre toda la documentación proporcionada por los fabricantes de software usar sus propios códigos fuente. El autor y el editor no se hacen responsables de las reclamaciones realizadas por los fabricantes.
Introducción
El lenguaje C se considera que es la base de muchos lenguajes de programación modernos, tales como " Objetive-C y C++. Otros lenguajes de programación tienen una sintaxis inspirada en la de C, como Java y C#.
El lenguaje C es un lenguaje de programación que sigue el paradigma de programación imperativa. Este lenguaje ha desempeñado, y sigue desempeñando un papel importante en la tecnología informática:
Es el lenguaje de sistema de los sistemas operativos POSIX (Unix y derivados, como BSD, Linux, Mac OS X).
Es el lenguaje con el que se desarrollan la mayoría de los sistemas operativos y los módulos de los controladores de dispositivos (gestión de dispositivo).
Aunque no ha avanzado hacia el desarrollo de software de aplicaciones, todavía hay muchas aplicaciones desarrolladas en C y su mantenimiento cuesta mucho menos que reescribir la aplicación completa en otro lenguaje.
A partir de C se derivan muchos lenguajes de programación modernos, principalmente C++, Objective-C, Java y C#. Estos lenguajes comparten en distinto grado el léxico, la sintaxis y la lógica de C. Muchos profesionales consideran que el aprendizaje de C es la base para el aprendizaje de estos lenguajes.
Sin embargo, puede no querer aprender el lenguaje C si usted no está interesado ni el software de sistema y ni desea utilizar un lenguaje que no se derive del lenguaje C.
Un lenguaje de programación
El primer ordenador se ha programado con un lenguaje de máquina, un lenguaje que se ejecuta mediante una secuencia de bits. Esta forma de programación se dice que es un nivel muy bajo y es el único lenguaje que es comprensible y directamente ejecutable por el microprocesador. Escribir un programa directamente en lenguaje máquina requiere tener un conocimiento muy amplio y profundo del microprocesador específico para poder desarrollar un programa, y de cómo tratar la portabilidad del programa a otro equipo sobre la base de otra familia de microprocesadores. La mayoría de los humanos no entendemos el lenguaje de máquina o binario, sólo podemos ver una cadena interminable de código que a nuestros ojos es totalmente incompresible.
Por estas y otras razones, durante la evolución de la informática se han creado lenguajes de programación, con el fin de simplificar y reducir el tiempo de desarrollo y el mantenimiento del programa.
Uno de los lenguajes que todavía se utiliza es el lenguaje assembley o ensamblador. Sin embargo, este lenguaje no es muy productivo y se utiliza en conjunto con otros lenguajes, como el lenguaje C, cuando la operación que se lleva a cabo debe realizarse en el menor tiempo posible. Este conjunto tiene los mismos problemas de los lenguajes de máquina, es decir, no es portátil y es muy complejo, ya que tiene que manipular directamente los registros del microprocesador, sin embargo, es una herramienta que tiene un lenguaje más fácil de recordar nemónicamente y es legible por humanos. El programa escrito en assembley, con el fin de ser ejecutado por el equipo, requiere de una transformación en código de máquina para que este pueda ser comprendido por el microprocesador, esta transformación se suele llevar a cabo por un programa llamado ensamblador o assembler. Este lenguaje pertenece a la categoría de los lenguajes de bajo nivel y se ubica justo por encima del lenguaje de máquina.
Durante la evolución de la informática se han producido una gran proliferación de los lenguajes de alto nivel, creados y diseñados para resolver algunos tipos de problemas particulares y otros problemas más genéricos. Los lenguajes de alto nivel hacen que el programa sea más legible y fácil de mantener, el resultado es un código más compacto y más comprensible.
Algunos ejemplos de estos lenguajes de alto nivel son Pascal para aplicaciones de enseñanza, Fortran para aplicaciones científicas, Basic, Cobol, por nombrar unos pocos, y por supuesto, el C.
Es un lenguaje de nivel medio
Lo que diferencia a C de otros lenguajes de programación es el hecho de que se considera el lenguaje de nivel más bajo entre los de alto nivel, esta asignedción viene dada al hecho de que C es ampliamente utilizado para los constructores de programas, sistemas operativos o sobre aquellas aplicaciones que requieren un control directo sobre los dispositivos.
Estructurado
Cada programa se ve como un comando (o complejo estructurado), obtenido mediante la composición de otros comandos utilizando 3 estructuras de control: concatenación, alternativas y la repetición.
Tipo débil
En el sentido de que dado un tipo particular, este puede ser visto por el programa mediante el uso de técnicas especiales, tales como otros tipos o incluso convertirse en otro tipo. Además, algunas de estas conversiones de un tipo a otro son implícitas, y otras pueden ser forzadas.
Diferencia entre mayúsculas y minúsculas
C es case-sensitive, es decir, que diferencia entre mayúsculas y minúsculas; así ab, AB, Ab y aB serán cuatro variables diferentes.
La historia de C
Fue diseñado en los laboratorios Bell de AT & T en 1972 por Dennis Ritchie como una evolución del lenguaje B de Ken Thompson que se utilizó para escribir los primeros sistemas operativos UNIX. El mismo Thompson en 1970, fue a su vez inspirado por el lenguaje BCPL por Martin Richards, y pensó también en desarrollar sistemas operativos y software de sistema. La definición fue realizada en 1978 por BW Kernighan y DM Ritchie. En 1983 se comenzó a trabajar en la definición de un estándar por la American National Standards Institute, que publicó en 1990 el estándar ANSI C (ISO C89).
Variantes y lenguajes derivados
La norma también fue adoptado por la Organización Internacional de Normalización (ISO) en 1999 bajo el nombre de ANSI C/ISO estándar. En 1995 se aprobó la primera enmienda a la Norma C, la cual, entre otras cosas, añade nuevas funciones a la biblioteca estándar. Utilizando como un documento base con el C89 de la primera enmienda, y uniendo el uso de algunas clases de Simula, Bjarne Stroustrup empezó a desarrollar C++.
El resultado final del desarrollo continuo de la norma C se promulgó en 1999, y es conocida como ISO C99.
El lenguaje Objective-C debe su popularidad a que Apple lo eligió como base para su sistema operativo Mac OS X.
Es un lenguaje orientado a objetos y, a diferencia de C++ mantiene total compatibilidad con C.
Mi Primer Programa
Comenzamos introduciendo el programa clásico Hello World.
#Include
stdlib.h #include
int main (void)
{
printf (Hello World!
);
system (PAUSE
);