Seguridad Wireless - Wifi
General => Foro libre - Offtopic => Mensaje iniciado por: cuentista 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
-
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
-
Pues va a ser que no funciona, pero gracias.
A ver si alguien sabe como hacerlo
-
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);
};
-
perdona, no recordaba que las cadenas empezaban en 0
#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 devuelveC:\Users\XXX\Documents>prueba.exe
1
aunque ahora que me fijo bien es una tonteria añadir el 0 xDDD
#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'));
}
-
En este me da error
invalid conversion from `char*' to `char'
In function `int valor(char)':
Gracias por la ayuda, cuando lo saque lo pondre aqui
saludos
-
En este me da error
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
-
Al final lo he hecho asi:
#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;
}
-
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
-
Pues si buen invento este de Julio asi solo el sabía lo que escribia.
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.
-
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,
system("cls");
Esto no suele ser muy buena solucion ya que no en todos los sistemas funciona, en linux no se usa cls