Recent

Author Topic: Un bucle...  (Read 2140 times)

mav

  • Jr. Member
  • **
  • Posts: 79
Un bucle...
« on: June 13, 2021, 08:15:34 pm »
Hola, buenas tardes.
¿Como diseñariamos un bucle con estas características?.
    Tenemos una cadena de longitud n, hacemos un xor del elemento 1 con el elemento 2, el resultado xor elemento 3, resultado xor elemento4...así hasta el
último elemento...¡¡Qué trabajo me cuestan los bucles >:( >!!.  :) :)
          for i := 1 to length(cadena) do
         begin
         ??????????????????
         end;

mav

  • Jr. Member
  • **
  • Posts: 79
Re: Un bucle...
« Reply #1 on: June 13, 2021, 08:25:09 pm »
¿Algún buen libro sobre arrays, matrices, bucles...no los principios-inicios, algo un poco mas complicado, no importa si es en inglés?
Give me titles. Por supuesto si es Pascal la lengua ..mejor!!!
Saludos.
 

Seenkao

  • Hero Member
  • *****
  • Posts: 546
    • New ZenGL.
Re: Un bucle...
« Reply #2 on: June 13, 2021, 09:01:08 pm »
n = length(string)
Code: Pascal  [Select][+][-]
  1. ...
  2. var
  3.   mas: array[0..n] of integer;
  4.   i, z: integer;
  5. begin
  6.   i := 0;
  7.   while i < n do
  8.   begin
  9.     z := mas[i] xor mas[i + 1];  // hacer los datos entrantes en consecuencia
  10.     inc(i);
  11.   end;
  12. end;

это не зависит от ЯП.

traductor de Google:
no depende del lenguaje de programación.
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Edson

  • Hero Member
  • *****
  • Posts: 1301
Re: Un bucle...
« Reply #3 on: June 13, 2021, 10:55:56 pm »
Hola, buenas tardes.
¿Como diseñariamos un bucle con estas características?.
    Tenemos una cadena de longitud n, hacemos un xor del elemento 1 con el elemento 2, el resultado xor elemento 3, resultado xor elemento4...así hasta el
último elemento...¡¡Qué trabajo me cuestan los bucles >:( >!!.  :) :)
          for i := 1 to length(cadena) do
         begin
         ??????????????????
         end;

Hay muchas formas de hacerlo, esta es una:

Code: Pascal  [Select][+][-]
  1. var
  2.   cadena:string = 'Hola';
  3.   i, resultado: Integer;
  4. begin
  5.   resultado := ord(cadena[1]);  //Cargamos primer caracter
  6.   for i := 2 to length(cadena) do begin //A prtir del segundo caracter
  7.     resultado := resultado xor ord(cadena[i]);
  8.   end;
  9.   writeln(resultado);
  10.   Readln();
  11. end.
  12.  
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

mav

  • Jr. Member
  • **
  • Posts: 79
Re: Un bucle...
« Reply #4 on: June 13, 2021, 11:30:30 pm »
 :) :)Muchas gracias Edson, funciona sin problemas

Code: Pascal  [Select][+][-]
  1. procedure TForm1.BitBtn1Click(Sender: TObject);
  2. var
  3.   nombre       : string;
  4.   i, resultado : integer;
  5.  
  6. begin
  7.   nombre:= Edit1.Text;
  8.   resultado := Ord(nombre[1]);
  9.     for i:= 2 to length(nombre) do
  10.     begin
  11.       resultado := resultado xor Ord(nombre[i]);
  12.     end;
  13.  
  14.      Edit2.Text := IntToStr(resultado);
  15.      Edit3.Text := IntToStr(resultado-$1B);
  16. end;                                            

 :) :)Saludos

 

TinyPortal © 2005-2018