Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-08-2007
Avatar de gerupc
gerupc gerupc is offline
Miembro
 
Registrado: jul 2007
Ubicación: Universidad de Deusto
Posts: 61
Poder: 17
gerupc Va por buen camino
Question Ejercicio con Posiciones de dígitos

Hola,

una vez más...me he bloqueado con un ejercicio, y el tema es, que no sé como tratar las posiciones de los digitos pertenecientes a determinada cifra.

El enunciado del problema es el siguiente:

Código:
Se introduce por el teclado una clave formada por un número entero de 5 cifras. Esta clave se considera correcta siempre que el valor del ultimo digito leído sea igual al ultimo digito de la suma de los 4 primeros dígitos de la clave. El programa deberá validar la clave y escribir en pantalla si es correcta o no.
Ejemplo:
24195 -> Suma = 2+4+1+9 = 16 􀃎 (5 <> 6) -> INCORRECTA
17480 -> Suma = 1+7+4+8 = 20 􀃎 (0 = 0) > CORRECTA
Y no sé cómo decirle al programa: 'si el último dígito de tal cifra, es igual a tal digito de tal cifra...luego...'

Es decir mi problema es la posición de los dítios, que no se cómo tratarlas, no el ejercicio en sí.

Si me pudieseis echar una mano, os lo agradecería.

Un saludo,

Geru.
__________________
Mi Blog
---------------------
Universidad de Deusto
ESIDE-Escuela Superior de Ingenieros Deusto
Responder Con Cita
  #2  
Antiguo 16-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
¿Cuando lees la clave, la lees como un string o como un numero?
Responder Con Cita
  #3  
Antiguo 16-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Jo jo jo, ahora ya hacemos hasta tareas

Código Delphi [-]
var
  i, Acumulado :Integer;
  UltimoDigito :String;
begin
  Acumulado := 0;
  UltimoDigito := Edit1.Text[Length(Edit1.Text)];
  for i := 1 to Length(Edit1.Text)-1 do
  begin
    Acumulado  := Acumulado + StrToInt(Edit1.Text[i]);
  end;

  if IntToStr(Acumulado)[Length(IntToStr(Acumulado))] = UltimoDigito then
    ShowMessage('Correcto')
  else
    ShowMessage('InCorrecto');
end;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 16-08-2007
Avatar de gerupc
gerupc gerupc is offline
Miembro
 
Registrado: jul 2007
Ubicación: Universidad de Deusto
Posts: 61
Poder: 17
gerupc Va por buen camino
Smile

Hola,

gracias por contestar :-)

@Seoane: pues la verdad, no sé :-S, he empezado a hacerlo como integer, pero la verdad es que no sé. ¿Cómo sería mejor?

@Johnny: muchas gracias, pero no puedo utilizar funciones tan avanzadas, ya que estos ejercicios únicamente me permiten solucionarlos con estructuras de control anidadas, bucles... y poco más :-) Pero te agradezco mucho tu aporte.

Un saludo,

Geru.
__________________
Mi Blog
---------------------
Universidad de Deusto
ESIDE-Escuela Superior de Ingenieros Deusto
Responder Con Cita
  #5  
Antiguo 16-08-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
El código de jhonny no es tan avanzado que digamos, además no veo otra forma de hacerlo.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 16-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Pues mas o menos es igual de complicado:

Aqui te lo dejo leyendo la clave como integer:
Código Delphi [-]
var
  i,j,k: Integer;
begin
  Writeln('Introduce la clave:');
  Readln(i);
  j:= i mod 10;
  k:= 0;
  while i > 0 do
  begin
    inc(k,i mod 10); // Esto es igual a k:= k + (i mod 10);
    i:= i div 10;
  end;
  if k mod 10 = j then
    Writeln('La clave es correcta')
  else
    Writeln('La clave no es correcta');
end.
Responder Con Cita
  #7  
Antiguo 16-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
A continuación... un lujo que uno se puede dar, solo de la manera mas rebuscada del mundo...

seoane, tu funcion tiene un pequeño problemita:

Código Delphi [-]
var
  i,j,k: Integer;
begin
  Writeln('Introduce la clave:');
  Readln(i);
  j:= i mod 10;
  k:= 0;
  while i > 0 do
  begin
    inc(k,i mod 10); // Esto es igual a k:= k + (i mod 10);
    i:= i div 10;
  end;
  if k mod 10 = j then
    Writeln('La clave es correcta')
  else
    Writeln('La clave no es correcta');
end; //Aqui iba ; no . 

Bueno gerupc, como bien dice D&W la funcion que te mostre no es muy avanzada, de hecho me parece mas avanzada la de seoane
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 16-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Perdone usted, pero cuando yo pongo un punto es porque es un punto
Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i,j,k: Integer;
begin
  Writeln('Introduce la clave:');
  Readln(i);
  j:= i mod 10;
  k:= 0;
  while i > 0 do
  begin
    inc(k,i mod 10);
    i:= i div 10;
  end;
  if k mod 10 = j then
    Writeln('La clave es correcta')
  else
    Writeln('La clave no es correcta');
end.

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con ejercicio en Delphi gerupc Varios 5 11-08-2007 21:39:28
Como usar solo dos posiciones decimales alcides Varios 9 02-04-2007 19:31:31
Ejercicio Solarintg Varios 1 02-12-2006 15:48:07
Mover posiciones dentro de un list Box creus Varios 13 04-11-2006 18:03:44
posiciones decimales karocs Varios 6 12-09-2004 19:24:01


La franja horaria es GMT +2. Ahora son las 19:35:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi