Está en la página 1de 11

CURSO DE PROGRAMACION EN C Y C++

Pgina 1 de 11

CURSO DE PROGRAMACION EN C Y C++


Universidad de Sucre
Facultad de Ingeniera
(10 Agosto LUNES 2015:9-11 AM)

CONTENIDOS
El contenido del semestre se conformar con contenidos de varios autores, pero
en trminos generales se desarrollarn los siguientes temas, de la manera ms
flexible de acuerdo a las respuestas de los alumnos.
LECCION 1:

LECCION 2.
LECCION 3.

LECCION 7.

LECCION 5.

LECCION 6.

INTRODUCCIN Y PRIMEROS PASOS.


1.1
Bibliografa
1.2
PRIMEROS PASOS EN WINDOWS PARA EMPEZAR
A PROGRAMAR CON C/C++ (PRINCIPIANTES)
ESCRIBIR UN PROGRAMA. HELLO, WORLD
2.1
QU ES UN PROGRAMA
2.2
REALIZAR UN PROGRAMA
ESTRUCTURA DEL LENGUAJE C++
3.1
TIPOS
3.2
LITERALES
3.3
IDENTIFICADORES
3.4
DECLARACIN DE CONSTANTES SIMBLICAS
3.5
VARIABLES
3.6
CONVERSIN ENTRE TIPOS
3.7
OPERADORES
3.8
PRIORIDAD Y ORDEN DE EVALUACIN
3.9
ESTRUCTURA DE UN PROGRAMA
3.10 PROGRAMA ORIENTADO A OBJETOS
ENTRADA Y SALIDA ESTNDAR
4.1
ENTRADA ESTNDAR
4.2
SALIDA ESTNDAR
4.3
SALIDA CON FORMATO
SENTENCIAS DE CONTROL
5.1
SENTENCIA DE ASIGNACIN
5.2
SENTENCIAS DE CONTROL
5.3
IF
5.4
SWITCH
5.5
WHILE
5.6
DO... WHILE
5.7
FOR
5.8
SENTENCIA BREAK
5.9
TRY... CATCH
FUNCIONES
6.1
DEFINICIN
6.2
ENFOQUE PROCEDURAL FRENTE AL ORIENTADO A
OBJETOS
6.3
PASANDO ARGUMENTOS A LAS FUNCIONES

CURSO DE PROGRAMACION EN C Y C++

LECCION 7.

8.

Pgina 2 de 11

6.4
PARMETROS POR OMISIN
6.5
FUNCIONES RECURSIVAS
6.6
FUNCIONES MATEMTICAS
MATRICES Y ESTRUCTURAS
7.1
MATRICES
7.3
EL TIPO STRING
7.4
ESTRUCTURAS

FLUJOS
8.1
8.2

ESCRIBIR Y LEER EN UN FICHERO


ACCESO SECUENCIAL
INTRODUCCION

CURSO DE PROGRAMACION EN C Y C++

Pgina 3 de 11

C++ es un lenguaje de programacin diseado por Bjarne Stroustrup y puesto a


disposicin de los desarrolladores all por 1985. La intencin de su creador fue
extender el exitoso lenguaje de programacin C con mecanismos que permitieran
la programacin orientada a objetos. En ese sentido, y desde un punto de vista de
los lenguajes orientados a objetos, C++ es un lenguaje hbrido. Esto es, C++ fue
desarrollado a partir del lenguaje de programacin C y con pocas excepciones
incluye a C, que puede compilarse sin problemas bajo C++. (Carmen Fernndez).
C++ es actualmente uno de los lenguajes de programacin ms populares para el
desarrollo de aplicaciones de propsito general. Como muchos otros lenguajes,
permite trabajar con todo tipo de datos, crear estructuras de datos, trabajar con
ficheros, manipular excepciones, etc. Ms an, C++ es un lenguaje simple,
potente y orientado a objetos. Su sintaxis incita al programador a generar
programas modulares y fcilmente mantenibles.
C++11 (Wikipedia)
El C++11, antes conocido como C++0x, es el nombre de la segunda iteracin ms
reciente del lenguaje de programacin C++, reemplazando al C++03 y
reemplazado por el C++14, aprobado por la ISO el da 12 de agosto de 2011.1 El
nombre es derivado de la tradicin de nombrar las versiones de lenguaje por la
fecha de la publicacin de la especificacin.
C++11 incluye varias adiciones al ncleo del lenguaje y extiende la biblioteca
estndar de C++, incorporando la mayor parte de las bibliotecas del C++ Technical
Report 1 (TR1) - con la excepcin de la biblioteca de funciones especiales de
matemticas.2 El C++11 fue publicado como el "ISO/IEC 14882:2011"3 en
septiembre de 2011 y est disponible sujeto a pago. El borrador de trabajo
disponible ms reciente es (N3242) con fecha del 28 de febrero de 2011.

