SlideShare una empresa de Scribd logo
1 de 18
ELO320 1
C++
Biblioteca Estándar de Templates
Standar Template Library
Agustín J. González
ELO320
ELO320 2
Características de C++
• El propósito de este material es rápidamente
revisar todas características de C++ que
ustedes probablemente han encontrado
• Si ustedes han aprendido otro lenguaje,
podrán ubicarse rápidamente
• Referencia: Timothy Budd, “Data Structures
in C++, using the Standard Template
Library”, Addison Wesley 1998. Esta en
nuestra biblioteca.
ELO320 3
Comentarios y Constantes
• Hay dos tipos de comentarios
// desde doble slashes hasta el final de la línea
/*
Comentarios que se extienden
varias líneas
*/
• Los comentarios deberían usarse intensamente por documentación.
• Constantes:
• hay varios tipos de constantes
integers -1,12,-37
enteros octales 014
enteros hexadecimales 0xFF 0xC
punto flotante 3.14158, 2.7e14
caracteres ‘a’ ‘n’
string “abc”
• sufijos pueden ser aplicados a constantes
u por unsigned
l por long
ELO320 4
Variables, Tipos, Valores y Declaraciones
• Una variable es una localización con nombre que almacena un valor de
cierto tipo.
• Variables son creadas usando una sentencia de declaración, la cual
describe también el tipo asociado.
int a,b,c; // declara tres enteros
• La declaración puede ser combinada con inicialización:
double pi = 3.1415926;
• Tipos Fundamentales de Datos
• Enteros int
• punto flotante: double, float
• Caracter: char
• Modificadores que pueden ser usados con tipos fundamentales
signed,, unsigned
short, long (posiblemente) mas pequeño o mas grande que estándar.
ELO320 5
Mas tipos de Datos
• Variables Booleanos (bool)son verdaderas o falsas (true/false)
• Valores enumerados son definidos indicando el rango en forma
explícita
enum month{January, February, March, April, May, June, July,August,
September, October,November, December};
months workingMonth, vacationMonth;
months summerMonth = August;
• Variables y Asignaciones
double f, c; // Temperatura Fahrenheit y Celsius
c = 43;
f = (c * 9.0) / 5.0 + 32;
• Operadores binarios pueden ser combinados con asignaciones
i += 5; // equivale a i = i+5;
• Otra anotación compacta es:
i++
ELO320 6
Operadores
ELO320 7
Stream de I/O
• El operador de corrimiento izquierda y derecha tienen distinto
significado cuando son usados con valores de stream.
• El stream mas común es el asociado con la consola de entrada y salida.
cout << "the Fahrenheit equivalent of " << c <<
" is " << f << "n";
cin >> c; // get a new value of c
cout << "the Fahrenheit equivalent of " << c <<
" is " << f << "n";
• El Operador >> trabaja or efecto lateral, cambiando la expresión del
lado derecho. El resultado puede ser convertido a boolean para probar
si la estrada fue exitosa.
int sum = 0;
int value;
while (cin >> value) {
sum += value;
}
cout << "sum is " << sum << "n";
ELO320 8
Punteros
• Los punteros pueden ser usados de las siguientes formas:
• Punteros pueden ser usados con subíndices (tiene sentido si
apuntan a arreglos, pero esto no es chequeado)
• Pueden ser des-referenciados, usando el operador *
• Pueden combinar des-referencia con accesos a campos,
usando operador ->
• Pueden usar sumas, p+i es la dirección de p[i]
ELO320 9
Sentencias condicionales
month aMonth;
...
if ((aMonth >= June) && (aMonth <= August))
isSummer = true;
else // es opcional
isSummer = false;
ELO320 10
Sentencia Switch
switch (aMonth) {
case January:
highTemp = 20;
lowTemp = 0;
break;
case February:
highTemp = 30;
lowTemp = 10;
break;
...
case July:
highTemp = 120;
lowTemp = 50;
break;
default:
highTemp = 60;
lowTemp = 20;
};
ELO320 11
Bucles de repetición
WHILE
c = 0;
while (c <= 100) {
cout << "Celsius " << c << " is Fahrenheit " <<
((9.0 * c) / 5.0 + 32) << "n";
c += 10;
}
FOR
for (c = 0; c <= 100; c += 10) {
cout << "Celsius " << c << " is Fahrenheit " <<
((9.0 * c) / 5.0 + 32) << "n";
}
for (int i = 0; i < 12; i++) {
cout << "i: " << i << " i squared " << i*i << "n";
}
ELO320 12
Arreglos
• Es una colección de tamaño fijo de valores del mismo tipo.
// declare an array of twelve integer values
int Temperatures[12];
// now assign all values
Temperatures[0] = 0;
Temperatures[1] = 10;
Temperatures[2] = Temperatures[1] + 15;
...
• Pueden ser inicializados
string MonthNames[12] = {"January", "February",
"March", "April", "may", "June",
"July", "August", "September", "October",
"November", "December" };
• Arreglos Multidimencionales
double matrix[10][20];
matrix [i][j] = matrix [i-1][j+1] + 1;
ELO320 13
Arreglos y Punteros
• Hay una relación muy cercana entre arreglos y punteros
• El nombre del arreglo es tratado como un puntero.
• Punteros pueden usar subíndices, como si fueran arreglos(aun si no lo son)
• MonthNames+3 es legal, es la dirección de MonthNames[3].
• Arreglos como Argumentos
• Cuando son usados como argumentos no necesitamos especificar el tamaño.
int arraySum (int values[ ], int n)
// compute sum of array values[0] .. values[n-1]
{
int result = 0;
for (int i = 0; i < n; i++) {
result += values[i]
}
return result;
}
ELO320 14
Estructuras
• Es una colección de campos que no requieren tener el mismo tipo.
struct person {
string name;
int age;
enum {male, female} sex;
};
• El acceso es via el operador .
person employee;
employee.name = "sam smith";
employee.age++;
if (employee.sex == male)
...
ELO320 15
Funciones
• Una función encapsula un conjunto de acciones.
int Fahrenheit(int cTemp)
{
return (cTemp * 9.0) / 5.0 + 32;
}
• Partes:
Encabezado con tipo retornado, nombre y argumentos.
Cuerpo con sentencias a ejecutar.
• Valor retornado puede ser void (ningún valor)
• Una función prototipo es una declaración pero sin definición.
// prototype for Fahrenheit -- definition occurs later
int Fahrenheit (int);
ELO320 16
Variables Locales
• Variables al interior de la función existen solo cuando la función es
ejecutada, desaparecen cuando la función retorna. La excepción a esta
regla son las variables estáticas.
• Si suponemos que la función A llama a B y esta llama a C, podemos
imaginar en el stack del proceso usuario:
Variables locales de C
Variables locales de B
Variables locales de A
• Si B fuera recursiva y llamara a si misma una vez antes de llamar a C,
tenemos:
Variables locales de C
Variables locales de B
Variables locales de B
Variables locales de A
ELO320 17
El evento Main
• Todo programa debe incluir un procedimiento main, el cual es el punto
de partida de la ejecución.
# include <iostream>
void main() {
// program to write table of squares
cout << "Table of Squaresn";
for (int i = 0; i < 12; i++) {
cout << "i: " << i << " i squared " << i*i << "n";
}
}
ELO320 18
Archivos includes
• Muchas estructuras de datos requieren que uno defina un archivo de
inclusión antes que podamos usarlas.
Propósito Nombre
stream input/output iostream
funciones matemáticas math.h
números complejos complex
valores booleanos bool.h
algoritmos genéricos algorithm
Abstracción vector vector
Abstracción lista list
Abstracción conjunto set
Abstracción mapa map

