Sunteți pe pagina 1din 15

UNMSM FACULTAD DE ING.

DE SISTEMAS E INFORMATICA
ALGORITMICA I
_________________________________________________________________________

Introduccin al Lenguaje C++

Contenido
________________________________________________________________________
1.1 Elementos del Lenguaje
1.2 Estructura General de un Programa en C++
1.3 Constantes, Variables y Tipos de Datos
1.4 Acciones Bsicas y Expresiones
1.5 Entrada y Salida en C++
Ejercicios
________________________________________________________________________
En este captulo vamos a introducir el lenguaje de programacin C++ que se va a utilizar en la
asignatura, describiendo algunos conceptos bsicos y plasmando la estructura general de un
programa escrito en este lenguaje. A lo largo de los sucesivos temas se seguir la notacin BNF
para ir describiendo las diferentes reglas sintcticas del lenguaje. De esta forma se ir
introduciendo de una manera formal la sintaxis de C++.

1.1 ELEMENTOS DEL LENGUAJE


Comenzaremos viendo los elementos ms simples que integran un programa escrito en C++, es
decir palabras, smbolos y las reglas para su formacin.
a) Identificadores: Son nombres elegidos por el programador para representar entidades
(variables, tipos, constantes, etc.) en el programa. El usuario puede elegir cualquier
identificador excepto un pequeo grupo que se reserva para usos especficos.

La gramtica que define la sintaxis de los identificadores es la siguiente:


<ident> ::= <carcter_ident> {<carcter_ident>|<dgito>}
<carcter_ident> ::= a | b || z | A | B | | Z | _
<dgito> ::= 0 | 1 | 2 | | 9

No se impone en principio ningn lmite en cuanto a la longitud de los identificadores.

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
Dichos limites dependern del compilador que se est empleando. Ms an, en esta asignatura
no emplearemos identificadores tan largos como para darnos problemas en este sentido.
b) Palabras reservadas: Tienen un significado predeterminado para el compilador y slo
pueden ser usadas con dicho sentido. En C++ se escriben siempre con minsculas.

c) Identificadores estndares: Tienen un significado predefinido dentro del lenguaje,


pero a diferencia de las palabras reservadas, el programador puede redefinirlos dentro de su
programa (aunque esto normalmente no es aconsejable). Dos ejemplos de dichos
identificadores estndares sern presentados en este tema: los flujos de entrada y salida cin y
cout.

d) Literales constantes: Se distingue entre nmeros reales, nmeros enteros y cadenas de


caracteres.
<literal > ::= <num_entero> | <num_real> | <car> | <cadena_car>
<num_entero> ::= [+|-] <dgito> {<dgito>}
<num_real> ::= <num_entero>.{<dgito>} [<factor_esc>]
<factor_esc> ::= (e|E) <num_entero>
<car> ::= <carcter>
<cadena_car> ::= {<carcter>}

Cuando se usa e en un literal constante real se dice que el nmero est expresado en punto
flotante (notacin cientfica). En cuanto a las cadenas de caracteres (o strings), en C++ se
expresan mediante una secuencia de caracteres cualesquiera1 encerrados entre comillas
simples.
1

El smbolo \ tiene un significado especial en C/C++ como introductor de caracteres especiales (e.g., \n para
un salto de lnea, \t para una tabulacin, \ para las comillas dobles, etc.), lo que deber tenerse en cuenta a la
hora de su introduccin como literal. Si se desea usar literalmente, utilcese \\.

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
e) Delimitadores: Son smbolos que indican el comienzo o fin de una entidad.
! % ^ & ( ) - + =
{ } ~ [ ] \ ; ' :
< > ? , . /
f) Comentarios: Un comentario es una secuencia de caracteres que es ignorada por el
compilador. Se usan para documentar el programa, de manera que aunque no contribuyan a
resolver el problema, s ayudan a mejorar la comprensin del programa. Se pueden insertar en
el programa de dos maneras: escribiendo un texto entre los smbolos /* y */ (este texto se
puede extender a lo largo de varias lneas), o usando el smbolo // (se interpretar como
comentario todo lo que siga hasta llegar al final de la lnea).
Debe tenerse cuidado para no encerrar trozos de cdigo til dentro de un comentario, ya que
un comentario puede extenderse a lo largo de mltiples lneas. Encerrar trozos de cdigo como
comentarios es til cuando se est desarrollando un programa para comprobar si ciertas partes
funcionan o no, pero es un error muy comn encerrar por descuido otras zonas de cdigo que
son necesarias o bien olvidarse de sacar rdenes de dentro de un comentario.

g) Separadores: Son espacios en blanco, tabuladores, retornos de carro, fin de fichero y


fin de lnea. Habr ocasiones en que se pongan para dar legibilidad al programa, y otras por
necesidad. Los comentarios son considerados tambin separadores por el compilador.

1.2 ESTRUCTURA DE UN PROGRAMA EN C++


Comenzaremos viendo la estructura global de un programa escrito en C++ para a continuacin
ir desglosando y analizando cada uno de sus componentes. El programa que se muestra es el
famoso Hola Mundo, un programa que nicamente muestra el mensaje Hola Mundo en
pantalla antes de finalizar.
/*
* Nombre: HolaMundo.cpp
* Autor:
* Fecha:
* Descripcin: Este es el programa Hola Mundo.
*

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
*/
#include <iostream.h> // Para usar cout
#include <stdio.h>
#include <stdlib.h>
int main ()
{
cout << Hola Mundo << endl;
system(PAUSE);
}

Como puede apreciarse, el programa comienza con un comentario a lo largo de siete lneas,
y en el cual se da informacin sobre el nombre, autor, fecha y propsito del programa. Esto no
es sintcticamente necesario como es bien sabido, pero siempre lo incluiremos como norma de
estilo. A continuacin nos encontramos con dos operaciones de inclusin. Sin entrar en detalles
sobre lo que internamente significan dichas inclusiones, lo que hacemos mediante las mismas
es indicarle al compilador que pretendemos hacer uso de las funcionalidades que nos
proporcionan unas ciertas bibliotecas (en este caso predefinidas; en temas posteriores
aprenderemos a definirlas por nuestra cuenta). En este caso concreto queremos emplear la
biblioteca de entrada/salida iostream para lo cual tenemos que incluirla.
El algoritmo comienza en la lnea int main(). Aqu aparecen varios elementos cuyo
significado veremos en temas posteriores. Lo que s debemos saber es que todo programa que
realicemos tendr un algoritmo principal (el que empezar a realizarse cuando ejecutemos el
programa), y que el comienzo de dicho algoritmo principal se indica mediante una lnea de
estructura como la mostrada.
A continuacin encontramos el cuerpo del algoritmo principal, que abarca desde la llave de
apertura ({) hasta la llave de cierre (}). Siempre aparecern estas llaves delimitando el
cuerpo de un algoritmo. En este caso, el algoritmo consta de una sola orden, mostrar en
pantalla el mensaje Hola Mundo y saltar a la lnea siguiente. Como puede verse, esto se
expresa haciendo uso del objeto predefinido (en iostream precisamente) cout. Todo lo que
redirijamos (mediante el empleo del operador <<) hacia dicho objeto ser mostrado en
pantalla. En el ejemplo se redirige en primer lugar la cadena Hola Mundo, y a continuacin
la indicacin de salto de linea (endl abreviatura de end of line). La instruccin termina
mediante un punto y coma (;), que la separa de instrucciones posteriores (es preciso poner
dicho delimitador incluso si como es el caso aqu, no hay una instruccin posterior).

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I

1.3 CONSTANTES, VARIABLES Y TIPOS DE DATOS


