Pomoc Pascal! :(

Programovacie jazyky, rady, poradňa...
Mijuz
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 371
Registrovaný: 21 aug 2005, 23:14
Bydlisko: MA
Kontaktovať používateľa:

Pomoc Pascal! :(

Príspevok od používateľa Mijuz »

potrebujem poradit... musim spravit program, ktory vypise do nejakeho suboru vsetky slova zacinajuce na p... sam zo seba... z tych somarin naprogramovanych... nemam ani sajn jak nato... :(
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

z kombinatorického hladiska je všetkých slov začínajúcich na písmeno p nekonečne vela. Ak ohraničíš ich dlžku, tak to bude reálnejšie, ale stále ich môže byť velmi vela. Ak to majú byť slová ktoré majú nejaký význam, budeš potrebovať nejaký wordlist a z neho vyfiltrovať len tie začínajúce na p. Takže bližšie špecifikuj čo vlastne chceš
Mijuz
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 371
Registrovaný: 21 aug 2005, 23:14
Bydlisko: MA
Kontaktovať používateľa:

Príspevok od používateľa Mijuz »

audiotrack napísal:z kombinatorického hladiska je všetkých slov začínajúcich na písmeno p nekonečne vela. Ak ohraničíš ich dlžku, tak to bude reálnejšie, ale stále ich môže byť velmi vela. Ak to majú byť slová ktoré majú nejaký význam, budeš potrebovať nejaký wordlist a z neho vyfiltrovať len tie začínajúce na p. Takže bližšie špecifikuj čo vlastne chceš
noo všetky slova z toho programu... ak to nazvem napr: program.pas, tak z toho... z toho zdrojoveho kodu ci co to je...
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

*.pas je obyčajný textový súbor, klasicky ho otvoríš na čítanie, prejdeš každým slovom (na základe medzier vieš rozlíšiť koniec slova) a ak je prvý znak slova p (string je iba pole znakov) tak ho vypíšem. Záležitosť na pár minút. Teraz sa mi nechce, zajtra ak s tým nepohneš (alebo niekto iný) tak ti pomôžem
Mijuz
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 371
Registrovaný: 21 aug 2005, 23:14
Bydlisko: MA
Kontaktovať používateľa:

Príspevok od používateľa Mijuz »

Kód: Vybrať všetko

program ppp;
uses Crt;
var file1,file2:Text;
    symbol:char;
    i:integer;

BEGIN
clrscr;  {vycistenie obrazovky}
Assign(file1,'ble.pas');  {priradenie premennej file1 subor input.txt}
Assign(file2,'output.txt'); {priradenie premennej file2 subor output.txt}
Reset(file1);  {citanie sa nastavi uplne na zaciatok}
Rewrite(file2);  {vymaze sa obsah output.txt a zapisu sa tam nove hodnoty}
i:=0;
write('P-cka v texte: ');
while not EOF(file1) do  {cyklus, kde sa citaju pismena, az kym nie je koniec suboru}
  begin
    read(file1,symbol);
    if symbol='p' then begin write(file2,'p'); write('p'); i:=i+1; end;  {}

  end;
writeln(file2);
writeln(file2,'Pocet p-cok: ',i);
writeln;
writeln('Pocet p-cok: ',i);  {vypisanie na obrazovku, kolko je tam p-cok}
Close(file1);  {zatvorenie input.txt}
Close(file2);  {zatvorenie output.txt}
readkey; {program pocka na stlacenie klavesy}
END.
zohnal som si toto... toto mi vypise setky p-cka a spocita ich to... jak to mam zmenit aby mi to vypisalo slova? :( poradte mi niekto...
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

program pecka;

var riadok,slovo:string;
    vstup:textfile;
begin
  Assign(vstup,'pecka.pas');
  reset(vstup);
  pocet:=0;
  while not(eof(vstup)) do begin
    readln(vstup,riadok);
    while length(riadok)>0 do begin
      if (pos(' ',riadok)>0) then begin
        slovo:=copy(riadok,0,pos(' ',riadok));
        if lowercase(slovo[1])='p' then writeln(slovo);
        riadok:=copy(riadok,pos(' ',riadok)+1,length(riadok)-pos(' ',riadok)+1);
        end else riadok:='';
    end;
  end;
readln;
end.
Mijuz
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 371
Registrovaný: 21 aug 2005, 23:14
Bydlisko: MA
Kontaktovať používateľa:

Príspevok od používateľa Mijuz »

audiotrack napísal:

Kód: Vybrať všetko

program pecka;

var riadok,slovo:string;
    vstup:textfile;
begin
  Assign(vstup,'pecka.pas');
  reset(vstup);
  pocet:=0;
  while not(eof(vstup)) do begin
    readln(vstup,riadok);
    while length(riadok)>0 do begin
      if (pos(' ',riadok)>0) then begin
        slovo:=copy(riadok,0,pos(' ',riadok));
        if lowercase(slovo[1])='p' then writeln(slovo);
        riadok:=copy(riadok,pos(' ',riadok)+1,length(riadok)-pos(' ',riadok)+1);
        end else riadok:='';
    end;
  end;
readln;
end.
dik strasne moc za pomoc, ale aj tak mi to nejde... toto tvoje mi pise unknown identifier... :(
morfeusko
Medium Star
Medium Star
Príspevky: 395
Registrovaný: 19 mar 2008, 15:21
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa morfeusko »

vymaz odtial to pocet:=0...lebo je to tam navyse
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

morfeusko napísal:vymaz odtial to pocet:=0...lebo je to tam navyse
a textfile zmeniť na text, a lowercase tiež robil problém. Ja som to robil v delphi, tam to ide.. nahodil som do pascalu a neviem čo sa mu nepáči

Kód: Vybrať všetko

program pecka;

var riadok,slovo:string;
    vstup:text;
begin
  Assign(vstup,'pecka.pas');
  reset(vstup);
  while not(eof(vstup)) do begin
    readln(vstup,riadok);
    while length(riadok)>0 do begin
      if (pos(' ',riadok)>0) then begin
        slovo:=copy(riadok,0,pos(' ',riadok));
        if (slovo[1]='p') or (slovo[1]='P') then writeln(slovo);
        riadok:=copy(riadok,pos(' ',riadok)+1,length(riadok)-pos(' ',riadok)+1);
        end else riadok:='';
    end;
  end;
readln;
end.
Mijuz
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 371
Registrovaný: 21 aug 2005, 23:14
Bydlisko: MA
Kontaktovať používateľa:

Príspevok od používateľa Mijuz »

audiotrack napísal:a textfile zmeniť na text, a lowercase tiež robil problém. Ja som to robil v delphi, tam to ide.. nahodil som do pascalu a neviem čo sa mu nepáči

Kód: Vybrať všetko

program pecka;

var riadok,slovo:string;
    vstup:text;
begin
  Assign(vstup,'pecka.pas');
  reset(vstup);
  while not(eof(vstup)) do begin
    readln(vstup,riadok);
    while length(riadok)>0 do begin
      if (pos(' ',riadok)>0) then begin
        slovo:=copy(riadok,0,pos(' ',riadok));
        if (slovo[1]='p') or (slovo[1]='P') then writeln(slovo);
        riadok:=copy(riadok,pos(' ',riadok)+1,length(riadok)-pos(' ',riadok)+1);
        end else riadok:='';
    end;
  end;
readln;
end.
dik moc, toto funguje, lenze to mi ich len vypise, ja by som potreboval aby ich to zapisalo do nejakeho suboru... :( ale dik moc! na toto by som v zivote sam neprisiel... :D
morfeusko
Medium Star
Medium Star
Príspevky: 395
Registrovaný: 19 mar 2008, 15:21
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa morfeusko »

audiotrack napísal:a textfile zmeniť na text, a lowercase tiež robil problém. Ja som to robil v delphi, tam to ide.. nahodil som do pascalu a neviem čo sa mu nepáči
pascal nepozna prikazy lowercase apod. musis pouzivat len zakladne...
morfeusko
Medium Star
Medium Star
Príspevky: 395
Registrovaný: 19 mar 2008, 15:21
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa morfeusko »

Kód: Vybrať všetko

program pecka;

var riadok,slovo:string;
    vstup,vystup:text;
begin
  Assign(vstup,'pecka.txt');
  Assign(vystup,'slova.txt');
  reset(vstup);
  rewrite(vystup);
  while not(eof(vstup)) do begin
    readln(vstup,riadok);
    while length(riadok)>0 do begin
      if (pos(' ',riadok)>0) then begin
        slovo:=copy(riadok,0,pos(' ',riadok));
        if (slovo[1]='p') or (slovo[1]='P') then writeln(vystup,slovo);
        riadok:=copy(riadok,pos(' ',riadok)+1,length(riadok)-pos(' ',riadok)+1);
        end else riadok:='';
    end;
  end;
  close(vstup);
  close(vystup);
readln;
end.
len som si dal vstup ako .txt to mas v podstate jedno
Napísať odpoveď