Más contenido relacionado

Similar a BasicC++.ppt

Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos cJuan Torres
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacionrotflol
 
Unidad2
Unidad2Unidad2
Unidad2JHONNY
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicaschembe
 
Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2David
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2camnav
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++yesid19
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Joaquin1418
 
Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2charnisch
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicaschembe
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 

Similar a BasicC++.ppt (20)

Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Operadores C SHARP
Operadores C SHARPOperadores C SHARP
Operadores C SHARP
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
Introducción al lenguaje c
Introducción al lenguaje cIntroducción al lenguaje c
Introducción al lenguaje c
 
Librerias de dev c++
Librerias de dev c++Librerias de dev c++
Librerias de dev c++
 
Fund Java
Fund JavaFund Java
Fund Java
 
Java básico
Java  básicoJava  básico
Java básico
 
Investigacion 1
Investigacion 1Investigacion 1
Investigacion 1
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Unidad2
Unidad2Unidad2
Unidad2
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicas
 
Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
 
Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicas
 
Curso c i
Curso c iCurso c i
Curso c i
 
Revista digital
Revista digitalRevista digital
Revista digital
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 

Más de jlmansilla

maximumFlow.ppt
maximumFlow.pptmaximumFlow.ppt
maximumFlow.pptjlmansilla
 
LinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.pptLinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.pptjlmansilla
 
