Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 11. 12. 2011 15:47

George5
Příspěvky: 86
Reputace:   
 

Pascal výpis četnosti čísel v řetězci.

Zdravím, dostal jsem za ukol napsat program, který do kterého by se zadal text ve formě řetězce a program by nnásledně vypsal všechny znaky, které se v řetezci vyskytují a také kolikrát. Nevíte někdo jestli na tento problém není nějaká funkce, jinak příklad jsem řešil a napsal, ale při kompilaci i to píše: Compilation aborted. Nevíte prosím někdo co je špatně?

program nastenka;
var text:string;
    p,a,b,i:integer;
    znak:char;


begin

    writeln ('Zadej text k vypisu');
    readln (text);

    for i:=1 to 80 do write ('-');

    for znak:='a' to 'Z' do

     begin


     p:=0;
      repeat

      b:=1;
      a:=copy(text,b,1);
      if (a=znak)
      then p=+1
      else b=+1

      until (b=length(text));

      writeln (' Znak ',znak,' se v retezci vyskytuje ',p,'X');

     end;


end.

Offline

 

#2 12. 12. 2011 17:02

cStP
Příspěvky: 39
Reputace:   
Web
 

Re: Pascal výpis četnosti čísel v řetězci.

O věstavené funkce v nějaké knihovně, která by tohle řešila nevím, ale tohle je jednoduchý úkol na implementaci... V pascalu jsem nikdy nedělal, takže neznám úplně syntaxi, ale logicky mi to přijde správně.

Zkusím ale ...
- Nechybí ti tam ale jeden "end" ? 1 'end' ukončuje 'begin', další ukončuje 'for' cyklus ale nemáš tam 'end' pro ukončení 'repeat'.
- když porovnávás 'a' a 'znak', tak pascalu nevadí že jedno je 'integer' a druhé 'char' ?

Každopádně jestli to píše chybu u kompilace pak je nejpravděpodobněji chyba v syntaxi...

Offline

 

#3 12. 12. 2011 22:22 — Editoval TomDlask (12. 12. 2011 22:35)

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pascal výpis četnosti čísel v řetězci.

↑ cStP: Repeat ukončuje until, ale jak bylo poznamenáno tak do integeru nelze uložit ani porovnávat s charem.

edit: ještě u přiřazení asi má být :=

edit2: upravil jsem trochu kód, je rozumět úpravám?

Code:

program nastenka;
var text,a:string;
    p,b,i:integer;
    znak:char;


begin

    writeln ('Zadej text k vypisu');
    readln (text);

    for i:=1 to 80 do write ('-');

    for znak:='a' to 'Z' do

     begin


     p:=0;
     b:=1;
      repeat

      a:=copy(text,b,1);
      if (a=znak)
      then p:=p+1;
      b:=b+1;

      until (b>=length(text));

      writeln (' Znak ',znak,' se v retezci vyskytuje ',p,'X');

     end;


end.

Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson