jueves, 17 de febrero de 2011

Laboratorio02 - Cadenas




Ola a todos este es el Laboratorio 02 del curso de estructura de datos, que trata sobre cadenas, espero les sirva de ayuda... Saludos.

Ejercicios:

01. Implementar la Longitud de una Cadena:

#include<iostream.h>
#include<conio.h>
using namespace std;
int main()
{
      char A[50];
      int i=0;
      cout<<"\n\n\n\n\n\n";
      cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
      cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
      cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
      cout<<endl<<"\t     º           Laboratio 02 - Ejercicio 01              º  ";
   cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
   cout<<endl<<"\t   >> Presione cualquier tecla para continar ...";
   getch();
   system("CLS");
  
   cout<<endl<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
      cout<<endl<<"\t\tº  DISENIE E IMPLEMENTE UN ALGORITMO PARA   º";
      cout<<endl<<"\t\tº  HALLAR LA LONGITUD DE UNA CADENA:        º";
      cout<<endl<<"\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"<<endl;
     
      cout<<endl<<"  Ingrese una cadena: ";
      gets(A);
     
         while(A[i]!=NULL)
         {
            i++;
         }
     
      cout<<endl;
      cout<<"  La longitud de la cadena es: "<<i<<endl<<endl;
     
   system("pause");       
}

02. Implemente un algoritmo que nos diga si una cadena es Palindroma o no:

#include <iostream.h>
#include<conio.h>
#include<string.h>
using namespace std;
int main()
{
   char frase[50];
   int longi,i=0,band=1,inicio=0,final,p;
  
       cout<<"\n\n\n\n\n\n";
       cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
       cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
       cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
       cout<<endl<<"\t     º           Laboratio 02 - Ejercicio 06              º  ";
    cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
       cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t   >> Presione cualquier tecla para continuar ...";
       getch();
       system("CLS");
      
       cout<<endl<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
      cout<<endl<<"\t\tº  DISENIE E IMPLEMENTE UN ALGORITMO QUE NOS         º";
      cout<<endl<<"\t\tº  DIGA SI LA CADENA INGRESADA ES UN PALINDROMO:     º";
      cout<<endl<<"\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"<<endl;
  
       cout<<endl<<" Ingrese una Cadena: ";
       gets(frase);
  
       longi=(strlen(frase));
       final=longi-1;
       p=(longi-1)/2;
       {
       while(i<=p&&band==1)
       {
          if(frase[inicio]!=frase[final])
          {
              band=0;
          }  
          else
          {
              inicio++;
              final--;
          }
          i++;
       }
       }
       if(band==1)
       {
             cout<<endl<<" La cadena ingresada es palindromo =D ";
       }
       else
       {
             cout<<endl<<" La cadena ingresada no es palindromo =( ";
       }
  
       cout<<endl<<endl;
      
       system("pause");
}

03. Implementar un codigo que imprima el mensaje valido solo si el 4to caracter es una "C" y el
     8vo caracter es un "8" , si a los 3 intentos falla el programa debera cerrarse:

#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <stdio.h>
#define MAX 100

using namespace std;
main()
{
    int i=0,k=0,band=1;
    char cadena[MAX];
   
        cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
        cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
        cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
        cout<<endl<<"\t     º              Laboratio 02 - Cadenas                º  ";
        cout<<endl<<"\t     º                  Ejercicio 02                      º  ";
     cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
     cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
       cout<<endl<<"\t IMPLEMENTAR UN CODIGO QUE IMPRIMA EL MENSAJE VALIDO SI EL CUARTO";
       cout<<endl<<"\t CARACTER EN UNA C Y EL OCTAVO ES UN 8; SI A LOS 3 INTENTOS FALLA,";
        cout<<endl<<"\t LA APLICACION DEBERA CERRARSE: ,"<<endl;
       
    while (k<3)
    {     
           cout<<"\n\t >> Ingresar la palabra : ";
           gets(cadena);
           for(i=0;i<=(strlen(cadena)-1);i++)
             {
             }
           if((cadena[3]=='c'||'C')&&(cadena[7]=='8'))
               {
                   cout<<"\n\t\tLa palabra ingresada es Correcta !!! \n\n";
                   system("pause");
                   break;
               }
           else
               {
                   cout<<"\n\t\tIntento fallido Nro"<<k+1<<"\n";
               }
           k=k+1;
    } 
}

