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
 21/43 anonim ***** válasza:
Így van, ugyanígy a dec a decrease szó rövidítése. :-)
2016. jan. 3. 14:16
Hasznos számodra ez a válasz?
 22/43 anonim ***** válasza:
Ha tudsz angolul, a Free Pascal oldalon fellelhető Wiki és a letöltött Free Pascal dokumentáció is sokat segíthet (.PDF dokumentumok az installált Free Pascal-ban).
2016. jan. 3. 14:22
Hasznos számodra ez a válasz?
 23/43 A kérdező kommentje:

A speciális karaktereket mint például a '?' vagy a ',' stb.. char típusú változóként kell használni?

Ugyan így szeretném megcsinálni azt, hogy kiírja a speciális karaktereket mint a mással és magánhangzókat is.

2016. jan. 3. 14:39
 24/43 ejbenjaro ***** válasza:
Miért, szerinted a vessző meg a kérdőjel nem karakter? Igazából problémát az olyan dolgok fognak okozni, ha olyan kódlapot használ a rendszer, ami nem egy bájton ábrázolja az ékezetes betűket.
2016. jan. 3. 14:55
Hasznos számodra ez a válasz?
 25/43 anonim ***** válasza:

Igen, azokat is ugyanúgy kelll ahogy a kódban látod.

Ahogy előző írja, UTF8 vagy hasonló esetén az ékezetes karakterekkel gond lehet.


Nem biztos hogy jól valósítottam meg a feladatot (mármint ahogy a tanár elvárja olyan szempontból), mit mondtak, hogy mivel valósítsd meg a feladatot, tömbbel vagy adtak valamilyen instrukciót?

2016. jan. 3. 15:48
Hasznos számodra ez a válasz?
 26/43 A kérdező kommentje:

Semmit nem mondott konkrétan, de tömbökre gondolok. Nos megpróbáltam a speciális karaktereket is megoldani, de valami hiba van benne. Így néz ki jelenleg:

program maganhangzo_massalhangzo_betuszamlalo;


var

maganhangzo, massalhangzo, kulonlegeskarakter, szoveg, x, y : 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;

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 (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;

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

readln(x);

if x = 'igen' then

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.');

writeln;

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

readln(y);

if y = 'igen' then

writeln('kulonlegeskarakterek: ');

for l:=1 to 19 do

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

writeln;



readln;

end.

2016. jan. 3. 15:55
 27/43 A kérdező kommentje:

Nos.. Kihagytam egy vesszőt a(z) if specialiskarakter[l]>0 then writeln(kulonlegeskarakter[l],' karakter: ',specialiskarakter[l],' alkalommal fordult elo.');

sorban. Lehet hogy rondán vezettem le az egészet, de úgy néz ki hogy működik. Köszönöm a segítséget!

2016. jan. 3. 16:06
 28/43 A kérdező kommentje:
Illetve annyi hibát találtam hogy az ékezetes karaktereket nem írja ki mikor rákérdez arra hogy a mással és magánhangzókat kiírja-e. Viszont ha a keresendő betű az adott ékezetes karakter amire kíváncsiak vagyunk, azt kiírja. Mi lehet a gond?
2016. jan. 3. 16:11
 29/43 A kérdező kommentje:

Kicsit pontosítanék.. Jelenleg kiírja a magán és mássalhangzókat, speciális karaktereket és a keresett betű számait.

Nos, azt szeretném, ha megkérdezné például azt, hogy 'Szeretné látni a különleges karaktereket?' Erre igennel és nemmel lehet válaszolni, ha igen, kiírja, ha nem akkor továbbhalad. Ezt hogyan oldhatnám meg? Jelenleg így néz ki:

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 byte;

i,j,k,l : byte;

betu : char;

betus : byte;

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 (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;


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.');


writeln('Kulonleges karakterek: ');

for l:=1 to 19 do

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



readln;

end

2016. jan. 3. 17:54
 30/43 anonim ***** válasza:

Így gondoltad?

K9özvetlenül a billentyűzetről olvas be és egy betű elég a választáshoz, így egyszerűsítettem.


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;

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 (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;

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. 18:53
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!