CURSO DE PROGRAMACION EN C Y C++

Pgina 4 de 11

PARA PROFUNDIZACION: La siguiente es un listado histrico de los documentos


del desarrollo de C++, para los que quieran mirar ms de cerca las novedades del
desarrollo del lenguaje (Los nmeros son hipervnculos a cada documento, puede
pulsar Ctrl+Clic para abrir el documento)

Documentos del Comit de Estndar de C++


Doc No. 1401: Jan Kristoffersen (21 October 2002) Atomic operations with multi-threaded
environments
Doc No. 1402: Doug Gregor (22 October 2002) A Proposal to add a Polymorphic Function
Object Wrapper to the Standard Library
Doc No. 1403: Doug Gregor (8 November 2002) Proposal for adding tuple types into the
standard library
Doc No. 1424: John Maddock (3 March 2003) A Proposal to add Type Traits to the
Standard Library
Doc No. 1429: John Maddock (3 March 2003) A Proposal to add Regular Expression to the
Standard Library
Doc No. 1449: B. Stroustrup, G. Dos Reis, Mat Marcus, Walter E. Brown, Herb Sutter (7
April 2003)Proposal to add template aliases to C++
Doc No. 1450: P. Dimov, B. Dawes, G. Colvin (27 March 2003) A Proposal to Add General
Purpose Smart Pointers to the Library Technical Report (Revision 1)
Doc No. 1452: Jens Maurer (10 April 2003) A Proposal to Add an Extensible Random
Number Facility to the Standard Library (Revision 2)
Doc No. 1453: D. Gregor, P. Dimov (9 April 2003) A proposal to add a reference wrapper to
the standard library (revision 1)
Doc No. 1454: Douglas Gregor, P. Dimov (9 April 2003) A uniform method for computing
function object return types (revision 1)
Doc No. 1456: Matthew Austern (9 April 2003) A Proposal to Add Hash Tables to the
Standard Library (revision 4)
Doc No. 1471: Daveed Vandevoorde (18 April 2003) Reflective Metaprogramming in C++
Doc No. 1676: Bronek Kozicki (9 September 2004) Non-member overloaded copy
assignment operator
Doc No. 1704: Douglas Gregor, Jaakko Jrvi, Gary Powell (10 September 2004) Variadic
Templates: Exploring the Design Space
Doc No. 1705: J. Jrvi, B. Stroustrup, D. Gregor, J. Siek, G. Dos Reis (12 September
2004) Decltype (and auto)
Doc No. 1717: Francis Glassborow, Lois Goldthwaite (5 November 2004) explicit class and
default definitions
Doc No. 1719: Herb Sutter, David E. Miller (21 October 2004) Strongly Typed Enums
(revision 1)
Doc No. 1720: R. Klarer, J. Maddock, B. Dawes, H. Hinnant (20 October 2004) Proposal to
Add Static Assertions to the Core Language (Revision 3)
Doc No. 1757: Daveed Vandevoorde (14 January 2005) Right Angle Brackets (Revision 2)
Doc No. 1811: J. Stephen Adamczyk (29 April 2005) Adding the long long type to C++
(Revision 3)
Doc No. 1815: Lawrence Crowl (2 May 2005) ISO C++ Strategic Plan for Multithreading
Doc No. 1827: Chris Uzdavinis, Alisdair Meredith (29 August 2005) An Explicit Override
Syntax for C++
Doc No. 1834: Detlef Vollmann (24 June 2005) A Pleading for Reasonable Parallel
Processing Support in C++

CURSO DE PROGRAMACION EN C Y C++

Pgina 5 de 11

