elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:15  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Posición en el abecedario [Batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Posición en el abecedario [Batch]  (Leído 2,964 veces)
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Posición en el abecedario [Batch]
« en: 12 Abril 2009, 01:54 »

Pedir una cadena al usuario, y de cada caracter de la cadena indicar que posición ocupa en el abecedario :
Código:
Cadena : Leonardo
L = 12
e = 5
o = 15
n = 14
a = 1
r = 18
d = 4
o = 15
Press any key...
Código
@echo off
setlocal enabledelayedexpansion
:code
set /p "cadena=Cadena : "
if not defined cadena (goto:code)
set "abecedario=abcdefghijklmnopqrtsuvwxyz"
set /a "longitud=0"
set "cadena2=%cadena%"
set /a "contador=1"
:bucle
if not defined cadena (goto:next)
set "cadena=%cadena:~1%"
set /a "longitud+=1"
goto:bucle
:next
set /a "longitud-=1"
for /l %%$ in (0,1,%longitud%) do (
call :etiqueta !cadena2:~% style="color: #448888;">%$,1!
)
goto:eof
:etiqueta
set /a "contador=1"
set "caracter=%1"
for /l %%_ in (0,1,25) do (
if /i ["!abecedario:~% style="color: #448888;">%_,1!"]==["% style="color: #448888;">caracter%"] (call:view !caracter! !contador!)
set /a contador+=1
)
goto:eof
:view
echo %1 = %2
goto:eof
 


En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
DarkItachi


Desconectado Desconectado

Mensajes: 511


Itachi Uchiha


Ver Perfil
Re: Posición en el abecedario [Batch]
« Respuesta #1 en: 11 Mayo 2009, 14:38 »

El mismo ejercicio en C++:

Código
#include <iostream>
using namespace std;
char abecedario[25];
int pos_abc(char letra,char abc[]=abecedario);
int main()
{
   char cadena[50];
   int i=0;
   for (char b='a';b<='z';b++)
   {
       abecedario[i]=b;
       i++;
   }
   cout<<"Introduzca palabra: ";
   cin>>cadena;
   cout<<endl;
   for (int f=0;f<strlen(cadena);f++)
   {
       cout<<cadena[f]<<" = "<<pos_abc(cadena[f])<<endl;
   }
   cout<<endl;
   system("pause");
}
int pos_abc(char letra,char abc[])
{
   for (int i=0;i<strlen(abc);i++) //recorre la cadena
   {
       if (letra==abc[i]) { return i+1; } //Devuelve posicion
   }
   return -1; //Si llega a esta parte, es decir, la letra no esta
              //en el abecedario devolvera -1
}
 

La función también acepta abecedarios personalizados.


En línea

Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: Posición en el abecedario [Batch]
« Respuesta #2 en: 7 Junio 2009, 19:47 »

Aqui pongo la solución en C:
Código
#include <stdio.h>
signed int busqueda(char caracter);
int main(void)
{
   char cadena[200];
   printf("Cadena : ");
   scanf("%199[^\n]", cadena);
   for(signed int i = 0; cadena[i] != '\0'; i++)
   printf("%c = %d\n", cadena[i], busqueda(cadena[i]));
   return 0;
}
signed int busqueda(char caracter)
{
   char abecedario[] = "abcdefghijklmnopqrstuvwxyz";
   for(signed int i = 0; abecedario[i] != '\0'; i++)
   if(caracter == abecedario[i])
   return i+1;
}
 
Salida:

Código:
C:\>dudas
Cadena : Guitarra
G = 16
u = 21
i = 9
t = 20
a = 1
r = 18
r = 18
a = 1

C:\>
« Última modificación: 7 Junio 2009, 19:49 por Leo Gutierrez. » En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Eliptico

Desconectado Desconectado

Mensajes: 153


Ver Perfil
Re: Posición en el abecedario [Batch]
« Respuesta #3 en: 9 Junio 2009, 04:55 »

¡¡¡Buenas!!!

Aqui va uno que tambien reconoce mayusculas.

Código
#include <stdio.h>
#include <stdlib.h>
 
#define MAX_CAD 50
 
int main (int argc,char* argv[])
{
   char cad[MAX_CAD],i;
 
   printf("Introduce una cadena: ");
   fgets(cad,MAX_CAD,stdin);
 
   for(i=0; cad[i]!='\n' ; i++)
   {
       if(cad[i]>='a' && cad[i]<='z')
           printf("%c = %d\n", cad[i], cad[i] - 'a' + 1);
       else if(cad[i]>='A' && cad[i]<='Z')
           printf("%c = %d\n", cad[i], cad[i] - 'A' + 1);
       else if(cad[i]==' ')
           printf("ESPACIO\n");
       else
           printf("caracter no reconocido.\n");
   }
 
   system("PAUSE");
 
   return 0;
}
 

¡¡¡Un saludo!!!
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: Posición en el abecedario [Batch]
« Respuesta #4 en: 9 Junio 2009, 07:44 »

Este también reconoce mayusculas :
Código
#include <stdio.h>
#include <ctype.h>
signed int busqueda(char caracter);
int main(void)
{
   char cadena[200];
   printf("Cadena : ");
   scanf("%199[^\n]", cadena);
   for(signed int i = 0; cadena[i] != '\0'; i++)
   printf("%c = %d\n", cadena[i], busqueda(cadena[i]));
   return 0;
}
signed int busqueda(char caracter)
{
   char abecedario[] = "abcdefghijklmnopqrstuvwxyz";
   for(signed int i = 0; abecedario[i] != '\0'; i++)
   if(tolower(caracter) == abecedario[i])
   return i+1;
}
 

Salida:
Código:
C:\>codes
Cadena : LaGuitarra
L = 12
a = 1
G = 7
u = 21
i = 9
t = 20
a = 1
r = 18
r = 18
a = 1

C:\>

Saludos.
« Última modificación: 9 Junio 2009, 07:47 por Leo Gutierrez. » En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Eliptico

Desconectado Desconectado

Mensajes: 153


Ver Perfil
Re: Posición en el abecedario [Batch]
« Respuesta #5 en: 9 Junio 2009, 18:39 »

Pues si, y queda mas claro.

¡¡¡Un saludo!!!
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines