Kezdőoldal » Számítástechnika » Programozás » Mássalhangzó, magánhangzó és...

Mássalhangzó, magánhangzó és betű számláló Pascalban?

Figyelt kérdés

Sziasztok!


Egy olyan programot kellene írnom Pascalban, ami kér egy szöveget és kiírja hogy mennyi mássalhangzó és magánhangzó található a szövegben, aztán megkérdezi hogy milyen betű számaira vagyunk kíváncsiak és azt is kiírja.


Nos, mégis hogy nézni ki ez a program? A mássalhangzókhoz és magánhangzókhoz tömböt kellene használnom?



2016. jan. 2. 21:26
1 2 3 4 5
 41/43 anonim ***** válasza:

program maganhangzo_massalhangzo_betuszamlalo;


Uses CRT;


var

maganhangzo, massalhangzo, kulonlegeskarakter, szoveg : string;

maganhangzos:array[1..14] of byte;

massalhangzos:array[1..21] of byte;

specialiskarakter:array[1..19] of longint;

i,j,k,l : byte;

betu : char;

betus : byte;

ch : char;


function myLoCase(ch : char) : char;

var kicsik : string = Chr($81) + Chr($82) + Chr($8B) + Chr($FB) + Chr($94) + Chr($A0)+ Chr($A1) + Chr($A2) + Chr($A3);

nagyok : string = Chr($9A) + Chr($90) + Chr($8A) + Chr($EB) + Chr($99) + Chr($B5)+ Chr($D6) + Chr($E0) + Chr($E9);

i : byte;

begin

if Ord(ch) > 127 then

begin

for i := 1 to Length(nagyok) do if ch = nagyok[i] then myLoCase := kicsik[i];

for i := 1 to Length(kicsik) do if ch = kicsik[i] then myLoCase := kicsik[i];

end

else

myLoCase := LowerCase(ch);

end;


begin

betus := 0;

for j := 1 to 14 do

maganhangzos[j]:=0;

for k := 1 to 21 do

massalhangzos[k]:=0;

for l := 1 to 19 do

specialiskarakter[l]:=0;

maganhangzo:='áéöőüűúóíaeiou';

massalhangzo:='bcdfghjklmnpqrstvwxyz';

kulonlegeskarakter:=',;?.:-_@#/\+"!%=()*';

write('Irjon be egy szoveget! ');

ReadLn(szoveg);

Write('Kerem a megszamolando betut : ');

ReadLn(betu);

for i := 1 to length(szoveg) do

begin

for l:=1 to 19 do

if (myLoCase(szoveg[i])=kulonlegeskarakter[l]) then inc(specialiskarakter[l]);

for j:=1 to 14 do

if (myLoCase(szoveg[i])=maganhangzo[j]) then inc(maganhangzos[j]);

for k:=1 to 21 do

if (myLoCase(szoveg[i])=massalhangzo[k]) then inc(massalhangzos[k]);

if (myLoCase(szoveg[i])=myLoCase(betu)) then inc(betus);

end;

WriteLn;

WriteLn('A szovegben a(z) ',betu,' betu ',betus,' alkalommal fordult elo.');

writeln;

writeln('Szeretne latni a massalhangzok es maganhangzok szamat is?');

repeat

write(' I/N');

ch := (UpCase(ReadKey));

until (ch <> 'I') or (ch <> 'N');

if ch = 'I' then

begin

WriteLn('Maganhangzok: ');

for j:=1 to 14 do

if maganhangzos[j]>0 then writeln(maganhangzo[j],' betu: ',maganhangzos[j],' alkalommal fordult elo.');

writeln('Massalhangzok:');

for k:=1 to 21 do

if massalhangzos[k]>0 then writeln(massalhangzo[k],' betu: ',massalhangzos[k],' alkalommal fordult elo.');

end;

writeln;

writeln('Szeretne latni a kulunleges karakterek szamat is?');

repeat

write(' I/N');

ch := (UpCase(ReadKey));

until (ch <> 'I') or (ch <> 'N');

if ch = 'I' then

begin

writeln('kulonlegeskarakterek: ');

