Académique Documents
Professionnel Documents
Culture Documents
- El Proceso de Programacin:
-Comenzamos el estudio de la asignatura de Fundamentos de Programacin, en la
que utilizaremos el lenguaje de programacin C+ +, dando paso a este tema donde,
dejando a un lado la introduccin de conceptos bsicos como los de software, hardware,
compilador, etc. (que veremos en asignaturas pertenecientes a este grado), aprenderemos
los tipos de datos y sintaxis que sigue este lenguaje empezando por definir y explicar el
proceso a seguir para la correcta programacin de un programa. As, dicho proceso
consta de las siguientes partes:
1 lnea: esta contiene siempre la directiva include, que indica que se va a utiliza
una funcin o cdigo implementado (normalmente main) en una biblioteca
(fichero o conjunto de estos (mdulo)), la cual la utilizada por nuestro
programa (Codeblocks) es iostream. De este modo, la 1 lnea de nuestro
programa debe quedar del siguiente modo:
#include <iostream>
2 lnea: esta contiene siempre la expresin: using namespace std; con la cual
permitimos escribir de forma abreviada algunos nombres de la biblioteca iostream.
En caso contrario, instrucciones como cout (muestra un texto o valor de una variable
en pantalla) o endl (indica el final de la instruccin cout) tendran que escribirse
como std::cout y std::endl.
3 lnea: esta contiene el nombre del programa principal, que es la funcin main,
la cual introducida por el cdigo int: int main ( ).
Cuerpo del programa: a continuacin, se escriben las instrucciones que conformarn
nuestro programa (todas siempre entre {} para indicar que pertenecen al mismo
programa: main) cada una acabada en ; (para sealar que dicha instruccin ha acabado).
ltima lnea: en la ltima lnea del cuerpo del programa (antes de cerrarlo con }),
se escribe la instruccin: return 0; la cual indica que se termina la ejecucin del
programa maindevolviendo el valor 0. Cuando el programa no devuelve ningn
valor (caso en el que utilizamos la instruccin void) no se pone el 0: return;
-Dicho esto, estudiaremos finalmente varios ejemplos donde progresivamente iremos
comprendiendo y aprendiendo mejor la estructura y programacin en C++. Vemoslos:
(*) Disea un programa que muestre en pantalla Hola a todos:
// Programa: Saludo
// Entradas: --
*Como vemos, el programa tan solo nos
// Salidas: texto Hola a todos muestra en pantalla tras ejecutarlo el texto
Hola a todos sin requerir ninguna entrada
#include <iostream> (es por ello que no hay entradas (--)). De igual
using namespace std; forma, vemos como para mostrar un texto en
pantalla en C++ utilizamos la instruccin
int main ( ) cout << texto << endl; la cual mantiene
{ siempre dicha estructura (si queremos mostrar
cout <<Hola a todos<< endl; el valor de una variable o una operacin y no
return 0; un texto, omitimos las comillas ()).
}
(*) Disea un programa que lea datos tipo carcter y real y que los muestre clasificados:
// Programa: LeeDatos
// Entradas: datos de tipo carcter y real
// Salidas: clasificacin de los datos de entrada
#include <iostream>
using namespace std;
int main ( )
{
char c;
float f;
cout <<Introduzca un carcter: << endl;
cin >> c;
cout <<Introduzca un numero real: << endl;
cin >> f;
cout <<Carcter: << c << Numero real: << f << endl;
return 0;
}
#include <iostream>
using namespace std;
int main ( )
{
float f;
cout <<Introduzca un nmero: << endl;
cin >> f;
cout <<Su cuadrado es: << f*f << endl;
return 0;
}
*El uso de float o double para el trabajo con nmeros reales es indiferente,
a no ser que nos pidan simple precisin (float) o doble precisin (double).
Por otra parte, vemos como la operacin para obtener el cuadrado del
nmero introducido y guardado en la variable f (podra haber sido cualquier
letra o palabra), se realiza en la misma instruccin cout, aunque se podra
realizar y guardar previamente en otra variable para despus mostrar dicha
variable (n = f*f cout<< n <<).
(*) Disea un programa que lea de la entrada estndar dos nmeros y muestre
en la salida estndar su suma, resta multiplicacin y divisin:
// Programa: OperaNumeros
// Entradas: dos nmeros reales
// Salidas: la suma, resta, producto y divisin de los nmeros introducidos
#include <iostream>
using namespace std;
int main ( )
{
float x, y;
cout <<Introduzca el primer nmero: << endl;
cin >> x;
cout <<Introduzca el segundo nmero: << endl;
cin >> y;
cout <<Su suma es: << x+y << Su resta es: << x-y<< Su producto es: << x*y
<< Su divisin es: << x/y << endl;
return 0;
}
*Como vemos, en este caso como las dos entradas son nmeros reales, las
introducimos separadas con coma con la instruccin float. Seguidamente tan
solo solicitamos el valor de cada nmero y lo leemos con cin para as
guardarlo y poder ms adelante operar con ellos. Finalmente mostramos
en pantalla con cout las operaciones que nos piden.
#include <iostream>
using namespace std;
int main ( )
{
int e;
char s;
float h;
cout <<Introduzca su edad: << endl;
cin >> e;
cout <<Introduzca su sexo (M si es hombre o F si es mujer): << endl;
cin >> s;
cout <<Introduzca su altura (en metros): << endl;
cin >> h;
cout <<Edad: << e << Sexo: << s << Altura (en m): << h << endl;
return 0;
}
#include <iostream>
using namespace std;
int main ( )
{
float x, y;
cout <<Introduzca el primer nmero: << endl;
cin >> x;
x += x;
cout <<Introduzca el segundo nmero: << endl;
cin >> y;
++y;
cout <<El incremento del primer nmero es: << x << El incremento
del segundo nmero es: << y << endl;
return 0;
}
*En este caso debemos explicar algunos nuevos conceptos. Cuando queremos
incrementar el valor de una variable debemos tener clara la siguiente tabla:
Expresin Descripcin
[variable]++; Incremento posfijo: da el valor de la
variable antes del incremento en 1
unidad (Ej: si x = 8 x++ nos dar
como resultado 8).
++[variable]; Incremento prefijo: da el valor de la
variable despus del incremento en 1
unidad (Ej: si x = 8 ++x nos dar
como resultado 9 (8+1)).
[variable]+=[n o variable]; Incrementa el valor de la variable en
el nmero tras el += o si es una
variable su valor (Ej: si x = 8
x += 5 dar a x el valor 13 (8+5) y
x += x dar a x el valor 16 (8 + 8(x))
[variable] =[n o variable]; Disminuye ()
[variable]*=[n o variable]; Multiplica ()
[variable]/ =[n o variable]; Divide ()
[variable]% =[n o variable]; Halla el resto de la divisin ()
Asimismo, para que el programa nos compile sin errores dichos incrementos,
debemos escribirlos preferiblemente en la posicin dada en el ejercicio u otra pero no
dentro del cout. En este solo escribimos las variables con su valor ya incrementado.
(*) Disea un programa que lea de la entrada dos nmeros y en la salida muestre
el resultado de las siguientes operaciones matemticas:
a) (x/x+1) +x2
b) 3
c) (x+1)/x2
// Programa: CalculaOperaciones
// Entradas: dos nmeros reales
// Salidas: el resultado matemtico de las expresiones matemticas dadas
#include <iostream>
#include <cmath>
using namespace std;
int main ( )
{
double x, a, b, c;
cout <<Introduzca el valor de x: << endl;
cin >> x;
a = x/(x+1) + pow(x,2);
b = sqrt (pow (x,3));
c = (x+1)/pow (x,2);
cout << El resultado de a) es: << a << endl;
cout << El resultado de a) es: << b << endl;
cout << El resultado de a) es: << c << endl;
return 0;
}
Expresiones Descripcin
halla la raz cuadrada de una
sqrt (expresin);
variable o expresin matemticas
calcula potencias a partir de su
pow (base, exponente);
base y exponente
#include <iostream>
using namespace std;
int main ( )
{
double prac, teor, part, nota;
cout <<Introduzca su nota de prcticas: << endl;
cin >> prac;
cout <<Introduzca su nota de teora: << endl;
cin >> teor;
cout <<Introduzca su nota de participacin: << endl;
cin >> part;
nota = (prac*0.3)+(teor*0.6)+(part*0.1)
cout << Su nota final es: << nota << endl;
return 0;
}
*Al igual que en el ejercicio anterior, incluimos dentro del double todas las
variables de tipo real que vamos a utilizar y finalmente, tras calcular el valor
de la variable pedida (nota) la incluimos en el cout.
(*) Cuando se compra una cajetilla de tabaco en una mquina y no se introduce el importe
exacto, la mquina utiliza un programa para devolver el mnimo nmero de monedas.
Disea un programa (considerando solo monedas de 5, 10, 20, 50 cent) que lea de la
entrada estndar el importe de una cajetilla de tabaco y la cantidad de dinero
introducida por el comprador en la mquina y escriba en la salida estndar las
monedas devueltas por la mquina:
// Programa: DevuelveMonedas
// Entradas: precio de la cajetilla de tabaco y cantidad introducida por el comprador
// Salidas: monedas devueltas por la mquina
#include <iostream>
using namespace std;
int main ( )
{
int precio, pago, cant_devol, resto, mon_50, mon_20, mon_10, mon_5;
cout << Introduzca el precio de la cajetilla de tabaco (en cent): << endl;
cin >> precio;
cout << Introduzca la cantidad del pago (en cent): << endl;
cin >> pago;
cant_devol = pago precio;
mon_50 = cant_devol/50;
resto = cant_devol (50*mon_50);
mon_20 = resto/20;
resto = resto (20*mon_20);
mon_10 = resto/10;
resto = resto (10*mon_10);
mon_5 = resto/5;
cout << Monedas de 50 cent: << mon_50 << endl;
cout << Monedas de 20 cent: << mon_20 << endl;
cout << Monedas de 10 cent: << mon_10 << endl;
cout << Monedas de 5 cent: << mon_5 << endl;
return 0;
}