Sunteți pe pagina 1din 9

26/01/2020

Lenguaje de Programación I
Temario
1. Bases de programación en C++
Sesión Nº 01: 2. Conceptos de programación
Fundamentos de 3. Algoritmos y fundamentos de
Programación en C++ programación
4. Estructuras estaticas en C++

Ing. Huarote Zegarra Raul.


rhuarote@unfv.edu.pe
Universidad Nacional Federico Villarreal

Objetivos
Programar aplicaciones y algoritmos
Bases de la programación en sencillos en C++ conociendo:
C++  Elentorno de programación
 Los tipos primitivos
 Operadores básicos
 Estrucuturas de Programacion en Java
 Manejo de documentación

Objetivos de la tecnología C++


Aspectos generales
C++ es...  Portátil  Proveer un lenguaje estructurado
 Lenguaje bajo nivel  Seguro  Que facilite la programación y evite errores
 Simple  Orientado a Objetos
 Orientado objetos  Provee un ambiente para
 Distribuido  Incrementar la velocidad de desarrollo de
 Compilado aplicaciones
 Robusto  Portabilidad del código

1
26/01/2020

¿ Que puedo programar con C++ ? Lenguaje C++

 Aplicaciones independientes
(Como cualquier otro lenguaje de propósito general)

 Gráficos
Interactúa con librerías como opengl

 Aplicaciones para dispositivos,


 Usa con prototipos de hardware
 Iteractua con el hardware del computador (memoria,
mouse, etc.) .

Gramática de C++ Tipos de datos


Estructura básica:

// comentarios para una sola línea

/* comentarios de una o más líneas


*/
/** comentario de documentación, de una o más líneas
*/

9 10

Declaración de punteros Ejemplo Ilustrativo


tipo *nombre_variable; 1. int *p, *q, a=5 2. p=&a 3. *p=8;
p ?
a p a
p 8
int i=3, *p,*r; // p y r son punteros a entero q
: 5 q :
q
?
double d=3.3,*q; // q es un puntero a double ?
?

char* c='a', *t; // t es un puntero a carácter a


5
:

 p=&i; 4. q=p; 5. *q=85;


 r=p; a a
p p
 p = q; es un ERROR porque son punteros de q
: 8
q : 85

diferente tipo.

11 12

2
26/01/2020

Ejemplo Ilustrativo Ejemplo 1:

6. a=33; . 7. int b=1; void main()


p a a { int x, y, *p, *q;
p
33 33 p = &x;
q : q
:
b *p = 5;
1
: q = &y;
*q = 23;
cout << *p << " “ << *q << endl;
. 8. q=&b; q = p;
NOTA
*p = 35;
p a a,b,p,q : variables locales automáticas
:
9 cout << *p << " “ << *q << endl;
q
b q = NULL;
1
: cout << x << " “ << y << endl;
}
13 14

Ejemplo 2:
Ejemplo 3:

void main()
void main() { int x, y, *p, *q;
{ p = &x;
int *p, *q, x, y; *p = 12;
q = &y;
p = &x;
*q = 23;
*p = 14;
cout << *p <<" "<<*q<<endl;
q = p;
*p = *q;
cout << *p << " " << *q << endl;
cout << *p <<" "<<*q<<endl;
q = NULL;
q = NULL;
cout << x << " “ << y << endl;
cout<<*p<<endl;
}
cout<<x<<" "<<y<<endl;
}
15 16

Ejemplo 4: Variables locales y globales


void main()  Una variable que se declara fuera de
{ int x, y, *p, *q; las funciones es una variable global y
p = &x;
*p = 14; puede ser utilizada dentro de todas las
q = p; funciones del programa.
if ( p == q) cout<<"Mensaje 1";
q = &y;
if ( p == q) cout<<"Mensaje 2";  Una variable que se declara dentro de
*q = 14;
if (p == q) cout<<"Mensaje 3";
una función es una variable local y
if (*p == *q) cout<<"Mensaje 4"; solamente puede ser utilizada dentro de
} dicha función. Al terminar la ejecución de
la función desaparece.
17 18

3
26/01/2020

Ambito de las variables Identificadores


 Son nombres asignados a clases, variables, métodos.
 Variables locales void primerMetodo()  El primer caracter válido debe ser :
 Existen solo en el {  Una letra mayúscula (A-Z)
metodo() en que se int i =4, j=5;  Una letra minúscula (a-z)
definieron } //fin método
 El caracter subíndice (_)

 Variables globales  El segundo caracter valido debe ser:


