Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace szakavban_mássalhangzók
- {
- class Program
- {
- // Felveszünk egy string változót, amibe tároljuk a felhasználótól kapott szót.
- static string szo;
- // Felveszünk egy string változót, amibe eltároljuk az összes mássalhangzót, későbbi vizsgálatra.
- // MEGJEGYZÉS: A string felfoghat char (karakter) tömbként is, tehát a stringben lévő karakterek sorszámozottak,
- // és ezt kihasználva fogjuk vizsgálni a szóban a mássalhangzókat.
- static string msh = "qwrtzpsdfghjklyxcvbnm";
- // Felveszünk egy int változót, amiben tároljuk a megszámlált mássalhangzókat (tehát számot tárolunk benne).
- static int db = 0;
- // Fő részprogram, mindig ez fut le először!
- static void Main(string[] args)
- {
- // Az alpropgramok sorrendben, hogy hogy következnek egymás után.
- bekérés();
- kiértékelés();
- kiírás();
- }
- // A Main-ben meghatározott első alprogram (mindegy egyébként sorban ez a rész hol helyezkedik a programkódon belül,
- // a fontos az, hogy a Main-en belül hanyadik a sorban).
- static void bekérés()
- {
- // Kommunikálunk a felhasználóval, majd bekérünk egy szót (egyébként a string szintaktikája megengedi azt is,
- // hogy több szót írjunk be. Egy egész mondatban is megszámolná a mássalhangzókat. :))
- Console.WriteLine("Adjon meg egy szót, és megszámolom benne a mássalhangzókat!");
- szo = Console.ReadLine();
- }
- // A Main-ben meghatározott második alprogram (fontos programozási stílus: minden feladatnak külön alprogram kell!).
- static void kiértékelés()
- {
- // Egy kötött lépésszámú ciklus, ami addig fut le újra meg újra, amíg a végére nem ér a "szo" stringben eltárolt szónak.
- // MEGJEGYZÉS: Karakterenként lépked, mint ahogy fentebb is említettem, karakterek tárolására használt tömb a string.
- //
- // A "for" ciklus: felveszünk egy változót, ami 0-ról indul (ez rendszerint "i", de egyébként teljesen mindegy hogy hívjuk.).
- // Megadjuk, hogy az "i" addig lépkedjen, amíg el nem éri a korábban bekért szó hosszát.
- // Megadjuk, hogy az "i" mindig 1-el növekedjen (i = i + 1, egyszerűbben: i++), de igazából bármennyivel növekedhetne,
- // ezt mi adjuk meg. Ha kettessével szeretnénk hogy lépkedjen, akkor i = i + 2.
- for (int i = 0; i < szo.Length; i++)
- {
- // Újabb kötött lépésszámú ciklus, ami addig fut újra meg újra, amíg a mássalhangzókat tartalmazó string végére nem ér.
- //
- // Itt ugyanaz amit az előbb leírtam a for ciklusról, csak itt a msh-ban megadott szó végéig lépkedünk.
- for (int j = 0; j < msh.Length; j++)
- {
- // És itt a lényeg.
- // Ez egy feltételvizsgálat (if = ha), ami megnézi, hogy a bekért szó x-edik eleme egyezik-e az éppen
- // vizsgált mássalhangzó x-edik elemével.
- //
- // Magyarul: A program megvizsgál minden betűt, hogy egyezik-e a mássalhangzók egyikével. Ha nem egyezik,
- // tovább vizsgál, nem csinál semmit. Ha viszont talál egy egyezést a szó és a mássalhangzók egyes karakterei
- // között, akkor megnövel egy számot. Ez a szám a mássalhangzók száma.
- if (szo[i] == msh[j])
- {
- db++;
- }
- }
- }
- }
- // A Main-ben meghatározott harmadik alprogram.
- static void kiírás()
- {
- // Ismét kommunikálunk a felhasználóval, kiírjuk a darabszámot, amit a "db" változóba gyűjtöttünk össze.
- Console.WriteLine("A mássalhangzók száma: {0}", db);
- // Ez szükséges ahhoz, hogy a program ne záródjon be azonnal, miután kiírtuk az adatot.
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement