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ú

Mensajes - i-node

#11
Cita de: boctulus en  1 Mayo 2016, 20:41 PM
No veo funciones, necesitas dos una ida y otra de vuelta

Se podria hacer con funciones, desde luego. Pero no es necesario. El ejercicio pide dos programas, el primero ya esta hecho. Y puedo hacer el segundo, siempre y cuando sepa que es lo que debe hacer para calcular el numero de vuelta partiendo de el numero cifrado.
#12
Programación C/C++ / Problema criptograma
1 Mayo 2016, 20:01 PM
Hola,

Tengo el siguiente enunciado, pero como no tengo ni idea de criptografia ni tampoco mucho de matematicas, la verdad.. No se como realizar el segundo programa. El primero ya esta hecho y os lo pongo aqui.

Gracias.

Una empresa desea transmitir datos via telefonica, pero le preocupa que sus telefonos pudieran ser intervenidos. Todos los datos se transmiten como enteros de cuatro digitos. La empresa le ha pedido que escriba un programa que encripte los datos para que puiedan transmitirlos de manera mas segura. Su programa debe leer un entero de cuatro digitos y encriptarlo de la siguiente manera: reemplace cada digito por (la suma de ese digito mas 7) modulo 10. Despues intercambie el primer digito con el tercero, intercambie el segundo con el cuarto, y despliegue el entero cifrado. Escriba un programa separado que ingrese el entero de cuatro digitos cifrado, y lo desencripte para formar el numero original.

#include <iostream>

using std::cout;
using std::cin;

int main() {
const int tamano = 4;
int numero = 0;
int numeroTmp[tamano];
int cont = tamano -1;

while(numero < 1000 || numero > 9999) {
cout << "Introduce el mensaje de 4 digitos: ";
cin >> numero;
}

while(numero != 0) {
numeroTmp[cont] = ((numero % 10) + 7) % 10; // Separamos los digitos, sumamos 7 y hacemos modulo 10, colocandolos del derecho
numero = numero / 10;
cont--;
}

numero = numeroTmp[0]; // Comienza el intercambio del primer digito con el tercero
numeroTmp[0] = numeroTmp[2];
numeroTmp[2] = numero;

numero = numeroTmp[1]; // Comienza el intercambio del segundo digito con el cuarto
numeroTmp[1] = numeroTmp[3];
numeroTmp[3] = numero;

cout << "El numero cifrado es: ";

for(int i= 0; i<tamano; i++) // Desplegamos numero cifrado
cout << numeroTmp[i];

cout << "\n";

return 0;
}
#13
Muy interesantes todos los ejemplos. Muchas gracias a todos.
#14
Chicos. Siento el fallo. El enunciado del problema dice que solo se pueden utilizar estas instrucciones de salida:

cout << "*";
cout << " ";
cout << endl;

Lo añado en el OP tambien.
#15
Programación C/C++ / Ejercicio iteraciones
29 Abril 2016, 18:29 PM
Hola,

Estoy aprendiendo C++ y llevo toda la tarde devanandome los sesos, pensando cual es la forma mas elegante de realizar este ejercicio. Solo se me ha ocurrido esta, pero estoy seguro de que hay una forma menos guarra de hacerlo.

Solo se pueden utilizar estas tres instrucciones de salida:

cout << "*";
cout << " ";
cout << endl;

#include <iostream>

using std::cout;
using std::cin;

int main() {
       for(int linea = 1;linea <= 8;linea++) {
               if(linea % 2 != 0)
                       for(int i = 0; i <= 15; i++)
                               if(i % 2 == 0)
                                       cout << '*';
                               else
                                       cout << ' ';

               else
                       for(int i = 0; i <= 16; i++)
                               if(i % 2 == 0)
                                       cout << ' ';
                               else
                                       cout << '*';
               cout << "\n";
       } // Fin de bucle for
       return 0;
} // Fin de main


El resultado ha de ser exactamente igual al de este ejercicio.


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


Para que nos entendamos.. No me sirve esto:


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


Seguro que es culpa mia que no doy para mas, pero se tiene que poder hacer de una manera mas elegante que como lo he hecho yo seguro.

Muchas gracias!
#16
Bases de Datos / Re: Base de datos de ciudades
27 Marzo 2014, 10:47 AM
Si, pero es que parece que esten repetidos en varios idiomas o algo asi, el nombre cambia ligeramente pero cambia.
#17
Bases de Datos / Re: Base de datos de ciudades
26 Marzo 2014, 18:33 PM
bueno, aun sin el codigo postal me serviria.
#18
Bases de Datos / Base de datos de ciudades
26 Marzo 2014, 14:24 PM
Hola,

Me gustaria tener una base de datos que contuviese los siguientes datos:

pais (nombre completo, no el codigo)
comunidad autonoma (o estado, como prefieran llamarlo)
ciudad
codigo postal

Me he descargado alguna de las bd que tiene maxmind, pero me estoy volviendo loco.. vienen repetidas un monton de veces, o no traen todos los datos que necesito, o los paises vienen por codigo (aunque esto no seria un mayor problema ya que podria solucionarlo mediante updates).

ayuda por favor!
#19
Bueno, al final lo he hecho asi.. que es mas corto, aunque sigue llevando curro. Os pego el trozo que interesa..

Código (php) [Seleccionar]
try {

foreach($_GET as $key => $value) {
if($value != '') $datos[$key] = $value;
}

$parametros = count($datos);

$sql="SELECT * FROM principal WHERE ";
$pdo = new PDO("$dbtype:host=$dbhost;dbname=$dbname;charset=$dbcharset", $dbuser, $dbpass);
$pdo->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$i = 0;

foreach($datos as $key => $value) {
if ($parametros > 1 && $i < ($parametros - 1)) $sql .= "$key LIKE :$key AND ";
if ($parametros < 2 || $i == ($parametros -1))  $sql .= "$key LIKE :$key";

$i++;
}

$gdb = $pdo->prepare($sql);

foreach($datos as $key => $value) {
$gdb->bindParam(":$key", $value, PDO::PARAM_STR);
}

$gdb->execute();

$i=0;
#20
Hola a todos,

Mi consulta es la siguiente.. Tengo un formulario con varios campos input que sirve para realizar consultas a una base de datos. Obviamente, no siempre se hara una busqueda utilizando todos los campos, por lo tanto el numero de parametros que se le pasan a la consulta select no siempre va a tener el mismo numero de campos a buscar.

Tal vez en alguna ocasion quiera filtrar por pais con un:

SELECT * FROM principal WHERE pais="España";

Otra vez tal vez quiera filtrar por nombre:

SELECT * FROM principal WHERE nombre="Pedro";

O tal vez quiera buscar un cliente Pedro de España:

SELECT * FROM principal WHERE nombre="Pedro" AND pais="España";

Hay alguna manera de hacer esto que no sea con if's y utilizando empty y alguna variable de control para saber cuantos parametros se le van a añadir? Porque lo veo algo engorroso y poco profesional xD

Gracias por adelantado.
Un saludo.