PDF de programación - Fundamentos de programación - Tipos e instrucciones I

Imágen de pdf Fundamentos de programación - Tipos e instrucciones I

Fundamentos de programación - Tipos e instrucciones Igráfica de visualizaciones

Publicado el 5 de Enero del 2019
910 visualizaciones desde el 5 de Enero del 2019
2,7 MB
15 paginas
Creado hace 10a (11/11/2013)
Fundamentos de la programación

2
Grado en Ingeniería Electrónica y Comunicaciones
Pilar Sancho Thomas
Luis Hernández Yáñez
Facultad de Informática
Universidad Complutense


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H



l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

Fundamentos de la programación: Tipos e instrucciones I

Página 82

tipo nombre(parámetros) // Cabecera
{
// Cuerpo
}

Los programas pueden incluir otras funciones además de main()
Forma general de una función en C++:
 Tipo de dato que devuelve la función como resultado
 Parámetros para proporcionar datos a la función
Declaraciones de variables separadas por comas
 Cuerpo: secuencia de declaraciones e instrucciones
¡Un bloque de código!

Fundamentos de programación: Tipos e instrucciones I

Página 83


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

Datos locales: declarados en el cuerpo de la función
Datos auxiliares que utiliza la función (puede no haber)
Parámetros: declarados en la cabecera de la función
Datos de entrada de la función (puede no haber)
Ambos son de uso exclusivo de la función y no se conocen fuera

double f(int x, int y) {
// Declaración de datos locales:
double resultado;

// Instrucciones:
resultado = 2 * pow(x, 5) + sqrt(pow(x, 3)
/ pow(y, 2)) / abs(x * y) - cos(y);

return resultado; // Devolución del resultado

yxf
,(

x
y
×

2

x



3

2

)

=

5

+

cos(

y

)

x

y


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

}

Fundamentos de programación: Tipos e instrucciones I

Página 84

Llamada a una función con parámetros
Nombre(Argumentos)
Al llamar a la función:
— Tantos argumentos entre los paréntesis como parámetros
— Seguir el orden de declaración de los parámetros
— Cada argumento: mismo tipo que su parámetro
— Cada argumento: expresión válida (se pasa el resultado)
Se copian los valores resultantes de las expresiones
en los correspondientes parámetros
Llamadas a la función: en expresiones de otras funciones

int valor = f(2, 3);

Fundamentos de programación: Tipos e instrucciones I

Página 85


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

Se copian los argumentos en los parámetros

int funcion(int x, double a) {
...
}

int main() {
int i = 124;
double d = 3;
funcion(i, 33 * d);
...

return 0; // main() devuelve 0 al S.O.

i
d

x
a

Los argumentos no se modifican

Memoria

124
3.0

...

...

124
99.0

...


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

}

Fundamentos de programación: Tipos e instrucciones I

Página 86

Dadas las siguientes declaraciones:
Los argumentos y las variables se
pueden llamar igual o no

 Nº de argumentos ≠ Nº de parámetros
  

¡Argumento double para parámetro int!
 Nº de argumentos ≠ Nº de parámetros
¡Argumento double para parámetro int!

int i;
double d;
int func(int x, double a);
¿Qué pasos de argumentos son correctos? ¿Por qué no?
func(3, i, d);
func(i, d);
func(3 * i + 12, d);
func(d, i);
func(3.5, d);
func(i);

Fundamentos de programación: Tipos e instrucciones I

Página 87


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

La función ha de devolver un resultado
La función termina su ejecución devolviendo un resultado
La instrucción return (sólo una en cada función)
— Devuelve el dato que se pone a continuación (tipo de la función)
— Termina la ejecución de la función
El dato devuelto sustituye a la llamada de la función:

int main() {
cout << 2 * cuad(16);

return 0;
}

256

int cuad(int x) {
return x * x;
x = x * x;
}


Esta instrucción
no se ejecutará nunca