En un programa intervienen objetos sobre los que actan las instrucciones que lo componen.
Algunos de estos objetos tomarn valores a lo largo del programa. Dependiendo de si pueden
cambiar de valor o no, podemos distinguir dos tipos de objetos:
Constante: Objeto referenciado mediante un identificador- al que se le asignar un
valor que no se podr modificar a lo largo del programa.
Variable: Objeto referenciado por un identificador que puede tomar distintos valores
a lo largo del programa.
Ser misin del programador asignar el identificador que desee a cada constante y
variable. El identificador o nombre de cada objeto sirve para identificar sin ningn tipo de
ambigedad a cada objeto, diferencindolo de los dems objetos que intervienen en el
programa. En C++ hay que indicar (de la manera que ms adelante se indicar) el nombre de
las constantes y variables que vamos a usar, para que el compilador pueda asociar
internamente a dichos nombres las posiciones de memoria correspondientes. Para esto ltimo
es preciso tambin que junto con dichos nombres, se indique explcitamente para cada
constante o variable el tipo de los datos que pueden contener.
En C++ existen una serie de tipos bsicos predefinidos, as como herramientas para la
construccin de tipos ms complejos. Los principales tipos de datos predefinidos en C++ son
los siguientes:
Enteros: el tipo bsico es int. Las variables definidas de este tipo podrn tomar
tpicamente valores entre -2147483648 y 2147483647. En determinadas circunstancias
podremos querer modificar este rango, para lo que disponemos de dos tipos de
modificadores short/long y signed/unsigned.
o short int: el rango de representacin es menor (32768 a 32767 tpicamente),
y por lo tanto tambin lo es la memoria ocupada (la mitad).
o long int: mayor rango de representacin4 (e.g., -9223372036854775808 a
9223372036854775807), y ms memoria necesaria (el doble).
o unsigned int: ocupa la misma memoria que un int, pero slo toma valores
positivos (e.g., 0 a 4294967295).
o signed int: es equivalente a un int.
Los modificadores mencionados se pueden combinar, e.g., long unsigned int (ocupa la
5

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
misma memoria que un long int, pero slo almacena nmeros positivos, con lo que el
rango de representacin es mayor). Adicionalmente, puede suprimirse la indicacin int
en todos los casos anteriores, asumindose sta por defecto (e.g., unsigned es lo mismo
que unsigned int).
Observacin: El rango de representacin en cada caso depende tanto del compilador como del sistema subyacente.
Particularizando para la versin de Dev-C++ sobre sistemas Windows que estamos empleando (v4.9.8.1), se da
la circunstancia de que internamente un long

int

es equivalente a un int. Por ese motivo el rango de

representacin es exactamente el mismo.

Carcter: se emplea el tipo char.


Lgico: se utiliza el tipo bool. Los objetos de este tipo slo pueden tomar dos valores:
true

(cierto) y false (falso).

Reales: los nmeros reales (en realidad nmeros en punto flotante, ya que los nmeros
reales en sentido estricto no son representables en ningn computador digital) se
representan mediante los tipos float y double. El segundo tipo permite representar
nmeros con mayor magnitud y precisin, empleando para ello el doble de memoria que
float.

Si se precisa mayor rango de representacin o de precisin puede emplearse el

modificador long sobre double, i.e., long double. No se pueden emplear los
modificadores signed/unsigned sobre double.
Todos estos tipos tienen dos propiedades en comn: cada uno est formado por elementos
indivisibles o atmicos que adems estn ordenados. Los tipos de datos con estas
caractersticas se denominan tipos de datos escalares. Cuando decimos que un valor es
atmico, nos referimos a que no contiene partes componentes a las que pueda accederse
independientemente. Por ejemplo, un carcter es indivisible, mientras que la cadena de
caracteres Hola no. Cuando hablamos de que un conjunto de valores est ordenado,
queremos decir que los operadores relacionales estndares (mayor que, menor que, igual, etc.)
pueden aplicarse a los mismos.
Para declarar una variable basta con indicar el tipo de la misma y su nombre. La
declaracin termina con el punto y coma. Los siguientes ejemplos muestran declaraciones
vlidas:
int num;
unsigned x,y;

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
long double masaPlanetaria;
char car = c, letra;
short int corto;

Como puede apreciarse en el ltimo ejemplo, es posible dar un valor inicial a una variable
a la vez que se declara. As, la sintaxis BNF de una declaracin de variable es:
<decvar> ::= <tipo> <ident> [= <literal>] {, <ident> [= <literal>]};

La declaracin de constantes es muy similar a la de variables, con dos diferencias


fundamentales: hay que usar la palabra reservada const para indicar que se est definiendo
una constante, y la asignacin de un valor inicial no es opcional, sino obligatoria:
<decconst> ::= const <tipo> <ident> = <literal>;

