

































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Manual de apuntes sobre los conceptos básicos de programación, desde la sintaxis y semántica de los lenguajes hasta la ejecución de programas y la resolución de problemas, con ejemplos en c++. Profesores: raquel hervás ballesteros y luis hernández yáñez. Facultad de informática, universidad complutense.
Tipo: Apuntes
1 / 41
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


































GGGGrado en Ingeniería Informática rado en Ingeniería Informáticadd II ii íí I fI f átiáti Grado en Ingeniería del SoftwareGrado en Ingeniería del Software Grado en Ingeniería de ComputadoresGrado en Ingeniería de Computadores
Raquel Hervás BallesterosRaquel Hervás Ballesteros Luis Hernández YáñezLuis Hernández Yáñez
Un ejemplo de programaciónUn ejemplo de programación 22 El primer programa en C++El primer programa en C++ 1818 Las líneas de código del programaLas líneas de código del programaLas líneas de código del programaLas líneas de código del programa 34343434 Cálculos en los programasCálculos en los programas 4040 Variables y expresionesVariables y expresiones 4646 Lectura de datos desde el tecladoLectura de datos desde el tecladoLectura de datos desde el tecladoLectura de datos desde el teclado 61616161 Resolución de problemasResolución de problemas 7272
s Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
ernández Yáñezernández Yáñez Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I
s^ Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
ernández Yáñezernández Yáñez Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 2 2
Sintaxis y semántica de los lenguajesSintaxis y semántica de los lenguajes
—— Reglas que determinan cómo se pueden construirReglas que determinan cómo se pueden construir y secuenciar los elementos del lenguajey secuenciar los elementos del lenguajeii ll ll tt d l ld l l jj
s^ Ballesteross Ballesteros
—— Significado de cada elemento del lenguajeSignificado de cada elemento del lenguaje ¿Para qué sirve?¿Para qué sirve?
z/Raquel Hervász/Raquel Hervás
(^) ¿Para¿Para qué sirve? qué sirve?
ernández Yáñezernández Yáñez Luis HLuis H Fundamentos de la programación: Computadoras y programaciónFundamentos de la programación: Computadoras y programación PáginaPágina 3 3
Una computadora de un cocheUna computadora de un coche = Literales= Literales= Literales= Literales
instruccióninstruccióninstruccióninstrucción
StartStart
instruccióninstruccióninstruccióninstrucción StopStop ;; == Subdiagrama== SubdiagramaSubdiagramaSubdiagrama
avanzaravanzar
StopStop ;;
s Ballesteross Ballesteros
avanzaravanzaravanzaravanzar GoGo^ direccióndirección numnum BlocksBlocks
z/Raquel Hervász/Raquel Hervás
NorthNorth EastEast
11 22
ernández Yáñezernández Yáñez
direccióndireccióndireccióndirección SouthSouth WestWest
numnumnumnum (^33) 44 55 Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 6 6
55
El problema a resolverEl problema a resolver Estando el coche en la posición AEstando el coche en la posición A
NNNN
EstandoEstando el coche en la posición A, el coche en la posición A, conseguir llegar al Cineconseguir llegar al Cine TívoliTívoli (B)(B) (^) BB
¿Qué pasos hay que seguir?¿Qué pasos hay que seguir? ArrancarArrancar
s^ Ballesteross Ballesteros
Ir un bloque al NorteIr un bloque al Norte Ir dos bloques al EsteIr dos bloques al Este
z/Raquel Hervász/Raquel Hervás
Ir cinco bloques al NorteIr cinco bloques al Norte Ir dos bloques al EsteIr dos bloques al Este PararParar
AA
Bloque:Bloque:Bloque:Bloque:
ernández Yáñezernández Yáñez
(^) PararParar Bloque:Bloque:Bloque:Bloque:
Luis HLuis H
El algoritmoEl algoritmo SS ii dd hh
NNNN
SSecuencia de pasos que hay queecuencia de pasos que hay que seguir para resolver el problemaseguir para resolver el problema
1.1.-- ArrancarArrancar 2.2.-- Ir un bloque al NorteIr un bloque al Norte
s^ Ballesteross Ballesteros
(^) 3.3.-- Ir dos bloques al EsteIr dos bloques al Este
4.4.-- Ir cinco bloques al NorteIr cinco bloques al Norte 55 dd blbl ll
z/Raquel Hervász/Raquel Hervás
5 5.-.- Ir dos bloques al EsteIr dos bloques al Este 6.6.-- PararParar
ernández Yáñezernández Yáñez
Esos pasos sirven tanto paraEsos pasos sirven tanto para una persona como para una computadora.una persona como para una computadora.
Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 8 8
El programaEl programa II tt ii itit
NNNN
IInstrucciones escritas ennstrucciones escritas en el lenguaje de programaciónel lenguaje de programación (^) BB
s^ Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
AA
11 - - ArrancarArrancar
ernández Yáñezernández Yáñez
2.2.-- Ir un bloque al NorteIr un bloque al Norte 3.3.-- Ir dos bloques al EsteIr dos bloques al Este 4.4.-- Ir cinco bloques al NorteIr cinco bloques al Norte 55 dd blbl ll Luis HLuis H
5 5.-.- Ir dos bloques al EsteIr dos bloques al Este 6.6.-- PararParar
DepuraciónDepuración EditEditEditEditamos el código para corregir los errores sintácticos: amos el código para corregir los errores sintácticos:ll ódiódi ii ll i tá tii tá ti
s^ Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
ernández Yáñezernández Yáñez Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 12 12
La ejecuciónLa ejecución SS lili ll idid
NNNN
SSe realiza lo que pidee realiza lo que pide cada instrucción:cada instrucción: (^) B
s^ Ballesteross Ballesteros
!!!!
ernández Yáñezernández Yáñez
Luis HLuis H
DepuraciónDepuración EditEditEditEditamos el código para arreglar el error de ejecución: amos el código para arreglar el error de ejecución:ll ódiódi ll ll dd jj ióió
s^ Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
ernández Yáñezernández Yáñez Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 14 14
La ejecuciónLa ejecución SS lili ll idid
NNNN
cada instrucción:cada instrucción: (^) B
s^ Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
ernández Yáñezernández Yáñez
Luis HLuis H
s^ Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
ernández Yáñezernández Yáñez Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 18 18
Hola Mundo!Hola Mundo! DDDDe vuelta en el programa que muestra un saludo en la pantalla: e vuelta en el programa que muestra un saludo en la pantalla:ltlt ll tt l dl d ll t llt ll
#include
intint main()main() // main() es donde empieza la ejecución// main() es donde empieza la ejecución
s^ Ballesteross Ballesteros
intint^ main()main()^ //// main() es donde empieza la ejecución^ main() es donde empieza la ejecución {{ cout <<cout << "Hola Mundo!""Hola Mundo!" << endl;<< endl;
z/Raquel Hervász/Raquel Hervás
(^) coutcout << << Hola Mundo!Hola Mundo! << endl;<< endl;
returnreturn 00;;
ernández Yáñezernández Yáñez
}}
Luis HLuis H
Hola Mundo!Hola Mundo! LLLLa única instrucción que produce algo tangible: a única instrucción que produce algo tangible:ú iú i ii tt ióió dd ll tt iblibl
#include
int main() // main() es donde empieza la ejecuciónint main() // main() es donde empieza la ejecución
s^ Ballesteross Ballesteros
intint main() // main() es donde empieza la ejecución^ main() // main() es donde empieza la ejecución {{ cout <<cout << "Hola Mundo!""Hola Mundo!" << endl;<< endl;
z/Raquel Hervász/Raquel Hervás
(^) coutcout << << Hola Mundo!Hola Mundo! << endl;<< endl;
return 0;return 0;
ernández Yáñezernández Yáñez
}}
Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 20 20
coutcout ((iostreamiostream))
ViVi lili ióió ll t llt ll dd (( ii tt ))
ViVisualización en la pantalla: operadorsualización en la pantalla: operador <<<< (( iinsertornsertor ))
s^ Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
_
Hola Mundo!Hola Mundo!_^ _
ernández Yáñezernández Yáñez
Luis HLuis H
El insertorEl insertor <<<< II tt tt tt ll t llt ll dd dd tt tt
cout << ...;cout << ...;
IInserta textos en la pantalla de modo textonserta textos en la pantalla de modo texto A partir de la posición del cursorA partir de la posición del cursor LineLine wrapwrap (continúa en la siguiente línea si no cabe)(continúa en la siguiente línea si no cabe) Se pueden encadenar:Se pueden encadenar:
s^ Ballesteross Ballesteros
cout << ... << ... << ...;cout << ... << ... << ...;
z/Raquel Hervász/Raquel Hervás
Recuerda: las instrucciones terminan enRecuerda: las instrucciones terminan en ;;
ernández Yáñezernández Yáñez Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 24 24
Con el insertorCon el insertor <<<< podemos mostrar...podemos mostrar...
C dC dCCadenas de caracteres literalesadenas de caracteres literales dd tt litlit ll Textos encerrados entre comillas dobles:Textos encerrados entre comillas dobles: "...""..." cout <<cout << "Hola Mundo!"cout <<cout << "Hola Mundo!";Hola Mundo!Hola Mundo! ;;;
Números literalesNúmeros literales
s^ Ballesteross Ballesteros
^ NúmerosNúmeros literales^ literales Con o sin decimales, con signo o no:Con o sin decimales, con signo o no: 123123 ,, - -37 37 ,, 3.14163.1416, ..., ... cout <<cout << "Pi = ""Pi = " <<<< 3.14163.1416;;
z/Raquel Hervász/Raquel Hervás
(^) coutcout << << PiPi <<<< 3.14163.1416;;
Se muestran los caracteres que representan el númeroSe muestran los caracteres que representan el número
ernández Yáñezernández Yáñez
Luis HLuis H
El programa principalEl programa principal LLLLa función a funciónff ióió main()main()i ()i () :: ddddonde comienza la ejecución... onde comienza la ejecución...dd ii ll jj ióió
#include
intint main()main() // main() es donde empieza la ejecución// main() es donde empieza la ejecución
s^ Ballesteross Ballesteros
intint^ main()main()^ //// main() es donde empieza la ejecución^ main() es donde empieza la ejecución {{ cout << "Hola Mundo!" << endl;cout << "Hola Mundo!" << endl;
z/Raquel Hervász/Raquel Hervás
(^) coutcout << << Hola Mundo!Hola Mundo! << endl;<< endl;
returnreturn 00;; }}
ernández Yáñezernández Yáñez
Contiene las instrucciones que hay que ejecutarContiene las instrucciones que hay que ejecutar
Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 26 26
El programa principalEl programa principal LLLLa función a funciónff ióió main()main()i ()i ()::
Tipo de la función (Tipo de la función (Tipo de la función (Tipo de la función (intintintint = entero): Tipo de valor que devuelve= entero): Tipo de valor que devuelve= entero): Tipo de valor que devuelve= entero): Tipo de valor que devuelve
intint main()main()
pppp (((( )))) pppp qqqq Nombre de la funciónNombre de la funciónNombre de la funciónNombre de la función ¡Es una función!¡Es una función!¡Es una función!¡Es una función!
s^ Ballesteross Ballesteros
intint^ main()main() {{ ...... dddd llll ffff óóóó (bl(bl(bl(bl dddd ódódódód ))))
¡Es¡Es una función!¡Es una función!¡Es una función! una función!
z/Raquel Hervász/Raquel Hervás
returnreturn 00;; }}
Cuerpo de la función (bloque de código)Cuerpo de la función (bloque de código)Cuerpo de la función (bloque de código)Cuerpo de la función (bloque de código)
ernández Yáñezernández Yáñez
returnreturn 00;; Devuelve el resultado (Devuelve el resultado (Devuelve el resultado (Devuelve el resultado (^0000 ) de la función) de la función) de la función) de la función
Luis HLuis H
BibliotecasBibliotecas Se incluyen con laSe incluyen con laSeSe incluyen con la incluyen con la directivadirectivadirectivadirectiva #include#include#include#include:: #include
s^ Ballesteross Ballesteros
Espacios de nombresEspacios de nombres EnEn iostreamiostream hay espacios de nombres; ¿cuál queremos?hay espacios de nombres; ¿cuál queremos?
z/Raquel Hervász/Raquel Hervás
#include
ernández Yáñezernández Yáñez
Siempre usaremos el espacio de nombres estándar (Siempre usaremos el espacio de nombres estándar (stdstd)) Muchas bibliotecas no tienen espacios de nombresMuchas bibliotecas no tienen espacios de nombres
Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 30 30
Compilación y enlaceCompilación y enlace
s Ballesteross Ballesteros
z/Raquel Hervász/Raquel Hervás
Hola Mundo!
ernández Yáñezernández Yáñez
Luis HLuis H
Elementos del programaElementos del programa BibliotecaBiblioteca #include
DirectivaDirectiva InstrucciónInstrucción
BibliotecaBiblioteca Espacio de nombresEspacio de nombres gg pp ;;^ Coloreado sintáctico:Coloreado sintáctico:Coloreado sintáctico:Coloreado sintáctico:
TipoTipo Palabras reservadasPalabras reservadas
DirectivasDirectivas TiposTipos Palabras reservadas generalesPalabras reservadas generales Datos literalesDatos literales ComentariosComentarios
DirectivasDirectivas TiposTipos Palabras reservadas generalesPalabras reservadas generales Datos literalesDatos literales ComentariosComentarios
s^ Ballesteross Ballesteros
(^) intint main()main()
{{
DeclaraciónDeclaración Cabecera de la funciónCabecera de la función
igoigo
(^) Cadena de caracteresCadena de caracteres ConstanteConstante VariableVariable
z/Raquel Hervász/Raquel Hervás
cout <<cout << "Hola Mundo!""Hola Mundo!" << endl;<< endl;
returnreturn 00;;
InstrucciónInstrucción
InstrucciónInstrucción
Datos literalesDatos literales que de códque de cód
OperadorOperador OperadorOperador
ernández Yáñezernández Yáñez
(^) returnreturn 00;;
}}
LL ii ii ii
InstrucciónInstrucción Cuerpo de la funciónCuerpo de la función
BloqBloq NúmeroNúmero
Luis HLuis H PáginaPágina 32 32
Las instrucciones terminan enLas instrucciones terminan en ;;
Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I
Uso de espacio en blancoUso de espacio en blanco SSSSeparación de elementos por uno o más eparación de elementos por uno o másióió dd ll áá espacios en blancoespacios en blancoii blbl (espacios, tabuladores y saltos de línea)(espacios, tabuladores y saltos de línea) El compilador los ignoraEl compilador los ignoraEl compilador los ignoraEl compilador los ignora
#include
s^ Ballesteross Ballesteros
#include
int main(){cout<< Hola Mundo! <<endl; return 0;}
z/Raquel Hervász/Raquel Hervás
int main() { cout << "Hola Mundo!" << endl;
ernández Yáñezernández Yáñez
(^) cout << Hola Mundo! << endl;
return 0; }
Luis HLuis H
... recitado en la consola... recitado en la consola MMMMostrar los textos con ostrar los textos contt ll tt tt cout <<cout <<tt :: #include
intint main()main()
s^ Ballesteross Ballesteros
(^) {{
cout <<cout << "En un lugar de la Mancha,""En un lugar de la Mancha," << endl;<< endl; tt "d"d bb ii dd "" dldl
z/Raquel Hervász/Raquel Hervás
cout <<cout << "de cuyo nombre no quiero acordarme,""de cuyo nombre no quiero acordarme," << endl;<< endl; cout <<cout << "no ha mucho tiempo que vivía un hidalgo de los de"no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, ..."lanza en astillero, ..." << endl;<< endl;
ernández Yáñezernández Yáñez
returnreturn 00;; }}
Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 36 36
Introducción del código del programaIntroducción del código del programa TTTTerminamos cada línea de código con un salto de línea (↲erminamos cada línea de código con un salto de línea ( ii dd lílí dd ódiódi ltlt dd lílí ((↲↲↲):))): #include
s^ Ballesteross Ballesteros
(^) {{ ↲↲
cout <<cout << "En un lugar de la Mancha,""En un lugar de la Mancha," << endl;<< endl; ↲↲ tt "d"d bb ii dd "" dldl ↲↲
z/Raquel Hervász/Raquel Hervás
cout <<cout << "de cuyo nombre no quiero acordarme,""de cuyo nombre no quiero acordarme," << endl;<< endl; ↲↲ cout <<cout << "no ha mucho tiempo que vivía un hidalgo de los de"no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, ..."lanza en astillero, ..." << endl;<< endl; ↲↲
ernández Yáñezernández Yáñez
returnreturn 00;; ↲↲ }} ↲↲
Luis HLuis H
Introducción del código del programaIntroducción del código del programa NNNNo hay que partir una cadena literal entre dos líneas: o hay que partir una cadena literal entre dos líneas:hh titi dd litlit ll tt dd lílí
cout <<cout << "no ha mucho tiempo que vivía un hidalgo de"no ha mucho tiempo que vivía un hidalgo de ↲↲ los delos de lanza en astillero, ..."lanza en astillero, ..." << endl;<< endl; ↲↲
s^ Ballesteross Ballesteros
¡La cadena no termina (1ª línea)!¡La cadena no termina (1ª línea)!
¡No se entiende¡No se entiende loslos (2ª línea)!(2ª línea)!
z/Raquel Hervász/Raquel Hervás
(^) ¡No¡No se entiende se entiende loslos (2ª línea)!(2ª línea)!
ernández Yáñezernández Yáñez
Veamos cómo nos muestra los errores el compilador...Veamos cómo nos muestra los errores el compilador...
Luis HLuis H Fundamentos de la programación: Tipos e instrucciones IFundamentos de la programación: Tipos e instrucciones I PáginaPágina 38 38
Mantenimiento y reusabilidadMantenimiento y reusabilidad UUUUsa espacio en blanco para separar los elementos: sa espacio en blanco para separar los elementos:ii blbl ll ll tt cout <<cout << "En un lugar de la Mancha,""En un lugar de la Mancha," << endl;<< endl;
mejor quemejor que cout<<cout<<"En un lugar de la Mancha,""En un lugar de la Mancha,"<<endl;<<endl;
s^ Ballesteross Ballesteros
Usa sangría (indentación) para el código de un bloque:Usa sangría (indentación) para el código de un bloque: {{
z/Raquel Hervász/Raquel Hervás
cout <<cout << "En un lugar de la Mancha,""En un lugar de la Mancha," << endl;<< endl; ...... returnreturn 00;;
TabTab óó 3 3 espesp..
TabTab óó 3 3 espesp..
ernández Yáñezernández Yáñez
(^) returnreturn 00 ;;
}}
pppp
Luis HLuis H