class AmbitoVariables
 Todos los métodos de  Cualquier caracter de la lista pasada
{
la clase las conocen y  Caracteres numéricos (0-9)
private int i =1;
se definen al inicio de
} //fin clase  El lenguaje C++ es sensitivo en caracteres
la clase
mayúsculas/minúsculas

19 20

Por convención: Operadores


 Las clases deben comenzar con una letra Mayúscula
Los operadores de
 Las variables y métodos deben ir con letra miníscula
incremento ++ y --
pueden ser explicados
 Las constantes en MAYÚSCULA
por medio del siguiente
ejemplo. Si tienes la
Ejemplos: siguiente secuencia de
instrucciones
a = a + 1; b = a;
int contador_principal;
Se puede puedes usar
char _lista_de_ficheros;
b = a++;
float $cantidad_en_Ptas;
b = ++a;

21

Instrucciones de control de flujo


Sobrecarga de operadores
 EJEMPLO
 for(int i=0; i<5; i++){ + - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &=
cout << “Hello
|= << >> >>= <<= == != <= >= && || ++ --
world”<<i; ->* -> , [ ] ( ) new new[ ] delete delete[ ]
 }
No se sobrecargan:
::
.
.*

4
26/01/2020

Definición
Tipo de retorno Nombre ( Parámetros
)
{ declaraciones locales
FUNCIONES Instrucciones
}
 Las funciones no se pueden anidar.

 Todas las funciones son externas, se pueden


llamar desde cualquier punto del programa.

25 26

Prototipo de funciones Tipos de retorno


#include <iostream.h>
void f1();  Si la función no devuelve un valor int, se debe
void f2(void); especificar el tipo de dato devuelto:
void main()
{ f1(); char, double, float
f2();
}
void f1()
{cout << "Función sin argumentos \n"; }
 También puede retornar un UN PUNTERO.
void f2(void)
{cout << "Función también sin argumentos \n"; }
 Puede no retornar valores (void).

 Puede retornar una referencia: (ALIAS)

<tipo>& Nombre(parámetros)

27 28

Formas de Parametrización
Declaración (prototipo)
Parámetros por Valor
Tipo_de_retorno Nombre ( Parámetros Al llamar a la función se copia valor del parámetro actual en
el parámetro formal.
);
El parámetro formal se inicializa con el valor de parámetro
actual.
 Se pueden omitir los nombres de los parámetros
La función trabaja con una copia, por lo tanto:
y dejar solamente los tipos.
No modifica el valor de la
variable o parámetro actual.
 No es necesario declarar las funciones si las
definimos antes de usarlas. LLAMADA DEFINICIÓN
Ejemplo(a); void Ejemplo(int x)
Ejemplo(a+1);
Ejemplo(4);
29 30

5
26/01/2020

Formas de Parametrización Ejemplo: Por referencia

Parámetros por Referencia void Ejemplo(int a, int &b);

l Se pasa la dirección del parámetro actual al parámetro void main( )


formal {int x = 2, y = 4;
Ejemplo(x, y);
l El parámetro actual es ALIAS del parámetro formal
cout<<x<< “ “<<y<<endl;
l La función puede cambiar su valor. }

void Ejemplo (int a, int &b)


{ a = 5;
LLAMADA DEFINICIÓN b = 8;
Ejemplo(a); void Ejemplo(int&x)
}

31 32

Ejemplo: Ejemplos
#include <iostream.h>

int cuadPorVal(int);
 Escriba una función que calcule el cuadrado y el cubo
void cuadPorInd(int *);
de un número entero. void cuadPorRef(int &);
 Éstos resultados se DEBEN retornar como parámetros.

void main()
{ int x = 2, y = 3, z = 4;
cout << "Por valor : x = " << cuadPorVal(x) << '\n';
cuadPorInd(&y);
cout << "Por indirección : y = " << y << '\n';
cuadPorRef(z);
cout << "Por referencia : z = " << z << '\n';
}
33 34

Ejemplos Estructuras y Clases.


Tipo abstracto de datos definido por el usuario
int cuadPorVal(int a) Interface e implementación
{return a = a*a; }

void cuadPorInd(int *b) class X { struct X {


{*b = (*b) * (*b); } private:
private:
int i;
void cuadPorRef(int &c) int i;
public:
{c = c*c; } public:
f();
f();
protected:
protected:
g();
g();
}; };

35

6
26/01/2020

Tipos de Datos: Estructuras Tipos de Datos: Estructuras


struct
{int hh;
 Constructor de tipos de dato que int mm;
int ss;
permite agrupar elementos de diversos } Hora;
tipos de datos como UNA variable. Hora h, v[10], *p;
h.hh=8;
struct RUT nom prom
p=&h;
{int RUT; a:
v[3].hh= 5;
char nom[10]; v[7]=(*p).hh;
float prom; cout <<p->hh << h.hh<<v[7].hh
} Persona; cout<< a.prom;

