ejercicio 4

2
Ejercicio 4.cpp 1 #include <iostream>//Salida por pantalla 2 #include <string> 3 int main() { 4 std::string cadena, mensaje; //Variables que almacenan el mensaje original y su traducción 5 std::string A = "0"; 6 std::string B = "100"; 7 std::string C = "1010"; 8 std::string D = "1011"; 9 std::string E = "1100"; 10 std::string F = "1101"; 11 std::string G = "1110"; 12 std::string H = "1111"; 13 std::cout 14 << "Este programa traduce secuencias de bits a caracteres mediante el código siguiente :\nA 0\nB 100\nC 1010\nD 1011\nE 1100 \nF 1101\nG 1110\nH 1111\nIntroduzca una secuencia binaria formada por combinación de las anteriores :" 15 << std::endl; 16 std::cin >> cadena; //Se almacena la secuencia binaria en el string cadena 17 unsigned int i = 0; //Variable que recorre la cadena introducida 18 while (i < cadena.size()) { //Se recorre la cadena completa 19 if (cadena[i] == '0') { 20 mensaje += "A"; 21 i++; 22 } else if (!cadena.compare(i, 3, B)) { //Si son iguales la función miembro compare devuelve 0 23 mensaje += "B"; 24 i += 3; 25 } else if (!cadena.compare(i, 4, C)) { //Si son iguales la función miembro compare devuelve 0 26 mensaje += "C"; 27 i += 4; 28 } else if (!cadena.compare(i, 4, D)) { //Si son iguales la función miembro compare devuelve 0 29 mensaje += "D"; 30 i += 4; 31 } else if (!cadena.compare(i, 4, E)) { //Si son iguales la función miembro compare devuelve 0 32 mensaje += "E"; 33 i += 4; 34 } else if (!cadena.compare(i, 4, F)) { //Si son iguales la función miembro compare devuelve 0 35 mensaje += "F"; 36 i += 4; 37 } else if (!cadena.compare(i, 4, G)) { //Si son iguales la función miembro compare devuelve 0 38 mensaje += "G"; 39 i += 4; 40 } else if (!cadena.compare(i, 4, H)) { //Si son iguales la función miembro compare devuelve 0 41 mensaje += "H"; Page 1

description

ds

Transcript of ejercicio 4

Page 1: ejercicio 4

Ejercicio 4.cpp

1 #include <iostream>//Salida por pantalla2 #include <string>3 int main() {4 std::string cadena, mensaje; //Variables que almacenan el mensaje original y su traducción

5 std::string A = "0";6 std::string B = "100";7 std::string C = "1010";8 std::string D = "1011";9 std::string E = "1100";10 std::string F = "1101";11 std::string G = "1110";12 std::string H = "1111";13 std::cout14 << "Este programa traduce secuencias de bits a caracteres

mediante el código siguiente:\nA 0\nB 100\nC 1010\nD 1011\nE 1100\nF 1101\nG 1110\nH 1111\nIntroduzca una secuencia binaria formada por combinación de las anteriores:"

15 << std::endl;16 std::cin >> cadena; //Se almacena la secuencia binaria en el string

cadena17 unsigned int i = 0; //Variable que recorre la cadena introducida18 while (i < cadena.size()) { //Se recorre la cadena completa19 if (cadena[i] == '0') {20 mensaje += "A";21 i++;22 } else if (!cadena.compare(i, 3, B)) { //Si son iguales la función

miembro compare devuelve 023 mensaje += "B";24 i += 3;25 } else if (!cadena.compare(i, 4, C)) { //Si son iguales la función

miembro compare devuelve 026 mensaje += "C";27 i += 4;28 } else if (!cadena.compare(i, 4, D)) { //Si son iguales la función

miembro compare devuelve 029 mensaje += "D";30 i += 4;31 } else if (!cadena.compare(i, 4, E)) { //Si son iguales la función

miembro compare devuelve 032 mensaje += "E";33 i += 4;34 } else if (!cadena.compare(i, 4, F)) { //Si son iguales la función

miembro compare devuelve 035 mensaje += "F";36 i += 4;37 } else if (!cadena.compare(i, 4, G)) { //Si son iguales la función

miembro compare devuelve 038 mensaje += "G";39 i += 4;40 } else if (!cadena.compare(i, 4, H)) { //Si son iguales la función

miembro compare devuelve 041 mensaje += "H";

Page 1

Page 2: ejercicio 4

Ejercicio 4.cpp

42 i += 4;43 } else {44 std::cout << "La cadena introducida no es una cadena válida."45 << std::endl;46 return -1;47 }48 }49 std::cout << "El mensaje correspondiente a la cadena " << cadena << "

es "50 << mensaje << "." << std::endl;51 return 0;52 }53

Page 2