Se trata de realizar una
introducción al C++,
a la vez que se trabajan las bases de la orientación a
objetos. Una
de éstas bases son los TADs, los cuáles sirvieron
de
inspiración en su día para la adición
de clases a C.
(Stroustrup, B. 1991)
(Kalev, D., 1999)
Iniciación
rápida a C++
Conocimientos necesarios
1. Codificar un programa en ANSI/ISO C++
que pida por
teclado el nombre del usuario, y su edad, y finalice mostrando por
pantalla
su nombre y su edad en el formato: "Hola, <nombre>,
tienes
<edad> años".
2. Dado el siguiente programa, rellenar los espacios marcados con ... . Una vez finalizado, debe compilarse y ejecutarse.
// ex1.cpp
#include
<iostream>
#include
<...>
class TeoremaPitagoras
{
...:
int
cateto1,cateto2;
int sqr(int);
public:
void putCateto1(int);
void putCateto2(int);
int getResultado();
};
int TeoremaPitagoras::sqr(int
x)
{
return
...*x;
}
void TeoremaPitagoras::putCateto1(int
x)
{
cateto1
= x;
}
void TeoremaPitagoras::putCateto2(int
x)
{
... =
x;
}
int TeoremaPitagoras::getResultado(void)
{
return
sqrt( sqr( ... ) ... );
}
using namespace std;
int main(void)
{
...
trix;
int
cat1;
int cat2;
cout
<< "Introduzca el cateto del triángulo: "
<<
endl;
cin
>> ... ;
trix.putCateto1( cat1 );
cout
<< "Introduzca el segundo cateto del
triángulo: " <<
endl;
cin
>> ...;
...
cout
<< "La hipotenusa es " << trix. ...
<< endl;
}
3. Dado el siguiente programa en C, codificar una versión en C++ con la misma funcionalidad:
/*
Pila.c
Implementa
el TDA Pila
*/
#define MAXELEM 100
#include
<stdio.h>
#include
<stdlib.h>
/* Declaraciones del TDA
Pila
-------------------------------------------------------------------------------
*/
typedef struct {
int
sp[MAXELEM];
int
elem;
}
Pila;
Pila
*crearPila(void);
Pila
*insertar(Pila *,
int);
int
sacar(Pila
*);
bool
esVacia(Pila*);
void
eliminarPila(Pila
*p);
/* Implementa el
TDA pila
-------------------------------------------------------------------------------
*/
Pila
*crearPila()
{
Pila
*dev;
dev =
(Pila
*) malloc( sizeof( Pila ) );
dev->elem
=
0;
return
dev;
}
void eliminarPila(Pila
*p)
{
free( p );
}
Pila *insertar(Pila *p,
int
x)
{
if
(p->elem<MAXELEM)
{
p->sp[
( p->elem )++ ] = x;
return
p;
}
else return
NULL;
}
int sacar(Pila
*p)
{
return
p->sp[ --( p->elem ) ];
}
bool esVacia(Pila
*p)
{
return ( p->elem == 0 );
}
/* Programa
Principal
-------------------------------------------------------------------------------
*/
int main(void)
{
int
elemento;
Pila *miPila
= crearPila();
Pila
*aux;
/* Meter elementos en la pila */
printf( "Introduzca
elementos para guardar en la pila\n"
"-1
termina.\n" );
do
{
scanf(
"%d\n", &elemento );
aux
= insertar( miPila, elemento);
}
while( aux != NULL
&&
elemento !=
-1 );
/*
Sacar
el -1
*/
sacar( miPila );
/* Mostrar la pila */
while
( !esVacia( miPila ) )
{
printf(
"Tope: %d\n", sacar( miPila ) );
}
eliminarPila( miPila );
}