Ejemplos de declaraciones de constantes vlidas5 son los siguientes:


const int HORAS = 24;
const double NUMERO_AVOGADRO = 6.023e+23;
const short ALUMNOS = 100;
const char ACEPTAR = S;
Aunque no es una imposicin sintctica del lenguaje, como regla de estilo se emplean en este caso
maysculas para designar a las constantes.

Tanto las declaraciones de variables como de constantes pueden realizarse de dos maneras:
global y local. El primer modo consiste en situar dicha declaracin al principio del cdigo,
justo despus de las inclusiones. El segundo modo consiste es situarlas dentro del programa
principal, en la zona delimitada por las llaves. Ejemplos:

La diferencia entre ambas formas de declaracin ser evidente cuando en temas posteriores
se introduzca la nocin de funcin. De momento, la regla prctica que seguiremos ser definir
7

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
siempre variables y constantes de manera local.

1.4 ACCIONES BSICAS Y EXPRESIONES


Dentro del cuerpo del algoritmo principal se indicarn las acciones que conducirn a la
resolucin del problema para el que dicho algoritmo fue confeccionado. La accin ms bsica
que se puede realizar es la asignacin. Su sintaxis es:
<asignacin> ::= <ident> = <expresin>;
<expresin> ::= <literal> | <ident> | <op_unario> <expresin> |
<expresin> <op_binario> <expresin> | (<expresin>)

