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 - nazscka

#1
Programación C/C++ / Ayudaaa
3 Junio 2020, 22:49 PM
Me pidieron esto para una tarea y hace horas que trato de resolverlo sin encontrar resultado:

"Un grupo de pequeños amigos suele reunirse para jugar a los espías. Como pretenden imitar a los buenos espías, tienen sus medios para codificar mensajes. En particular, para informar a sus colegas si sus actividades de espionaje han dado resultado o no, han ideado el siguiente método. Los chicos tienen una hilera 'base' de letras del alfabeto internacional. Cuando quieren transmitirle a otro un mensaje indicando el resultado exitoso de su misión, envían por celular una palabra que sólo puede leerse en la hilera base de izquierda a derecha. Si la misión resultó fallida, mandan una palabra que en la hilera base sólo puede leerse al revés, es decir de derecha a izquierda. A veces necesitan avisar que la misión encomendada está demorada, por lo que no pueden usar el método anterior. En este caso mandan una palabra que no puede leerse en ningún sentido.

Para ayudar a los chicos, se te pide que escribas un programa mensajes.cpp que, recibiendo una palabra y teniendo la secuencia de letras 'base', decida si la palabra está o no, y en el primer caso en qué dirección se pudo leer."

Por ejemplo:
Entrada:
ABDLFJKDSHKHLIDFNMENSAJESJDSKFJSDFNISDFJDFSLKJDFSLDFS
MENSAJE

Salida:
SI
I

Entrada:
ABDLFJKDSHKHLIDFEJASNEMJDSKFJSDFNISDFJDFSLKJDFSLDFS
MENSAJE

Salida:
SI
D
Ejemplo

Entrada:
ABDLFJKDSHKHLIDFMENSAJEJDSKFJSDFNISDFJDFSLKJDFSLDFS
SECRETO

Salida:
NO

esto se lo que tengo hasta ahora, pero la función es un int, y debería ser un bool.

Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
using namespace std;

int Sepuedeleer (string base, string palabra){
string base2;
int ban;

for (int i= base.size(); i >=0 ; i--){
base2+= base[i];
}

if(base.find(palabra) !=base.npos){
ban=1;
}

if(base2.find(palabra) !=base.npos){
ban=2;
}

return ban;
}

int main(){
string base, palabra;
int ban;

cout <<"Ingrese el mensaje: ";
getline(cin, base);

cout <<"Ingrese la palabra clave: ";
cin >>palabra;

ban= Sepuedeleer(base, palabra);

switch(ban){

case 0: cout <<"No" <<endl;
break;

case 1: cout <<"Si" <<"\nI" <<endl;
break;

case 2: cout <<"Si" <<"\nD" <<endl;
break;
}

return 0;
}


Gracias de antemano