Doc No. 1836: ISO/IEC DTR 19768 (24 June 2005) Draft Technical Report on C++ Library
Extensions
Doc No. 1886: Gabriel Dos Reis, Bjarne Stroustrup (20 October 2005) Specifying C++
concepts
Doc No. 1891: Walter E. Brown (18 October 2005) Progress toward Opaque Typedefs for
C++0X
Doc No. 1898: Michel Michaud, Michael Wong (6 October 2004) Forwarding and inherited
constructors
Doc No. 1919: Bjarne Stroustrup, Gabriel Dos Reis (11 December 2005) Initializer lists
Doc No. 1968: V Samko; J Willcock, J Jrvi, D Gregor, A Lumsdaine (26 February
2006) Lambda expressions and closures for C++
Doc No. 1986: Herb Sutter, Francis Glassborow (6 April 2006) Delegating Constructors
(revision 3)
Doc No. 2016: Hans Boehm, Nick Maclaren (21 April 2002) Should volatile Acquire
Atomicity and Thread Visibility Semantics?
Doc No. 2142: ISO/IEC DTR 19768 (12 January 2007) State of C++ Evolution (between
Portland and Oxford 2007 Meetings)
Doc No. 2228: ISO/IEC DTR 19768 (3 May 2007) State of C++ Evolution (Oxford 2007
Meetings)
Doc No. 2258: G. Dos Reis and B. Stroustrup Templates Aliases
Doc No. 2280: Lawrence Crowl (2 May 2007) Thread-Local Storage
Doc No. 2291: ISO/IEC DTR 19768 (25 June 2007) State of C++ Evolution (Toronto 2007
Meetings)
Doc No. 2336: ISO/IEC DTR 19768 (29 July 2007) State of C++ Evolution (Toronto 2007
Meetings)
Doc No. 2389: ISO/IEC DTR 19768 (7 August 2007) State of C++ Evolution (pre-Kona
2007 Meetings)
Doc No. 2431: SC22/WG21/N2431 = J16/07-0301 (2 October 2007), A name for the null
pointer: nullptr
Doc No. 2432: ISO/IEC DTR 19768 (23 October 2007) State of C++ Evolution (post-Kona
2007 Meeting)
Doc No. 2437: Lois Goldthwaite (5 October 2007) Explicit Conversion Operators
Doc No. 2461: ISO/IEC DTR 19768 (22 October 2007) Working Draft, Standard for
programming Language C++
Doc No. 2507: ISO/IEC DTR 19768 (4 February 2008) State of C++ Evolution (preBellevue 2008 Meeting)
Doc No. 2565: ISO/IEC DTR 19768 (7 March 2008) State of C++ Evolution (post-Bellevue
2008 Meeting)
Doc No. 2597: ISO/IEC DTR 19768 (29 April 2008) State of C++ Evolution (pre-Antipolis
2008 Meeting)
Doc No. 2606: ISO/IEC DTR 19768 (19 May 2008) Working Draft, Standard for
Programming Language C++
Doc No. 2798: ISO/IEC DTR 19768 (4 October 2008) Working Draft, Standard for
Programming Language C++
Doc No. 2857: ISO/IEC DTR 19768 (23 March 2009) Working Draft, Standard for
Programming Language C++
Doc No. 2869: ISO/IEC DTR 19768 (28 April 2009) State of C++ Evolution (post-San
Francisco 2008 Meeting)
Doc No. 3014: Stephen D. Clamage (4 November 2009) AGENDA, PL22.16 Meeting No.
53, WG21 Meeting No. 48, 813 March 2010, Pittsburgh, PA
Doc No. 3082: Herb Sutter (13 March 2010) C++0x Meeting Schedule

CURSO DE PROGRAMACION EN C Y C++

Pgina 6 de 11

Doc No. 3092: ISO/ISC DTR 19769 (26 March 2010) Working Draft, Standard for
Programming Language C++
Doc No. 3126: ISO/ISC DTR 19769 (21 August 2010) Working Draft, Standard for
Programming Language C++
Doc No. 3225: ISO/ISC DTR 19769 (27 November 2010) Working Draft, Standard for
Programming Language C++
Doc No. 3242: ISO/ISC DTR 19769 (28 February 2011) Working Draft, Standard for
Programming Language C++
Doc No. 3291: ISO/ISC DTR 19769 (5 April 2011) Working Draft, Standard for
Programming Language C++
Doc No. 3290: ISO/ISC DTR 19769 (5 April 2011) FDIS, Standard for Programming
Language C++