Fundamentos de programación: Tipos e instrucciones I

Página 88


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

¿Son correctas las llamadas a funciones del programa?

¿Qué funciones hay en el programa?
Colocaremos las funciones después de main()
— ¿Existe la función?
— ¿Concuerdan los argumentos con los parámetros?
 Prototipos tras las inclusiones de bibliotecas
Prototipo de función: Cabecera de la función terminada en ;
int cuad(int x);
main() es la única función
que no hay que prototipar

double f(int x, int y);
int funcion(int x, double a)

...

Fundamentos de programación: Tipos e instrucciones I

Página 89


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

#include <iostream>
using namespace std;
#include <cmath>

// Prototipos de las funciones (excepto main())
bool par(int num);
bool letra(char car);
int suma(int num);
double formula(double x, double y);

int main() {
int numero;
char caracter;
double x = 3.5, y = 2.2;
cout << "Entero: ";
cin >> numero;
//Se muestra si el número es par o impar
if (par(numero)) {
cout << "Par";
}
...

Fundamentos de programación: Tipos e instrucciones I

Página 90


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

else {
cout << "Impar";
}
cout << endl;
//Si el número es mayor que 1 se hace el sumatorio de 1 a numero
if (numero > 1) {
cout << "Sumatorio de 1 a " << numero << ": "
<< suma(numero) << endl;
}
cout << "Carácter: ";
cin >> caracter;
//Se muestra si el carácter introducido es una letra
if (!letra(caracter)) {
cout << "no ";
}
cout << "es una letra" << endl;
cout << "f(x, y) = " << formula(x, y) << endl;
// Los argumentos pueden llamarse igual o no que los parámetros

return 0;
} ...

Fundamentos de programación: Tipos e instrucciones I

Página 91


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

// Implementación de las funciones propias

bool par(int num) {
bool esPar;

if (num % 2 == 0) {
esPar = true;
}
else {
esPar = false;
}

return esPar;
}
...

Fundamentos de programación: Tipos e instrucciones I

Página 92


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

esLetra = false;

if (carMayus <= 'Z')

bool letra(char car) {
bool esLetra;
char carMayus = toupper(car);
if (carMayus >= 'A') {

esLetra = true;
else

}
else {
esLetra = false;
}
return esLetra;
}

...

Fundamentos de programación: Tipos e instrucciones I

Página 93


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

funciones.cpp

int suma(int num) {
int sum = 0, i = 1;
while (i < num) {
sum = sum + i;
i++;
}
return sum;
}

double formula(double x, double y) {
double f;

f = 2 * pow(x, 5) + sqrt(pow(x, 3) / pow(y, 2))
/ abs(x * y) - cos(y);

return f;
}


Fundamentos de programación: Tipos e instrucciones I

Página 94


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L

Licencia CC (Creative Commons)
Este tipo de licencias ofrecen algunos derechos a terceras personas
bajo ciertas condiciones.
Este documento tiene establecidas las siguientes:
Reconocimiento (Attribution):
En cualquier explotación de la obra autorizada por la licencia
hará falta reconocer la autoría.
No comercial (Non commercial):
La explotación de la obra queda limitada a usos no comerciales.
Compartir igual (Share alike):
La explotación autorizada incluye la creación de obras derivadas
siempre que mantengan la misma licencia al ser divulgadas.

Material original elaborado por Luis Hernández Yáñez, con

modificaciones de Raquel Hervás Ballesteros.

Fundamentos de la programación: Tipos e instrucciones I

Página 95


s
o
r
e
t
s
e

l
l

a
B

s
á
v
r
e
H


l

e
u
q
a
R

/

z
e
ñ
á
Y

z
e
d
n
á
n
r
e
H

s
i
u
L
  • Links de descarga
http://lwp-l.com/pdf14765

Comentarios de: Fundamentos de programación - Tipos e instrucciones I (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad