Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   programa sumador (https://www.clubdelphi.com/foros/showthread.php?t=59344)

roman 25-08-2008 18:09:22

¿Por que no vale? Usa un while ¿no? Si prefieren así:

Código Delphi [-]
function Promedio(ValorInicial, ValorFinal: Integer): Double;
begin
  {$HINTS OFF}
  while false do
    ;
  {$HINTS ON}

  Result := (ValorInicial + ValorFinal) / 2;
end;

:D

// Saludos

ContraVeneno 25-08-2008 18:22:54

Cita:

Empezado por roman (Mensaje 309267)
¿Por que no vale? Usa un while ¿no?


Delphius 25-08-2008 18:33:38

Cita:

Empezado por ContraVeneno (Mensaje 309277)

No pude evitar reirme con esa animación:D:D:D ¿De donde las sacas?

Por cierto, tampoco es necesario llevar la cuenta de elementos entre un número y otro. Si se hiciera uso del while y se recorriera los números en un rango, pues ¿que no es que basta con dividir la suma con la diferencia entre el máximo y el mínimo?;)

Saludos,

ContraVeneno 25-08-2008 19:05:19

Cita:

Empezado por Delphius (Mensaje 309281)
No pude evitar reirme con esa animación:D:D:D ¿De donde las sacas?
...¿que no es que basta con dividir la suma con la diferencia entre el máximo y el mínimo?

Las obtengo de gamereplays.org.... sobre la imagen, dale click con el botón derecho y luego en "Copiar dirección de la imagen" y así es como las puedo poner.

y respecto a tu segunda pregunta, creo que te hace falta leer el primer mensaje de Román en este hilo, eso fue precisamente lo que él hizo, por eso dije que era abuso de poder de conocimiento (que no todos tenemos). :D:D Y puse que "eso me pasa por pensar como programador" porque hice lo que pidieron, sin pensar que hay caminos mucho más fáciles.

Delphius 25-08-2008 19:20:35

Cita:

Empezado por ContraVeneno (Mensaje 309300)
Las obtengo de gamereplays.org.... sobre la imagen, dale click con el botón derecho y luego en "Copiar dirección de la imagen" y así es como las puedo poner.

y respecto a tu segunda pregunta, creo que te hace falta leer el primer mensaje de Román en este hilo, eso fue precisamente lo que él hizo, por eso dije que era abuso de poder de conocimiento (que no todos tenemos). :D:D Y puse que "eso me pasa por pensar como programador" porque hice lo que pidieron, sin pensar que hay caminos mucho más fáciles.

Gracias por el dato,
No se porque no se me pasó por la cabeza lo del botón secundario. Ando en otra nube:rolleyes:

A ver, creo que no se me entendió. A lo que voy es que si se emplease un ciclo para ir desde el elemento inicial hasta el final para llevar la suma y la cuenta... pues, como que hacemos una operación al vicio. ¿De que sirve contar los elementos si sabemos cuantos son?

(10 + 11 + ... + 49 + 50)/41 = 30

(10 + 11 + ... + 49 + 50)/((50-40) + 1) = 30

¿Se entiende?

Ya se que es lo mismo sumar los extremos directamente y dividirlos por la mitad. Yo hacía referencia a ese paso innecesario de contar los elementos.

Saludos,

Caral 25-08-2008 19:22:04

Hola
Voy a hacer una apuesta::D
A que tsue pregunta como se usa la función de Roman.:D;)
Si no supo como hacerlo con el ejemplo sencillo de cHackAll, vamos a ver si puede con la función.
No se valen mensajes.:D:D
Yo apuesto a que pregunta.:rolleyes:
Saludos

egostar 25-08-2008 19:25:02

Cita:

Empezado por Delphius (Mensaje 309305)
Gracias por el dato,
No se porque no se me pasó por la cabeza lo del botón secundario. Ando en otra nube:rolleyes:

