Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Aprende a Programar en C# desde 0 [Muy Completo]
#1
Bueno, C es un lenguaje de programación de alto nivel, llamado así porque es más fácil de aprender y de corregir errores con el que con uno de bajo nivel que se parece más al lenguaje del ordenador.

Aquí os dejo una guía, cuyo autor indica explícitamente que es de libre distribución, mientras no se cambie el contenido, yo no lo he hecho.

Con la guía, aprenderemos a hacer cosas sencillas y no tan sencillas.

Hace falta unos conocimientos previos de informática en general, aunque ninguno de programación.

Consta de 174 páginas, pues viene muy bien explicado, paso a paso, comando a comando.

Sirve tanto para linux como para windows (para MacOS no lo sé). Las herramientas para linux la mayoría ya vienen preinsaladas, como el compilador. Las de windows hay que descagarlas, instalarlas, etc… Todo se en el manual.

Indice de contenidos
Código:
0. Conceptos básicos sobre programación ________________________________________________7
0.1. Lenguajes de alto nivel y de bajo nivel. ____________________________________________7
0.2. Ensambladores, compiladores e intérpretes_________________________________________8
0.3. Pseudocódigo__________________________________________________________________9
1. Toma de contacto con C ____________________________________________________________11
1.1 Escribir un texto en C __________________________________________________________12
1.1.1. Cómo probar este programa en Linux ___________________________________________13
1.1.2. Cómo probar este programa en Windows ________________________________________14
1.2. Mostrar números enteros en pantalla_____________________________________________17
1.3. Operaciones aritméticas básicas _________________________________________________18
1.3.1. Orden de prioridad de los operadores ___________________________________________18
1.3.2. Introducción a los problemas de desbordamiento __________________________________18
1.4. Introducción a las variables: int _________________________________________________18
1.4.1. Definición de variables: números enteros ________________________________________19
1.4.2. Asignación de valores _______________________________________________________19
1.4.3. Mostrar el valor de una variable en pantalla ______________________________________19
1.5. Identificadores _______________________________________________________________21
1.6. Comentarios _________________________________________________________________21
1.7. Datos por el usuario: scanf _____________________________________________________22
2. Tipos de datos básicos______________________________________________________________24
2.1. Tipo de datos entero ___________________________________________________________24
2.1.1. Tipos de enteros: signed/unsigned, short/long_____________________________________24
2.1.2. Problemática: asignaciones y tamaño de los números; distintos espacios ocupados según el
sistema________________________________________________________________________25
2.1.3. Unidades de medida empleadas en informática (1): bytes, kilobytes, megabytes... ________26
2.1.4. Unidades de medida empleadas en informática (2): los bits __________________________27
2.1.5. Sistemas de numeración: 1- Sistema binario ______________________________________28
2.1.6. Sistemas de numeración: 2- Sistema octal________________________________________30
2.1.7. Sistemas de numeración: 3- Sistema hexadecimal _________________________________31
2.1.8. Formato de constantes enteras: oct, hex _________________________________________33
2.1.9. Representación interna de los enteros ___________________________________________34
2.1.10. Incremento y decremento ___________________________________________________36
2.1.11. Operaciones abreviadas: +=__________________________________________________37
2.1.12. Modificadores de acceso: const, volatile ________________________________________37
2.2. Tipo de datos real _____________________________________________________________37
2.2.1. Simple y doble precisión _____________________________________________________38
2.2.2. Mostrar en pantalla números reales _____________________________________________38
2.3. Operador de tamaño: sizeof_____________________________________________________40
2.4. Operador de molde: (tipo) operando _____________________________________________40
2.5. Tipo de datos carácter _________________________________________________________42
2.5.1. Secuencias de escape: \n y otras. _______________________________________________43
2.5.2. Introducción a las dificultades de las cadenas de texto ______________________________43
3. Estructuras de control _____________________________________________________________44
3.1. Estructuras alternativas________________________________________________________44
3.1.1. if _______________________________________________________________________44
3.1.2. if y sentencias compuestas____________________________________________________45
3.1.3. Operadores relacionales: <, <=, >, >=, ==, != ____________________________________45
Fundamentos de programación en C, por Nacho Cabanes
Revisión 0.23– Página 3
3.1.4. if-else____________________________________________________________________46
3.1.5. Operadores lógicos: &&, ||, !__________________________________________________47
3.1.6. Cómo funciona realmente la condición en un “if”__________________________________48
3.1.7. El peligro de la asignación en un “if” ___________________________________________49
3.1.8. Introducción a los diagramas de flujo ___________________________________________51
3.1.9. Operador condicional: ?______________________________________________________53
3.1.10. switch___________________________________________________________________54
3.2. Estructuras repetitivas_________________________________________________________55
3.2.1. while ____________________________________________________________________55
3.2.2. do ... while ________________________________________________________________56
3.2.3. for ______________________________________________________________________57
3.3. Sentencia break: termina el bucle________________________________________________60
3.4. Sentencia continue: fuerza la siguiente iteración____________________________________60
3.5. Sentencia goto ________________________________________________________________62
3.6. Más sobre diagramas de flujo. Diagramas de Chapin. _______________________________63
3.7. Recomendación de uso de los distintos tipos de bucle ________________________________65
4. Entrada/salida básica _____________________________________________________________67
4.1. printf _______________________________________________________________________67
4.2. scanf________________________________________________________________________69
4.3. putchar _____________________________________________________________________70
4.4. getchar ______________________________________________________________________70
5. Arrays y estructuras______________________________________________________________72
5.1. Conceptos básicos sobre tablas __________________________________________________72
5.1.1. Definición de una tabla y acceso a los datos ______________________________________72
5.1.2. Valor inicial de una tabla_____________________________________________________73
5.1.3. Recorriendo los elementos de una tabla _________________________________________73
5.2. Cadenas de caracteres _________________________________________________________74
5.2.1. Definición. Lectura desde teclado ______________________________________________74
5.2.2. Cómo acceder a las letras que forman una cadena _________________________________75
5.2.3. Longitud de la cadena._______________________________________________________75
5.2.4. Entrada/salida para cadenas: gets, puts __________________________________________76
5.2.5. Asignando a una cadena el valor de otra: strcpy, strncpy; strcat _______________________77
5.2.6. Comparando cadenas: strcmp _________________________________________________78
5.2.7. Otras funciones de cadenas: sprintf, sscanf _______________________________________80
5.2.8. Valor inicial de una cadena de texto ____________________________________________81
5.3. Tablas bidimensionales ________________________________________________________82
5.4. Arrays indeterminados. ________________________________________________________83
5.5. Estructuras __________________________________________________________________83
5.5.1. Definición y acceso a los datos ________________________________________________83
5.5.2. Arrays de estructuras ________________________________________________________85
5.5.3. Estructuras anidadas ________________________________________________________85
5.6 Ejemplo completo _____________________________________________________________86
6. Manejo de ficheros ________________________________________________________________90
6.1. Escritura en un fichero de texto _________________________________________________90
6.2. Lectura de un fichero de texto___________________________________________________91
6.3. Lectura hasta el final del fichero_________________________________________________92
6.4. Ficheros con tipo______________________________________________________________93
6.5 Leer y escribir letra a letra ______________________________________________________93
Fundamentos de programación en C, por Nacho Cabanes
Revisión 0.23– Página 4
6.6 Modos de apertura ____________________________________________________________93
6.7 Ficheros binarios ______________________________________________________________94
6.8 Ejemplo: copiador de ficheros ___________________________________________________94
6.9 Acceder a cualquier posición de un fichero_________________________________________96
6.10 Ejemplo: leer información de un fichero BMP_____________________________________97
6.11. Ficheros especiales 1: la impresora______________________________________________99
6.12. Ficheros especiales 2: salida de errores _________________________________________100
6.13. Un ejemplo de lectura y escritura: TAG de un MP3_______________________________101
7. Introducción a las funciones _______________________________________________________103
7.1. Diseño modular de programas: Descomposición modular ___________________________103
7.2. Conceptos básicos sobre funciones ______________________________________________103
7.3. Parámetros de una función ____________________________________________________104
7.4. Valor devuelto por una función_________________________________________________104
7.5. El valor de retorno “void”. El valor de retorno de “main”___________________________105
7.6. Variables locales y variables globales ____________________________________________106
7.7. Los conflictos de nombres en las variables________________________________________108
7.8. El orden importa_____________________________________________________________109
7.9. Algunas funciones útiles_______________________________________________________111
7.9.1. Números aleatorios ________________________________________________________111
7.9.2. Funciones matemáticas _____________________________________________________112
7.9.3. Pero casi todo son funciones… _______________________________________________113
7.10. Recursividad _______________________________________________________________114
7.11. Cómo interrumpir el programa. _______________________________________________115
8. Cómo depurar los programas_______________________________________________________117
8.1. Conceptos básicos sobre depuración_____________________________________________117
8.2. Ejemplos de algunos entornos __________________________________________________117
9. Punteros y gestión dinámica de memoria _____________________________________________120
9.1. ¿Por qué usar estructuras dinámicas? ___________________________________________120
9.2. ¿Qué son los punteros? _______________________________________________________121
9.3. Repasemos con un ejemplo sencillo______________________________________________124
9.4. Aritmética de punteros________________________________________________________125
9.5. Punteros y funciones: parámetros por referencia __________________________________126
9.6. Punteros y arrays____________________________________________________________127
9.7. Arrays de punteros___________________________________________________________129
9.8. Punteros y estructuras ________________________________________________________129
9.9. Parámetros de “main” ________________________________________________________130
9.10. Estructuras dinámicas habituales 1: las listas enlazadas ___________________________132
9.11. Estructuras dinámicas habituales 2: los árboles binarios ___________________________137
9.12. Indirección múltiple _________________________________________________________141
9.13. Un ejemplo: copiador de ficheros en una pasada _________________________________142
10. Bibliotecas de uso frecuente_______________________________________________________144
Fundamentos de programación en C, por Nacho Cabanes
Revisión 0.23– Página 5
10.1. Llamadas al sistema: system __________________________________________________144
10.2. Temporización _____________________________________________________________144
10.3. Pantalla y teclado con Turbo C ________________________________________________147
10.4. Acceso a pantalla en Linux: curses.h ___________________________________________149
11. Otras características avanzadas de C________________________________________________153
11.1 Operaciones con bits _________________________________________________________153
11.2 Directivas del preprocesador __________________________________________________154
11.2.1. Constantes simbólicas: #define ______________________________________________155
11.2.2 Inclusión de ficheros: #include_______________________________________________157
11.2.3. Compilación condicional: #ifdef, #endif _______________________________________158
11.2.4. Otras directivas __________________________________________________________160
11.3. Programas a partir de varios fuentes ___________________________________________161
11.3.1. Creación desde la línea de comandos _________________________________________161
11.3.2. Introducción al uso de la herramienta Make ____________________________________165
11.3.3. Introducción a los “proyectos” ______________________________________________168
11.4 Uniones y campos de bits _____________________________________________________169
11.5. El operador coma ___________________________________________________________170
11.6. Enumeraciones _____________________________________________________________172
11.7. Definición de tipos __________________________________________________________172

