Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako..?..program...pascal???

[es] :: Pascal / Delphi / Kylix :: Kako..?..program...pascal???

[ Pregleda: 4331 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Passwd

Član broj: 54624
Poruke: 640
*.cmu.carnet.hr.



Profil

icon Kako..?..program...pascal???08.04.2005. u 12:24 - pre 230 meseci
Opet ja....;)

Muci me jedan problem,nemam uopce ideje kako napraviti program (turbo pascal)
koji ce:
-zamijeniti slova abecede sa skupom znakova+brojeva

npr.:
slovo a=wqgstw62674384jzufe
slovo b=z53hf67454jhu78f45iu
slovo c=jdjfd73e6r7647fuzfu647

Znaci ja mu napisem abc,a on kao rezultat izbaci:wqgstw62674384jzufez53hf67454jhu78f45iujdjfd73e6r7647fuzfu647
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.dialup.blic.net.



+148 Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 12:32 - pre 230 meseci
nije da se nesto razumijem u paskal, ali to bi trebalo da izgleda otprilike ovako:

while znak<>'.' do
begin
znak:=readkey;
case znak of
'a': write ('dfdfdfdk83487594');
'b': write ('8rg9ue9r87t09w7t');
'c': write ('dfiosueoiuetoutrov');
{ pa onda nabrojis cijelu abecedu}
end;
end;

program bi se zavrsavao unosenjem tacke, a varijabla znak bi trebalo da je iz
char-a.

 
Odgovor na temu

Toyo

Član broj: 45193
Poruke: 227
*.kovnet.co.yu.



+1 Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 13:14 - pre 230 meseci
Code:

function Zamena(s:String): String;
const
  Duzina =3;
  C: array[1..Duzina] of Char = ('a','b','c');
  Z: array[1..Duzina] of String =('nesto', 'neko', 'bilo sta');
var
  i:Integer;
  Nadjen: Boolean;
begin
  if length(s)=0 then
    zamena :=''
  else
    begin
      i := 1;
      Nadjen := False;
      while i <=Duzina do
        begin
          if c[i]=s[1] then
            begin
              Zamena := z[i]+Zamena(copy(s,2,length(s)-1));
              nadjen :=True;
            end;
          inc(i);
        end;
      if not Nadjen then
        Zamena := s[1]+Zamena(copy(s,2,length(s)-1))
    end;
end;


funkciju zoves sa zamena('abc') ili zamena('aabcxxxxxabxxxc'); Ako nema znaka za zamenu (kao sto je ovde slucaj sa 'x') onda se znak prosto prepisuje.

Glavni program bi bio:
Code:

var s:String;
begin
    readln(s);
    writeln(zamena(s));
end.
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
*.zaslon-telecom.si.



Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 13:31 - pre 230 meseci
Toyo, nadam se da se ne ljutiš, malo sam izmenio tvoju f-ju:

Code:

function Zamena2(s:String): String;
const
  Duzina = 3;
  C: array[1..Duzina] of Char = ('a','b','c');
  Z: array[1..Duzina] of String =('nesto', 'neko', 'bilo sta');
var
  i, j: Integer;
  cc: string;
begin
  for i := 1 to length(s) do
  begin
    cc := s[i];
    for j := 1 to Duzina do
      if c[j] = s[i] then cc := z[j];     
    result := result + cc;
  end;
end;


Malo elegantnije rešenje...

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.cmu.carnet.hr.



Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 13:36 - pre 230 meseci
To je to,napravio sam za sada od permalosutra (jednostavniji je),al da svijet nije tako lijep evo opet problema:
-zelim da ta slova koja sam napisao budu spremljena u fajl sifrat.txt,al evo nesto nevalja:

Code:

program sifrat;
uses crt;
type data=record
          znak:char;
          end;
     sifrat=file of data;

var  znak:char;
     b:data;
     a:sifrat;
begin
clrscr;
writeln('Upisi:');
readln(znak);
assign(a,'sifrat.txt');
rewrite(a);
write(a,b);
while znak<>'.' do
begin
znak:=readkey;
case znak of
'a': writeln('001');
'b': writeln('002');
'c': writeln('003');
'd': writeln('004');
'e': writeln('005');
'f': writeln('006');
'g': writeln('007');
'h': writeln('008');
'i': writeln('009');
'j': writeln('0010');
'k': writeln('0011');
'l': writeln('0012');
'm': writeln('0013');
'n': writeln('0014');
'o': writeln('0015');
'p': writeln('0016');
'r': writeln('0017');
's': writeln('0018');
't': writeln('0019');
'u': writeln('0020');
'v': writeln('0021');
'z': writeln('0022');
' ':writeln('0101');
',':writeln('0202');
'.':writeln('0303');
end;
end;
readln;
end.
 
Odgovor na temu

Toyo

Član broj: 45193
Poruke: 227
*.kovnet.co.yu.



+1 Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 13:46 - pre 230 meseci
@sasas

Naravno da se ne ljutim :))))

Prvo sam mislio da cu rekurzijom to da sredim u 2-3 reda, pa je ispalo 6.
Zatim sam video da bi trebalo uzeti u obzir i karaktere koji nemaju zamenu, pa je sve to ispalo tako robusno i glupo.

Evo dokaza da koriscenje rekurzije u nekim primerima i nije bas najbolje resenje.

Decko sad ima 2 resenja koja rade istu stvar, pa moze nesto i da nauci.

Pozdrav!
 
Odgovor na temu

Toyo

Član broj: 45193
Poruke: 227
*.kovnet.co.yu.



+1 Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 13:55 - pre 230 meseci
@Passwd
sa najmanje prepravki:
Obrisi write(a,b)
prepravi znak:=readkey u b.znak:=readkey; a ispod toga stavi write(a,b);
i umeto case znak stavi case b.znak

I zatvori fajl na kraju programa.
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.cmu.carnet.hr.



Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 14:06 - pre 230 meseci
Al mislio sam da zapisuje u obliku onih zamijenjenih slova,jer sad zapisuje prava slova
 
Odgovor na temu

Toyo

Član broj: 45193
Poruke: 227
*.kovnet.co.yu.



+1 Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 14:18 - pre 230 meseci
Eee, onda stavi umesto b:data, b:text;

Zatim umeto svakog writeln('xxx') moras da stavis write(a,'xxx'); i da izbacis ono write(a,b.znak);
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.cmu.carnet.hr.



Profil

icon Re: Kako..?..program...pascal???08.04.2005. u 14:45 - pre 230 meseci
Sad je OK,da je meni sve to znati..........;;))))

Posjeti jos tu i tamo ovu temu,mozda se jos negdje izgubim..:)
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kako..?..program...pascal???

[ Pregleda: 4331 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.