elementaryAlgorithms.ppt
elementaryAlgorithms.pptelementaryAlgorithms.ppt
elementaryAlgorithms.pptjlmansilla
 
binarySearchTree.ppt
binarySearchTree.pptbinarySearchTree.ppt
binarySearchTree.pptjlmansilla
 
NP_Completitud.ppt
NP_Completitud.pptNP_Completitud.ppt
NP_Completitud.pptjlmansilla
 
PERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptx
PERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptxPERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptx
PERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptxjlmansilla
 

Más de jlmansilla (11)

NTFSFS.ppt
NTFSFS.pptNTFSFS.ppt
NTFSFS.ppt
 
maximumFlow.ppt
maximumFlow.pptmaximumFlow.ppt
maximumFlow.ppt
 
NTFS.ppt
NTFS.pptNTFS.ppt
NTFS.ppt
 
LinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.pptLinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.ppt
 
heapsort.ppt
heapsort.pptheapsort.ppt
heapsort.ppt
 
hashing.ppt
hashing.ppthashing.ppt
hashing.ppt
 
elementaryAlgorithms.ppt
elementaryAlgorithms.pptelementaryAlgorithms.ppt
elementaryAlgorithms.ppt
 
binarySearchTree.ppt
binarySearchTree.pptbinarySearchTree.ppt
binarySearchTree.ppt
 
greedy.ppt
greedy.pptgreedy.ppt
greedy.ppt
 
NP_Completitud.ppt
NP_Completitud.pptNP_Completitud.ppt
NP_Completitud.ppt
 
PERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptx
PERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptxPERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptx
PERDIDA_EN_UNA_RED_DE_FIBRA_OPTICA.pptx
 