Artculos
Bjarne Stroustrup (1 de mayo de 2005). The Design of C++0x: Reinforcing C++s
proven strengths, while moving into the future. C/C++ Users Journal. Consultado el 23 de
marzo de 2009.
Raffaele Rialdi (16 de septiembre de 2005). Il futuro di C++ raccontato da Herb Sutter.
Web Log di Raffaele Rialdi. Consultado el 23 de marzo de 2009.
Danny Kalev (21 de julio de 2006). The Explicit Conversion Operators
Proposal. InformIT. Consultado el 23 de marzo de 2009.
Danny Kalev (11 de julio de 2008). Lambda Expressions and Closures. InformIT.
Consultado el 23 de marzo de 2009.
Pete Becker (11 de abril de 2006). Regular Expressions. Dr. Dobb's Portal. Consultado
el 23 de marzo de 2009.
Danny Kalev (10 de marzo de 2006). The Type Traits Library. InformIT. Consultado el 23
de marzo de 2009.
Pete Becker (1 de mayo de 2005). C++ Function Objects in TR: Getting from TR1 back to
the Standard Library. Dr. Dobb's Portal. Consultado el 23 de marzo de 2009.
Howard E. Hinnant, Bjarne Stroustrup, and Bronek Kozicki (10 de marzo de 2008). A
Brief Introduction to Rvalue References. The C++ Source. Consultado el 23 de marzo de
2009.
C++0x: The Dawning of a New Standard. DevX. 18 de agosto de 2008. Consultado el 23
de marzo de 2009.
Static code analysis and the new language standard C++0x. Intel Software Network. 15
de abril de 2010.
Bjarne Stroustrup (August 2009). No 'Concepts' in C++0x. accu.org. Consultado el 29
de junio de 2010.
Explicating the new C++ standard (C++0x), and its implementation in VC10.
CodeProject.com. 8 de abril de 2010. Consultado el 13 de febrero de 2011.

CURSOS EN LINEA Y BIBLIOGRAFIAS RECOMENDADAS. Las siguientes son


las direcciones con los cursos en lnea ms completos sobre C y C++:
http://www.cplusplus.com/doc/tutorial/
Considerado, actualmente, el mejor curso de C++, hasta el momento, el nico
inconveniente es que esta en ingls.
http://www.linux-party.com/index.php/54-programacion/6929-tutorial-de-c-cprogramar-paso-a-paso-para-linux-windows-y-mac#

CURSO DE PROGRAMACION EN C Y C++

Pgina 7 de 11

Este curso tambin goza de mucho prestigio y est completamente en espaol.


Los contenidos del presente semestre sern bsicamente tomados de este tutorial
en lnea.
http://www.elrincondelc.com/cursoc/cursoc.html
Este es un curso para principiantes en donde no hace falta ningn conocimiento
anterior para seguirlo. Muchos otros cursos suponen conocimientos previos pero
eso no sucede aqu.
VIDEOS. Existen excelentes tutoriales en espaol:
https://www.youtube.com/playlist?list=PL4A486BBFC5AD733B
Este es un Curso de C++, de cdigo facilito, consta de 27 vdeos. Aprende a
programar en C++ con este curso bsico de video tutoriales en Espaol de
CdigoFacilito.
https://www.youtube.com/watch?v=_vzc9pQnpic
Este es un curso de C++ con Dev-C++, un IDE bastante utilizado y fcil de usar.
https://www.youtube.com/watch?v=tMJc8krx2n4
Este es un curso para Novatos en espaol. Utilizando el entorno integrado de
desarrollo CodeBlock.
VIDEOS DE LECTURA OBLIGATORIA PARA REFLEXIONAR. Los siguientes
son dos videos, el primero es de Richard Stallman sobre software Libre y el
segundo de Steve Job sobre programacin.
1. https://www.youtube.com/watch?v=EZf3Xy2ifaU
2. https://www.youtube.com/watch?v=X5Wkp1gsNik

BIBLIOGRAFIA. Los siguientes son los libros recomendados en orden de


importancia:
1) Bjarne Stroustrup. Programming Principles and Practice Using C++. Este
es el mejor libro de todos. Escrito por el creador de C++. Es un libro escrito
para quienes no tienen ningn conocimiento de programacin y lleva al lector
desde los principios ms bsicos hasta convertirlo en un programador
competente. Hay una versin en espaol que se puede conseguir en algunas
bibliotecas.
2) Bjarne Stroustrup. El lenguaje de programacin C++. Es una versin en
espaol que se puede encontrar en internet. Contiene apenas 7 captulos y
estn muy condensados, pero es de mucha ayuda.
3) Carmen Fernndez. C++ Lo Bsico que Debe Saber. Un excelente libro para
iniciar desde cero. Se puede conseguir en internet en la librera de la U en la
siguiente direccin a un costo de no ms de 30 mil pesos:
http://www.libreriadelau.com/c-lo-basico-que-debe-saber-informatica-6.html#.VZb-9Pl_Oko

