Mostrar Temas
Páginas: 1 [2 ] 3 4 5
11
Programación / Programación C/C++ / [Codigo] Binario a Decimal
en: 18 Mayo 2015, 18:18 pm
Les dejo un código que hice, pasa un binario a decimal
Saludos!
#include <iostream>
using std:: cin ;
using std:: endl ;
using std:: cout ;
#include <cmath>
using std:: pow ;
int main( )
{
long int binario;
long int decimal= 0 ;
long int auxBinario;
int resto;
bool respuesta= true ;
cout << "Binario: " ;
cin >> binario;
auxBinario= binario;
for ( int contador= 0 ; pow ( 10 .,contador) < binario; contador++ )
{
resto= auxBinario % 10 ;
auxBinario/ = 10 ;
switch ( resto)
{
case 0 :
decimal+ = ( resto * pow ( 2.0 ,contador) ) ;
break ;
case 1 :
decimal+ = ( resto * pow ( 2.0 ,contador) ) ;
break ;
default :
respuesta= false ;
break ;
}
}
if ( respuesta == true )
{
cout << "\n El binario " << binario << " es " << decimal << endl;
}
else
{
cout << "\n El numero ingresado no es un binario!\n " ;
}
cin .get ( ) ;
cin .get ( ) ;
return 0 ;
}
12
Programación / Programación C/C++ / [Solucionado] Problema en un for con variables
en: 18 Mayo 2015, 17:10 pm
Hola gente, tengo un problema en un for, dejo el codigo y el error que me tira
#include <iostream>
using std:: cin ;
using std:: cout ;
int main( )
{
// Variables
int palindromo;
bool respuesta= true ;
cout << "palindromo: " ;
cin >> palindromo;
for ( int divisorMayor= 10000 ,int divisorMenor= 10 ; divisorMenor <= 10000 ,divisorMayor >= 10 ; divisorMenor* = 10 , divisorMayor/ = 10 )
{
if ( ( palindromo / divisorMayor) ! = ( palindromo / divisorMenor) )
{
respuesta= false ;
break ;
}
palindromo% = divisorMayor;
palindromo/ = divisorMenor;
}
if ( respuesta == true )
{
cout << "\n El numero es un palindromo." ;
}
else
{
cout << "\n El numero no es un palindromo." ;
}
cin .get ( ) ;
return 0 ;
}
ERROR:
1>------ Operación Generar iniciada: proyecto: Deitel-Ejer4.26, configuración: Debug Win32 ------ 1> main.cpp 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2062: tipo 'int' inesperado 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2065: 'divisorMenor' : identificador no declarado 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2065: 'divisorMenor' : identificador no declarado 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2143: error de sintaxis : falta ';' delante de ')' 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2143: error de sintaxis : falta ';' delante de ')' 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(32): error C2143: error de sintaxis : falta ';' delante de '{' 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(33): error C2065: 'divisorMenor' : identificador no declarado 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(36): error C2043: instrucción break no válida 1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(40): error C2065: 'divisorMenor' : identificador no declarado ========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
13
Programación / Programación C/C++ / [Aporte] fixedInteger.h
en: 16 Mayo 2015, 23:15 pm
Hola gente, estuve codeando un .h, el cual previene que cuando esperamos un valor de tipo integer y nos ingresan un valor de tipo string no nos tire error, y nos cierre el programa, les dejo un video, y el .h abajo, con un main.cpp para ejemplo de su uso de datos.
VIDEO Main.cpp #include <iostream>
using std:: cout ;
using std:: endl ;
using std:: cin ;
#include <string>
using std:: string ;
using std:: getline ;
#include "fixedInteger.h"
int main( )
{
string numero;
cout << "numero: " ;
getline( cin ,numero) ;
cout << endl;
fixedInteger aplicacion( numero) ;
cin .get ( ) ;
return 0 ;
}
fixedInteger.h /*
<<<<<<<<<<<FIXED INTEGER>>>>>>>>>>>>>>>>
Creado por: Mario Olivera
MISION:
•Solucionar el error de cuando esperamos un integer y nos dan un string :)
USO:
•Use un objeto desde un .cpp ejemplo: "fixedInteger objeto(una variable string);"
• Para obtener el numero integer, solo ponga "objeto.obtenerInteger();" ejemplo: int numero= objeto.obtenerInteger();
Atencion: si usted esta esperando un numero integer positivo podria poner un if en su .cpp, ejemplo: si el numero es negativo
entonces ejecuto de nuevo las funciones de fixedInteger;
Nada Mas que decir, saludos! Mario Olivera.
*/
/////////////////////////////////////////////CODIGO ////////////////////////////////////////
#include <iostream>
using std:: cout ;
using std:: endl ;
using std:: cin ;
#include <string>
using std:: string ;
class fixedInteger
{
public :
fixedInteger( string numero)
{
convertidor( numero) ;
}
int obtenerInteger( )
{
return numeroInteger;
}
void convertidor( string numero)
{
int ladoDelCuadrado= 0 ;
int cantidadDeCaracteres;
int resultado= 1 ;
int i= 1 ;
string auxNumero= numero;
string caracter;
string primerCaracter;
string aux;
bool interruptor= false ;
bool negativo= false ;
cantidadDeCaracteres= ( auxNumero.length ( ) ) ;
auxNumero= "f" + auxNumero;
while ( interruptor == false )
{
interruptor= true ;
if ( cantidadDeCaracteres == 1 )
{
caracter= auxNumero[ 1 ] ;
if ( caracter == "0" )
{
ladoDelCuadrado= 0 ;
}
else
{
if ( caracter == "1" )
{
ladoDelCuadrado= 1 ;
}
else
{
if ( caracter == "2" )
{
ladoDelCuadrado= 2 ;
}
else
{
if ( caracter == "3" )
{
ladoDelCuadrado= 3 ;
}
else
{
if ( caracter == "4" )
{
ladoDelCuadrado= 4 ;
}
else
{
if ( caracter == "5" )
{
ladoDelCuadrado= 5 ;
}
else
{
if ( caracter == "6" )
{
ladoDelCuadrado= 6 ;
}
else
{
if ( caracter == "7" )
{
ladoDelCuadrado= 7 ;
}
else
{
if ( caracter == "8" )
{
ladoDelCuadrado= 8 ;
}
else
{
if ( caracter == "9" )
{
caracter= 9 ;
}
else
{
interruptor= false ;
}
}
}
}
}
}
}
}
}
}
}
else
{
primerCaracter= auxNumero[ 1 ] ;
aux= auxNumero[ 1 ] ;
while ( i < cantidadDeCaracteres)
{
if ( ( aux == "+" ) || ( aux == "-" ) )
{
}
else
{
resultado* = 10 ;
}
++ i;
}
i= 1 ;
caracter= auxNumero[ i] ;
if ( caracter == "+" )
{
i++ ;
}
if ( caracter == "-" )
{
i++ ;
negativo= true ;
}
while ( i < cantidadDeCaracteres)
{
caracter= auxNumero[ i] ;
if ( caracter == "0" )
{
if ( ( primerCaracter ! = "+" ) || ( primerCaracter ! = "-" ) )
{
if ( i > 1 )
{
ladoDelCuadrado= ladoDelCuadrado + ( 0 * resultado) ;
}
}
else
{
if ( i > 2 )
{
ladoDelCuadrado= ladoDelCuadrado + ( 0 * resultado) ;
}
}
resultado/ = 10 ;
}
else
{
if ( caracter == "1" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 1 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "2" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 2 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "3" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 3 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "4" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 4 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "5" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 5 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "6" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 6 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "7" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 7 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "8" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 8 * resultado) ;
resultado/ = 10 ;
}
else
{
if ( caracter == "9" )
{
ladoDelCuadrado= ladoDelCuadrado + ( 9 * resultado) ;
resultado/ = 10 ;
}
else
{
interruptor= false ;
}
}
}
}
}
}
}
}
}
}
++ i;
}
}
if ( cantidadDeCaracteres ! = 1 )
{
caracter= auxNumero.substr ( 2 ,cantidadDeCaracteres) ;
if ( ( caracter ! = "0" ) && ( caracter ! = "1" ) && ( caracter ! = "2" ) && ( caracter ! = "3" ) && ( caracter ! = "4" ) && ( caracter ! = "5" ) && ( caracter ! = "6" ) && ( caracter ! = "7" ) && ( caracter ! = "8" ) && ( caracter ! = "9" ) )
{
interruptor= false ;
}
if ( interruptor == true )
{
caracter= auxNumero.substr ( cantidadDeCaracteres) ;
if ( caracter == "1" )
{
ladoDelCuadrado= ladoDelCuadrado + 1 ;
}
else
{
if ( caracter == "2" )
{
ladoDelCuadrado= ladoDelCuadrado + 2 ;
}
else
{
if ( caracter == "3" )
{
ladoDelCuadrado= ladoDelCuadrado + 3 ;
}
else
{
if ( caracter == "4" )
{
ladoDelCuadrado= ladoDelCuadrado + 4 ;
}
else
{
if ( caracter == "5" )
{
ladoDelCuadrado= ladoDelCuadrado + 5 ;
}
else
{
if ( caracter == "6" )
{
ladoDelCuadrado= ladoDelCuadrado + 6 ;
}
else
{
if ( caracter == "7" )
{
ladoDelCuadrado= ladoDelCuadrado + 7 ;
}
else
{
if ( caracter == "8" )
{
ladoDelCuadrado= ladoDelCuadrado + 8 ;
}
else
{
ladoDelCuadrado= ladoDelCuadrado + 9 ;
}
}
}
}
}
}
}
}
}
else
{
cout << "ingrese el valor nuevamente: " ;
getline( cin , auxNumero) ;
ladoDelCuadrado= 0 ;
resultado= 1 ;
i= 1 ;
interruptor= false ;
cantidadDeCaracteres= ( auxNumero.length ( ) ) ;
auxNumero= "f" + auxNumero;
}
}
else
{
if ( interruptor == false )
{
cout << "ingrese el valor nuevamente: " ;
getline( cin , auxNumero) ;
ladoDelCuadrado= 0 ;
resultado= 1 ;
i= 1 ;
interruptor= false ;
cantidadDeCaracteres= ( auxNumero.length ( ) ) ;
auxNumero= "f" + auxNumero;
}
}
}
if ( negativo == true )
{
ladoDelCuadrado= ladoDelCuadrado * - 1 ;
}
numeroInteger= ladoDelCuadrado;
}
private :
string mensajeError;
int numeroInteger;
} ;
14
Programación / Programación C/C++ / Problema con variable string
en: 15 Mayo 2015, 19:13 pm
Hola gente, estoy teniendo un problema con una variable string, mi problema solo es en C++ en otr lenguaje no. Bueno mi problema es el siguiente:
pido un valor de tipo string,
si es valor es por ejemplo "+" el programa no se cierra y no tira error.
pero si se ingresa solo "+sadasd" se cierra y tira error.
Alguna solucion?
15
Programación / Programación General / Programa solución a error cuando esperamos un integer + codigo
en: 15 Mayo 2015, 06:43 am
Mision del programa: convertir variable string a integer
Programita hecho por mi, que lee un numero (la variable de tipo string), saca digito por digito y va comprobando, se encuentra con problematicas como tener un signo + o - delante, con problematicas como que empieze con 0, que tenga letras, que tenga puntos etc.
Gran utilidad para cuando estamos esperando un integer, y nos ingresan un string, donde el programa siempre se termina cerrando.
Saludos! Mario Olivera.
PD: se puede hacer un archivo .h para C++ e implementarlo para cada variable
VIDEO Código en pascal (despues dejaré el de C++)
program hki;
Uses
crt;
var
(*VARIABLES PARA EL PASAJE DE STRING INTEGER!*)
ladoDelCuadrado: integer ;
cantidadDeCaracteres: integer ;
auxCantidadCaracteres: integer ;
multiplicador, resultado: integer ;
auxNumero: string ;
caracter: char ;
i: integer ;
polaridad: boolean ;
interruptor: boolean ;
cambioPolaridad: boolean ;
respuesta: boolean ;
(*VARIABLES PARA DIBUJAR EL CUADRADO!*)
anchoUno: integer ;
cantidadDeLineas: integer ;
auxAncho: integer ;
BEGIN
ClrScr;
i:= 1 ;
interruptor:= false ; (* si los varoles son correctos esta en true, cuando entra a un else de algun case se apaga y asi queda*)
polaridad:= true ; (* Numero positivo*)
cambioPolaridad:= false ;
respuesta:= true ;
write ( 'Ingrese el lado del cuadrado: ' ) ;
readLn ( auxNumero) ; (*Lee el numero string*)
cantidadDeCaracteres:= length( auxNumero) ;
multiplicador:= 10 ;
ladoDelCuadrado:= 0 ;
resultado:= 10 ;
while ( interruptor <> true ) do
begin
interruptor:= true ;
if ( cantidadDeCaracteres = 1 ) then
begin
caracter:= auxNumero[ 1 ] ;
case caracter of
'0' :
begin
ladoDelCuadrado:= 0 ;
end ;
'1' :
begin
ladoDelCuadrado:= 1 ;
end ;
'2' :
begin
ladoDelCuadrado:= 2 ;
end ;
'3' :
begin
ladoDelCuadrado:= 3 ;
end ;
'4' :
begin
ladoDelCuadrado:= 4 ;
end ;
'5' :
begin
ladoDelCuadrado:= 5 ;
end ;
'6' :
begin
ladoDelCuadrado:= 6 ;
end ;
'7' :
begin
ladoDelCuadrado:= 7 ;
end ;
'8' :
begin
ladoDelCuadrado:= 8 ;
end ;
'9' :
begin
ladoDelCuadrado:= 9 ;
end ;
else
begin
interruptor:= false ;
end
end ;
end
else
begin
while ( i < cantidadDeCaracteres) do (*Me Falta sumar el ultimo digito itera 4 veces*)
begin
caracter:= auxNumero[ 1 ] ;
if ( i = 1 ) then
begin
if ( caracter = '+' ) then
begin
auxNumero:= copy( auxNumero, 2 , cantidadDecaracteres) ;
end ;
if ( caracter = '-' ) then
begin
auxNumero:= copy( auxNumero, 2 , cantidadDecaracteres) ;
interruptor:= false ;
polaridad:= false ; (* SE PONE EN MENOS*)
cambioPolaridad:= true ;
end ;
end ;
caracter:= auxNumero[ i] ;
(*if (interruptor <> false) then
begin*)
case caracter of
'0' :
begin
if ( ( auxNumero[ 1 ] ) <> '+' ) or ( ( auxNumero[ 1 ] ) <> '-' ) then
begin
if ( i > 1 ) then
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 0 * resultado) ;
end ;
end
else
begin
if ( i > 2 ) then
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 0 * resultado) ;
end ;
end ;
end ;
'1' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 1 * resultado) ;
end ;
'2' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 2 * resultado) ;
end ;
'3' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 3 * resultado) ;
end ;
'4' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 4 * resultado) ;
end ;
'5' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 5 * resultado) ;
end ;
'6' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 6 * resultado) ;
end ;
'7' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 7 * resultado) ;
end ;
'8' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 8 * resultado) ;
end ;
'9' :
begin
ladoDelCuadrado:= ladoDelCuadrado + ( 9 * resultado) ;
end
else
begin
respuesta:= false ;
end ;
end ;
(*end;*)
resultado:= resultado * 10 ;
i:= i + 1 ;
end ;
end ;
(* SACANDO EL ULTIMO DIGITO POR FIN! *)
if ( cantidadDeCaracteres <> 1 ) then
begin
if ( cambioPolaridad = true ) then
begin
cantidadDeCaracteres:= cantidadDeCaracteres + 1 ;
caracter:= auxNumero[ cantidadDeCaracteres] ;
end
else
begin
caracter:= auxNumero[ cantidadDeCaracteres] ;
end ;
case caracter of
'1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' :
begin
end ;
else
begin
respuesta:= false ;
end ;
end ;
if ( interruptor = true ) and ( respuesta = true ) and ( ladoDelcuadrado > 9 ) then
begin
if ( cambioPolaridad = true ) then
begin
cantidadDeCaracteres:= cantidadDeCaracteres + 1 ;
caracter:= auxNumero[ cantidadDeCaracteres] ;
end
else
begin
caracter:= auxNumero[ cantidadDeCaracteres] ;
end ;
case caracter of
'1' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 1 ;
end ;
'2' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 2 ;
end ;
'3' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 3 ;
end ;
'4' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 4 ;
end ;
'5' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 5 ;
end ;
'6' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 6 ;
end ;
'7' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 7 ;
end ;
'8' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 8 ;
end ;
'9' :
begin
ladoDelCuadrado:= ladoDelCuadrado + 9 ;
end
end ;
end
else
begin
writeln ( 'No ingreses valores torpes o(-.-)o: ' ) ;
write ( 'Ingrese el lado del cuadrado: ' ) ;
readLn ( auxNumero) ;
i:= 1 ;
interruptor:= false ;
polaridad:= true ; (* Numero positivo*)
cambioPolaridad:= false ;
respuesta:= true ;
cantidadDeCaracteres:= length( auxNumero) ;
multiplicador:= 10 ;
ladoDelCuadrado:= 0 ;
resultado:= 10 ;
end ;
end
else (*SI TIENE 1 CARACTER*)
begin
if ( interruptor = false ) then
begin
writeln ( 'No ingreses valores torpes o(-.-)o: ' ) ;
write ( 'Ingrese el lado del cuadrado: ' ) ;
readLn ( auxNumero) ;
i:= 1 ;
interruptor:= false ;
polaridad:= true ; (* Numero positivo*)
cambioPolaridad:= false ;
respuesta:= true ;
cantidadDeCaracteres:= length( auxNumero) ;
multiplicador:= 10 ;
ladoDelCuadrado:= 0 ;
resultado:= 10 ;
end ;
end ;
end ; (*FIN WHILE*)
(*YA TENDRIA EL VALOR INTEGER*)
writeln ( 'Valor: ' , ladoDelCuadrado) ;
(*ESCRITURA DEL CUADRADO!!!! POR FIN -.- *)
auxAncho:= 0 ;
anchoUno:= 0 ;
cantidadDeLineas:= 1 ;
if ( ladoDelCuadrado = 1 ) then
begin
writeLn ( '*' ) ;
end
else
begin
while ( anchoUno <> ladoDelCuadrado) do
begin
write ( '*' ) ;
anchoUno:= anchoUno + 1 ;
end ;
anchoUno:= 0 ;
writeLn ( ' ' ) ;
while ( ( ladoDelCuadrado >= 3 ) and ( cantidadDeLineas <= ( ladoDelCuadrado - 2 ) ) ) do
begin
write ( '*' ) ;
while ( auxAncho < ( ladoDelCuadrado - 2 ) ) do
begin
write ( ' ' ) ;
auxAncho:= auxAncho + 1 ;
end ;
auxAncho:= 0 ;
writeLn ( '*' ) ;
cantidadDeLineas:= cantidadDeLineas + 1 ;
end ;
while ( anchoUno <> ladoDelCuadrado) do
begin
write ( '*' ) ;
anchoUno := anchoUno + 1 ;
end ;
writeLn ( ' ' ) ;
end ;
readkey;
END .
16
Programación / Programación C/C++ / [APORTE] Ejercicio en C++: programa que dibuje un cuadrado
en: 12 Mayo 2015, 21:33 pm
Hola gente, vengo a dejarles un ejercicio, para aquellos que quieran practicar los bucles, o ciclos, un ejercicio que dice lo siguiente:
Ejercicio: Escriba un programa que pida al usuario que introduzca el tamaño del lado de un cuadrado y que muestre un cuadrado hueco de ese tamaño, compuesto de asteriscos y espacios en blanco. Su programa debe funcionar con cuadrados que tengan lados de todas las longitudes entre 1 y 20. por ejemplo, si su programa lee un tamaño de 5, debe imprimir:
*****
* *
* *
* *
*****
Espero les resulte facil, para el que este practicando los ciclos les va a servir!
Comenten sus códigos jeje
Saludos!
Dejo mi desarrollo para el que lo quiera ver, estaría bueno que antes hagan el ejercicio.
main.cpp
#include <iostream>
using std:: cin ;
using std:: endl ;
using std:: cout ;
#include "cabezal.h"
int main( )
{
int auxCuadrado;
cout << "Ingrese el lado del cuadrado: " ;
cin >> auxCuadrado;
while ( auxCuadrado < 1 )
{
cout << "\n ERROR!: Ingrese el lado del cuadrado: " ;
cin >> auxCuadrado;
}
cabezal aplicacion;
aplicacion.obtenerCuadrado ( auxCuadrado) ;
cin .get ( ) ;
cin .get ( ) ;
return 0 ;
}
cabezal.h
class cabezal
{
public :
//funciones obtener
void obtenerCuadrado( int ) ;
private :
int cuadrado;
} ;
cabezal.cpp
#include <iostream>
using std:: cin ;
using std:: endl ;
using std:: cout ;
#include "cabezal.h"
void cabezal:: obtenerCuadrado ( int Cuadrado)
{
int anchoUno= 0 ;
if ( Cuadrado == 1 )
{
cout << "*" << endl;
}
else
{
while ( anchoUno ! = Cuadrado)
{
cout << "*" ;
++ anchoUno;
}
anchoUno= 0 ;
cout << endl;
int auxLineas= 1 ;
while ( ( Cuadrado >= 3 ) && ( auxLineas <= ( Cuadrado - 2 ) ) )
{
int auxAncho= 0 ;
cout << "*" ;
while ( auxAncho < ( Cuadrado - 2 ) )
{
cout << " " ;
++ auxAncho;
}
cout << "*" << endl;
++ auxLineas;
}
while ( anchoUno ! = Cuadrado)
{
cout << "*" ;
++ anchoUno;
}
cout << endl;
}
}
17
Programación / Programación C/C++ / [Solucionado] Problema en iteracion while
en: 1 Mayo 2015, 23:56 pm
Hola amigos, tengo un problema, el valor de numeroDeEmpleado llega a 2, pero el ciclo sigue repitiendose.. porque?
No dejo el .h y el otro cpp, porque no creo que tendrán algo que ver.. Saludos!
main.cpp #include <iostream>
using std:: cout ;
using std:: cin ;
using std:: endl ;
#include <string>
using std:: string ;
#include "Empleado.h"
int main( )
{
//variables
string nombre,apellido;
int salario;
int numeroDeEmpleado= 1 ;
while ( numeroDeEmpleado <= 2 ) //itera 2 veces
{
cout << "Empleado " << numeroDeEmpleado << ": \n " ;
cout << "Nombre: " ;
cin >> nombre;
cout << "\n Apellido Paterno: " ;
cin >> apellido;
cout << "\n Salario Mensual: " ;
cin >> salario;
cout << endl;
if ( numeroDeEmpleado = 1 )
{
Empleado empleado1( nombre,apellido,salario) ;
cout << "\n Nombre: " << empleado1.obtenerPrimerNombre ( ) << endl;
cout << "Apellido: " << empleado1.obtenerApellidoPaterno ( ) << endl;
cout << "Salario Mensual: " << empleado1.obtenerSalarioMensual ( ) << endl;
cout << "Salario Anual: " << empleado1.obtenerSalarioAnual ( ) << endl;
}
else
{
Empleado empleado2( nombre,apellido,salario) ;
cout << "\n Nombre: " << empleado2.obtenerPrimerNombre ( ) << endl;
cout << "Apellido: " << empleado2.obtenerApellidoPaterno ( ) << endl;
cout << "Salario Mensual: " << empleado2.obtenerSalarioMensual ( ) << endl;
cout << "Salario Anual: " << empleado2.obtenerSalarioAnual ( ) << endl;
}
numeroDeEmpleado++ ;
}
cin .get ( ) ;
cin .get ( ) ;
return 0 ;
}
18
Programación / Programación C/C++ / [APORTE] Programa para una tienda
en: 27 Abril 2015, 04:34 am
Hola gente, les dejo un código fuente que hice en C++, es un programita sencillo, pero para el que esté estudiando el tema de la separación de la interfaz de la implementación usando un .h y dos .cpp, les va a ayudar, cualquier error o algo avisen.
PD: use el system("cls") porque la idea es mostrar un poco como se maneja la sepacion de la interfaz de la implementación, no como es la manera correcta de limpiar la consola xD SALUDOS!
main.cpp #include <iostream>
using std:: cin ;
#include "cabezal.h"
int main( )
{
programa llamador;
llamador.inicio ( ) ;
cin .get ( ) ;
return 0 ;
}
cabezal.h class programa
{
public :
//FUNCIONES MIENBRO
void inicio( ) ;
void mostrarDatos( ) ;
void mostrarMenu( ) ;
void comprobarOption( int ) ;
void nuevoProducto( int ) ;
} ;
cabezal.cpp #include <iostream>
using std:: cout ;
using std:: endl ;
using std:: cin ;
#include "cabezal.h"
//VARIABLES
int cantidadDeProductos;
int optionNuevoProducto;
int totalProductos= 0 ;
double precioProducto;
double total = 0 ;
void programa:: inicio ( )
{
mostrarDatos( ) ;
mostrarMenu( ) ;
}
void programa:: mostrarDatos ( )
{
cout << endl << endl;
cout << "\t . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ."
<< "\n \t . SUPER-M V 1.0 FIX 0 ."
<< "\n \t . ."
<< "\n \t . DP: MARIO.OLIVERA96@GMAIL.COM ."
<< "\n \t . SINCE: 2015 ."
<< "\n \t - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
<< endl << endl << endl;
}
void programa:: mostrarMenu ( )
{
int option;
cout << "MENU" << endl << endl;
cout << "(1) Nuevo Producto\n (2) Terminar compra\n \n " ;
cout << "Option: " ;
cin >> option;
cout << "\a " ;
comprobarOption( option) ;
}
void programa:: comprobarOption ( int option)
{
switch ( option)
{
case 1 :
system ( "cls" ) ;
cout << "Precio: " ;
cin >> precioProducto;
cout << "\a \n Cantidad: " ;
cin >> cantidadDeProductos;
cout << "\a \n (1)LISTO\t (2) ATRAS\n Option: " ;
cin >> optionNuevoProducto;
cout << "\a " ;
nuevoProducto( optionNuevoProducto) ;
break ;
case 2 :
system ( "cls" ) ;
if ( totalProductos <= 0 )
{
cout << "COMPRA TERMINADA.\n \n Cantidad de productos: 0\n \n Total a pagar: $0.00" << endl;
cin .get ( ) ;
cin .get ( ) ;
system ( "cls" ) ;
inicio( ) ;
}
else
{
cout << "COMPRA TERMINADA.\n \n Cantidad de productos: " << totalProductos << "\n \n Total a pagar: $" << total << endl;
cin .get ( ) ;
cin .get ( ) ;
total= 0 ;
totalProductos= 0 ;
system ( "cls" ) ;
programa( ) ;
}
break ;
default :
system ( "cls" ) ;
cout << "\n VALOR INVALIDO!\n PRESIONE ENTER.\n " ;
cin .get ( ) ;
cin .get ( ) ;
system ( "cls" ) ;
inicio( ) ;
break ;
cout < "ja!\n " ;
cin .get ( ) ;
}
}
void programa:: nuevoProducto ( int optionNuevoProducto)
{
switch ( optionNuevoProducto)
{
case 1 :
if ( ( precioProducto >= 0 ) && ( cantidadDeProductos >= 0 ) )
{
totalProductos+ = cantidadDeProductos;
total+ = cantidadDeProductos * precioProducto;
cout << totalProductos << " " << total;
cin .get ( ) ;
system ( "cls" ) ;
inicio( ) ;
}
else
{
cout << "\n VALORES INVALIDOS!\n PRESIONE ENTER\n " ;
cin .get ( ) ;
cin .get ( ) ;
comprobarOption( 1 ) ;
}
break ;
case 2 :
system ( "cls" ) ;
inicio( ) ;
break ;
}
}
19
Programación / Programación C/C++ / Aporte: escribir un numero e imprimir el numero en cadena
en: 24 Abril 2015, 18:54 pm
Hola gente, como dice el titulo vengo a dejarles otro aporte mas, para el que este estudiando la condición SEGUN (switch) esto les va a venir bién, es una anidacion la cual permite que cuando se ingresa un número menor a 1000 se imprima su nombre, dejo el código
main.cpp #include <iostream>
using std:: cin ;
using std:: cout ;
int numero,centena,decena,unidad,resto;
int main( )
{
cout << "Ingrese el numero (menor a 999): " ;
cin >> ( numero) ;
if ( ( numero < 1000 ) && ( numero >= 0 ) )
{
centena= numero / 100 ;
decena= ( ( numero % 100 ) / 10 ) ;
unidad= ( ( numero % 100 ) % 10 ) ;
switch ( centena)
{
case 1 :
if ( numero > 100 )
{
cout << "Ciento " ;
}
else
{
cout << "cien" ;
}
break ;
case 2 : cout << "DosCientos " ;
break ;
case 3 : cout << "TresCientos " ;
break ;
case 4 : cout << "CuatroCientos " ;
break ;
case 5 : cout << "Quinientos " ;
break ;
case 6 : cout << "SeisCientos " ;
break ;
case 7 : cout << "SeteCientos " ;
break ;
case 8 : cout << "OchoCientos " ;
break ;
case 9 : cout << "NueveCientos " ;
break ;
}
resto= numero % 100 ;
switch ( resto)
{
case 10 : cout << "DIEZ" ;
break ;
case 11 : cout << "ONCE" ;
break ;
case 12 : cout << "DOCE" ;
break ;
case 13 : cout << "TRECE" ;
break ;
case 14 : cout << "CATORCE" ;
break ;
case 15 : cout << "QUINCE" ;
break ;
case 20 : cout << "VEINTE" ;
break ;
case 30 : cout << "TREINTA" ;
break ;
case 40 : cout << "CUARENTA" ;
break ;
case 50 : cout << "CINCUENTA" ;
break ;
case 60 : cout << "SESENTA" ;
break ;
case 70 : cout << "SETENTA" ;
break ;
case 80 : cout << "OCHENTA" ;
break ;
case 90 : cout << "NOVENTA" ;
break ;
default :
{
switch ( decena)
{
case 1 : cout << "DIES Y " ;
break ;
case 2 : cout << "VEINT y " ;
break ;
case 3 : cout << "TREINTA y " ;
break ;
case 4 : cout << "CUARENTA y " ;
break ;
case 5 : cout << "CINCUENTA y " ;
break ;
case 6 : cout << "SESENTA y " ;
break ;
case 7 : cout << "SETENTA y " ;
break ;
case 8 : cout << "OCHENTA y " ;
break ;
case 9 : cout << "NOVENTA y " ;
break ;
}
switch ( unidad)
{
case 0 : cout << "CERO" ;
break ;
case 1 : cout << "UNO" ;
break ;
case 2 : cout << "DOS" ;
break ;
case 3 : cout << "TRES" ;
break ;
case 4 : cout << "CUATRO" ;
break ;
case 5 : cout << "CINCO" ;
break ;
case 6 : cout << "SEIS" ;
break ;
case 7 : cout << "SIETE" ;
break ;
case 8 : cout << "OCHO" ;
break ;
case 9 : cout << "NUEVE" ;
break ;
}
}
}
}
else
{
cout << "valor no valido" ;
}
cin .get ( ) ;
cin .get ( ) ;
return 0 ;
}
20
Programación / Programación C/C++ / Aporte programa que saca sueldo semanal
en: 24 Abril 2015, 17:02 pm
Hola gente, para los que estén estudiando las condiciones
SI y
SINO de C++ les dejo este código para que vean más o menos como se trabaja con SI y SINO. Este programa lo que hace es sacar el salario semanal de una persona, segun las horas trabajadas y lo que le pagan por hora, y si las horas trabajadas son mas de 35, a las horas extras (osea 36 o más) se le da un aumento del 40% a cada hora extra.
#include <iostream>
using std:: cout ;
using std:: cin ;
int main( )
{
//VARIABLES
int horasTrabajadas;
double precioPorHora;
double salarioSemanal;
//CONSTANTES
const double pagoPorSuperacion= 1.4 ;
const int superacion= 35 ;
cout << "Ingrese las horas trabajadas: " ;
cin >> horasTrabajadas ;
cout << endl;
cout << "Ingrese el precio por hora: " ;
cin >> precioPorHora;
cout << endl;
if ( precioPorHora < 0 )
{
precioPorHora= precioPorHora * - 1 ;
cout << "Se Ingreso un valor negativo al campo precio por hora,\n "
<< "este mismo fue cambiado para una funcionalidad correcta!\n " ;
}
if ( horasTrabajadas > 168 )
{
horasTrabajadas= 168 ;
cout << "Las horas trabajadas superaron las horas maxima que hay en una semana,\n "
<< "ahora las horas trabajadas valen 168.\n " ;
}
else
{
if ( horasTrabajadas < 0 )
{
horasTrabajadas* = - 1 ;
cout << "Las horas trabajadas eran negativas, se pasaron a positivas!\n " ;
}
if ( horasTrabajadas == 0 )
{
salarioSemanal= 0 ;
}
else
{
if ( horasTrabajadas <= superacion)
{
salarioSemanal= precioPorHora * horasTrabajadas;
}
else
{
salarioSemanal= ( ( superacion * precioPorHora) + ( ( horasTrabajadas - superacion) *
( precioPorHora * pagoPorSuperacion) ) ) ;
}
}
}
cout << "El salario semanal es: $" << salarioSemanal;
cin .get ( ) ;
cin .get ( ) ;
}