04. Ordenacion Alfabetica:

#include <iostream>
#include <cstring>
using namespace std;
void llenado_arr(char **, int);
void burbuja(char **, int);
void mostrar(char **, int);
void limpiar(char **, int);
int main()
{
   system("title Ordenacion Alfabetica");
   int tam, i;
   char **nombre;
   char R = 'S';
       
    do
    {
    cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
    cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
    cout<<endl<<"\t     º           CURSO ::: ESTRUCTURA DE DATOS            º  ";
    cout<<endl<<"\t     º              Laboratio 02 - Cadenas                º  ";
    cout<<endl<<"\t     º                  Ejercicio 03                      º  ";
    cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
    cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
    cout<<endl<<"\t     IMPLEMENTAR UNA APLICACION QUE LEA EL NOMBRE Y APELLIDO ";
    cout<<endl<<"\t     DE 5 PERSONAS Y LAS ORDENE ALFABETICAMENTE:  \n"<<endl;
   cout<<"\t >> Cuantos nombres deseas introducir : ";
   cin>>tam;
   nombre = new char*[tam];
   for(i=0; i<tam; i++)
   { nombre[i]= new char[30];}
   cin.ignore();
   llenado_arr(nombre, tam);
   burbuja(nombre, tam);
   mostrar(nombre, tam);
   limpiar(nombre, tam);
   cout<<"\n";
   cout<<"\t >> DESEA CONTINUAR [S/N]  :  ";
   cin>>R;
       
   system("CLS");
       
   }
   while ( R == 'S' || R == 's' );
}
/* FUNCION LLENADO */
void llenado_arr(char **nombre, int tam)
{
   int i;
   cout<<"\n";
   for(i=0;i<tam;i++)
   {
      cout<<"\t    Nombre "<<i+1<<" : ";
      gets(nombre[i]);
   }
}
/* ORDENACION BURBUJA */
void burbuja(char **nombre, int tam)
{
   int j, i;
   char temp[30];
  
   for(i = 0; i < tam-1; i++)
   {  
       for(j = tam-1; j > i; j--)
       {  
           if(strcmp(nombre[j-1],nombre[j]) > 0)
           {
              strcpy(temp, nombre[j-1]);
              strcpy(nombre[j-1], nombre[j]);
              strcpy(nombre[j], temp);
           }
       }
   }
}
      
/* FUNCION LIMPIAR */
      
void limpiar(char **nombre, int tam)
{
   int i;
   for(i=0; i<tam; i++)
   delete nombre[i];
   delete nombre;
}
/* FUNCION MOSTRAR */
void mostrar(char **nombre, int tam)
{
   cout << "\n\t >> Lista de Nombres Ordenados :\n" << endl;
   for(int i=0; i<tam; i++)
   { cout<<"\t    "<<nombre[i]<<endl;}
}

05. Convertir una Palabra de Mayuscula a Minuscula:

/*Codigo Ascii de letra Mayusculas
A=65,B=66,C=67,...,Z=90
Codigo Ascii de letra Minusculas
a=97,b=98,c=99,...,z=122 */
#include "iostream"
#include "stdio.h"
#define MAX 100
using namespace std;
typedef char Cadena[MAX];
/*Convierte todos los caracteres de
una cadena  a mayusculas*/
void aMayuscula(Cadena &cad)
{   int i=0;  
    int des='a'-'A';//desplazamiento = 97-65 =32  
    while(cad[i]!='\0')//caracter de terminacion '\0'  
    {     
       /* si esta en minuscula, resta el desplazamiento para obtener      
       su correspondiente en mayuscula  */                                
       if(cad[i]>='a' && cad[i]<='z')       
       cad[i]=cad[i]-des;     
       i++;  
    }
}
/* Convierte todos los caracteres de
una cadena  a minusculas */
void aMinuscula(Cadena &cad)
{  int i=0;  
   int des='a'-'A';  
   while(cad[i]!='\0')  
   {     
        /* si esta en mayuscula, resta el desplazamiento para obtener      
        su correspondiente en minuscula  */        
        if(cad[i]>='A' && cad[i]<='Z')       
        cad[i]=cad[i]+des;     
        i++;  
   }
}
/* MENU PRINCIPAL */
main()

   Cadena cad;
  
   cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
   cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
   cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
   cout<<endl<<"\t     º              Laboratio 02 - Cadenas                º  ";
   cout<<endl<<"\t     º                  Ejercicio 04                      º  ";
   cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
   cout<<endl<<"\t        CONVERTIR UNA PALABRA DE MAYUSCULA A MINUSCULA: "<<endl;  
   cout<<"\n\t >> Ingrese Palabra : ";  
   cin.getline(cad,100);  
   aMayuscula(cad);  
   cout<<"\n\t\tConvertir a Mayuscula : "<<cad<<endl;  
   aMinuscula(cad);  
   cout<<"\t\tConvertir a Minuscula : "<<cad<<" ";
   cout<<"\n\n\t >> ";
   system("pause");
}