BasicC++.ppt

  • 1. ELO320 1 C++ Biblioteca Estándar de Templates Standar Template Library Agustín J. González ELO320
  • 2. ELO320 2 Características de C++ • El propósito de este material es rápidamente revisar todas características de C++ que ustedes probablemente han encontrado • Si ustedes han aprendido otro lenguaje, podrán ubicarse rápidamente • Referencia: Timothy Budd, “Data Structures in C++, using the Standard Template Library”, Addison Wesley 1998. Esta en nuestra biblioteca.
  • 3. ELO320 3 Comentarios y Constantes • Hay dos tipos de comentarios // desde doble slashes hasta el final de la línea /* Comentarios que se extienden varias líneas */ • Los comentarios deberían usarse intensamente por documentación. • Constantes: • hay varios tipos de constantes integers -1,12,-37 enteros octales 014 enteros hexadecimales 0xFF 0xC punto flotante 3.14158, 2.7e14 caracteres ‘a’ ‘n’ string “abc” • sufijos pueden ser aplicados a constantes u por unsigned l por long
  • 4. ELO320 4 Variables, Tipos, Valores y Declaraciones • Una variable es una localización con nombre que almacena un valor de cierto tipo. • Variables son creadas usando una sentencia de declaración, la cual describe también el tipo asociado. int a,b,c; // declara tres enteros • La declaración puede ser combinada con inicialización: double pi = 3.1415926; • Tipos Fundamentales de Datos • Enteros int • punto flotante: double, float • Caracter: char • Modificadores que pueden ser usados con tipos fundamentales signed,, unsigned short, long (posiblemente) mas pequeño o mas grande que estándar.
  • 5. ELO320 5 Mas tipos de Datos • Variables Booleanos (bool)son verdaderas o falsas (true/false) • Valores enumerados son definidos indicando el rango en forma explícita enum month{January, February, March, April, May, June, July,August, September, October,November, December}; months workingMonth, vacationMonth; months summerMonth = August; • Variables y Asignaciones double f, c; // Temperatura Fahrenheit y Celsius c = 43; f = (c * 9.0) / 5.0 + 32; • Operadores binarios pueden ser combinados con asignaciones i += 5; // equivale a i = i+5; • Otra anotación compacta es: i++
  • 7. ELO320 7 Stream de I/O • El operador de corrimiento izquierda y derecha tienen distinto significado cuando son usados con valores de stream. • El stream mas común es el asociado con la consola de entrada y salida. cout << "the Fahrenheit equivalent of " << c << " is " << f << "n"; cin >> c; // get a new value of c cout << "the Fahrenheit equivalent of " << c << " is " << f << "n"; • El Operador >> trabaja or efecto lateral, cambiando la expresión del lado derecho. El resultado puede ser convertido a boolean para probar si la estrada fue exitosa. int sum = 0; int value; while (cin >> value) { sum += value; } cout << "sum is " << sum << "n";
  • 8. ELO320 8 Punteros • Los punteros pueden ser usados de las siguientes formas: • Punteros pueden ser usados con subíndices (tiene sentido si apuntan a arreglos, pero esto no es chequeado) • Pueden ser des-referenciados, usando el operador * • Pueden combinar des-referencia con accesos a campos, usando operador -> • Pueden usar sumas, p+i es la dirección de p[i]
  • 9. ELO320 9 Sentencias condicionales month aMonth; ... if ((aMonth >= June) && (aMonth <= August)) isSummer = true; else // es opcional isSummer = false;
  • 10. ELO320 10 Sentencia Switch switch (aMonth) { case January: highTemp = 20; lowTemp = 0; break; case February: highTemp = 30; lowTemp = 10; break; ... case July: highTemp = 120; lowTemp = 50; break; default: highTemp = 60; lowTemp = 20; };
  • 11. ELO320 11 Bucles de repetición WHILE c = 0; while (c <= 100) { cout << "Celsius " << c << " is Fahrenheit " << ((9.0 * c) / 5.0 + 32) << "n"; c += 10; } FOR for (c = 0; c <= 100; c += 10) { cout << "Celsius " << c << " is Fahrenheit " << ((9.0 * c) / 5.0 + 32) << "n"; } for (int i = 0; i < 12; i++) { cout << "i: " << i << " i squared " << i*i << "n"; }
  • 12. ELO320 12 Arreglos • Es una colección de tamaño fijo de valores del mismo tipo. // declare an array of twelve integer values int Temperatures[12]; // now assign all values Temperatures[0] = 0; Temperatures[1] = 10; Temperatures[2] = Temperatures[1] + 15; ... • Pueden ser inicializados string MonthNames[12] = {"January", "February", "March", "April", "may", "June", "July", "August", "September", "October", "November", "December" }; • Arreglos Multidimencionales double matrix[10][20]; matrix [i][j] = matrix [i-1][j+1] + 1;
  • 13. ELO320 13 Arreglos y Punteros • Hay una relación muy cercana entre arreglos y punteros • El nombre del arreglo es tratado como un puntero. • Punteros pueden usar subíndices, como si fueran arreglos(aun si no lo son) • MonthNames+3 es legal, es la dirección de MonthNames[3]. • Arreglos como Argumentos • Cuando son usados como argumentos no necesitamos especificar el tamaño. int arraySum (int values[ ], int n) // compute sum of array values[0] .. values[n-1] { int result = 0; for (int i = 0; i < n; i++) { result += values[i] } return result; }
  • 14. ELO320 14 Estructuras • Es una colección de campos que no requieren tener el mismo tipo. struct person { string name; int age; enum {male, female} sex; }; • El acceso es via el operador . person employee; employee.name = "sam smith"; employee.age++; if (employee.sex == male) ...
  • 15. ELO320 15 Funciones • Una función encapsula un conjunto de acciones. int Fahrenheit(int cTemp) { return (cTemp * 9.0) / 5.0 + 32; } • Partes: Encabezado con tipo retornado, nombre y argumentos. Cuerpo con sentencias a ejecutar. • Valor retornado puede ser void (ningún valor) • Una función prototipo es una declaración pero sin definición. // prototype for Fahrenheit -- definition occurs later int Fahrenheit (int);
  • 16. ELO320 16 Variables Locales • Variables al interior de la función existen solo cuando la función es ejecutada, desaparecen cuando la función retorna. La excepción a esta regla son las variables estáticas. • Si suponemos que la función A llama a B y esta llama a C, podemos imaginar en el stack del proceso usuario: Variables locales de C Variables locales de B Variables locales de A • Si B fuera recursiva y llamara a si misma una vez antes de llamar a C, tenemos: Variables locales de C Variables locales de B Variables locales de B Variables locales de A
  • 17. ELO320 17 El evento Main • Todo programa debe incluir un procedimiento main, el cual es el punto de partida de la ejecución. # include <iostream> void main() { // program to write table of squares cout << "Table of Squaresn"; for (int i = 0; i < 12; i++) { cout << "i: " << i << " i squared " << i*i << "n"; } }
  • 18. ELO320 18 Archivos includes • Muchas estructuras de datos requieren que uno defina un archivo de inclusión antes que podamos usarlas. Propósito Nombre stream input/output iostream funciones matemáticas math.h números complejos complex valores booleanos bool.h algoritmos genéricos algorithm Abstracción vector vector Abstracción lista list Abstracción conjunto set Abstracción mapa map