From aryx, 3 Years ago, written in C++.
Embed
  1. // Tóth Patrik, ZLIMO5
  2. // GAMF, 2018 | Algoritmusok
  3.  
  4. #include <iostream>
  5. #include <fstream>
  6. #include <string>
  7.  
  8. using namespace std;
  9.  
  10. struct adatsor {
  11.         string szo;
  12.         string kod;
  13. };
  14.  
  15. int getKeyValue(char c) {
  16.         switch (c) {
  17.                 case 'a': return 2; break;
  18.                 case 'b': return 2; break;
  19.                 case 'c': return 2; break;
  20.                 case 'd': return 3; break;
  21.                 case 'e': return 3; break;
  22.                 case 'f': return 3; break;
  23.                 case 'g': return 4; break;
  24.                 case 'h': return 4; break;
  25.                 case 'i': return 4; break;
  26.                 case 'j': return 5; break;
  27.                 case 'k': return 5; break;
  28.                 case 'l': return 5; break;
  29.                 case 'm': return 6; break;
  30.                 case 'n': return 6; break;
  31.                 case 'o': return 6; break;
  32.                 case 'p': return 7; break;
  33.                 case 'q': return 7; break;
  34.                 case 'r': return 7; break;
  35.                 case 's': return 7; break;
  36.                 case 't': return 8; break;
  37.                 case 'u': return 8; break;
  38.                 case 'v': return 8; break;
  39.                 case 'w': return 9; break;
  40.                 case 'x': return 9; break;
  41.                 case 'y': return 9; break;
  42.                 case 'z': return 9; break;
  43.                 default: return -1;
  44.         }
  45. }
  46.  
  47. string convertToKeys(string szo) {
  48.  
  49.         string kimenet = "";
  50.  
  51.         for (char& c : szo) {
  52.                 kimenet = kimenet + to_string(getKeyValue(c));
  53.         }
  54.        
  55.         return kimenet;
  56. }
  57.  
  58. int main() {
  59.  
  60.         // 1. feladat
  61.         string szo;
  62.         cout << "Kerem a szot: ";
  63.         cin >> szo;
  64.         cout << "  Billentyukkel: " << convertToKeys(szo);
  65.         cout << "\n\n";
  66.  
  67.         // 2. feladat
  68.         adatsor adatbazis[600];
  69.         ifstream be("szavak.txt");
  70.         if (be.fail()) { cerr << "Hiba a fajl megnyitasakor!"; system("pause"); exit(1); }
  71.  
  72.         int db = 0; // sorok száma, kellhet
  73.         for (int i = 0; i < 600 && !be.eof(); i++) {
  74.                 be >> adatbazis[i].szo;
  75.                 adatbazis[i].kod = convertToKeys(adatbazis[i].szo);
  76.                 db++;
  77.         }
  78.         be.close();
  79.  
  80.         // 3. feladat
  81.         int hossz = 0;
  82.         string leghszo;
  83.         string seged;
  84.         int seged2;
  85.         for (int x = 0; x < db; x++) {
  86.                 seged = adatbazis[x].szo;
  87.                 seged2 = seged.size();
  88.                 if (seged2 > hossz) {
  89.                         hossz = seged2;
  90.                         leghszo = adatbazis[x].szo;
  91.                 }
  92.         }
  93.         cout << "A leghosszabb szo a " << leghszo << ", " << hossz << " karakter hosszu.\n\n";
  94.  
  95.  
  96.         // 4. feladat
  97.         int sum = 0;
  98.         for (int x = 0; x < db; x++) {
  99.                 seged = adatbazis[x].szo;
  100.                 seged2 = seged.size();
  101.                 if (seged2 >= 5) {
  102.                         sum++;
  103.                 }
  104.         }
  105.         cout << sum << " db rovid szo talalhato a fajlban.\n\n";
  106.  
  107.         // 6. feladat
  108.         ofstream ki("kodok.txt");
  109.         for (int x = 0; x < db; x++) {
  110.                 ki << adatbazis[x].kod << "\n";
  111.         }
  112.         ki.close();
  113.  
  114.         // 7. feladat
  115.         string szamsor;
  116.         cout << "Kerek egy kodot: ";
  117.         cin >> szamsor;
  118.         cout << "Szo/szavak, amelyekre megfelel:\n";
  119.  
  120.         for (int x = 0; x < db; x++) {
  121.                 if (adatbazis[x].kod == szamsor) {
  122.                         cout << "  " << adatbazis[x].szo;
  123.                 }
  124.         }
  125.         cout << "\n\n";
  126.  
  127.  
  128.         // 8. feladat
  129.         cout << "Szavak, amelyekhez tobb kod tartozik:\n";
  130.         string temp;
  131.         for (int i = 0; i < db - 1; i++) {
  132.                 for (int j = i + 1; j < db; j++) {
  133.                         if (adatbazis[i].kod > adatbazis[j].kod) {
  134.                                 temp = adatbazis[i].kod;
  135.                                 adatbazis[i].kod = adatbazis[j].kod;
  136.                                 adatbazis[j].kod = temp;
  137.                         }
  138.                 }
  139.         }
  140.         for (int i = 1; i < db; i++) {
  141.                 if (adatbazis[i].kod == adatbazis[i - 1].kod) {
  142.                         cout << adatbazis[i - 1].szo << " : " << adatbazis[i - 1].kod << "; ";
  143.                         cout << adatbazis[i].szo << " : " << adatbazis[i].kod << "; ";
  144.                 }
  145.         }
  146.         cout << "\n\n";
  147.  
  148.  
  149.         // 9. feladat
  150.         string elozokod = "";
  151.         string elozonagyobb = "";
  152.         int elozomenny = 0;
  153.         int ujmenny = 0;
  154.         //string elozomenny = "";
  155.         for (int i = 0; i < db; i++) {
  156.                 if (adatbazis[i].kod == elozokod) {
  157.                         ujmenny++;
  158.                 }
  159.                 else {
  160.                         if (ujmenny > elozomenny) {
  161.                                 elozomenny = ujmenny;
  162.                                 elozonagyobb = elozokod;
  163.                         }
  164.                         ujmenny = 1;
  165.                 }
  166.                 elozokod = adatbazis[i].kod;
  167.         }
  168.         cout << "A legtobb szot a " << elozonagyobb << " kodhoz tartalmazza az adatbazis. A kovetkezoek:\n";
  169.         for (int i = 0; i < db; i++) {
  170.                 if (adatbazis[i].kod == elozonagyobb) {
  171.                         cout << "  " << adatbazis[i].szo << "\n";
  172.                 }
  173.         }
  174.  
  175.         cout << "\n\n";
  176.  
  177.         system("pause");
  178.  
  179.  
  180.         return 0;
  181. }