?>/script>'; } ?> Como hacer este programa c++ Widgets Magazine

Autor Tema: Como hacer este programa c++  (Leído 5378 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cuentista

  • Visitante
Como hacer este programa c++
« en: 12-03-2011, 17:20 (Sábado) »
Hola, soy nuevo en esto de programar y necesito ayuda.

Quiero hacer un programa en C++ que haga lo siguiente:

Valores de entrada.-------------------------Me asigna esta salida
A ------------------------------------------ 1
B -------------------------------------------2
C------------------------------------------- 3
D------------------------------------------- 4
E--------------------------------------------5
F ------------------------------------------- 6



Ejemplo: introduzco el texto BACA y me devuelve el programa 2131.

Alguien me puede decir como hacerlo?

Muchas gracias y saludos


berni69

  • Visitante
Re: Como hacer este programa c++
« Respuesta #1 en: 12-03-2011, 18:34 (Sábado) »
Código: [Seleccionar]
char TABLA[7]="ABCDEF";

int valor(char c){
int i;
for (i=0;i<7;i++){
      if (c=TABLA[i]) break;                   
}
return i;
}

No se mucho de c ni c++ pero creo que se podria resolver "asi" diciendo que el valor 7 de la funcion implica que no es valido lo que le has  introducido.  esta funcion la metes en un bucle de lo que quieras, para las veces que le introduzcas caracteres

PD: no lo he revisado quizas tengas problemas de sintaxis porque el c no es i fuerte


cuentista

  • Visitante
Re: Como hacer este programa c++
« Respuesta #2 en: 12-03-2011, 19:36 (Sábado) »
Pues va a ser que no funciona, pero gracias.
A ver si alguien sabe como hacerlo


avt3335555

  • Visitante
Re: Como hacer este programa c++
« Respuesta #3 en: 12-03-2011, 19:55 (Sábado) »
Mira esto :

switch(var int o char)

{

case const1: instrucción(es);

break;

case const2: instrucción(es);

break;

case const3: instrucción(es);

break; ………………

default: instrucción(es);

};


berni69

  • Visitante
Re: Como hacer este programa c++
« Respuesta #4 en: 12-03-2011, 20:03 (Sábado) »
perdona, no recordaba que las cadenas empezaban en 0

Citar
#include <stdio.h>


char TABLA[8]="0ABCDEF";

int valor(char c){
int i;
for (i=1;i<7;i++){
      if (c=TABLA) break;                  
}
return i;
}


int main(){



printf("%d",valor('A'));
}

y esto me devuelve
Citar
C:\Users\XXX\Documents>prueba.exe
1

aunque ahora que me fijo bien es una tonteria añadir el 0 xDDD

Citar
#include <stdio.h>


char TABLA[7]="ABCDEF";

int valor(char c){
int i;
for (i=0;i<7;i++){
      if (c=TABLA) break;                   
}
return i+1;
}


int main(){



printf("%d",valor('A'));
}

« Última modificación: 12-03-2011, 20:07 (Sábado) por βerni69 »

cuentista

  • Visitante
Re: Como hacer este programa c++
« Respuesta #5 en: 12-03-2011, 20:26 (Sábado) »
En este me da error

Citar
invalid conversion from `char*' to `char'
In function `int valor(char)':


Gracias por la ayuda, cuando lo saque lo pondre aqui
saludos


berni69

  • Visitante
Re: Como hacer este programa c++
« Respuesta #6 en: 12-03-2011, 20:28 (Sábado) »
En este me da error

Citar
invalid conversion from `char*' to `char'
In function `int valor(char)':


Gracias por la ayuda, cuando lo saque lo pondre aqui
saludos
te dejaste una c
int valor(char c)

a mi me compila y lo he probado esta vez


cuentista

  • Visitante
Re: Como hacer este programa c++
« Respuesta #7 en: 13-03-2011, 19:46 (Domingo) »
Al final lo he hecho asi:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;
 
void menu(int &opcion)
{
printf("Que desea hacer:\n\n1.-Encriptar\n2.-Desencriptar\n3.-Salir\n\nElige opcion:");
scanf("%d",&opcion);
}

void pedir(char palabra[1000],int &num)
{
printf("Introduce la palabra, frase o texto que desees encriptar: ");
fflush(stdin);
cin.getline(palabra,1000);
printf("Introduce el numero de des/codificacion: ");
scanf("%d",&num);

}

void desencriptar(char palabra[1000],int num)
{
int i=0;
while(palabra[i]!='\0')
{
palabra[i]=palabra[i]-num;
i++;
}
printf("\nLa palabra, frase o texto desencriptado es:\n\n%s\n\n",palabra);
}

void encriptar(char palabra[1000],int num)
{
int i=0;
char letra;
while(palabra[i]!='\0')
{
palabra[i]=palabra[i]+num;
i++;
}
printf("\nLa palabra, frase o texto encriptado es:\n\n%s\n\n",palabra);
i=2;
while(i!=1)
{
         printf("Deseas (D)esencriptarlo o (C)ontinuar? ");
         fflush(stdin);
      scanf("%c",&letra);
      letra = tolower(letra);
         if(letra=='d')
         {
              desencriptar(palabra, num);
              i=1;           
         }
         else if(letra=='c')
         {
              i=1;
         }
         else
         {
              printf("La letra introducida es incorrecta");
         }
    }
}

int main()
{
   

char palabra[1000];
int num,opcion;
bool i=false;

system("Title Cifrado Cesar");
printf("Este programa se basa en el cifrado <cesar>.\n\n");
while(i!=true)
{
menu(opcion);
system("cls");
if(opcion==1)
{
pedir(palabra, num);
encriptar(palabra, num);
}
else if(opcion==2)
{
pedir(palabra, num);
desencriptar(palabra, num);
}
else if(opcion==3)
{
printf("\t#########################\n\t#Programado By Cuentista#\n\t#########################\n\n Bye bye.\n\n Presiona una tecla para salir.");
fflush(stdin);
getchar();
i=true;
}
}

return 0;

}


berni69

  • Visitante
Re: Como hacer este programa c++
« Respuesta #8 en: 13-03-2011, 20:04 (Domingo) »
Anda, pero si querias cifrar como julio cesar  ;D

PD: para los que no sepan como lo ahcia http://es.wikipedia.org/wiki/Cifrado_C%C3%A9sar


cuentista

  • Visitante
Re: Como hacer este programa c++
« Respuesta #9 en: 13-03-2011, 20:14 (Domingo) »
Pues si buen invento este de Julio asi solo el sabía lo que escribia.

Código: [Seleccionar]
La codificación se puede representar usando aritmética modular, transformando las letras en números, de acuerdo al esquema A = 0, B = 1,..., Z = 26

La codificación de la letra x con un desplazamiento n puede ser descrita matemáticamente como:2
 En(x) = x+n mod 27

La decodificación se hace de manera similar:
 Dn(x) = x-n mod 27

Revisar la formula de decodificacion pues no se aplica correctamente para x-n menor que cero.
 

La operación de sustitución se conserva siempre a lo largo de todo el mensaje, por lo que el cifrado se clasifica como un cifrado de tipo sustitución monoalfabética, en oposición a la sustitución polialfabética.


berni69

  • Visitante
Re: Como hacer este programa c++
« Respuesta #10 en: 13-03-2011, 20:25 (Domingo) »
Este ejemplo de codificacion lo hicimos en fundamentos de programacion de ada en la uni es bastante simple pero se entiende bien


Por otro lado,
Citar
       system("cls");

Esto no suele ser muy buena solucion ya que no en todos los sistemas funciona, en linux no se usa cls