A ver, creo que no se me entendió. A lo que voy es que si se emplease un ciclo para ir desde el elemento inicial hasta el final para llevar la suma y la cuenta... pues, como que hacemos una operación al vicio. ¿De que sirve contar los elementos si sabemos cuantos son?

(10 + 11 + ... + 49 + 50)/41 = 30

(10 + 11 + ... + 49 + 50)/((50-40) + 1) = 30

¿Se entiende?

Ya se que es lo mismo sumar los extremos directamente y dividirlos por la mitad. Yo hacía referencia a ese paso innecesario de contar los elementos.

Saludos,

Pues eso mismo y como dice roman, para que tanto brinco estando el piso tan parejo.:rolleyes:

Cita:

10+50=60/2=30
Salud OS

Delphius 25-08-2008 19:34:56

Cita:

Empezado por egostar (Mensaje 309307)
Pues eso mismo y como dice roman, para que tanto brinco estando el piso tan parejo.:rolleyes:


Salud OS

Eso lo sabemos amigo, pero si recuerdas a tsue le pidieron que lo realice implementando el ciclo while. Por ello va mi comentario: es al vicio ir contando, si inicialmente de partida ya sabemos cuantos elementos hay desde uno hacia otro con una simple resta.

Calculo que el objetivo del profesor de tsue es practicar el uso de ciclos, y le pidió que calcule promedios.

¿Tanto embrollo hicimos por esto?

Código Delphi [-]
function Promedio(Inicial, Final: integer): double;
var suma, Ini: integer;
begin
  suma: integer;
  Ini: inicial;
  while Ini <= final do
    begin
      suma := suma + Ini;
      inc(Ini);
    end;
   result := suma / (Final - Inicial + 1);   
end;

Saludos,

maeyanes 25-08-2008 19:39:38

Corrigiendo un par de errores de Delphius:

Código Delphi [-]
function Promedio(Inicial, Final: integer): double;
var
  suma, Ini: integer;

begin
  suma := 0;
  Ini := inicial;
  while Ini <= final do
  begin
    suma := suma + Ini;
    inc(Ini)
  end;
  result := suma / (Final - Inicial + 1)
end;


Saludos... :D :D

Delphius 25-08-2008 19:43:18

Cita:

Empezado por maeyanes (Mensaje 309314)
Corrigiendo un par de errores de Delphius:

Código Delphi [-]function Promedio(Inicial, Final: integer): double; var suma, Ini: integer; begin suma := 0; Ini := inicial; while Ini <= final do begin suma := suma + Ini; inc(Ini) end; result := suma / (Final - Inicial + 1) end;



Saludos... :D :D

¡Auch! Eso dolió:mad::D

Saludos,

roman 25-08-2008 19:49:47

No sé si el profesor se tomará a mal esto:

Código Delphi [-]
function Promedio(ValorInicial, ValorFinal: Integer): Double;
var
  BeStupid: Boolean;

begin
  Result := 0;
  BeStupid := true;

  while BeStupid do
  begin
    Result := (ValorInicial + ValorFinal) / 2;
    BeStupid := false;
  end;
end;

// Saludos

ContraVeneno 25-08-2008 22:03:52

jejejeje... tal vez ya sería demasiado... :D:D

Delphius, cierto, cierto, ya veo el punto al que te refieres y sí tienes razón.

Robert01 26-08-2008 00:29:12

Me pregunto:

¿Que va a pasar si hay alguno que no está atento y trata de calcular la media de una serie de datos cualquiera aplicando la función propuesta?

10,11, 10, 15, 12,15, 15,10, 14,20

Saludos

tsue 26-08-2008 01:16:34

