Programowanie i algorytmy

Symetria

Zad. 2. Napisz program, który określi, czy podana duża litera (tylko angielskie litery), posiada:

  • tylko oś symetrii
  • tylko środek symetrii
  • jest figurą osiowo i środkowo symetryczną

 

Rozwiązanie:

Oś symetrii, to prosta, która dzieli figurę na dwie identyczne figury. Po jednej  stronie tej prostej znajduje się lustrzane odbicie drugiej strony. Na przykład litera A ma taką oś symetrii. Jest to pionowa prosta, przechodząca przez jej środek.

Środek symetrii to punkt, względem którego każdy punkt danej figury ma swój obraz należący do tej figury. Taką figurę nazywamy środkowosymetryczną. Na przykład litera S ma taki punkt, który leży w jej środku.

Przykładem dla trzeciego warunku może być litera O.

Program
#include <cstdlib>
#include <iostream>
using namespace std;
 
int main()
{
  char znak;
  cout<<"Podaj dużą literę (tylko angielskie znaki): ";
 
  cin>>znak;
 
  switch(znak)
  {
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'K':
    case 'M':
    case 'T':
    case 'V':
    case 'W':
    case 'Y':
 
      cout<<"Litera "<<znak<<" posiada tylko oś symetrii.";
    break;
 
    case 'N':
    case 'S':
    case 'Z':
 
      cout<<"Litera "<<znak<<" posiada tylko środek symetrii.";
    break;
 
    case 'I':
    case 'H':
    case 'O':
    case 'X':
 
      cout<<"Litera "<<znak<<" posiada środek i oś symetrii.";
    break;
 
    default:
      cout<<"Znak "<<znak<<" nie jest dużą literą, lub nie posiada osi symetrii";
}
 
  cout<<endl; 
  system("PAUSE");
  return 0;
}