Mintapéldák algoritmussal

Numerikus problémák

  1. Pitagorasz tétel megoldása
  2. Az "N" szám osztói
  3. "N" prím-e ?
  4. Primek kiírása "FH"-ig
  5. Sinus tétel megoldása
  6. Cosinus tétel megoldása
  7. Táblázat kiírása (n,n2,gyök(n))

Szövegkezelő problémák

  1. Szöveg kiírása visszafelé
  2. Mondat "e" betűinek megszámlálása
  3. Szövegrész keresése
  4. A "74"-ben születettek kiírása
  5. A leghosszabb név kiválasztása

Algoritmusok itt lenn

Feladatmegoldások/algoritmusok

  1. Pitagorasz tétel megoldása
      Be : a, b   [a, b > 0  a befogók]
      c = gyök(a*a + b*b)
      Ki : " Az átfogó : "; c

  2. Az "N" szám osztói        
      Be : N      [N > 0  és egész]
      Ciklus osz = 1-től N-ig
          ha OSZ / N , akkor Ki : OSZ  [osztója]
      Ciklus vége

  3. "N" prím-e ?              
      Be : N      [N > 0  és egész]
      DB = 0
      Ciklus OSZ = 1-től N-ig
          ha OSZ / N , akkor DB = DB + 1
      Ciklus vége
      ha DB = 2 , akkor     Ki : N ; "prímszám"
                  egyébként Ki : N ; "nem prím"

  4. Primek kiírása "FH"-ig     
      Be : FH     [FH > 2  és egész, eddig a határig írjuk ki a prímeket]
      Ciklus N = 1-től FH-ig
          DB = 0
          Ciklus OSZ = 1-től N-ig
              ha OSZ / N , akkor DB = DB + 1
          Ciklus vége
          ha DB = 2 , akkor Ki : N,
      Ciklus vége

  5. Sinus tétel megoldása     
      Be : a, alfa, beta    [a > 0 oldal,  0 < alfa, beta < 180 fok szögek]
      PI = 3.1415....
      ARad = alfa * PI / 180
      BRad = beta * PI / 180
      b = a * sin(BRad) / sin(ARad)
      Ki : "A 'b' oldal : " ; b

  6. Cosinus tétel megoldása   
      Be : a, b, gamma    [a, b > 0 oldalak,  0 < gamma < 180 fok szög]
      PI = 3.1415....
      DRad = gamma * PI / 180
      c = gyök(a*a + b*b - 2*a*b* cos(DRad))
      Ki : "A 'c' oldal : " ; c

  7. Táblázat kiírása (n,n*n,gyök(n))
      Be : K, V, L    [K - kezdőérték, V - végérték, L - lépésköz]
      Ki : fejléc
      Ciklus i = K - tól V - ig L lépésközzel
          Ki : i, i*i, gyök(i)
      Ciklus vége

  8. SzÖveg kiírása visszafelé 
      Be : S       [nem üres szöveg]
      Ciklus p = (S  hossz)-tól 1-ig lépésköz -1
          Ki : S  p. karaktere ;
      Ciklus vége

  9. Mondat "e" betűinek megszámlálása  
      Be : S       [nem üres szöveg]
      DB = 0
      Ciklus p = 1-től S  hosszá-ig
          ha (S  p. karaktere = "e"), akkor DB = DB + 1
      Ciklus vége
      Ki : "Az  'e' betűk száma : " ; DB

 10. SzÖvegrész keresése       
      Be : S       [nem üres szöveg]
      Be : R       [nem üres szöveg]
      HS = az S  hossza
      HR = az R  hossza
      P = 1
      Ciklus, míg (R  = (S  P-től HR hosszú része)) vagy (P > HS-HR)
          P = P + 1
      Ciklus vége
      ha P <= HS-HR , akkor Ki : "A részszöveg " ; P ; "-től kezdődik"
                      egyébként Ki : "A részszöveg nem található"

 11. A "74"-ben születettek kiírása     
      Be : N      [osztálylétszám N > 10  és egész]
      NEV  (1..N) feltöltése  [tanuló  neve]
      EV   (1..N) feltöltése  [születési év]
      Ciklus I = 1-től N-ig
          ha EV(I) jobboldali 2. kar. = "74" , akkor Ki : I, NEV(I)
      Ciklus vége

 12. A leghosszabb név kiválasztása        
      Be : N      [osztálylétszám N > 10  és egész]
      NEV (1..N) feltöltése  [tanuló  neve]
      MAX = NEV(1)
      Ciklus I = 2-től N-ig
          ha NEV(I) hossza > MAX , MAX = NEV(I) hossza
      Ciklus vége
      Ki : "A leghosszabb nev " ; NEV(MAX)