El objetivo del programa es la bsqueda de cierto carcter elegido por el usuario y su o sus ubicaciones dentro de un texto introducido.
Para esto, el usuario ingresar un texto y al terminar de escribirlo, el programa solicitara el carcter a buscar, una vez se introduce, el programa imprimir en pantalla las veces que dicho carcter aparece en el texto, y adems las posiciones en las que est.
Cdigo
#include<iostream.h> #include<string.h> #include<conio2.h> using namespace std; int main(){ inicio: char a[10000], l, r=0; textcolor(CYAN); cout<<"\tEste programa busca coincidencias de caracteres introducidos"<<endl; cout<<"Introduce un texto..."<<endl; textcolor(RED); cin.getline(a,10000); q: int j=0,x=0; textcolor(CYAN); cout<<"\nIntroduce la letra que deseas buscar: "; textcolor(RED); cin>>l; textcolor(CYAN); cout<<"El caracter '"; textcolor(8); cout<<l; textcolor(CYAN); cout<<"' aparece en las posiciones "; textcolor(8); for(int i=0; i<strlen(a); i++){ j++; if(a[i]==l){ cout<<j<<" "; x++; } } textcolor(CYAN); cout<<"\nEl caracter '"; textcolor(8); cout<<l; textcolor(CYAN); cout<<"' aparece "; textcolor(8); cout<<x; textcolor(CYAN); cout<<" veces."<<endl; textcolor(RED); cout<<"Desea continuar? s/n ..."; cin>>r; cin.ignore(); if(r=='s'){ cout<<"Desea analizar el mismo texto introducido? s/n ..."; cin>>r; cin.ignore();
if(r=='s'){ goto q; } clrscr(); goto inicio; }
cin.get();cin.get();
}
Diagrama de Flujo
Conclusin El programa realizado ejecuta bien su objetivo, como se pudo apreciar en el diagrama de flujo, las operaciones que realiza con sencillas, solo contar e identificar los caracteres, para que esto se pudiera realizar, se utiliza el cdigo ASCII y la librera string.h.
Inicio Texto Contar caracteres introducidos y sus posiciones. Carcter a buscar Buscar coincidencias y ubicaciones del carcter Coincidencias Ubicaciones Repetir Si No Fin
Programa 15 Cuenta Espacios
Objetivo Realizar un programa que cuente el nmero de espacios que existe en un texto introducido, adems de su ubicacin.
Descripcin general del funcionamiento Tras pedir al usuario que introduzca un texto, el programa contar los caracteres introducidos y los identificar, despus de terminar de escribir, el programa imprimir en pantalla los resultados del nmero de espacios que existe en el texto introducido al principio y sus correspondientes ubicaciones.
Cdigo #include<iostream.h> #include<string.h> #include<conio2.h> using namespace std; int main(){ inicio: system("color 03"); char a[10000], r=0; int i=0, j=0,x=0; cout<<"Este programa busca espacios en el texto introducido"<<endl; cout<<"Introduce un texto..."<<endl; textcolor(RED); cin.getline(a,10000); textcolor(8); cout<<"Los espacios se encuentran en las posiciones "; for(i=0; i<strlen(a); i++){ j++; if(a[i]==char(32)){ cout<<j<<" "; x++; } } cout<<"\nEL texto introducido contiene "<<x<<" espacios"<<endl; textcolor(CYAN); cout<<"Desea continuar? s/n ..."; cin>>r; cin.ignore(); if(r=='s'){ clrscr(); goto inicio; }
cin.get();cin.get();
}
Diagrama de flujo
Conclusin El programa detecta espacios en el texto que se le introduce, utilizando el cdigo ASCII, se puede detectar el carcter espacio que es el carcter nmero 32, y as imprimir el nmero de veces que este aparece, adems de imprimir la o las ubicaciones de los espacios dentro del texto.
Inicio Texto Contar caracteres introducidos y sus posiciones. Coincidencias Ubicaciones Repetir Si No Fin Identificar el carcter nmero 32 en el cdigo ASCII (Espacio)
Programa 16 Ordenamiento alfabtico de letras
Objetivo Ordenar alfabticamente las letras de un texto introducido al programa, descartando espacios.
Descripcin general del funcionamiento El programa solicitara al usuario que introduzca un texto, al terminar de escribir, el programa ordenar todas las letras introducidas en el texto, repitindolas en caso de que exista ms de una coincidencia, ordenara tanto maysculas como minsculas.
Cdigo
#include <iostream> #include <conio.h>
int orden (char letras[100],int n);
int main() { char continuar=0; do { clrscr (); int i,j; char letras[100];
char nm; cout<<"\t\t\tOrdenamiento de letras alfabeticamente: \n"; cout<<"Ingrese las letras: "; cin.getline(letras,100); int n=strlen(letras); for(i=0;i<n-1;i++) { for(j=0;j<n-1;j++) { if(letras[j]>letras[j+1]) { nm=letras[j]; letras[j]=letras[j+1]; letras[j+1]=nm; } } } orden (letras,n); cout<<"\n\n"; cout <<endl<<"\nDesea continuar? (s/n):"; cin >> continuar; cin.ignore(); } while (continuar=='s'); } int orden (char letras[100],int n) { int i; cout << "\nOrden: "; for(i=0;i<=n;i++) { cout<<letras[i]; if (i<n) { cout<<" "; } } return 0; }
Diagrama de flujo
Conclusin Este programa fue diseado para ordenar alfabticamente las letras introducidas en un texto, para realizar esto, recurrimos al cdigo ASCII y tomando en cuenta que del carcter 65 al 90 en dicho cdigo representan las letras maysculas y del carcter 97 a 122 representa las letras minsculas, entonces haba que pedir al programa que ordenara los caracteres en forma ascendente tomando en cuenta solo al cdigo ASCII y enseguida imprimir los resultados pero ahora transformando el cdigo mencionado a sus respectivas equivalencias en el cdigo alfanumrico.
Inicio Texto Contar caracteres introducidos y sus posiciones. Ordenar alfabticamente todas las letras Letras del texto en forma ordenada Repetir Si No Fin
Programa 17 Ordenamiento alfabtico de palabras
Objetivo Crear un programa que, al momento de introducir algn texto, separe a este por palabras y las ordene de manera alfabtica.
Descripcin general del funcionamiento El programa solicitar al usuario que introduzca un texto, al hacerlo, el programa leer cada carcter y lo identificara mediante el cdigo ASCII, a travs de esto, ordenara de manera ascendente los nmeros de dicho cdigo que representan a cada carcter, al terminar de ordenar, imprimir las palabras que aparecen en el texto pero ahora en forma ordenada.
int main() { char continuar; do{ clrscr(); char palabras[1000],alfabeto[1000],ordalf[1000],k; int pospal[100],ordnum[100],x=0,j=0,z=0,e,u=0; cout<<"Este odena alfabeticamente las palabras \n"; cout<<"\nIngrece las palabras a ordenar: ";cin.getline(palabras,1000); cout<<"\n"; int o=strlen(palabras); while(u!=5){ for (int i=0;i<o;i++){ int l=i; if(palabras[i]==char(32)){ while(palabras[l+1]==char(32)) { for (int q=l;q<o;q++){ palabras[q+1]=palabras[q+2]; } l++; } } } u++; } int n=strlen(palabras); alfabeto[0]=palabras[0]; pospal[0]=1; for (int i=0;i<n;i++){ x++; if(palabras[i]==char(32)){ pospal[j+1]=x+1; alfabeto[j+1]=palabras[i+1]; j++; } } int m=strlen(alfabeto); for(int i=97;i<=122;i++) { k=i; for(int y=0;y<m;y++) { if(k==alfabeto[y]) { ordalf[z]=alfabeto[y]; ordnum[z]=pospal[y]; z++;} } } palabras[n+1]=char(32); for(int y=0;y<m;y++) { e=ordnum[y]; e=e-1; while(palabras[e]!=char(32)) { cout<<palabras[e]; e++; } cout<<"\n"; } cout<<"\n\nDesea continuar(s/n)? "; cin>>continuar; cin.ignore(); }while (continuar=='s'); }
Diagrama de Flujo
Conclusin Para poder realizar este programa, fue necesario emplear los anteriores realizados, ya que se deban de ordenar las letras alfabticamente e identificar palabras, para lo cual se tienen que detectar espacios, lgico que despus de cada espacio existe una palabra, el cdigo ASCII es esencial para la realizacin de estos programas que trabajan con texto, ya que el texto introducido el programa lo lee como ASCII y ordena su valor en forma ascendente y por ultimo imprime los resultados agrupando el conjunto de caracteres que conforman la palabra y esta la acomoda en su lugar correspondiente dependiendo de las dems palabras y su orden alfabtico.