Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Mario Olivera

#1
 Hola que tal, mi duda es la que plantea el titulo de este post, quisiera saber como haria para que mediante conectandome a fb, pueda mandar en la url un mensaje, a donde va dirigido, etc.

por ejemplo:
facebook.com/mi-mensaje+lugar-en-donde-publicar

Porque estoy haciendo un software en Java, y quiero hacer esto para que el usuario tenga más facilidad, no hace falta que se inicie sesion desde el software, pero si que desde el software se mande la publicacion, quisiera saber eso si alguien podría ayudarme se lo agradecería desde ya gracias.

Saludos Foro!
#2
Java / Ayuda problema con Multiples Fuentes en Java
28 Noviembre 2015, 12:42 PM
 Hola gente, que tal, hacia mucho no andaba por aquí, me encuentro con un problema en java, al trabajar con multiples fuentes, el problema es que no me aparecen los JButton, si bien si me aparecen estos se ven pero sin rellenar, solo el contorno en gris, espero me puedan ayudar

Saludos!

Código (java) [Seleccionar]
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeListener;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;


public class principal {

public static void main(String[] args)
{
Marco ventana = new Marco();
}
}

class Marco extends JFrame
{
public Marco()
{
Lamina panel = new Lamina();

this.add(panel);
this.setTitle("ventana");
this.setSize(500, 500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

class Lamina extends JPanel
{
private JButton amarillo;
private JButton azul;
private JButton rojo;

public Lamina()
{
AccionColor accionAmarillo = new AccionColor("Amarillo",(new ImageIcon("src/amarillo.gif")),Color.YELLOW);
AccionColor accionAzul = new AccionColor("Azul",(new ImageIcon("src/azul.gif")),Color.BLUE);
AccionColor accionRojo = new AccionColor("Rojo",(new ImageIcon("src/rojo.gif")),Color.RED);

amarillo = new JButton(accionAmarillo);
azul = new JButton(accionAzul);
rojo = new JButton(accionRojo);


this.add(amarillo);
this.add(rojo);
this.add(azul);

}



class AccionColor implements Action
{
public AccionColor(String nombre,Icon icono,Color c)
{
this.putValue(Action.NAME, nombre);
this.putValue(Action.SMALL_ICON, icono);
this.putValue("color_de_fondo", c);
this.putValue(Action.SHORT_DESCRIPTION, "poner fondo en " + nombre);
}

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void addPropertyChangeListener(PropertyChangeListener arg0) {
// TODO Auto-generated method stub

}

@Override
public Object getValue(String arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public boolean isEnabled() {
// TODO Auto-generated method stub
return false;
}

@Override
public void putValue(String arg0, Object arg1) {
// TODO Auto-generated method stub

}

@Override
public void removePropertyChangeListener(PropertyChangeListener arg0) {
// TODO Auto-generated method stub

}

@Override
public void setEnabled(boolean arg0) {
// TODO Auto-generated method stub

}
}

}

#3
Windows / Ayuda problema con boot
11 Junio 2015, 04:40 AM
 Hola gente tengo windows 8, quise arrancar el kali desde usb, solo para probarlo no instalarlo y puse como primera el usb y segundo nada sin querer, al iniciar la maquina con el usb puesto me aparece secure boot violation, y tampoco puedo entrar a la bios con el usb, pongo ok a ese cartel ayuda reboot and select proper boot device, alguna solucion que no sea desarmar el pc?
#4
Programación C/C++ / Mi proyecto: BaseABase
22 Mayo 2015, 07:04 AM
 Hola gente, estoy trabajando en un proyecto al cual lo he llamado BaseABase, tiene que pasar bases a cualquier base o sistema, les dejo un adelanto, y me gustaría si alguien pudiera decirme que cambiaria con el tema de el .h y el otro .cpp osea, de la separacion de la interfaz de la implementacion, o si acaso voy bien por el momento.

Les dejo el código, Espero respuestas Saludos! :D

PD: por ahora solo maneja de binario a decimal, de binario a BCO y de decimal a binario

main.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

#include <cmath>
using std::pow;

#include "BaseABase.h"


int main()
{
//CREACION DEL OBJETO APLICACION
BaseABase aplicacion;

//MENU
int opcion=0;
int numero;
int base;

cout <<"Menu: Que tipo de numero desea convertir?\a" <<endl <<endl
<<"1 - Binario" <<endl
<<"2 - Decimal" <<endl
<<endl <<endl <<"salir: -1" <<endl <<"opcion: ";

cin >> opcion;

while (opcion != -1)
{
switch (opcion)
{
////BINARIO
case 1:
system("cls");
cout <<"\aSeleccione la base: \n\n"
<<"1 - Decimal" <<endl
<<"2 - BCO" <<endl
<<endl <<endl <<"Menu Principal: -1 " <<endl <<"opcion: ";
cin >> base;

while ( base != -1)
{
system("cls");

switch (base)
{
case 1:
cout <<"Numero: ";
cin >> numero;
aplicacion.convertirBinarioADecimal(numero);
cout <<"convert: " <<aplicacion.obtenerDecimal() <<endl;
base= -1;
cin.get();
cin.get();
system("cls");
break;
case 2:
system("cls");
cout <<"Numero: ";
cin >> numero;
aplicacion.convertirBinarioABCO(numero);
cout <<"convert: " <<aplicacion.obtenerBCO() <<endl;
base= -1;
cin.get();
cin.get();
system("cls");
break;
}
}
break;

// DECIMAL
case 2:
system("cls");
cout <<"\aSeleccione la base: \n\n"
<<"1 - Binario" <<endl
<<endl <<endl <<"Menu Principal: -1 " <<endl <<"opcion: ";
cin >> base;

while ( base != -1)
{
system("cls");

switch (base)
{
case 1:
cout <<"Numeroa: ";
cin >> numero;
aplicacion.convertirDecimalABinario(numero);
cout <<"convert: " <<aplicacion.obtenerBinario() <<endl;
base= -1;
cin.get();
cin.get();
system("cls");
break;
}
}
break;
}
// RESTAURACION DE VALORES!
aplicacion.restaurarValores();
system("cls");
cout <<"Menu: Que tipo de numero desea convertir?\a" <<endl <<endl
<<"1 - Binario" <<endl
<<"2 - Decimal" <<endl
<<endl <<endl <<"salir: -1" <<endl <<"opcion: ";
cin >> opcion;
}
cin.get();
cin.get();
return 0;
}

BaseABase.h
Código (cpp) [Seleccionar]
/*

ATENCION: luego de usar las funciones obtener se debe ejecutar la funcion restaurarValores!

*/

#include <string>
using std::string;

class BaseABase
{
public:
//Constructor
BaseABase();

//funciones convertir
void convertirBinarioADecimal(int);
void convertirDecimalABinario(int);
void convertirBinarioABCO(int);

//funciones obtener
long int obtenerBinario();
long int obtenerDecimal();
string obtenerBCO();

//funciones restaurar
void restaurarValores();

private:
long int binario;
long int decimal;
string BCO;
};

BaseABase.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::endl;
using std::cout;

#include <cmath>
using std::pow;

#include "BaseABase.h"

BaseABase::BaseABase()
{
restaurarValores();
}

//Funciones convertir

void BaseABase::convertirBinarioADecimal(int numero)
{
long int auxBinario;
int resto;

binario= numero;
auxBinario= numero;

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;
}

}

} //FIN FUNCION CONVERTIR BINARIO A DECIMAL

void BaseABase::convertirDecimalABinario(int numero)
{
int restoDivision=0;
int unidadDivision=0;
int iteracionBinaria=0;

unidadDivision= numero;


while (unidadDivision > 0)
{
restoDivision= unidadDivision % 2;
unidadDivision= unidadDivision / 2;

binario+= restoDivision * pow (10.,iteracionBinaria);

++iteracionBinaria;

if (numero == 2)
{
binario+= unidadDivision * pow (10.,iteracionBinaria);
}

}
}

void BaseABase::convertirBinarioABCO(int numero)
{
convertirBinarioADecimal(numero);

int digitos= 1;
int digito;
int auxNumero= decimal;

while ((auxNumero / 10) != 0)
{
auxNumero/= 10;
digitos++;
}

int divisor= pow(10.,digitos-1);


for (int i=1; i <= digitos;i++)
{
digito= decimal / divisor;
decimal%= divisor;

switch (digito)
{
case 0: BCO+= " 000";
break;
case 1: BCO+= " 001";
break;
case 2: BCO+= " 010";
break;
case 3: BCO+= " 011";
break;
case 4: BCO+= " 100";
break;
case 5: BCO+= " 101";
break;
case 6: BCO+= " 110";
break;
case 7: BCO+= " 111";
break;
}


divisor/= 10;
}
}

//funciones obtener
long int BaseABase::obtenerBinario()
{
return binario;
}

long int BaseABase::obtenerDecimal()
{
return decimal;
}
string BaseABase::obtenerBCO()
{
return BCO;
}

//funciones restaurar
void BaseABase::restaurarValores()
{
binario= 0;
decimal= 0;
BCO= " ";
}

#5
 Hola gente, como hace poco subi un codigo fuente, que convertia un binario a decimal, ahora dejo un codigo que convierte decimal a binario!, por las dudas dejo los dos códigos para el que quiera ver el otro :))

