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
 11/43 anonim ***** válasza:

Ma mindenki ezt a leckét kapta?

Hihetetlen, hogy ezen a feladaton ennyien el tudtok akadni.

2016. jan. 3. 01:03
Hasznos számodra ez a válasz?
 12/43 anonim ***** válasza:

Én ezt a megoldást alkottam (nem vitatom hogy van-létezhet jobb-egyszerűbb-elegánsabb megoldás is.

A probléma vele, hogy az ékezetes karaktereket nem tudja megszámolni, mert - valószínűleg - a lowercase elszúrja őket...


Gondoltam, beleírom a betűszámlálást is, a magánhangzó és mássalhangzó mellett...

Lehet, hogy konstansként elegánsabb lett volna definiálni a betűket.


program maganhangzo_massalhangzo_betuszamlalo;


var

maganhangzo, massalhangzo, szoveg : string;

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

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

i, j, k : 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;

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

massalhangzo:='bcdfghjklmnpqrstvwxyz';

write('kerem a szoveget : ');

ReadLn(szoveg);

Write('Kérem a megszámolandó betűt : ');

ReadLn(betu);

for i := 1 to length(szoveg) do

begin

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 ',betu,' ',betus,' alkalommal fordult elo.');

WriteLn('magánhangzók: ');

for j:=1 to 14 do

if maganhangzos[j]>0 then writeln(maganhangzo[j],'betű: ',maganhangzos[j],' alkalommal fordult elő.');

writeln('Mássalhangzók:');

for k:=1 to 21 do

if massalhangzos[k]>0 then writeln(massalhangzo[k],' betű: ',massalhangzos[k],' alkalommal fordult elő.');

end.

2016. jan. 3. 06:45
Hasznos számodra ez a válasz?
 13/43 A kérdező kommentje:
Ez a program nem fut le, de megpróbálom értelmezni amit írtál. Köszönöm szépen!
2016. jan. 3. 11:56
 14/43 anonim ***** válasza:
Nálam lefut, hiba nélkül.
2016. jan. 3. 12:49
Hasznos számodra ez a válasz?
 15/43 anonim ***** válasza:

A program utolsó sora elé:

end.

írd be: ReadLn;

Talán az lehet a probléma, hogy a kimenetet nem látod megjelenni?

Ezt a ReadLn megoldja.

2016. jan. 3. 12:50
Hasznos számodra ez a válasz?
 16/43 A kérdező kommentje:
Igen utána elolvastam újra és észrevettem hogy readln hiányzik csak.
2016. jan. 3. 13:51
 17/43 A kérdező kommentje:
Azt eltudnátok magyarázni hogy a LowerCase és az inc mi cél szolgál? Ezeket eddig még nem használtam.
2016. jan. 3. 13:52
 18/43 anonim ***** válasza:

LowerCase az kisbetűsíti az adott betűt, tehát hiába írják be nagybetűvel, kisbetűre alakítja, olyan célból, hogy bármilyen módon is írják be, megtalálja az adott betűt (ne kelljen két abc, csak egy).

inc megnöveli az értékét a változónak, ugyanolyan mintha azt írnád hogy pl. i:=i+1;

Az inc gyorsabb.

2016. jan. 3. 13:57
Hasznos számodra ez a válasz?
 19/43 anonim ***** válasza:

Hasznos segédletet találsz itt:

[link]

2016. jan. 3. 13:58
Hasznos számodra ez a válasz?
 20/43 A kérdező kommentje:
Szóval az inc az increase szó rövidítése.. Köszönöm szépen! Biztosra veszem hogy lesznek még kérdéseim a feladattal kapcsolatban. :)
2016. jan. 3. 14:09
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!