for l:=1 to 19 do

if specialiskarakter[l]>0 then writeln(kulonlegeskarakter[l],' karakter: ',specialiskarakter[l],' alkalommal fordult elo.');

end;

writeln;

readln;

end.

2016. jan. 3. 20:34
Hasznos számodra ez a válasz?
 42/43 A kérdező kommentje:

Ez már túl bonyolult.



program maganhangzo_massalhangzo_betuszamlalo;

uses crt;

var

maganhangzo, massalhangzo, kulonlegeskarakter, szoveg, z : string;

maganhangzos:array[1..14] of byte;

massalhangzos:array[1..21] of byte;

specialiskarakter:array[1..19] of byte;

i,j,k,l : byte;

betu,x : char;

betus : byte;

begin

repeat

clrscr;

betus := 0;

for j := 1 to 14 do

maganhangzos[j]:=0;

for k := 1 to 21 do

massalhangzos[k]:=0;

for l := 1 to 19 do

specialiskarakter[l]:=0;

maganhangzo:='áéöőüűúóíaeiou';

massalhangzo:='bcdfghjklmnpqrstvwxyz';

kulonlegeskarakter:=',;?.:-_@#/\+"!%=()*';

textcolor(12);

write('Irjon be egy szoveget! ');

readln(szoveg);

delay(1400);

Write('Kerem a megszamolando betut : ');

readln(betu);

textcolor(6);

for i := 1 to length(szoveg) do

begin

for l:=1 to 19 do

if (lowercase(szoveg[i])=kulonlegeskarakter[l]) then inc(specialiskarakter[l]);

for j:=1 to 14 do

if (lowercase(szoveg[i])=maganhangzo[j]) then inc(maganhangzos[j]);

for k:=1 to 21 do

if (lowercase(szoveg[i])=massalhangzo[k]) then inc(massalhangzos[k]);

if (lowercase(szoveg[i])=lowercase(betu)) then inc(betus);

end;

WriteLn;

WriteLn('A szovegben a(z) ',betu,' betu ',betus,' alkalommal fordult elo.');

writeln;

textcolor(5);

writeln('Megmutassam a maganhangzokat es massalhangzokat?');

textcolor(6);


repeat

writeln('I/N');

x:=(upcase(readkey));

until(x <> 'I') or (x <> 'N');

if x='I' then begin

writeln('Maganhangzok: ');

for j:=1 to 14 do

if maganhangzos[j]>0 then writeln(maganhangzo[j],' betu: ',maganhangzos[j],' alkalommal fordult elo.');

writeln('Massalhangzok:');

for k:=1 to 21 do

if massalhangzos[k]>0 then writeln(massalhangzo[k],' betu: ',massalhangzos[k],' alkalommal fordult elo.');

end;

textcolor(5);

writeln('Megmutassam a kulonleges karaktereket?');

textcolor(6);


repeat

writeln('I/N');

x:=(upcase(readkey));

until(x <> 'I') or (x <> 'N');

if x='I' then begin

writeln('Kulonleges karakterek: ');

for l:=1 to 19 do

if specialiskarakter[l]>0 then writeln(kulonlegeskarakter[l],' karakter: ',specialiskarakter[l],' alkalommal fordult elo.');

end;

textcolor(5);

writeln('Erdekli hogy hany karaktert gepelt be?');

textcolor(6);


repeat

writeln('I/N');

x:=(upcase(readkey));

until(x <> 'I') or (x <> 'N');

if x='I' then begin

writeln('Ennyi karakter talaltam osszesen: ',length(szoveg));

end;

textcolor(5);

writeln('Futtassam meg egyszer a programot?');

textcolor(6);

writeln('Igen/Nem');

readln(z)

until z='nem';



readln;

end.



Én erre jutottam, ami kell megvan szerintem. Köszönöm szépen mindenkinek a segítséget! :)

2016. jan. 3. 20:39
 43/43 SimkoL ***** válasza:
Windows alatt milyen kódlapot használsz ? Amit írtam 852-est kezel.
2016. jan. 3. 20:39
Hasznos számodra ez a válasz?
1 2 3 4 5

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!