Decimal a binario

Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

#include <cmath>
using std::pow;

int main()
{
int binario=0;
int restoDivision=0;
int unidadDivision=0;
int numero;
int iteracionBinaria=0;

cout <<"numero decimal: ";
cin >> numero;
cout <<endl;
unidadDivision= numero;


while (unidadDivision > 0)
{
restoDivision= unidadDivision % 2;
unidadDivision= unidadDivision / 2;

binario+= restoDivision * pow (10.,iteracionBinaria);

++iteracionBinaria;

if (numero == 2)
{
binario+= unidadDivision * pow (10.,iteracionBinaria);
}

}

cout <<"b: " <<binario <<endl;
cin.get();
cin.get();
return 0;
}


Binario a Decimal

Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::endl;
using std::cout;

#include <cmath>
using std::pow;

int main()
{
// Variables
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 <<"\nEl binario " <<binario <<" es " <<decimal <<"\n";
}
else
{
cout <<"\nEl numero ingresado no es un binario!\n";
}
cin.get();
cin.get();
cin.get();
return 0;
}
#6
 Hola pues eso, estoy buscando paginas web que cumplan con esto y no estoy encontrando nada, si alguien me pudiera tirar un dato le agradeceria!

Saludos!  :D
#7
 Hola gente, queria hacerles una pregunta, en la universidad el profesor de programación nos dijo que el ciclo repeat, o do while, no sirve, ya que no tenemos manejo de el, dijo que este ciclo es mortal y que no lo usemos.

Que piensan sobre esto? porque piensan eso?

Saludos! Espero respuestas!
#8
 Hola gente tengo este problema en un for, que no lo puedo hacer entrar.

Dejo El código

Código (cpp) [Seleccionar]

for (int c=10; c >= 1; c--) // FILAS
{
for (int espacios=c; espacios <= 20; espacios++)
{
cout <"entra";
cout <" ";
}

for (int puntos=1; puntos <= c; puntos++) // DIBUJA PUNTOS
{
cout <<"*";
}
cout <<endl;
}
#9
 Hola gente, me surgio una pregunta, hice un código que evalua los numeros factoriales del 1 al 20, la variable de tipo int resultado me muestra cada resultado de la multiplicación, se que una variable int si mal no recuerdo va desde -32768 a 32767, pero llega a valer: 2004189184.

Todo esto esta en un ciclo for... la viariable por si sola se transforma en una long int?
#10
 Hola gente, tengo unas dudas con un switch y quisiera saber como hacer para que al ingresar eof (ctrl + z en windows, ctrl + d en linux) no se me cierre el programa y se ejecuten las otras funciones miembro.


Mi duda del switch es la siguiente en la funcion miembro recibirCalificaciones
si se ingresa por ejemplo " a" (espacio,y letra a), toma calificacion como "a", y quisiera saber por que, porque creo yo que tendria que entrar en default y no, se que evita los saltos de lineas, espacios y espacios tabulares, pero quisiera saber que pasa en ese cuerpo cuando tenemos un espacio y letra a.


Desde ya muchas gracias y Saludos!

Bueno este es el código:

main.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;

#include "LibroCalificaciones.h"

int main()
{
LibroCalificaciones miLibroCalificaciones("CS101 Programacion en C++");

miLibroCalificaciones.mostrarMensaje();
miLibroCalificaciones.recibirCalificaciones();
miLibroCalificaciones.mostrarReporteCalificaciones();
cin.get();
return 0;
}


LibroCalificaciones.h
Código (cpp) [Seleccionar]
#include <string>
using std::string;

class LibroCalificaciones
{
public:
LibroCalificaciones(string);
void establecerNombreCurso(string);
string obtenerNombreCurso();
void mostrarMensaje();
void recibirCalificaciones();
void mostrarReporteCalificaciones();
private:
string nombreCurso;
int aCuenta;
int bCuenta;
int cCuenta;
int dCuenta;
int fCuenta;
};

LibroCalificaciones.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include "LibroCalificaciones.h"

//CONSTRUCTOR
LibroCalificaciones::LibroCalificaciones(string nombre)
{
establecerNombreCurso(nombre);
aCuenta=0;
bCuenta=0;
cCuenta=0;
dCuenta=0;
fCuenta=0;
}

void LibroCalificaciones::establecerNombreCurso(string nombre)
{
if (nombre.length() <= 25)
{
nombreCurso= nombre;
}
else
{
nombreCurso= nombre.substr(0,25);

cout <<"el nombre " <<nombre <<" excede la longitud maxima (25).\n"
<<"Se limito nombreCurso a los primeros 25 caracteres.\n";
}
}

string LibroCalificaciones::obtenerNombreCurso()
{
return nombreCurso;
}

void LibroCalificaciones::mostrarMensaje()
{
cout <<"Bienvenido al libro de calificaciones para " <<obtenerNombreCurso() <<"!\n";
}

void LibroCalificaciones::recibirCalificaciones()
{
int calificacion;

cout <<"Escriba las calificaciones de letra." <<endl
<<"Escriba el caracter EOF (fin de archivo) para terminar la entrada." <<endl;

while ((calificacion= cin.get()) != EOF)
{
switch (calificacion)
{
case 'A':
case 'a':
aCuenta++;
break;

case 'B':
case 'b':
bCuenta++;
break;

case 'C':
case 'c':
cCuenta++;
break;

case 'D':
case 'd':
dCuenta++;
break;

case 'F':
case 'f':
fCuenta++;
break;

case '\t':
case '\n':
case ' ':
break;

default:
cout <<"Se introdujo una letra de calificacion incorrecta."
<<"Escriba una nueva calificacion." <<endl;
break;
}
}
}