Persona a;

37 38

Palabras clave
Las siguientes son las palabras clave que están definidas en Java
y que no se pueden utilizar como indentificadores:

Bases de
programación
Palabras Reservadas
Además, el lenguaje se reserva unas cuantas palabras más, pero
que hasta ahora no tienen un cometido específico. Son:

Operadores Operadores
Los operadores realizan algunas funciones en uno o dos operandos.
3 + 4 La notación de sufijo significa que el operador aparece después de
su operando:
operando operador
a++;
Operador
Todos los operadores binarios de Java tienen la misma notación,
Los operadores que requieren un operador se llaman operadores unarios. Por
ejemplo, ++ es un operador unario que incrementa el valor su operando en es decir aparecen entre los dos operandos:
uno. op1 operador op2
a+b
Los operadores que requieren dos operandos se llaman operadores
binarios. El operador = es un operador binario que asigna un valor del
Existen tres tipos de operadores:
operando derecho al operando izquierdo.

Los operadores unarios en Java pueden utilizar la notación de prefijo o •Operadores Aritméticos
de sufijo. La notación de prefijo significa que el operador aparece antes •Operadores relacionales
de su operando. •Operadores de Desplazamiento
41 42

7
26/01/2020

Operadores Aritméticos
Operador Uso Descripción Operadores
Además, existen dos operadores de atajos aritméticos, ++
+ op1 + op2 Suma op1 y op2
que incrementa en uno su operando, y -- que decrementa en
- op1 - op2 Resta op2 de op1 uno el valor de su operando.

* op1 * op2 Multiplica op1 y op2 Operador Uso Descripción

Incrementa op en 1; evalúa el valor antes de


/ op1 / op2 Divide op1 por op2 ++ op ++
incrementar
Incrementa op en 1; evalúa el valor después de
Obtiene el resto de dividir op1 por ++ ++ op
incrementar
% op1 % op2
op2
Decrementa op en 1; evalúa el valor antes de
-- op --
decrementar
Decrementa op en 1; evalúa el valor después de
Nota: El lenguaje Java extiende la definición del operador + -- -- op decrementar
para incluir la concatenación de cadenas.

Los operadores + y - tienen versiones unarias que seleccionan


el signo del operando.
43 44

Operadores Relacionales y Condicionales Operadores condicionales


Los valores relacionales comparan dos valores y determinan la
relación entre ellos. Por ejemplo, != devuelve true si los dos Operador Uso Devuelve true si
operandos son distintos.
&& op1 && op2 op1 y op2 son verdaderos
Operador Uso Devuelve true si
|| op1 || op2 uno de los dos es verdadero
> op1 > op2 op1 es mayor que op2

>= op1 >= op2 op1 es mayor o igual que op2 ! ! op op es falso

< op1 < op2 op1 es menor que op2

<= op1 <= op2 op1 es menor o igual que op2 Operadores de Desplazamiento
Los operadores de desplazamiento permiten realizar una manipualción
== op1 == op2 op1 y op2 son iguales de los bits de los datos.
!= op1 != op2 op1 y op2 son distintos

45 46

Ingresar 2 edades y
Operadores Ejercicio: determinar quién es mayor
Operador Uso Equivale a
+= op1 += op2 op1 = op1 + op2
-= op1 -= op2 op1 = op1 - op2 #include <iostream.h>
void main()
*= op1 *= op2 op1 = op1 * op2
{ cout << "Ingrese su edad: ";
/= op1 /= op2 op1 = op1 / op2 int miEdad;
%= op1 %= op2 op1 = op1 % op2 cin >> miEdad;
cout << "Ingrese la edad de un amigo: ";
&= op1 &= op2 op1 = op1 & op2
int suEdad;
|= op1 |= op2 op1 = op1 | op2 cin >> suEdad;
^= op1 ^= op2 op1 = op1 ^ op2 if (miEdad < suEdad)
cout << "Yo soy menor que mi amigo \n ";
else
if (miEdad > suEdad)
cout << "Mi amigo es menor que yo \n ";
else
cout << "Mi amigo y yo tenemos la misma edad \n ";
}
47 48

8
26/01/2020

Ejemplo en laboratorio:
Un vendedor recibe mensualmente un sueldo base mas
un extra, que es el 10% de cada venta que realice, el
vendedor desea saber cuanto dinero extra obtendrá
por las 3 ventas que realizó en el mes, además del total
que recibirá en el mes tomando en cuenta su sueldo
base y las comisiones.

S-ar putea să vă placă și