El caso ms simple es aqul en el que se asigna un valor literal a una variable, o el valor de
una variable a otra, por ejemplo,
int main()
{
int num1, num2;
num1 = 10;
num2 = num1;

En general, se emplear una expresin para asignar valores a las variables. Las posibles
expresiones que se pueden utilizar dependern en principio del tipo de los objetos
involucrados en las mismas. Sin embrago, debe tenerse en cuenta que C++ no es un lenguaje
con una comprobacin de tipos muy fuerte. Ello quiere decir que no se controla el tipo de los
objetos que forman parte de una operacin. Por ejemplo, es lgico suponer que para sumar dos
objetos, stos han de ser de un tipo numrico (enteros o reales, en cualquiera de sus variantes).
Sin embargo, esto no se comprueba, permitindose sin ir ms lejos que se sumen dos
caracteres. Lo que ocurre internamente es que se produce una operacin de conversin
(casting) mediante la cual los valores de tipo carcter se convierten en valores numricos.
Dicha conversin se puede producir entre cualesquiera dos tipos. De hecho podemos forzar a
que ocurra indicndolo explcitamente. Para ello es preciso indicar el tipo al que queremos
realizar la conversin, y el objeto que queremos convertir, este ltimo entre parntesis. Por

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
ejemplo, si letra es un objeto de tipo char y queremos convertir su valor a entero
indicaremos int(letra). Esto no modifica el tipo ni el valor de letra, sino que permite
obtener un valor de conversin que podremos mostrar en pantalla, emplear dentro de una
expresin ms compleja, etc.

C++ proporciona operadores para realizar las operaciones ms usuales, como pueden ser
las siguientes:
Operaciones aritmticas: se proporcionan los operadores binarios +, , *, / y % con el
significado de suma, resta, multiplicacin, divisin (entera o en punto flotante
dependiendo de los operandos) y resto o mdulo respectivamente. Asimismo, existe el
operador unario para la inversin de signo. Ejemplos:
int num1, num2, num3;

num1 = -10*num2;
num2 = num1%7;
num3 = num1/num2;

Operaciones relacionales: se proporcionan los operadores binarios ==, !=, >, <, >=, <=
con el significado respectivo de comparacin de igualdad, desigualdad, mayor que,
menor que, mayor o igual que y menor o igual que. El resultado de la operacin
relacional ser un valor lgico, Ejemplo,
int num1, num2;
bool b1, b2;

b1 = num2 == num1;
b2 = (num1-num2) >= (num2*2);

Operaciones lgicas: se proporcionan los operadores binarios && y || con el


significado de conjuncin y disyuncin lgica respectivamente. Tambin se dispone del
operador unario ! con el significado de negacin. Ejemplos:
int num1, num2;

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
bool b1, b2;

b1 = !(num2 == num1); // equivale a num2!=num1


b2 = (num1>num2) && (num2<0);

C++ proporciona una sintaxis especial en el caso bastante frecuente en el que el valor de
una variable use como operando en una expresin aritmtica logica cuyo resultado se asigna
a la propia variable. Dicha sintaxis permite simplificar asignaciones del tipo v = v <op> E,
permitiendo expresarlas como v <op>= E. Por ejemplo:
int x, y, z;

x *= x+y/z; // equivale a x = x * (x+y/z);


z += 1; // equivale a z = z + 1;

Precisamente en relacin con este ltimo ejemplo, C++ proporciona una forma sintctica
an ms simple mediante el uso de los denominados operadores de incremento (++) y
decremento (--). stos son operadores unarios que slo pueden aplicarse sobre variables (no
sobre expresiones) y que modifican el valor de la misma, incrementndola o decrementndola
segn corresponda. Por ejemplo:
int x, y, z;

z++; // equivale a z = z + 1 o a z += 1
--x; // equivale a x = x - 1 o a x -= 1

Tanto el ++ como el -- pueden ponerse antes o despus de la variable que deseamos


incrementar o decrementar. La diferencia entre ambas formas sintcticas estriba en su uso
dentro de expresiones ms complejas: si el operador se coloca antes de la variable, sta se
incrementa (o decrementa) y es dicho valor modificado el que se emplea en la expresin; si el
operador se sita despus, se usa el valor actual de la variable en la expresin y luego se
modifica. Por ejemplo:
int x, y, z;

x = --y * z++; // equivale a y = y - 1


// x = y * z;
// z = z + 1;

10

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I

En el caso de que tengamos una expresin compleja con varios operadores, C++
proporciona reglas de precedencia que permiten determinar cul es el orden en el que se
aplican los operadores. Dichas reglas son las siguientes:
1. Los operadores unarios se aplican antes que los binarios. Si hay ms de un operador
unario aplicado sobre la misma variable o subexpresin, el orden de aplicacin es de
derecha a izquierda.
2. Los operadores binarios se aplican segn el siguiente orden de precedencia:
Nivel 1 (mayor precedencia): *, /, &
Nivel 2: +, Nivel 3: <, <=, >, >=
Nivel 4: ==, !=
Nivel 5: &&
Nivel 6: ||
Nivel 7 (menor precedencia): =, *= , +=, /=, -=, %=, &=, |=
En caso de que aparezcan varios operadores con igualdad de precedencia, se evalan
de izquierda a derecha. Estas reglas pueden alterarse mediante el uso de parntesis.

1.5 ENTRADA/SALIDA EN C++


La entrada y salida (E/S en lo sucesivo) de informacin la gestionaremos en C++ mediante la
funcionalidad que nos proporciona la biblioteca iostream, ya mencionada anteriormente. La
palabra stream significa flujo o corriente en ingls, y nos da una indicacin de cmo
funcionan los aspectos de E/S: los dispositivos de salida (e.g., el monitor) se modelan como
sumideros a los que va llegando un flujo de informacin; del mismo modo, los dispositivos de
entrada (por ejemplo, el teclado) son fuentes de las que surge un flujo de informacin. Tanto en
un caso como en otro, lo nico que necesitamos son operadores para insertar informacin en el
flujo de salida, o extraer informacin del flujo de entrada. La biblioteca iostream nos
proporciona dichos operadores as como unos identificadores estndar para los flujos ms
comunes.
11

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
Cuando incluimos la biblioteca iostream disponemos automticamente del flujo cin
(asociado a la entrada a travs de teclado), y el flujo cout (asociado a la salida a travs de
pantalla). Sobre dichos flujos podemos aplicar respectivamente las operaciones de extraccin
(>>) y de insercin (<<). Empezando por este ltimo, imaginemos el siguiente cdigo:
#include <iostream>
using namespace std;
int main()
{
int x = 10, y = -1;
char c = A;
double d = 10.124567;
cout << x << y << endl
<< c << d << Se acab;
}

La ejecucin del mismo producira en pantalla la salida:

Como puede apreciarse, la gestin de la salida de datos es muy cmoda y homognea. Otro
tanto ocurre con la gestin de la entrada de datos. En este caso, simplemente tenemos que
extraer los datos que vayamos precisando del flujo cin:
#include <iostream>
using namespace std;
int main()
{
int x, y;
char c;
double d;
cin >> x >> y >> c >> d;
}

En el cdigo que se muestra, se leen de teclado los valores de x, y, c y d sucesivamente.


As pues, en general tendremos la siguiente sintaxis para la E/S en C++:
<entrada> ::= cin >> <ident> {>> <ident>};
<salida> ::= cout << (<expresin> | endl) {<< (<expresin> | endl)};

El siguiente programa muestra un ejemplo de uso combinado de operaciones de E/S. En este


caso se trata de leer dos nmeros y mostrar su suma en pantalla:
#include <iostream>

12

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
using namespace std;
int main()
{
int a, b; // los nmeros que queremos sumar
cout << Introduzca dos nmeros: << endl;
cin >> a >> b;
cout << Su suma es << a + b << endl;
}

Ntese un hecho importante: en la ltima lnea aparecen combinados los operadores de


insercin (<<) y de suma (+). El funcionamiento del programa es correcto, ya que el operador
de insercin tiene una precedencia menor que la suma. Por ello, primero se realiza esta ltima,
y es el resultado lo que se inserta en el flujo de salida. Si volvemos a la lista de niveles de
precedencia mostrada al final de la seccin anterior, los operadores de flujo se situaran en un
nivel intermedio entre el 2 (suma y resta) y el 3 (operaciones relacionales).
Para finalizar este tema, debe mencionarse el hecho de que es posible alterar el formato de
impresin de los datos en pantalla mediante el uso de la funcionalidad que proporciona la
biblioteca iomanip. Mediante la misma es posible indicar el nmero de decimales de
precisin con el que queremos escribir un nmero en punto flotante, el nmero de espacios que
vamos a emplear para escribir un dato, caracteres de relleno, etc. Esto se realiza mediante la
insercin en el flujo de salida de modificadores, que afectarn a los datos que se introduzcan a
continuacin. Alguno de estos modificadores son los siguientes:

setprecision().

Para indicar el nmero de dgitos significativos en un dato en

punto flotante. Afecta a todos los datos que se introduzcan con posterioridad.
setw(). Permite indicar el nmero de espacios que se emplearn para escribir
un dato, alineando al mismo a la derecha dentro de dicho espacio. Si el espacio
requerido es mayor que el indicado, el modificador se ignora. Slo afecta al dato
que se indica a continuacin.
setfill(): Para especificar el carcter de relleno que se emplear para los
espacios no usados al escribir un dato (segn un modificador setw()).
A continuacin se muestra un ejemplo:
#include <iostream>
#include <iomanip>
using namespace std;

13

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
int main()
{
const double a1 = 1.1;
const double a2 = 10.12;
const double a3 = 101.179;
cout << setprecision(2) << a3 << endl;
cout << setprecision(4) << a3 << endl;
cout << setprecision(5) << a3 << endl;
cout << a1 << setw(10) << setfill(.) << a1 << endl;
cout << a2 << setw(10) << setfill(.) << a2 << endl;
cout << a3 << setw(10) << setfill(.) << a3 << endl;
}

Este cdigo producira la siguiente salida en pantalla:

EJERCICIO
1 El siguiente programa escrito en C++ tiene errores. Encuntrelos.
/*
* Nombre: Ejemplo.cpp
* Autor:
* Fecha:
* Descripcin: Programa ejemplo sobre errores lxicos,
* sintcticos y semnticos
*
*/
#include <iostream>
int main ()
{
const int tasa = 25.00;
double horas, das, total, neto;
cout << Introduce las horas trabajadas: ' << endl;
cin >> horas
cout << Introduce los dias trabajados: << endl;
cin >> dias;
horas*dias = total;

14

UNMSM FACULTAD DE ING. DE SISTEMAS E INFORMATICA


ALGORITMICA I
neto = total-Tasa;
cout >> El valor total que pagar es: >> endl;
cin << total << endl;
cout << El valor neto que pagar es: << endl
cout << NETO << endl;
}

15

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