Aqui lo tienen. Espero que os sea util
http://www.nachocabanes.com/tutors/cc023.pdf

Tutorial Original por: Rodro
[Imagen: bann.png]
WWW
#2
muchas gracias. Me interesa mucho la programación y tengo un projecto pal vwrano que viene y voy a necesitar el manual muchas gracias
#3
Gracias a Rodro por el mensaje original Guiño
WWW
#4
Muchas gracias a rodro por el post oiginal y a taq por rescatarlo. Descargado para su posterior estudioGuiño
WWW
#5
jajaja vale, pues ya que todo mundo se mete en la programación, yo también aprenderé a hacerlo

veremos que sale de todo esto
[Imagen: bann.png]
WWW
#6
ajajaja, por lo pronto no entiendo un carajo, pero que aprendo, pues aprendo , jijijijij Guiño
WWW
#7
claro que eso es lo importante, ir de poco en poco y aprender por cuenta propia

no hay nada mejor
[Imagen: bann.png]
WWW
#8
no los es leído ese manual de c# parece completo viendo el indice siempre es bueno tener un manual de referencia para cuando se tenga que consulta
http://www.codigocero.ucoz.es
#9
Siempre he querido aprender a programar... Gracias !! Sonrisa
#10
Esta demasiado completo XD
Buen aporte MAN Guiño


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
Bombilla [TARGET] Gestionar varias cuentas de email desde la nube yuma2009 18 386 08-07-2017, 08:42 AM
Último mensaje: Lerans
Información Jugar Ping Pong desde la consola con pong-command carlsmartg 7 275 01-07-2017, 05:13 AM
Último mensaje: garcon
  Escuchar música desde tu terminal con CMus carlsmartg 0 191 06-05-2017, 04:40 AM
Último mensaje: carlsmartg
Sonrisa Manipular tu Android desde Ubuntu icurkan 10 680 16-09-2016, 03:42 PM
Último mensaje: Jouser
  Guia cómo eliminar opción de actualizar a windows 10 [desde win7, win8 y 8.1] escuelasegura 16 777 29-07-2016, 02:49 PM
Último mensaje: K3TZ4L
Estrella Curso Mysql desde Cero icurkan 0 216 02-04-2016, 02:19 AM
Último mensaje: icurkan
Corazón Sistemas operativos viejos desde el navegador icurkan 11 605 25-02-2016, 05:15 PM
Último mensaje: Lob3zNo
Bombilla Detalle completo de tus archivos multimedia en Linux icurkan 0 202 06-02-2016, 05:14 AM
Último mensaje: icurkan
  como intalar windows desde una memoria USB TheWise87 21 1,269 14-11-2015, 04:48 PM
Último mensaje: hanwk
  Tema + Pack Completo AlienWare Rojo (Red) Para Windows 7 J'orge20 1 367 31-07-2015, 04:47 PM
Último mensaje: mispracticas2009



Usuarios navegando en este tema: 1 invitado(s)