Pascal

Programovacie jazyky, rady, poradňa...
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 »

a čo to má ako vypisovať? Konkrétne čo si myslel týmto: write(#pole(i));
bartimeus
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 135
Registrovaný: 16 jan 2008, 18:17
Kontaktovať používateľa:

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

Ked dam
write (#77), tak mi napiše na obrazovku "M"
Znak s ASCII tabuľky.
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 »

na to je príkaz chr. Čiže #77 je to isté ako chr(77). Ty v tom poli ale nemáš žiadne hodnoty, takže chr(pole) ti tiež nič nebude robiť, preto sa pýtam čo si tým myslel? Alebo iba chceš vypísať znaky od 1 do a? tak chr(i)


//edit: na dnes rezignujem, v tomto programku pred maturami je to horšie ako na pokeci. Človek nestíha odpisovať a občas sa sám seba pýtam prečo sa vám vlastne toľko venujem :)
bartimeus
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 135
Registrovaný: 16 jan 2008, 18:17
Kontaktovať používateľa:

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

Pomôžte mi to pls sfunkčniť
Napíšte program, ktorý zistí počet rôznych znakov v reťazci

Kód: Vybrať všetko

uses crt;
var
pole: array[1..255] of integer;
b,c1,d,e,i: integer;
a,c: string;

begin
 clrscr;
 c1:=1;
 writeln('zapis retazec');
 readln(a);
 b:= length(a);
 for i:=i to b do
  begin
   c:= copy(a, c1,1);
   for e:=1 to 255 do
    begin
     if c= chr(e) then pole[i]:=pole[i]+1;
    end;
    c1:=c1+1;
  end;

 for i:=1 to 255 do
  begin
   if pole[i] <> 0 then
    begin
     writeln (chr(i),' sa nachadza v retazci ',pole[i]);
    end;
  end;
end.
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 »

celý tento šialený cyklus:

Kód: Vybrať všetko

for e:=1 to 255 do
    begin
     if c= chr(e) then pole[i]:=pole[i]+1;
    end;
stačí nahradiť týmto:

Kód: Vybrať všetko

inc(pole[ord(c)]);
A celé to tvoje šialené pole nemusí mať 255 znakov lebo všetky prvky nikdy nevyužiješ keďže písmen je 26, stačí ti pole deklarovať ako pole:array[97..122]. Nemrhaj zbytočne pamäťou. A keď je reč o mrhaní pamäťou, nemáš v zadaní že ich máš rátať ktoré písmeno je tam koľkokrát, tak by som to nedával integer ale iba boolean a spomínaný riadok čo som uvádzal vyššie bude:

Kód: Vybrať všetko

pole[ord(c)] := true;
. Potom len zrátaš počet true v poli (to je počet jedinečných znakov), prípadne vypíšeš chr(i) kde pole = true ak chceš aj poznať znaky ktoré sú tam použité aspoň raz. To je na jeden cyklus pre i:=97 to 122
haha11
Zablokovaný
Zablokovaný
Používateľov profilový obrázok
Príspevky: 529
Registrovaný: 22 mar 2009, 16:46
Bydlisko: Stará Ľubovňa

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

Na ten pascal proste musí mať človek hlavu. Ja som chodil na seminar z Informy, veľmi mi to nešlo ale pár programov som zvládol. Grafické programovanie to je asi najťažšie...
Bejcy
Novice
Novice
Príspevky: 4
Registrovaný: 24 máj 2009, 14:24

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

Diky fakt ste mi pomohli....
berner
Novice
Novice
Príspevky: 5
Registrovaný: 31 máj 2009, 15:04

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

nazdar , mam jednu ulohu z ktorou si vobec neviem poradit:::: Zobrazi na obrazovku pravdivostnu tabulku funkcii :::: za odpoved vopred dakujem
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

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

http://www.hojko.com/pascal-pomooc-t120178.html ???

Kód: Vybrať všetko

program TF;
begin
write(' A     B       and   or      not(A)   xor'); writeln;
write(' TRUE  TRUE   ');
        write((TRUE and TRUE), '   '); write(TRUE or TRUE, '     '); write(not true, '  '); write(TRUE xor TRUE, ' '); writeln;
write(' FALSE TRUE   ');
        write((FALSE and TRUE), '  '); write((FALSE or TRUE), '     '); write(not false, '   '); write(FALSE xor TRUE, ' '); writeln;
write(' TRUE  FALSE  ');
        write((TRUE and FALSE), '  '); write((TRUE or FALSE), '     '); write(not true, '  '); write(TRUE xor FALSE, ' '); writeln;
write(' FALSE FALSE  ');
        write((FALSE and FALSE), '  '); write((FALSE or FALSE), '    '); write(not false, '   '); write(FALSE xor FALSE, ' '); writeln;
readln;
end.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

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

prepacte, mozem sa spytat na co je takato tabulka dobra? :)
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

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

Absolutne na nic... ale pamatam si, ze aj my sme to v skole volakedy robili. :)
berner
Novice
Novice
Príspevky: 5
Registrovaný: 31 máj 2009, 15:04

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

nazdar , mohol by som vas este poziadat o jednu vec , napiste sem nejaku melodiu na pascal :)
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 »

berner napísal:nazdar , mohol by som vas este poziadat o jednu vec , napiste sem nejaku melodiu na pascal :)
tarararaaa tarararaaaaaaaa
tak? :)
berner
Novice
Novice
Príspevky: 5
Registrovaný: 31 máj 2009, 15:04

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

no chocjaku len aby to bezalo v programe :D
Napísať odpoveď