void LibroCalificaciones::mostrarReporteCalificaciones()
{
cout <<"\n\nNumero de estudiantes que recibieron cada Calificacion de letra:"
<<"\nA: " <<aCuenta
<<"\nB: " <<bCuenta
<<"\nC: " <<cCuenta
<<"\nD: " <<dCuenta
<<"\nF: " <<fCuenta
<<endl;
}
#11
 Les dejo un código que hice, pasa un binario a decimal  :D

Saludos!

Código (cpp) [Seleccionar]
#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 <<"\nEl binario " <<binario <<" es " <<decimal <<endl;
}
else
{
cout <<"\nEl numero ingresado no es un binario!\n";
}
cin.get();
cin.get();
return 0;
}
#12
 Hola gente, tengo un problema en un for, dejo el codigo y el error que me tira :)

Código (cpp) [Seleccionar]
#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 <<"\nEl numero es un palindromo.";
}

else
{
cout <<"\nEl numero no es un palindromo.";
}

cin.get();
return 0;
}


ERROR:

Citar1>------ 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 C/C++ / [Aporte] fixedInteger.h
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.

[youtube=640,360]https://www.youtube.com/watch?v=tnJqZjGz23A[/youtube]


Main.cpp

Código (cpp) [Seleccionar]
#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


Código (cpp) [Seleccionar]
/*
<<<<<<<<<<<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
 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?  :P
#15
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 :D



[youtube=640,360]https://www.youtube.com/watch?v=tnJqZjGz23A[/youtube]

Código en pascal (despues dejaré el de C++)
Código (pascal) [Seleccionar]
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
 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  :P

Saludos!  ;D

Dejo mi desarrollo para el que lo quiera ver, estaría bueno que antes hagan el ejercicio.

main.cpp
Código (cpp) [Seleccionar]
#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 <<"\nERROR!: Ingrese el lado del cuadrado: ";
cin  >>auxCuadrado;
}

cabezal aplicacion;
aplicacion.obtenerCuadrado(auxCuadrado);
cin.get();
cin.get();
return 0;
}


cabezal.h
Código (cpp) [Seleccionar]
class cabezal
{
public:
//funciones obtener
void obtenerCuadrado(int);

private:
int cuadrado;
};


cabezal.cpp
Código (cpp) [Seleccionar]
#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
 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
Código (cpp) [Seleccionar]
#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 <<"\nApellido Paterno: ";
cin  >> apellido;
cout <<"\nSalario Mensual: ";
cin  >> salario;
cout <<endl;

if (numeroDeEmpleado = 1)
{
Empleado empleado1(nombre,apellido,salario);
cout <<"\nNombre: " <<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 <<"\nNombre: " <<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
 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
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;

#include "cabezal.h"

int main()
{

programa llamador;
llamador.inicio();
cin.get();
return 0;
}


cabezal.h
Código (cpp) [Seleccionar]
class programa
{
public:
//FUNCIONES MIENBRO
void inicio();
void mostrarDatos();
void mostrarMenu();
void comprobarOption(int);
void nuevoProducto(int);
};

cabezal.cpp
Código (cpp) [Seleccionar]
#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\nCantidad: ";
cin  >> cantidadDeProductos;
cout <<"\a\n(1)LISTO\t(2) ATRAS\nOption: ";
cin  >> optionNuevoProducto;
cout <<"\a";
nuevoProducto(optionNuevoProducto);




break;

case 2:
system("cls");
if (totalProductos <= 0)
{
cout <<"COMPRA TERMINADA.\n\nCantidad de productos: 0\n\nTotal a pagar: $0.00"<<endl;
cin.get();
cin.get();
system("cls");
inicio();
}
else
{
cout <<"COMPRA TERMINADA.\n\nCantidad de productos: " <<totalProductos <<"\n\nTotal a pagar: $" <<total <<endl;
cin.get();
cin.get();
total=0;
totalProductos=0;
system("cls");
programa();
}
break;
default:
system("cls");
cout <<"\nVALOR INVALIDO!\nPRESIONE 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 <<"\nVALORES INVALIDOS!\nPRESIONE ENTER\n";
cin.get();
cin.get();
comprobarOption(1);
}

break;

case 2:
system("cls");
inicio();
break;
}
}
#19
 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 :D


main.cpp
Código (cpp) [Seleccionar]
#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
 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.

Código (cpp) [Seleccionar]

#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();
}
#21
 Hola tengo un problema en un simple código de pascal, les dejo el código, el error es que me dice que el indentificador suma esta duplicado, eso es lo que entiendo, Saludos!


Código (pascal) [Seleccionar]
program suma;

var resta,a,b,c,suma,multiplicacion:real;

BEGIN
write('primer numero: ');
read(a);
writeLn('segundo numero: ');
read(b);
writeLn('tercer numero: ');
read(c);
suma:= a+b+c;
writeLn('resultado suma', suma);
multiplicacion:=  a*b*c;
writeLn('Multiplicacion ' multiplicacion);
resta:= (a+b) - c;
writeLn('Resta ', resta);
END.



#22
 Hola gente, estoy teniendo un problema, como verán si ejecutan el código html que dejo abajo, el pie de la página no queda bien, re refiero a que, no ocupa el 100% de ancho de la pagina, solo se muestra con color verde la lista desordenada y nada más, si alguien me ayuda estaría agradecido :)

Código (html4strict) [Seleccionar]

<!DOCTYPE html>
<html lang="es">
<head>
<title>Maquetación CSS</title>
<link rel="SHORTCUT ICON" href="favicon.ico"/>
<meta name="robots" content="text/html"/>
<meta name="description" content="descripcion de la pagina"/>
<meta name="keywords" content="palabras clave"/>
<meta name="Content type" content="text/html" charset="utf-8"/>
<STYLE type="text/css">
BODY{
background-color: #ccf;
text-align: center;
margin:0;
}
#contenedor{
background-color: #fff;
width: 850px;
text-align: left;
margin: auto;
}
HEADER{
background-color: #000;
height: 67px;
}
#logo{
padding: 10px;
float: left;
}
#buscador{
padding-top: 21px;
padding-right: 10px;
float: right;

}
#cuerpoPagina{
margin-left: 10px;
margin-right: 10px;
}

.nofloat{
clear: both;
}
H1{
color: blue;
font-size: 1.5em;
font-family: Helvetica;
font-weight: 500;
text-decoration: underline;
}
#navegador{
float: right;
width: 200px;
font-size: 1.2em;
margin-top: 15px;
}
Article{
margin-left: 20px;
margin-right: 220px;
}
.titnav{
background-color: #33c;
color: white;
text-align: center;
}
.cuerpoNavegador{
background-color: #ccc;
}
.ulnav{
padding-top: 10px;
padding-bottom: 5px;
padding-left: 10px;
}
.ulnav{
margin-top: 0px;
}
ul.ulnav li{
list-style: none;
background: transparent url("carpeta.png") no-repeat;
margin: 0px;
padding: 1px 0 12px 35px;
font-size: 0.8em;
}
#pie{
background-color: #090;
height: 30px;
color: white;
float: right;

}
#enlacespie{
padding:0px 0px 0px 0px;


}
#enlacesPie li{
margin: 0px 20px 0px 0px;
padding: 0px;
list-style: none;
float: left;
}

</STYLE>
</head>
<body>
<section id="contenedor">
<header>
<section id="logo">
<img src="logotipo.png"/>
</section>

<section id="buscador">
<form action="buscar.php" method="post">
<input type="search" name="busqueda" autofocus/><button>Buscar</button>
</form>
</section>
<section class="nofloat"></section>
</header>
<section id="cuerpoPagina">
<nav id="navegador">
<section class="titnav">Secciones principales</section>
<section class="cuerpoNavegador">
<ul class="ulnav">
<li><a href="#">Home</a></li>
<li><a href="#">Quienes somos</a></li>
<li><a href="#">Videos</a></li>
<li><a href="#">Mas navegacion</a></li>
</ul>
</section>
<section class="titnav">Comunidad</section>
<section class="cuerpoNavegador">
<ul class="ulnav">
<li>Iniciar sesion</li>
<li>Registro</li>
<li>Videos</li>
<li>Mas navegacion</li>
</ul>
</section>
</nav>
</section>

<article>
<h1> Mi Pagina MAQUETADA CON CSS </h1>

<p>El perro o perro doméstico (Canis lupus familiaris)1 2 3 4 o también llamado can5 es un mamífero carnívoro de la familia de los cánidos, que constituye una subespecie del lobo (Canis lupus). Un estudio publicado por la revista de divulgación científica Nature revela que, gracias al proceso de domesticación, el organismo del perro se ha adaptado6 a cierta clase de alimentos, en este caso el almidón.7 Su tamaño o talla, su forma y pelaje es muy diverso según la raza. Posee un oído y olfato muy desarrollados, siendo este último su principal órgano sensorial. En las razas pequeñas puede alcanzar una longevidad de cerca de 20 años, con atención esmerada por parte del propietario, de otra forma su vida en promedio es alrededor de los 15 años.</p>

<p>Se cree que el lobo gris, del que es considerado una subespecie, es el antepasado más inmediato. Las pruebas arqueológicas demuestran que el perro ha estado en convivencia cercana con los humanos desde hace al menos 9000 años, pero posiblemente desde hace 14 000 años. Las pruebas fósiles demuestran que los antepasados ​​de los perros modernos ya estaban asociados con los humanos hace 100 000 años. Las investigaciones más recientes indican que el perro fue domesticado por primera vez en el este de Asia, posiblemente en China; sin embargo, es incierto si todos los perros domésticos provienen de un mismo grupo o si el proceso de domesticación se repitió varias veces.</p>

<p>Hay aproximadamente 800 razas —más que de cualquier otro animal— que varían significativamente en tamaño, fisonomía y temperamento, presentando una gran variedad de colores y de tipos de pelo según la raza de perro. Tienen una gran relación con los humanos, para quien son animales de compañía, animales de guardia, perros de trabajo, perros de caza, perros de aguas, galgos de carrera, perros guía, perros pastores o perros boyeros por ejemplo. En 2001, se estimaba que había 400 millones de perros en el mundo.8</p>
Mosaico romano mostrando un perro con collar.

En el siglo XXI, los investigadores han alcanzado un consenso casi absoluto acerca de que es muy posible que la domesticación del perro empezara más por la adaptación espontánea de este al acercarse a vivir junto al hombre que por la voluntad humana.9 Esto se debe a que vivir junto al hombre siempre fue ventajoso para el cánido. Un perro viviendo en una comunidad humana, aún en la Antigüedad, podía alimentarse con menos esfuerzo que uno salvaje, podía vivir en mejores condiciones disfrutando del afecto y cuidado humano.

El perro es una subespecie doméstica del lobo, según la comparación de los mapas genéticos de ambas especies.10 La evidencia fósil más antigua de un perro domesticado fue encontrada en 2008 en la cueva Goyet de Bélgica, correspondiente a unos 31.700 años y al parecer asociado a la cultura auriñaciense.11 Hasta entonces las pruebas más antiguas se habían encontrado en Rusia, pertenecientes a hace 14.000 años (Eliseevich). El hombre consiguió domesticar a ejemplares de lobos, o, más probablemente, se demostró incapaz de impedir que los lobos se introdujeran en sus aldeas y tuvieran allí a sus cachorros.9 El perro era útil como ayuda en la caza y para defender al grupo y su morada. Poco a poco, el hombre los adaptó a sus necesidades, creando diferentes razas para las distintas labores y características ambientales y geográficas.

El ser humano se dio cuenta rápidamente de los finos sentidos del olfato y el oído que tenía el perro;[cita requerida] su olfato es más potente que del humano —su área olfatoria es 20 veces más gruesa, y en el caso del pastor alemán con una superficie 34 veces mayor y con 40 veces más células olfatorias— y su oído es capaz de percibir sonidos muy por debajo y por encima del rango que oyen los humanos. Ventaja ésta que aumenta su utilidad para la caza y las labores de guarda. Su uso como pastor y protector de los rebaños es bastante posterior, yendo pareja a la domesticación y explotación de otros animales. Animal de costumbres sociales, que convive en grupos perfectamente jerarquizados, se adaptó a convivir con los humanos.

Los perros son muy valorados por su ayuda en la caza. Los perros enterrados en el cementerio mesolítico de Svaerdborg en Dinamarca muestran que, en la antigua Europa, eran ya una valiosa compañía.

Los perros han acompañado al hombre en su proceso a la civilización; su presencia está probada en todas las culturas del mundo, así en Perú en la etapa preincaica, los mochicas los usaban como ayuda de caza y también como mascotas en casa. En el entierro del Señor de Sipán, se encontraron dentro de las tumbas restos de un perro que seguramente se usó en la caza, ya que el cráneo tenía perfectamente desarrollados sus molares.

El cráneo y los dientes del perro doméstico han disminuido de tamaño con relación al lobo al no necesitar matar presas grandes. Así mismo, al pasar de una dieta de carne a una constituida por los desechos provenientes de la alimentación de los humanos, desarrollaron cerebros más pequeños que requieren menos calorías y menos proteínas para su crecimiento y sustento. La percepción del perro por parte del ser humano ha variado y varía según las culturas, en varias etnias americanas anteriores a 1492, tal y como aún ocurre en zonas del Extremo Oriente Asiático, los perros eran usados directamente como alimento; en zonas del Oriente Medio el perro ha sido asociado por su aspecto con los chacales —de hecho científicamente se creyó hasta el desarrollo de la genética a fines del siglo XX que los perros comunes de todo el mundo eran descendientes de chacales— y al ser los chacales animales principalmente carroñeros, los perros también han sido considerados impuros en esa zona. Quizás la única especie de perro que no desciende del lobo es el perro fueguino que descendería del culpeo.
Características
Diferencias respecto a otros cánidos

En comparación con lobos de tamaño equivalente, los perros tienden a tener el cráneo un 20% más pequeño y el cerebro un 10% más pequeño, además de tener los dientes relativamente más pequeños que otras especies de cánidos.12 Los perros requieren menos calorías para vivir que los lobos. Su dieta de sobras de los humanos hizo que sus cerebros grandes y los músculos mandibulares utilizados en la caza dejaran de ser necesarios. Algunos expertos piensan que las orejas flácidas de los perros son el resultado de la atrofia de los músculos mandibulares.12 La piel de los perros domésticos tiende a ser más gruesa que la de los lobos y algunas tribus esquimales prefieren su piel para vestirse, debido a su resistencia al desgaste en un clima inhóspito.12 A diferencia de los lobos, pero al igual que los coyotes, los perros domésticos tienen glándulas sudoríparas en las almohadillas de las patas.12 Las patas de un perro son aproximadamente la mitad de las de un lobo y su cola tiende a curvarse hacia arriba, otro rasgo que no se observa en los lobos.13

</article>

<section id="pie">
<ul id="enlacesPie">
<li>Portada</li>
<li>Quienes Somos</li>
<li>Contacto</li>
</ul>
</section>
</section>


</body>
</html>
#23
Programación General / Ayuda pascal
12 Marzo 2015, 02:28 AM
 Hola gente, disculpen las molestias, estoy viendo un poco lo que es pascal, tengo conocimientos en c++, con lo que pascal se me resulta facil, lo estoy estudiando porque me van a tomar en la universidad, despues de enseñarlo.. quiero estar un paso adelante y leyendo en google vi la estructura de un programa en pascal, y mire unos videos y usaban esto.

uses crt; //nose

clrscr; // para limpiar todo el contenido antes de imprimir mensajes

y readkey // viene a ser como un cin.get(); para que no se cierre el programa,

ninguno de esos comandos me anda, me tira error, hasta el readkey; y quisieran que me digan porque, tengo la ultima version de freepascal asi que no se cual será el problema.

Saludos :D
#24
Programación C/C++ / Problema con EOF
30 Agosto 2014, 17:56 PM
 Hola gente del foro, tengo un problema con un programa que al intentar construirlo me tire el error de que EOF no ha sido declarado :

Citar /home/alumno/Escritorio/Proyectos C++/practicas/libroCalificaciones.cpp||In member function 'void libroCalificaciones::recibirCalificaciones()':|
/home/alumno/Escritorio/Proyectos C++/practicas/libroCalificaciones.cpp|48|error: 'EOF' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|

Les dejo la parte del código donde uso EOF, por las dudas trabajo en linux

Código (cpp) [Seleccionar]
void libroCalificaciones::recibirCalificaciones()
{
   int calificacion;
   cout <<"Escriba las calificaciones de letra." <<endl
        <<"Escriba el caracter EOF para terminar la entrada." <<endl;

        while ((calificacion= cin.get()) != EOF)
        {
            switch (calificacion)
            {
                case 'A':
                case 'a':
                aCuenta++;
                break;

                case 'B':
                case 'b':
                dCuenta++;
                break;

                case 'C':
                case 'c':
                cCuenta++;
                break;

                case 'D':
                case 'd':
                dCuenta++;
                break;

                case 'F':
                case 'f':
                fCuenta++;
                break;

                case '\t':
                case '\n':
                case ' ':
                break;

                default:
                cout <<"Se introdujo una tecla de calificacion incorrecta."
                     <<" Escribe una nueva calificacion." <<endl;
                break;

            }
        }
}


Disculoen las molestias, saludos! :)
#25
 Hola gente haciendo un ejercicio de C++, me tope con el problema de que no puedo escribir antes del primer for y nosé por que es así...

Les dejo el código del programa:

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::endl;
using std::cin;


int main()
{
   int contadorV;
   int contadorVertical;

   cout <<"Este texto no se imprime\n";

   // PRIMER FIGURA
   for (contadorV=1;contadorV <= 10; contadorV++) //itera 10
   {
       for(contadorVertical=0;contadorVertical < contadorV;contadorVertical++)
       {
       cout <<"*";
       }
       cout <<endl;
   }
   //SEGUNDA FIGURA
   cout <<"(b)\n";
   for (contadorV=1;contadorV <= 10; contadorV++)
   {
       for (contadorVertical=0;contadorVertical < contadorV; contadorVertical++)
       {
           cout <<"*";
       }
       cout <<endl;
   }

   return 0;
}


Desde ya gracias por cualquier ayuda, Saludos gente :)
#26
 Hola gente, estoy haciendo un programa donde tenga opciones para la consola de linux o windows eso no va al caso, el tema es que por ejemplo el programa pregunta el usuario si quiere hacer ping a algo, y guarda la pagina o la ip en una variable string, lo que intento hacer es que por ejemplo si el usuario ingreso mipagina.net hacer algo así:

system("ping (variable string);

Intenté haciendo system ("ping ".variable) y no me funcionó, si alguien sabría como hacerlo se lo agradecería, desde ya disculpen las molestias :rolleyes:
#27
 Hola gente, tengo una duda, antes lo sabía hacer pero ahora no, y lo que quiero hacer es llamar a la función main, para que empieze el programa de nuevo, trabajo separando la interfaz de la implementacion y en una funcion de c++ intenté hacer return main(); y no funcionó si alguien me ayudaría se lo agradecería.

Ya que estoy quiero saber como haría para hacer un system("pause") y system ("cls"); en linux.

Desde a muchas gracias por cualquier ayuda, saludos ;D
#28
 Hola gente, disculpen las molestias, estoy haciendo unos ejercicios de un libro de C++ y me pide que haga un programa el cual el usuario ingrese un numero entero positivo y este saque su valor..

Para el que no sepa como sacar el factorial de un entero positivo voy a explicarles:

n representa el valor ingresado por el usuario, osea el número entero positivo

Entonces para sacar su factorial se implementa esto:

n= n. n-1 . n-1 .n-1..... así hasta lllegar a 1, por ejemplo si el usuario ingresa el número 5 el programa tendrá que hacer esto:

5= 5 . 4 .3 .2 .1

Dejo el código del programa que hice (el ejercicio me pide hacerlo con for):

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;

int main()
{
int numero;
cout <<"Ingrese un entero positivo para calcular su factorial: ";
cin >> numero;
   int factorial=0;
int numero2=numero;
for (int contador=1;contador < numero;contador++)
{
if (contador == 1)
{
factorial+=numero2 * numero2-1;
numero2-= 2;

}

else
{
factorial*= numero2;
numero2--;
}


}

cout <<"\nFactorial: " <<factorial;
return 0;
}
#29
 Hola gente, disculpen las molestias; tengo un ejercicio que me pide que haga un programa en el cual mediante una instucción for se ingresen valores, y si el usuario ingresa el valor: 9999, el programa no tome ese valor, sume todos los otros valores y los divida por la cantidad de valores ingresados, osea, que saque el promedio de la suma de todos los valores menos el valor 9999..

Quisiera que me digan donde estaría el error para poder solucionarlo, después de estar solucionado si alguién desea poner su propio código, o el código editado que lo ponga, cuando mi problema este solucionado en su título aparecerá [SOLUCIONADO].

Bueno sin más que hablar, dejo el código que hice :)

main.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;

#include <string>
using std::string;
using std::getline;

#include "encabezado.h"

int main()
{
string nombre;

cout <<"Escriba su nombre: ";
getline(cin,nombre);

promedio promedio1(nombre);
promedio1.calcularPromedio();
return 0;
}

encabezado.h
Código (cpp) [Seleccionar]
#include <string>
using std::string;

class promedio
{
public:
promedio(string);
//Funciones establecer;
void establecerNombre(string);
void calcularPromedio();
//Funciones obtener
string obtenerNombre();
int obtenerPromedio();
private:
int promedio1;
string nombreUsuario;
};

encabezado.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;

#include "encabezado.h"

promedio::promedio(string nombre)
{
establecerNombre(nombre);
}

//Funciones establecer

void promedio::establecerNombre(string nombre)
{
if (nombre.length() > 5)
{
nombreUsuario = nombre.substr(0,5);
cout <<"el nombre " <<nombre <<" excede los caracteres maximos(5)" <<endl
<<"Se demilito el nombre a los primero 5 caracteres " <<obtenerNombre() <<endl;
}
else
{
nombreUsuario= nombre;
cout <<"Bienvenido! " <<obtenerNombre();
}
}

//Funciones Calcular

void promedio::calcularPromedio()
{
int suma=0;
int valor=0;
int numeroValores=0;

for (valor; valor != 9999;numeroValores+= 1)
{
cout <<"Escriba el valor: ";
cin >> valor;
if (valor=9999)
{
continue;
}
else
{
suma+=valor;
}

}

cout <<"\nEl promedio es: " << static_cast<double>(suma) / numeroValores <<endl;
}
//Funciones obtener

string promedio::obtenerNombre()
{
return nombreUsuario;
}

#30
 Hola gente del foro, estaba haciendo un programa sencillo que su función es pedirle al usuario que ingrese la cantidad de valores que va a ingresar, el programa lee sus valores y imprime la suma.

Al ingresar la cantidad de 5 valores: 100, 200, 300, 400 y 500 el programa me suma y me devuelve este número:  134516103

Código del programa:

Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;

int main()
{
int valores;
int suma;
int valor;
cout <<"Numero de valores a introducir: ";
cin >> valores;

for (int contador=0; contador < valores; contador++)
{
cout <<"Valor: ";
cin >> valor;
suma+= valor;
}
cout <<"Suma: "<<suma;
return 0;
}
#31
 Hola gente, tengo unas dudas y quisiera saber si alguien me podría ayudar, el tema es así...
Buscando encontré que la instrucción de repetición for es usada para repetición por contador, mientras while es usada para repetición controlada por centinela. ¿Por qué es así?

Las instrucciones de repetición do...while para que es requerida? se para que sirve, pero no se para qué casos tiene un uso especial

Desde ya gracias por cualquier ayuda, Saludos!  ;D
#32
Hola gente del foro, tengo un error al compilar con codeblocks, dejo la imagen y después el código del programa :)



Main.cpp
Código (cpp) [Seleccionar]
   #include <iostream>
   using std::cin;
   using std::cout;
   using std::endl;

   #include "libroCalificaciones.h"

   int main()
   {
   //Inicializacion de variables
   int anchoCuadrado;
   int largoCuadrado;
   cout <<"Ingrese el ancho del cuadrado: ";
   cin >> anchoCuadrado;
   cout <<"Ingrese el largo del cuadrado: ";
   cin >> largoCuadrado;
   cout <<endl <<endl <<endl;

   Cuadrado Cuadrado1(anchoCuadrado,largoCuadrado);
   cin.get();
   cin.get();
   return 0;
   }


libroCalificaciones.h
Código (cpp) [Seleccionar]
   class Cuadrado
   {
   public:
   Cuadrado(int,int);
   void imprime(int,int);
   private:
   int anchoCuadrado;
   int largoCuadrado;
   };


libroCalificaciones.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;

#include "libroCalificaciones.h"

Cuadrado::Cuadrado(int ancho,int largo)
{
imprime(ancho,largo);
}

void Cuadrado::imprime(int a, int l)
{
//Tamaño Cuadrado
anchoCuadrado= a;
largoCuadrado= l;


string caracter = "*";
int contador = 0;

// HORIZONTAL
while (contador < anchoCuadrado)
{
cout <<caracter;
++contador;
}

cout <<endl;
contador = 0; //establece a 0 para el lugar de abajo

//VERTICAL

largoCuadrado -= 2; //por los caracteres que se usa arriba y abajo
int contadorlargo = 0;

while (contadorlargo != largoCuadrado)
{
while (contador < anchoCuadrado)
  {
  cout <<caracter;
  ++contador;
  }
cout <<endl;
contador=0;
++contadorlargo;
}

// HORIZONTAL
while (contador < anchoCuadrado)
{
cout <<caracter;
++contador;
}
}


#33
Hola gente del foro, tengo un problema, hace poco me pase a ubuntu y descarge eclipse y le instale el ctd para poder programar en C y C++, mi problema es que no se por qué no se ejecuta mi programa, voy a decirles los pasos que hago para crear un proyecto...

1- Abro Eclipse

2- Voy a New- C++ Proyect

3- Pongo el nombre del proyecto, pongo empty proyect y pongo Linux GCC y pongo siguiente..

4- Dejo debug y release seleccionados y pongo finish...

Bueno creo un  archivo llamado main.cpp desde el proyect explorer y pongo el codigo de hola mundo..

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;

int main()
{
cout <<"Hola mundo\n";
cin.get();
return 0;
}


Voy a run y pongo run y me tira este error: binary no fount

Leí que tenia que apretar ctrl + b y poner run, pero el error no se fue, si alguién me pudiera ayudar se lo agradecería :)



#34
 Hola gente del foro, hoy he decidido dejar windows e instalar linux, y no se que versión instalar, asi que me gustaría que me recomienden una, dejo las caracteristicas de mi pc :)

Ram: 4gb
Disco: 512 mb
Procesador: amd de 3.4 a 3.6 ghz en turbo
Placa de video: 512 mb geforce9600gt
#35
 Hola gente, estoy haciendo un ejercicio de programación orientada a objetos, antes que nada voy a publicar lo que dice el ejercicio.

Citar
Describa en 200 palabras o menos qué es un automovil y qué hace. Enliste los sustantivos y verbos por separado. En el texto, indicamos que cada sustantivo podría corresponder a un objeto que habrá que construir para implementar un sistema, en este caso un auto. Elija cinco de los objetos que enlistó y, para cada uno, enliste varios atributos y comportamientos. Describa brevemente cómo interactúan estos objetos entre sí, y con los demás objetos en su descripción. Acaba de realizar varios de los pasos claves en un típico diseño orientado a objetos

Ok, se que por ejemplo el comportamiento de un auto puede ser acelerar y el atributo de un auto puede ser el color, pero al hacer atributos y comportamientos de la aceleracion o el frenar de un auto entro en dudas si van en el lugar correcto, yo lo hice así y nose si está bién:

Citar
encender
        comportamiento:
                    encender motor del auto
                    encender luces delanteras
                    encender encender luces traseras
                    consumir combustible
                    hacer ruido del motor
        atributos
                 sin tardar
                 tardar

apagar
        comportamiento:
                    apagar luces delanteras
                    apagar luces traseras
                    dejar de hacer ruido
                    apagar motor del auto
        atributos:
                  sin tardar

acelerar
       comportamiento:
                    aumentar velocidad

       atributos:
                    hasta llegar a 10 km/h tardando 2 segundos
                    hasta llegar a 20 km/h tandando 1 segundos

desacelerar
      comportamiento:
                    reducir velocidad
      atributos:
                    bajar velocidad hasta 10 km/h tardando 1 segundo
                    bajar velocidad hasta 20 km/h tardando 3 segundos

frenar:

      comportamiento:
                    reducir velocidad a 0

      atributos:
                    hacer ruido
                    prender luces rojas

La verdad es que algo tan facil me lo complica mucho, porque nose si lo he entendido bién, de no ser así me gustaría que me den unos atributos y unos comportamientos por ejemplo para encender, solo para tener de ejemplo y entender el tema mejor.

Desde ya gracias por cualquier ayuda, disculpar mi ignorancia  :-\
#36
 Hola gente del foro, estoy haciendo un ejercicio que me pide que haga un programa donde se ingrese un número entero no negativo y que imprima su factorial

Ejemplo:
Si el número ingresado por ejemplo sería 5, para sacar el factorial se hace 5*4*3*2*1= 120, esto mismo intento hacer en el programa, pero no obtengo los resultados que quiero.

Dejo el código de el programa que hice :)

main.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::endl;
using std::cin;

#include "Factorial.h"

int main()
{
int numero;
cout <<"Escriba un numero entero no negativo para calcular su factorial!\n"
<<"Numero: ";
cin >> numero;

Factorial Factorial1(numero);
Factorial1.establecerFactorial();
cout <<"El factorial es: " <<Factorial1.obtenerFactorial() <<endl;
cin.get();
cin.get();
return 0;
}

Factorial.h
Código (cpp) [Seleccionar]
class Factorial
{
public:
Factorial(int);
//Funciones establecer
void establecerNumero(int);
void establecerFactorial();
//Funciones obtener
int obtenerFactorial();

private:
int numeroFactorial;
int resultado;
};

Factorial.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;

#include "Factorial.h"

Factorial::Factorial(int numero)
{
establecerNumero(numero);
}

//Funciones Establecer

void Factorial::establecerNumero(int numero)
{
if (numero > 0)
{
numeroFactorial= numero;
}

else
{
cout <<"\nEl numero ingresado no es correcto!\n";
}
}

void Factorial::establecerFactorial()
{
int numeroMultiplicador = numeroFactorial - 1;

while (numeroMultiplicador != 0)
{
resultado= (resultado + (numeroFactorial * numeroMultiplicador));
--numeroMultiplicador;
}
}

//Funciones Obtener

int Factorial::obtenerFactorial()
{
return resultado;
}



Desde ya gracias por cualquier ayuda  :)
#37
Hola gente, estoy haciendo un ejercicio en C++ y me encuentro con un problema, para que sea más entendible voy a dejar lo que dice dicho ejercicio..

Ejercicio:
Citar(criptografía) Una compañía desea transmitir  datos a través del teléfono, pero le preocupa que sus teléfonos puedan estar intervenidos. Todos los datos se transmiten como enteros de cuatro dígitos. La compañía le ha pedido a usted que escriba un programa que cifre sus datos, de manera que éstos puedan transmitirse con más seguridad. Su programa debe leer un entero de acuatro dígitos introducido por el usuario y cifrarlo de la siguiente manera: reemplace cada dígito con (el resultado de sumar 7 al dígito) modulo 10. Luego intercambie el primer dígito con el tercero, e intercambie el segundo dígito con el cuarto. Después imprima un programa separado que reciba como entrada un entero de cuatro dígitos cifrado, y que lo descifre para formar el número original.

Ok, una vez ya sabido el ejercicio en el cifrador el código que hice fue el siguiente: (dejo lo más importante)

Código (cpp) [Seleccionar]
int digito1, digito2, digito3, digito4;
int sobra;

digito1= numeroIngresado / 1000;
sobra= numeroIngresado % 1000;
digito2= sobra / 100;
sobra= sobra % 100;
digito3= sobra / 10;
digito4= sobra %10;

digito1= ((digito1 + 7) % 10);
digito2= ((digito2 + 7) % 10);
digito3= ((digito3 + 7) % 10);
digito4= ((digito4 +7 ) % 10);

cout <<"\nNumero Cifrado: " <<digito3 <<digito4 <<digito1 <<digito2;


Hasta aquí todo esta bién, por ejemplo ingresando el número 9456 me cifra el número y lo imprime: 2361

Bueno, ahora iría el código del programa que descifra y muestra el número original (nuevamente dejo lo más importante):

Código (cpp) [Seleccionar]
double digito1,digito2,digito3,digito4;
int resto;

digito1= numeroCifrado / 1000;
resto= numeroCifrado % 1000;
digito2= resto / 100;
resto= resto % 100;
digito3= resto / 10;
digito4= resto % 10;

digito1+=3;
digito2+=3;
digito3+=3;
digito4+=3;

cout <<"Numero Descifrado: " <<digito3 <<digito4 <<digito1 <<digito2 <<endl;


Si ingreso el número cifrado (2361) me devuelve el número original...

Pero si en el cifrador hubiera puesto como número original 2361 el programa lo hubiera cifrado a: 3890

El descifrador me devuelve el número "original" como: 123611

Esto sucede a que al sumarle 3 en el descifrador se hace mayor a 9, yo lo hice así (osea sumandole 3) por la siguiente razón...

9 4 5 6

(9  + 7) % 10= 1.6
(4 + 7) % 10= 1.1
(5  + 7) % 10= 1.2
(6  + 7) % 10= 1.3

Entonces me di cuenta que para del resultado por ejemplo 1.6 había que sumarle 3 al resto osea 6 +3= 9 al igual que 1 +3 = 4, etc

Desde ya muchas gracias por cualquier ayuda :)
#38
Hacking / Problema al subir shell
30 Julio 2014, 06:26 AM
Hola gente, estoy haciendo uns experimientos con una pagina que hice, va solo subí los datos al servidor, le hice una inyeccion sql y pude acceder al panel de administrador, ahora desde ahí puedo subir una imagen...... bueno intento subir una shell como imagen lo unico que hace la pagina es subirla al servidor cambiandole el name sin cambiarle la extensión, puedo subir hasta un archivo .php, bueno alquerer subir la shell como imagen .jpg lo unico que logro es entrar en el "la imagen" pero me aparece el codigo php de la shell, osea que no me aparece su interfaz....

¿Alguna ayuda/consejo?
#39
Hola gente, tengo que imprimir las potencias del entero 2, para eso uso un ciclo infinito: while (true) y siempre me imprime cero... sin embargo si le saco la intruccion potencia*=potencia me imprime 2, como tendría que ser.. quisiera saber porque ocurre esto, por las dudas dejo el código

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::endl;

class Potencia
{
public:
void imprimePotencia()
{
int potencia= 2;
while(true)
{
cout <<potencia <<endl;
potencia*= potencia;
}

}
};

int main()
{
Potencia Potencia1;
Potencia1.imprimePotencia();
return 0;
}
#40
Hola gente, estoy teniendo un problema con un código, el tema es que tengo que dibujar
esto en el programa:


********
********
********
********
********
********
********
********


Y nosé por qué no se ejecuta el else  para la línea que tiene un espacio (osea la 2da, 4ta,6ta,8va)

Y quiero hacerlo con while

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::endl;
using std::cin;

class Tablero
{
public:
void imprime()
{
linea=0;
while (linea != 8) // itera 8 veces.
{
if (linea == 0 || linea ==2 || linea== 4 || linea ==6)
{
int dibujaLinea = 0;
while (dibujaLinea > 9)
{
cout <<"*";
++dibujaLinea;
}

}
else
{
cout <<" ";
int dibujaLinea= 0;

while (dibujaLinea < 8) // itera 7 veces
{
cout <<"*";
++dibujaLinea;
}

}
cout <<endl;
++linea;
   }
}

private:
int linea;
};


int main()
{
Tablero Tablero1;
Tablero1.imprime();
cin.get();
return 0;
}


Desde ya agradezco cualquier ayuda   :)
#41
Hola gente estoy haciendo un ejercicio de un libro que tengo, y nose por qué el programa no me da resultados.....

Dejo el ejercicio así saben de que se trata y por si alguien le gustaría hacerlo (no estoy pidiendo que me hagan el ejercicio)

El ejercicio dice lo siguiente:
CitarEscriba un programa que reciba como entrada un entero que contenga solo 0s y 1s (es decir, un entero "Binario"), y que imprima su equivalente decimal. Use los operadores módulo y división para elegir los dígitos del número "binario" una a la vez, de derecha a izquierda. En forma parecida al sistema numérico decimal, donde el dígito más a la derecha tiene un valor posicional de 1 y el siguiente dígito a la izquierda tiene un valor posicional de 10, después 100, después 1000, etcétera, en el sistema numérico binario, el dígito más a la derecha tiene un valor posicional 1, el siguiente dígito a la izquierda tiene un valor posicional de 2, luego 4, luego 8, etcétera. Así, el número decimal 234 se puede interpretar como 2*100 + 3*10 + 4*1. El equivalente decimal del número binario 1101 es 1*1 + 0*2 + 1*4 + 1*8.

Ok, el código que hice que no me imprime nada solo la pregunta del main es:

Main.cpp

Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;

#include "Binario.h"

int main()
{
int numero;
cout <<"Ingrese el numero binario para mostrar su equivalente decimal: ";
cin >> numero;
Binario Binario1(numero);
cin.get();
cin.get();
return 0;
}



Binario.h


Código (cpp) [Seleccionar]
class Binario
{
public:
Binario(int);
void confirmarNumero(int);

};



Binario.cpp
Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;

#include "Binario.h"


Binario::Binario(int numero)
{
confirmarNumero(numero);
}

void Binario::confirmarNumero(int numero)
{
int numeroDivisor = 10;
int escala = 1;
int numeroSacado;

while ((numero / numeroDivisor) == 0)
{



numeroSacado= numero % numeroDivisor;

if (escala == 1)
{
cout <<numeroSacado <<"*1 " ;
}
else
{
cout <<numeroSacado <<"*" <<escala <<" ";
}

numeroDivisor= numeroDivisor*10;
}
}


PD: tengo que desarollar el tema de la variable escala pero eso no influye en el resultado del programa ejecutado
#42
Hola gente, pensé en hacer un programa con instrucciones while (mientras) que lo que haga sea pedir el ancho de un cuadrado y el largo, y el programa lo dibuja con *, quisas sea algo facil de programar con otro tipos de funciones que posea C++ pero la verdad es que yo lo hice con while y me rompí un poco la cabeza, asi que les dejo el codigo para que lo vean los que tengan dificultades con while o simplemente para entender un poco como trabaja el programa.

Lo hice separando la interfaz de la implementacion.

Main.cpp

Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

#include "Cuadrado.h"

int main()
{
//Inicializacion de variables
int anchoCuadrado;
int largoCuadrado;
cout <<"Ingrese el ancho del cuadrado: ";
cin >> anchoCuadrado;
cout <<"Ingrese el largo del cuadrado: ";
cin >> largoCuadrado;
cout <<endl <<endl <<endl;

Cuadrado Cuadrado1(anchoCuadrado,largoCuadrado);
cin.get();
cin.get();
return 0;
}


Cuadrado.h

Código (cpp) [Seleccionar]
class Cuadrado
{
public:
Cuadrado(int,int);
void imprime(int,int);
private:
int anchoCuadrado;
int largoCuadrado;
};


Cuadrado.cpp

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;

#include "Cuadrado.h"

Cuadrado::Cuadrado(int ancho,int largo)
{
imprime(ancho,largo);
}

void Cuadrado::imprime(int a, int l)
{
//Tamaño Cuadrado
anchoCuadrado= a;
largoCuadrado= l;


string caracter = "*";
int contador = 0;

// HORIZONTAL
while (contador < anchoCuadrado)
{
cout <<caracter;
++contador;
}

cout <<endl;
contador = 0; //establece a 0 para el lugar de abajo

//VERTICAL

largoCuadrado -= 2; //por los caracteres que se usa arriba y abajo
int contadorlargo = 0;

while (contadorlargo != largoCuadrado)
{
while (contador < anchoCuadrado)
   {
   cout <<caracter;
   ++contador;
   }
cout <<endl;
contador=0;
++contadorlargo;
}

// HORIZONTAL
while (contador < anchoCuadrado)
{
cout <<caracter;
++contador;
}
}




Eso es todo  ;D
#43
Hola gente, miren tengo una linea de codigo que la verdad no la entiendo mucho, si bien se como funciona el operador ?: y el sigo de modulo (%) no logró entender esta linea:

Código (cpp) [Seleccionar]
cout <<(cuenta % 2 ? "****" : "+++++") << endl;

ok, entiendo que si se cumple Cuenta % 2 se imprime **** de lo contrario se imprime +++++.....

Bueno tambien se que 10 % 5 el resultado es 0.

Lo que no entiendo de la linea es que pone a cuenta despues a modulo y el numero 2, o seria cuenta sobra 2 o seria cuenta % 2 sobra (y eso no lo dice), no se si entienden lo que explico que no entiendo... pero bueno me vendria de 10 que alguien me explique la instruccion..

Desde ya muchas gracias por cualquier ayuda recibida  ::)
#44
Hola gente, tengo un problema con un ejercicio en C++, en el ejercicio tengo que programar un programa que reciba los kilometros conducidos y los ltrs (litros) usados (ambos como enteros) para cada reabastecimiento, y debe imprimir el total de kilometros por litro obtenidos en todos los reabastecimientos hasta este punto.

Ok, hasta aca entendi que tengo dividir los kilometros por los litros, pero al ver en el ejercicio la imagen de el programa ejecutado la verdad es que no entiendo que cuentas hace, les dejo lo que me muestra la imagen...(lo que esta en verde son los datos ingresados por el usuario)

Citar
Escriba los kilómetros usados (-1 para salir): 287
Escriba los litros: 13
KPL en este reabastecimiento: 22.076923
Total KPL: 22.07693

Escriba los kilómetros usados (-1 para salir): 200
Escriba los litros: 10
KPL en este reabastecimiento: 20.000000
Total KPL: 21.173913


El programa obio que sigue, pero no hay diferencia en mostrar mas ingresos de datos por el usuario, mi problema es que no entiendo que calculo hace porque los primeros datos ingresados se que lo que hace es dividir los kilometros por litros, despues imprime los KLP (kilometros por litro), y despues el total, pero ya cuando se ingresan otros kilometros y otros ltrs entiendo la cuenta que hace para el "KPL en este establecimiento" lo que no entiendo es porque muestra ese valor en el TOTAL KPL.

Explico, no quiero que me pasen un codigo porque el ejercicio me pide con instrucciones especiales, no quiero que me hagan un ejercicio solo quiero saber que es lo que pasa ahi :S

Pues, espero haber sido un poco claro y espero que no me haya roto mucho la cabeza para entender que solo es un error del libro  :P

PD: por las dudas me pide valores enteros y ahi me los imprime como double, pero eso lo hago con static_cast :D

Desde ya gracias por cualquier ayuda, Saludos gente  ;-)
#45
Hola gente estoy programando en c++ y al querer pasar desde un objeto argumentos a un constructor de una clase me tira un error, les dejo las lineas de codigo donde estaria mi error:

main.cpp

Código (cpp) [Seleccionar]
int main()
{
Factura factura1("nueve", "clavos olle", "10", "15");
return 0;
}


Factura.h

Código (cpp) [Seleccionar]
class Factura
{
public:
Factura(string,string,int,int);


Factura.cpp


Código (cpp) [Seleccionar]
Factura::Factura(string nPieza, string desPieza, int cantProductosComprar,int preArticulo)
{


El ERROR QUE ME TIRA:
Me dice que ninguna instancia de constructor "Factura :: factura" coincide con la lista de argumentos, y el argumento "nueve" me lo remarca con error, quisas estoy pasando mal los argumentos, espero que me ayuden Saludos  ;D