06. Lea una Frase y muestrela por Palabra:

#include<iostream.h>
#define MAX 50
using namespace std;
void separapalabras(char[]);
main()
{
    char frase[MAX];
   char R = 'S';
       
   do
   {
   cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
   cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
   cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
   cout<<endl<<"\t     º              Laboratio 02 - Cadenas                º  ";
   cout<<endl<<"\t     º                  Ejercicio 05                      º  ";
   cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
   cout<<endl<<"\t        LEA UNA FRASE Y MUESTRELA POR PALABRA: "<<endl;
   cout<<"\n\t >> Ingrese frase: ";
   cin.getline(frase,MAX);
   cout<<"\n\t >> Las palabras en la frase son : "<<endl;
   separapalabras(frase);
   cout<<"\n";
   cout<<"\t >> DESEA CONTINUAR [S/N]  :  ";
   cin>>R;
   cin.ignore();
       
   system("CLS");
       
   }
   while ( R == 'S' || R == 's' );
}

void separapalabras(char frase[])
{
   int i=0,k=0;
   char pal[MAX];
   while(frase[i])
   {
      if(frase[i]!=' ')
      {
         pal[k]=frase[i];
         k++;              
      }
      else
      {
         pal[k]=NULL;
         cout<<"\t\t\t\t\t   "<<pal<<endl;
         k=0;   
      }
      i++;
   }
  
   pal[k]=NULL;
   cout<<"\t\t\t\t\t   "<<pal<<endl;   
}

07. Encripte una Cadena sumando sus ASCII con los de la CLAVE:

#include<iostream.h>
#define MAX 50
void encriptar(char[],char);
void desencriptar(char[],char);
main()
{
  char frase[MAX],clave;
  char R = 'S';
       
  do
  {
  cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
  cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
  cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
  cout<<endl<<"\t     º              Laboratio 02 - Cadenas                º  ";
  cout<<endl<<"\t     º                  Ejercicio 06                      º  ";
  cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
  cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
  cout<<endl<<"\t   ENCRIPTE UNA CADENA SUMANDO SUS ASCCII CON LOS DE LA CLAVE : \n";
  cout<<"\n\t >> Ingrese frase : ";
  cin.getline(frase,MAX);
  cout<<"\n\t >> Ingrese clave : ";
  cin>>clave;
 
  encriptar(frase,clave);
  cout<<"\n\t\t La Frase encriptada es: "<<frase<<endl;
 
  cout<<"\n\t >> Ingrese clave para desencriptar: ";
  cin>>clave;
  desencriptar(frase,clave);
  cout<<"\n\t\t La frase desencrptada es: "<<frase<<endl;
  cout<<"\n\n";
  cout<<"\t >> DESEA CONTINUAR [S/N]  :  ";
  cin>>R;
  cin.ignore();
       
  system("CLS");
       
  }
  while ( R == 'S' || R == 's' );
}
void encriptar(char frase[],char clave)
{
   for(int i=0;frase[i];i++)
   { frase[i]=frase[i]+clave; }    
}
void desencriptar(char frase[],char clave)
{
   for(int i=0;frase[i];i++)
   { frase[i]=frase[i]-clave; }    
}

No hay comentarios.:

Publicar un comentario