CURSO DE PROGRAMACION EN C Y C++

Pgina 8 de 11

4) Enciclopedia de C++. Es una coleccin de libros de C y C++ de varios


autores, algunos muy buenos y otros no tanto, pero se pueden encontrar en
espaol. Alguna informacin detallada de los mismos, la pueden obtener en la
siguiente direccin: http://www.freelibros.org/programacion/programacion-enlenguaje-c-coleccion-de-49-libros-electronicos-codigos-fuente.html
METODOLOGIA: La metodologa se basar en la frase de Brian Kernighan: Se
aprende a programar Programando.
En este curso se procurar en lo posible utilizar lenguaje bastante no tcnico, y
por lo dems se cubrirn los temas con ejemplos de trabajo, procurando que sean
temas de ingeniera.
Hay un viejo refrn latino: Longum iter est per preacepta, breve et efficax per
exempla (Es un largo camino por las reglas, pero corto y eficiente con
ejemplos).
Esta ser la metodologa que seguiremos. Sin embargo se darn pautas en cada
tema para ampliar conceptos, indicando textos avanzados, y pginas de la
internet, donde podrn continuar aquellos que deseen profundizar o que prevean
que necesitarn estudios ms slidos para casos de, por ejemplo, proyectos de
grado o investigacin.
EVALUACION: La evaluacin consistir exclusivamente de parciales donde se
evaluarn los conceptos aprendidos. Se harn parciales uno por cada tema
tratado. Al final se promediarn todos los parciales y esa ser la nota del 100%.

CURSO DE PROGRAMACION EN C Y C++

Pgina 9 de 11

PRIMEROS PASOS EN WINDOWS PARA EMPEZAR A PROGRAMAR CON C/C+


+ (PRINCIPIANTES)
http://wiki.geany.org/howtos/win32/getting-started
En este artculo se proporciona informacin paso a paso de la instalacin del
software para la realizacin de un programa Hola Mundo.
Instale TDM-GCC (el compilador). Puede descargarlo en la siguiente direccin:
http://tdm-gcc.tdragon.net/download
Seleccione la versin de 32bit (No el sufijo -w64), paquete, versin.
Instalar con opciones por defecto a menos que sepa lo que est haciendo.
Asegrese de que GCC es accesible en el PATH. Inicie la consola de Windows,
pulsando las teclas: WIN+R, escriba cmd y pulse Enter, y escriba gcc.
Usted debe obtener algo como esto en el CMD
C:\>gcc
gcc: fatal error: no input files
compilation terminated.
De lo contrario, se debe aadir manualmente el PATH adecuado.
Instale Geany (IDE)
Si no est seguro, descargar e instalar la versin que viene con GTK tiempo de
ejecucin.
http://www.geany.org/Download/Releases
Hello World para C. Inicie Geany, haga clic en Archivo Nuevo. Haga clic en
Documento Establecer tipo de archivo Lenguajes de programacin Archivo
de fuente C.

CURSO DE PROGRAMACION EN C Y C++

Pgina 10 de 11

Escriba el siguiente cdigo:

Hello World para C++. Haga lo mismo del paso anterior pero ahora elija Archivo
de Fuente C++

Finalice su programa Hello World

Click Nuevo en la Barra de Herramientas.

Escriba su programa Hello World, como se mostr anteriormente, de


acuerdo a su lenguaje (C o C++).

CURSO DE PROGRAMACION EN C Y C++

Pgina 11 de 11

Guarde el programa con la extensin adecuada (Use .c para programas en


C, .cpp o .cxx para programas en C++).
Haga clic en Compilar en la barra de herramientas. Debera decir La
compilacin ha terminado con xito, de lo contrario revise su cdigo.
Haga clic en Ejecutar en la barra de herramientas. Debera ver una
ventana emergente de la consola y debera ver el mensaje Hello, World!.

EJERCICIO: Intente escribir un cdigo de C en un programa de C++

También podría gustarte