Форум программистов, компьютерный форум CyberForum.ru

Проверка строчных букв на упорядоченность по алфавиту - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
SiDER
2 / 2 / 0
Регистрация: 30.05.2012
Сообщений: 28
05.10.2012, 02:06     Проверка строчных букв на упорядоченность по алфавиту #1
Доброго времени суток! Помогите с программой пожалуйста. Отблагодарю не только словами.

Программу надо написать на языке Си иди С++, но оочень желательно на Си.

Если темой не попал в раздел, простите. Я только после создания заметил что раздел c++, модераторы если можете удалите этот топик, нехочу нарушать правила, создал аналогичный, но уже в правильном разделе.

Задание:
Дан текст, состоящий из прописных и строчных букв.
Проверить, упорядочены ли строчные буквы по алфавиту.

Как должно работать:
Вводим одну или несколько строк, содержащий(-ие) строчные и прописные буквы, проверка строчных букв на упорядоченность по алфавиту и вывод результата проверки.

Даже критерии дал препод
В программе организован понятный для пользователя ввод/вывод (при запросе исходных данных соответствующий запрос должен выводиться на экран с соблюдением правил написания (все пробелы, знаки препинания и пр. должны быть на месте));
Вводимые данные проверяются на корректность (например: если требуется ввести неубывающую последовательность чисел, то при невыполнении этого требования пользователю выводится поясняющее сообщение и предоставляется возможность повторного ввода и т.п.);
Исходный код программы понятен, легко читается, и выдержан в едином стиле;
Имена переменных осмысленны и понятны (например, amount для переменной, в которой хранится количество, или sum – для суммы, или temp – для переменной, предназначенной для временного хранения данных и т.п.)


Также прошу прокоменнтировать наиболее важные места, и описать как работает.
Мне нужно сдать в 12:00 05.10.12, до 11:40 нужно управиться.

Первый кто сделает рабочую и оформленную по критериям программу, получит:
Кликните здесь для просмотра всего текста
Игровой аккаунт origin с несколькими популярными играми

Но если вам это не интересно, то я вас прошу просто помочь, действительно незнаю синтаксиса хотя алгоритм вроде понимаю как можно было бы это сделать.

Большое спасибо. Добрый человек я жду тебя.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2012, 03:52     Проверка строчных букв на упорядоченность по алфавиту #2
Если текст на английском:
Код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <cstdio>
#include <cstring>
#include <cctype>
using namespace std;
 
// проверка на упорядоченность строчных букв в тексте
bool range(char *text)
{
    int code = 0; // для кода буквы
    for ( int i = 0; i < strlen(text); i++) // перебор букв текста
    {
        if (!islower(text[i])) continue; // если не строчная, то дальше
        else if (code > text[i]) return false; // если код буквы меньше чем был, 
                                              // то строчные буквы не упорядочены
             else code = text[i]; // если не меньше, то запоминаем новый код
    }
    return true; // последовательность строчных букв упорядочена
}
 
int main()
{
 printf("Input text: "); 
 
 char text[255]; // массив для текста
 gets(text); // текст читается в массив
 
 if (range(text)) printf("Yes\n"); // если функция вернула true
 else printf("No\n"); // если функция вернула false
 
 getchar();
 return 0;
}
SiDER
2 / 2 / 0
Регистрация: 30.05.2012
Сообщений: 28
05.10.2012, 10:26  [ТС]     Проверка строчных букв на упорядоченность по алфавиту #3
alsav22, у тебя наиболее понятный мне вариант.

Но что означают эти строки:
C
1
2
3
4
5
using namespace std;
...
!islower(text[i])  - а это стандартная комманда проверки?, строчная или нет..
...
getchar();
Еще к сожалению, программа выводит - Yes, если ввести только заглавные буквы.
И включения, я так понял это другое написание #include<хххх.h>?

Можете поправить?
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
05.10.2012, 10:33     Проверка строчных букв на упорядоченность по алфавиту #4
using namespace std; - использовать пространство имён std

islower - http://www.cplusplus.com/reference/c...ctype/islower/

getchar() http://www.cplusplus.com/reference/c...stdio/getchar/
SiDER
2 / 2 / 0
Регистрация: 30.05.2012
Сообщений: 28
05.10.2012, 10:43  [ТС]     Проверка строчных букв на упорядоченность по алфавиту #5
David Sylva, спасибо, как я и предпологал.

Но у него getchar() в самом конце, это что дает? Приостановку?
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
05.10.2012, 12:36     Проверка строчных букв на упорядоченность по алфавиту #6
Назовём это словом задержка.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 20:04     Проверка строчных букв на упорядоченность по алфавиту
Еще ссылки по теме:

C++ Количество строчных букв в строке
C++ Вычислить общее количество строчных букв
C++ Введите с клавиатуры некоторый текст и подсчитать в нем количество слов, букв, цифр,строчных букв, заглавных б

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2012, 20:04     Проверка строчных букв на упорядоченность по алфавиту #7
Цитата Сообщение от SiDER Посмотреть сообщение
Можете поправить?
Наверное, уже поздно, но:
Код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstring>
#include <cctype>
using namespace std;
 
// проверка на упорядоченность строчных букв в тексте
bool range(char *text)
{
    int code = 0; // для кода буквы
    int flag = 0; // флаг для прописных
    for ( int i = 0; i < strlen(text); i++) // перебор букв текста
    {
        if (!islower(text[i])) // если не строчная
        {
            flag = 1;
            continue; // если не строчная, то дальше
        }
        else if (code > text[i]) return false; // если код буквы меньше чем был, 
                                              // то строчные буквы не упорядочены
             else code = text[i]; // если не меньше, то запоминаем новый код
    }
    if (flag == 1 && code == 0) return false; // если только прописные 
    else return true; // последовательность строчных букв упорядочена
}
 
int main()
{
 printf("Input text: "); 
 
 char text[255]; // массив для текста
 gets(text); // текст читается в массив
 
 if (range(text)) printf("Yes\n"); // если функция вернула true
 else printf("No\n"); // если функция вернула false
 
 getchar();
 return 0;
}


Добавлено через 2 минуты
Цитата Сообщение от SiDER Посмотреть сообщение
getchar() в самом конце, это что дает? Приостановку?
Ожидание ввода символа (используется для паузы, чтобы окно сразу не закрылось).
Yandex
Объявления
05.10.2012, 20:04     Проверка строчных букв на упорядоченность по алфавиту
Ответ Создать тему
Опции темы

Текущее время: 05:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru