Chyba v programu pro pocitani znaků – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba v programu pro pocitani znaků – Pascal – Fórum – Programujte.comChyba v programu pro pocitani znaků – Pascal – Fórum – Programujte.com

 

spider-x0
Newbie
11. 6. 2008   #1
-
0
-

Sepsal jsem program , ale když to vypisuje poočet znaků tak to špatně přiřažuje počty ke znakům .PŘ: v souboru je 19 znaku a ono mi to napise 19 pismen 19 ostatnich 0 cisel ikdyz tam zadam i cisla .

program Pocitadlo;

const Konec = '*';
var Pismena, Cislice, Ostatni : integer;
Znak : Char;

procedure Pozdrzeni;
begin
writeln (' ');
writeln ('Stisknete enter');
readln;
end;

begin
writeln ('Pocitadlo znaku');
writeln ('Napiste nekolik znaku, ukoncete zmacknutim "*"');
writeln (' ');
Pismena := 0;
Cislice := 0;
Ostatni := 0;
read (Znak);
while Znak <> Konec do
begin
case Znak of
'a'..'z' , 'A'..'Z' : Pismena := Pismena + 1;
'0'..'9' : Cislice := Cislice + 1;
else Ostatni := Ostatni + 1;
end;
read (Znak);
end;
writeln ('Celkem:');
writeln (' ');
begin
case Pismena of
2 .. 4 : Writeln (Pismena, ' pismena');
0, 5 .. 30000 : Writeln (Pismena, ' pismen');
1 : Writeln (Pismena, ' pismeno');
end;
case Cislice of
1 .. 4 : Writeln (Cislice, ' cislice');
0, 5 .. 30000 : Writeln (Pismena, ' cislic');
end;
case Ostatni of
2 .. 4 : Writeln (Ostatni, ' ostatni znaky');
0, 5 .. 30000 : Writeln (Ostatni, ' ostatnich znaku');
1 : Writeln (Ostatni, ' ostatni znak');
end;
end;
Readln;
Pozdrzeni;
end.

Nahlásit jako SPAM
IP: 85.207.242.–
jozo00250
Návštěvník
11. 6. 2008   #2
-
0
-

To spider-x :
chybu mas v konstrukcii case pre cislice, namiesto poctu cislic vypisujes pocet pismen, inak som to skusal a funguje to

case Cislice of


1 .. 4 : Writeln (Cislice, ' cislice');

0, 5 .. 30000 : Writeln (Pismena, ' cislic');

end;

Nahlásit jako SPAM
IP: 78.99.80.–
spider-x0
Newbie
11. 6. 2008   #3
-
0
-

Diky moc

Nahlásit jako SPAM
IP: 85.207.242.–
spider-x0
Newbie
11. 6. 2008   #4
-
0
-

Mohl bych poprosit o opravu jeste jednoho programu?Pocita kvadratickou rovnici a kdyz tam ale zadam posmeno tak nastane behova chyba.

program kvadraticka_rovnice ;

var A , B ,C ,X ,Diskr :Real ;
Semafor : Char;

begin
Writeln ('Kvadraticka rovnice');
Writeln('Zadejte koeficient a');
repeat
readln(A);
if A = 0 then writeln('Neni kvadraticka rovnice.');
until A <> 0 ;
Writeln('Zadejte koeficienty B, C');
readln(B , C);
Diskr:= sqr(B) -4*A*C;
X := -B /(2*A) ;
if abs(Diskr) < 0.00001 then Semafor :='1';
if diskr > 0 then Semafor := '2';
if diskr < 0 then Semafor := '3' ;
if Semafor ='1' then writeln ('Dvojnasobny koren ',X:5:3);
if Semafor ='2' then writeln('Dva koreny ',X +sqrt(Diskr)/(2*A):5:3,
' a ', X - sqrt(Diskr) /(2*A):5:3);
if Semafor = '3' then
begin
writeln ('Dva koreny v oboru komplexnich cisel.');
writeln ('X:5:3 , '+', sqrt(Diskr)/ (2*A):5:3, ');
writeln ('');
end
else
begin
writeln ('Nekde v programu je chyba');
end;
end.

Nahlásit jako SPAM
IP: 85.207.242.–
Mircosoft+1
Věrný člen
12. 6. 2008   #5
-
0
-

Máš cca 3 možnosti:
1) Vypnout automatickou kontrolu I/O operací, mezi které se Readln počítá ({$I-}), tím zabráníš pádu programu při chybě. Po Readln se podívej, jestli Ioresult=0. Jestli jo, číslo bylo zadáno správně. Jestli ne, byla zadána kravina, tak uživateli vynadej a nech ho zadat něco lepšího.
2) Načíst to jako řetězec (string) a ten pak převést na číslo ručně procedurou Val. Ta ti přímo řekne, na kolikátém znaku je chyba, tak ji zase můžeš nahlásit a zařídit se podle ní.
3) Místo Readln použít nějakou vlastní proceduru na bázi Readkey, Gotoxy, kontroly každé stisknuté klávesy a ručního převodu na číslo. Ale to je zbytečně pracné.

Nahlásit jako SPAM
IP: 85.132.158.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

Algoritmus pro počítání — založil K4BlOs

Chyba v programu — založil vasek.t

Chyba v programu — založil choice_

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý