Avatar billede Slettet bruger
15. september 2002 - 14:04 Der er 9 kommentarer og
1 løsning

Hvert andet bogstav

Hvordan laver man en funktion så hver andet bogstav bliver konverteret noget andet, fx fra

dette er en test

til

d[e]t[t]e [e]r e[n] t[e]s[t]

fc
Avatar billede hermandsen Juniormester
15. september 2002 - 16:43 #1
Okay, for det første ville det se således ud:

d[e]t[t]e[ ]e[r] [e]n [t]e[s]t

...hvis det skulle være hvert anden char!

Så brug denne funktion:

function Hest(S: String): String;

  function Hale(C: Char): String;
  begin
    Result := '[' + C + ']'
  end;

var
  I: Integer;
begin
  for I := 0 to Length(S) do
    if I mod 2 = 0 then
      Result := Result + S[I]
    else
      Result := Result + Hale(S[I]);
end;
Avatar billede loke-liscom Nybegynder
16. september 2002 - 11:53 #2
hermandsen :
>Okay, for det første ville det se således ud:
>d[e]t[t]e[ ]e[r] [e]n [t]e[s]t
Nej, det ville se sådan her ud lol
din : d[e]t[t]e[ ]e[r] [e]n [t]e[s]t
min : d[e]t[t]e[ ]e[r] [e]n[ ]t[e]s[t]
Avatar billede Slettet bruger
16. september 2002 - 16:27 #3
hermandsen, din kode virker ikke
Avatar billede athlon-pascal Juniormester
16. september 2002 - 19:06 #4
FormatC ->
Prøv med

function Hest(S: String): String;

  function Hale(C: Char): String;
  begin
    Result := '[' + C + ']'
  end;

var
  I: Integer;
begin
  for I := 0 to Length(S) do
    if I mod 2 = 0 then
      Result := Result + S[I]
    else
      Result := Result + Hale(S[I]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Caption := Hest('dette er en hest');
end;
Avatar billede hermandsen Juniormester
16. september 2002 - 22:32 #5
Min bærbar hvor Delphi er inde er lige til reperation, men så vidt jeg kan se skulle der da ikke være noget galt med min kode...

Kan godt se at jeg lavede en lille brøler med alle de [x]f-tingester, but nobody's perfect! ;)
Avatar billede loke-liscom Nybegynder
17. september 2002 - 08:45 #6
Nu har jeg heller ikke testet det i delphi men for mig ser din kode også god nok ud.

/klaus
Avatar billede athlon-pascal Juniormester
17. september 2002 - 20:05 #7
Prøv med

function Hest(S: String): String;

  function Hale(C: Char): Char; //Her har jeg ændret!
  begin
    Result := '[' + C + ']'
  end;

var
  I: Integer;
begin
  for I := 0 to Length(S) do
    if I mod 2 = 0 then
      Result := Result + S[I]
    else
      Result := Result + Hale(S[I]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Caption := Hest('dette er en hest');
end;


Ved ikke om det har nogen betydning?
Avatar billede athlon-pascal Juniormester
17. september 2002 - 20:08 #8
Det har ingen betydning, glem det!
Avatar billede athlon-pascal Juniormester
17. september 2002 - 20:10 #9
Eller jo, det har betydning, brug det ikke, det gir' fejl!

Brug en af de første udgaver.
Avatar billede hermandsen Juniormester
20. september 2002 - 21:09 #10
Så kom bærbaren tilbage fra reperation og funktionen er testet! ;)
Der er en enkelt lille fejl ved min funktion... for-løkken skal selvfølgelig startes ved 1! ;)

Her er et helt program der virker...

Project1.dpr
----------------------------------------------------------------------
program Project1;
{$APPTYPE CONSOLE}

function Hest(S: String): String;

  function Hale(C: Char): String;
  begin
    Result := '[' + C + ']'
  end;

var
  I: Integer;
begin
  for I := 1 to Length(S) do
    if I mod 2 = 0 then
      Result := Result + S[I]
    else
      Result := Result + Hale(S[I]);
end;

var
  S: String;
begin
  Readln(S);
  Writeln(Hest(S));
  Readln;
end.
----------------------------------------------------------------------

Bare kompiler det, skriv en lille sætning tryk enter, se resultatet og tryk enter igen for at lukke programmet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester