.
Отговор в тема
Резултати от 1 до 4 от общо 4
  1. #1

    Unhappy Задача по информатика

    Здравейте, госпожата по информатика ми даде задача а аз въобще незнам как да я реша . Ако някой специалист в тази насока може да я реши ще съм безкрайно благодарен
    Ето я задачата :

    Даден е низ S, съдържащ от 1 до 20 думи. Всяка дума се състои от 1 до 6 главни латински букви. Разделител между думите е символът запетая. Да се напише програма, която генерира низ T, съдържащ всички думи на S без повторно срещащите се думи.

    Благодаря предварително ако някой се заеме

  2. #2
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    На какъв език ти трябва?
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

  3. #3
    Цитирай Първоначално написано от Chacho Виж мнението
    На какъв език ти трябва?
    на C++ език

  4. #4
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    Нямам много време, та това, което остава да направиш, е да ограничиш първия низ до 20 думи и да погледнеш случая, в който накрая може да остане запетая в новия низ (тоест, ако накрая имаш такава, да я разкараш). Също така, по начинът, по който съм я написал сега, програмата предполага, че човекът е въвел низ, в който има само 0-6 буквени думи, разделени със запетаи и ако не е такъв формата, дава грешка.

    Ето я и програмата:
    Код:
    #include <iostream>
    #include <string>
    using namespace std;
    
    string generateString(const string & inputString)
    {
         string result = "";
         string buffer = "";
         int i=0;
         int count=0;
         while(i<(inputString.length()))
         {
             if(inputString[i]==',')
             {
                 i++;
                 if(result.find(buffer+',')==string::npos)
                 {
                     result+=buffer;
                     result+=',';
                 }
                 buffer="";
                 count=0;
             }
             else
             {
                 if(inputString[i]>='A' && inputString[i]<='Z' && count<=6)
                 {
                    buffer+=inputString[i];
                    i++;
                    count++;
                 }
                 else
                 {
                     i++;
                     buffer="";
                     count=0;
                     cout<<"Wrong Format";
                     return buffer;
                 }
             }
         }
         if(result.find(buffer+',')==string::npos)
         result+=buffer;
         return result;
    }
    
    int main()
    {
         string input, output;
         cout<<"Vuvedete niz: ";    
         cin>>input;
         output = generateString(input);
         cout<<"\n"<<output;
         cin>>input; //Just to hold the console open
         return 0;
    }
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си