Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Здравейте имам въпрос за една функция

Featured Replies

Така написах си функция за провека дали има букви само масива от символи но се дъни въвеждам 98 работи правилно въвеждам а98 тук гърми , ето я и функцията

bool name(char ch[])
{
  
  int n = strlen(ch);
  int c;
  
  for ( c=0; c<=n; c++)
  {
    if ((ch[c]>=97) && (ch[c]<=122)) 
    
      return true;
    
  }
    
    return false;
} 

 

  • Автор
преди 3 минути, Raze написа:

Това не ми върши работа интересно ми е на С++ не Сишарп

  • Автор
преди 2 минути, Raze написа:

Промени си търсенето в google, има предостатъчно примери и решения с различни варианти.

Не успях да открия това което ми е  интересно затова питам

При 98 връща false , а така също и при а98 също или, че при а98 връща true ...???

преди 9 часа, petie1 написа:

букви само

може би някъде трябва да сложиш else .... виж тук

 

 

 

Проверката ти е сбъркана, трябва да е точно обратната на това което си написал.

bool name(char ch[])
{
  
  int n = strlen(ch);
  int c;
  
  for ( c=0; c<=n; c++)
  {
    if ((ch[c]<'a') || (ch[c]>'z')) 
    
      return false;
    
  }
    
    return true;
}

 

  • Автор
преди 1 час, ДиоиД написа:

При 98 връща false , а така също и при а98 също или, че при а98 връща true ...???

може би някъде трябва да сложиш else .... виж тук

 

 

 

И при а98 връща истина та затова ми е интресно

 

преди 1 час, ined написа:

Проверката ти е сбъркана, трябва да е точно обратната на това което си написал.


bool name(char ch[])
{
  
  int n = strlen(ch);
  int c;
  
  for ( c=0; c<=n; c++)
  {
    if ((ch[c]<'a') || (ch[c]>'z')) 
    
      return false;
    
  }
    
    return true;
}

 

  Разбира се че е грешна интересно ми е как да го направя по моя начин

преди 1 час, petie1 написа:

И при а98 връща истина та затова ми е интресно

Защото прекъсваш цикъла .... един вид некоректно излизане ....

Освен ined което ти е дал може да помислиш и смяна на цикъла на while или пък условието ти да е "негативно", но в този случай размини return false и return true ... след като държиш да е на твоето ...

п.п. цикли

 

:offtopic_s:

Един съвет от мен ....

Преди да почнеш изписването на кода (няма значение на какъв програмен език) си направи блок-схема на алгоритъма ....

Нещо от този род ...

Резултат с изображение за блок схема на алгоритъм снимка

Такаа.. аз не успях да разбера какво искаш да направиш.Можеш ли да поясниш?

1. Тъй като имаш терминираща нула в края значи е по-правилно да се каже стринг, а не масив.

2.Условието на for-a не трябва да е  '<', a '<='.Няма смисъл да проверяваш и нулата в края.

3.Отдавна не бях виждал подаване на аргумент по този начин.Обикновено се подава така 'char*  ch'.

3.Защо използваш тип със знак за размер.Може ли да имаш отрицателен размер?Правилно е да изпозваш тип без знак.По този начин можеш да използваш по- големи размери (виж разлика между signed и unsigned).

  • Автор
преди 31 минути, Martin Chekurov написа:

Такаа.. аз не успях да разбера какво искаш да направиш.Можеш ли да поясниш?

1. Тъй като имаш терминираща нула в края значи е по-правилно да се каже стринг, а не масив.

2.Условието на for-a не трябва да е  '<', a '<='.Няма смисъл да проверяваш и нулата в края.

3.Отдавна не бях виждал подаване на аргумент по този начин.Обикновено се подава така 'char*  ch'.

3.Защо използваш тип със знак за размер.Може ли да имаш отрицателен размер?Правилно е да изпозваш тип без знак.По този начин можеш да използваш по- големи размери (виж разлика между signed и unsigned).

Исках да си направя булева фуниция за  проверка дали даден масив от знаци е само от букви,та затова,между другото успях да си я направя като искам ,стегнете се и пак разгледайте кода белким ви светне къде е грешката не е в връщаната стойност ,нито инед е познал нито диод-а чакам отговор и от двамата

  • Автор
преди 3 минути, Martin Chekurov написа:

Къде е сбъркал инед?

Ами това е гатанката за сега,помедотарайте малко и ще се сетите виждам че сте добър........

  • Автор
преди 16 минути, Martin Chekurov написа:

Човеко тази функция се прави точно за 1 мин к'во се занимавам

Нали казах че е готова и то както аз исках а не като вие и другите ми казвате.......

преди 6 минути, petie1 написа:

Нали казах че е готова и то както аз исках а не като вие и другите ми казвате.......

Бъди доволен тогава .... ;)

Успех!

  • Автор

Помислете къде е грешката не е там където казвате

преди 1 минута, petie1 написа:

Помислете къде е грешката не е там където казвате

Нали намери решение? Какво повече! Или го кажи, или не...ти си решаваш!

Нормалните хора биха сложили решението тук за да може други хора на който може да има потрябва да го видят?Ти нормален ли си?

Ето тук един забравен код .... до колко има нови решения ... не зная ... а и лично на мен не ми трябват .... а ако ми трябва .... знам как бих си го направил без грешки ....

:offtopic_s:

Всеки си има свой стил на програмиране ... и може би не желае да издирва грешки, нито пък да разсъждава върху как да се нагоди по начина на мислене на другия ...

Стилът на програмиране е индивидуален и е в следствие на което е усвоил програмиста от своя преподавател ....  Затова и препоръчах блок схемата по която след това всеки независимо от усвоения програмен език би анализирал, за да си изработи кода на своята програма, функция и т.н. ....

Някой трябваше да се замисли още след като @Raze даде линк .... и изобщо .... понякога в зависимост от проблема се издирва най подходящия програмен език ....

п.п. Нищо лично ....

  • Автор

Значи не открихте грешката?

Така ето го решението:


bool name(char ch[])
{
  
  int n = strlen(ch);
  int c;
  
  for ( c=0; c<n; c++)
  {
    if ((int)ch[c]<97 || (int)ch[c]>122)
    
      return true;
    
    
  }
  
  return false; 
} 

И не не съм нормален ,това е хем истина хем лъжа

По-важното е, че ти си доволен! ;)

Дали твоето решение за справяне със задачата е правилно е друг въпрос ...

Успех!

  • Автор

Добре,функцията да не се ползва за решаване на такъв тип задачи,не е достатъчно добра,да се ползват примерите на инед и линка

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.