muchas gracias por toda la ayuda que me hab brindado, logre terminar el programa desde el domingo pero como era para el lunes no iba a postearlo asta que pasara la entrega de tarea ya que alguien podia piratearlo y luego tendria problemas con el profe bueno este es el codigo que hice me base mucho en el codigo de caral y en el lenguaje ensamblador
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit3: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var numinicial, numfinal, numactual, cantidad, total: integer;
begin
   numactual := 0;
   cantidad := 0;
   numinicial := 10;
   numfinal := 50;
   while numinicial <= numfinal do
   begin
   Inc(numactual, numinicial);
   Inc(numinicial);
   Inc(cantidad);
   end;
   total:= numactual div cantidad;
   Edit3.Text:= IntToStr(Total);
end;

procedure TForm1.Button2Click(Sender: TObject);
var numinicial, numfinal, numactual, cantidad, total: integer;
begin
   numactual := 0;
   cantidad := 0;
   numinicial := strToint(Edit4.Text);
   numfinal := strToint(Edit5.Text);
   while numinicial <= numfinal do
   begin
   Inc(numactual, numinicial);
   Inc(numinicial);
   Inc(cantidad);
   end;
   total:= numactual div cantidad;
   Edit6.Text:= IntToStr(Total);
end;

end.

cHackAll 26-08-2008 01:38:43

Cita:

Empezado por Robert01 (Mensaje 309137)
....pero lo que si despertó fue la confusión, está claro ahí arriba....

Cita:

Empezado por tsue (Mensaje 309388)
...me base mucho en el codigo de caral y en el lenguaje ensamblador

Ja, siempre se aprende algo nuevo y de esta historia solo me queda dar la razon a Robert01, al parecer si lo he confundido un poquito al muchacho :D pero es para mi un consuelo:

Cita:

Empezado por Robert01 (Mensaje 309136)
Lo haré cuando tenga tiempo

Saber que algún dia las críticas se convertiran en algo más util para la comunidad.

Saludos

Mya 26-08-2008 02:03:33

Cita:

Empezado por tsue (Mensaje 309388)
muchas gracias por toda la ayuda que me hab brindado, logre terminar el programa desde el domingo pero como era para el lunes no iba a postearlo asta que pasara la entrega de tarea ya que alguien podia piratearlo y luego tendria problemas con el profe bueno este es el codigo que hice me base mucho en el codigo de caral y en el lenguaje ensamblador
Código Delphi [-]unit Unit1;

interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm)
Edit3: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private { Private declarations } public { Public declarations } end;

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
var numinicial, numfinal, numactual, cantidad, total: integer;
begin numactual := 0; cantidad := 0; numinicial := 10; numfinal := 50; while numinicial <= numfinal do begin Inc(numactual, numinicial); Inc(numinicial); Inc(cantidad); end;
total:= numactual div cantidad;
Edit3.Text:= IntToStr(Total);
end;

procedure TForm1.Button2Click(Sender: TObject);
var numinicial, numfinal, numactual, cantidad, total: integer;
begin numactual := 0; cantidad := 0; numinicial := strToint(Edit4.Text); numfinal := strToint(Edit5.Text); while numinicial <= numfinal do begin Inc(numactual, numinicial); Inc(numinicial); Inc(cantidad); end;
total:= numactual div cantidad;
Edit6.Text:= IntToStr(Total);
end;

end.

porcierto me puse a leer los mensajes y creo que perdiste la apuesta caral.

Caral 26-08-2008 03:00:57

Hola
Claro que no perdí la apuesta, nunca pregunto por la función, por eso me da la razón en pensar que nunca la entendió (ni yo).:D
Me gusto la parte en la que mezclo el código de cHackAll, humildemente modificado por mi con el código ensamblador, que por cierto esta tan bien logrado que lo escondió dentro del código delphi.:D:D;)
Maestros han creado a un genio sin saberlo.:D:eek:
Saludos

Robert01 26-08-2008 03:02:47

Ese código en ensamblador está realmente bueno.

Robert01 26-08-2008 03:04:09

Lo siento, parece que le di dos veces al botón de enviar

Mya 26-08-2008 04:47:47

Cita:

