upcase i tablice wielowymiarowe

0

próbuje rozgryść ten błąd z zamiana liter z małych na duże w tablicy wielowymiarowej, googlowałem ale w sumie nic ciekawego nie znalazłem :(

możecie powiedzieć co zrobiłem nie tak?? z góry thx!!

 procedure duze (var t:tekst);
    begin
          for i:=1 to 2 do
                   for j:=1 to 2 do
                      t[i][j]:=upcase('t[i][j]');

oczywiście i,j to zmienne globalne :) a t typu zdefiniowanego na string
przy kompilacji wyskakuje (przy instrukcji upcase) błąd 106: character expression expected

0

upcase przyjmuje char

0

Bo powinno być:

Var C: Integer;
{...}
For C := 1 To LenGth(t[i][j]) Do
 T[i][j][c] := upcase(t[i][j][c]);

:P

Lepiej użyć:

T[i][j] := UpperCase(T[i][j]);
0

no wiem ze upcase przyjmuje wartość char :) tylko jak zrobić by te czary z tej komórki w tabeli zamieć na wielkie litery:)

a co do polecenia uppercase jak pisałeś to pisze unkown identifier :D (zamieniłem ostatni wiersz może coś w uses sekcji musze dodać albo co??)

0

AnsiUpperCase
btw co to za typ tekst

0

podam cały program

 program i9e3;
uses crt;
type tekst = array [1..2,1..2] of string  ;
var  t,p:tekst;
     i,j:byte;
     s:string;
procedure wczyt (var t:tekst);
          begin
               for i:=1 to 2 do
                   for j:=1 to 2 do
                     begin
                       Writeln ('daj glos!');
                       readln (s);
                       t[i][j]:=s;

                     end;

          end;
procedure play (a:tekst);
          begin
           for i:=1 to 2 do
                   for j:=1 to 2 do
                     begin
                       t[i][j]:=a[i][j];
                       Write ('t[',i,'][',j,']=',t[i][j],'       ');
                     end;
          end;
procedure duze (var t:tekst);
    begin
          for i:=1 to 2 do
                   for j:=1 to 2 do
                      t[i][j]:=upcase('t[i][j]');


    end:
begin
     clrscr;
     wczyt (t);
     writeln ;


     writeln ('przed');
     play (t);

     duze (t);
     writeln ('po');
     play (t);
     readln;
end.
0

Spróbuj tak:

procedure duze (var t:tekst);
    begin
          for i:=1 to 2 do
                   for j:=1 to 2 do
												for m:=0 to length(t[i][j]) do                   
                      	(t[i][j])[m]:=upcase((t[i][j])[m]);
 
 
    end;
0

bravo Anoxic :D teraz zrobiło dobrze :) teraz musze to wylko posortować :D przytym sie pogubie pewnie 5 razy :D
no tak jakoś nie wpadłem ze string to jakby tabela char i też do nie trzeba index dać :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1