Empezado por Caral (Mensaje 309403)
Hola
Claro que no perdí la apuesta, nunca pregunto por la función, por eso me da la razón en pensar que nunca la entendió (ni yo).:D
Me gusto la parte en la que mezclo el código de cHackAll, humildemente modificado por mi con el código ensamblador, que por cierto esta tan bien logrado que lo escondió dentro del código delphi.:D:D;)
Maestros han creado a un genio sin saberlo.:D:eek:
Saludos

no se si te burlas de el o le estas dando un punto bueno, mejor aclara no valla a ser que piense lo mismo

juanelo 26-08-2008 05:55:30

Cita:

Empezado por Mya (Mensaje 309415)
no se si te burlas de el o le estas dando un punto bueno, mejor aclara no valla a ser que piense lo mismo

Yo creo que no hay que aclarar nada, y que cada quien saque sus conclusiones.:rolleyes::confused::D

Caral 26-08-2008 17:11:02

Hola
Cita:

Empezado por Mya (Mensaje 309415)
no se si te burlas de el o le estas dando un punto bueno, mejor aclara no valla a ser que piense lo mismo

A buen entendedor pocas palabras.:D
Saludos

roman 26-08-2008 17:18:04

A mi me parece que aquí tenemos un caso de doble personalidad :rolleyes:

// Saludos

egostar 26-08-2008 18:03:45

Cita:

Empezado por roman (Mensaje 309499)
A mi me parece que aquí tenemos un caso de doble personalidad :rolleyes:

// Saludos

Pues viniendo el comentario de la fuente que viene no hay motivo para la duda, es una doble personalidad ;)

Salud OS

Mya 28-08-2008 02:58:37

Cita:

Empezado por egostar (Mensaje 309518)
Pues viniendo el comentario de la fuente que viene no hay motivo para la duda, es una doble personalidad ;)

Salud OS

no me habia fijado que ya habia respuestas, con eso q' dices de doble personalidad no se por que presiento que estas disiendo que soy tsue, si es eso siento que me estas ofendiendo no te molestes tsue (es solo que no me gusta que me confundan con alguien mas), ademas tsue es novato en esto de la programacion, yo sere nueva en este foro pero pienso que se mas q' tsue

Pero si me he equivocado con respecto a lo que querias decir con tu comentario de doble personalidad me disculpo

egostar 28-08-2008 17:06:58

Cita:

Empezado por Mya (Mensaje 309882)
no me habia fijado que ya habia respuestas, con eso q' dices de doble personalidad no se por que presiento que estas disiendo que soy tsue, si es eso siento que me estas ofendiendo no te molestes tsue (es solo que no me gusta que me confundan con alguien mas), ademas tsue es novato en esto de la programacion, yo sere nueva en este foro pero pienso que se mas q' tsue

Pero si me he equivocado con respecto a lo que querias decir con tu comentario de doble personalidad me disculpo

Hola

No es mi intención ofenderte, solo que si roman ha dicho

Cita:

Empezado por roman
A mi me parece que aquí tenemos un caso de doble personalidad

// Saludos

Él tiene elementos (ya que es moderador del foro) para saber algunas cosas que a simple vista no vemos los demas, algo vio que le hace sospechar, solo es eso, si no es así pues te reitero mis disculpas.

Salud OS

Mya 29-08-2008 05:03:29

Ip
 
Cita:

Empezado por roman (Mensaje 309499)
A mi me parece que aquí tenemos un caso de doble personalidad :rolleyes:

// Saludos

me imagino que el metodo que tienes para ver es la ip, pues bueno la mayor parte del tiempo pongo los post en la escuela para lo que lei de tsue pueda talvez que este estudiando donde yo estoy y siendo el laboratorio de computo tiene un solo servidor, no me sorprenderia que fuera tsue quien tmb aya posteado desde hay,


La franja horaria es GMT +2. Ahora son las 00:12:12.

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