Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

_Ayl_
Статус: Студент
Рейтинг: 1416
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 1233
∙ повысить рейтинг »
Micren
Статус: Бакалавр
Рейтинг: 1109
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / C/C++

Номер выпуска:1431
Дата выхода:28.11.2009, 19:00
Администратор рассылки:Dr_Andrew, Старший модератор
Подписчиков / экспертов:676 / 182
Вопросов / ответов:2 / 3
IRC-канал по теме:#C

Вопрос № 174483: Уважаемые пользователи помогите сдать экзамен по с++, нужно реализовать 2 задачи по вашему выбору из списка, среда разработки DEVC или borland C. Список задач:18. Дан файл, содержащий текст на русском языке и некоторые два слова....


Вопрос № 174485: Доброго времени суток! Друзья,помогите пожалуйста довести до ума(а может кое-где и что-то исправить) одну программу для Visual С++.Говоря конкретнее,нужно добавить функцию для расчёта чисел &qu...

Вопрос № 174483:

Уважаемые пользователи помогите сдать экзамен по с++, нужно реализовать 2 задачи по вашему выбору из списка, среда разработки DEVC или borland C. Список задач:18. Дан файл, содержащий текст на русском языке и некоторые два слова. Определить, сколько раз они входят в текст и сколько раз они входят непосред¬ственно друг за другом.
1 Дан файл, содержащий текст на русском языке и некоторая буква. Под¬считать, сколько слов начинается с указанной буквы.
2 Дан файл, содержащий текст на русском языке и некоторая буква. Найти слово, содержащее наибольшее количество указанных букв.
3 Дан файл, содержащий текст на русском языке. В предложениях некото¬рые из слов записаны подряд несколько раз (предложение заканчивается точкой или знаком восклицания). Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.
4 Имеется внешний текстовый файл BOOK. Написать программу, которая, игнорируя исходное деление этого файла на строки, переформатирует его, разбивая на строки так, чтобы каждая строка оканчивалась точкой либо содержала ровно 60 литер, если среди них нет точки.
5 Дан файл, содержащий текст, набранный заглавными русскими буквами. В нем содержатся также знаки препинания. Провести частотный анализ текста, т.е. указать (в процентах) сколько раз встречается та или иная буква.
6 Имеется внешний текстовый файл. Напечатать первую из самых коротких его строк.
7 Дан файл, содержащий текст и арифметические выражения вида a Q b, где Q — один из знаков +,—,*,/ . Выписать все арифметические выражения и вычислить их значения.
8 Дан файл, содержащий текст на русском языке. Составить в алфавитном порядке список всех слов, встречающихся в этом тексте.
9 Дан файл, содержащий текст на русском языке. Выбрать из него только те символы, которые встречаются в нем только один раз, в том порядке, в котором они встречаются в тексте.
10 Дай файл, содер жащий текст на русском языке. Найти слово, встречаю¬щееся в каждом предложении, или сообщить, что талого слова нет.
11 Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены пробелами и знаками препинания. Файл f2 содержит не более 30 слов, которые разделены запятыми. Эти слова образуют пары: каждое второе является синонимом первого. Заменить в файле f1 те слова, которые можно, их синонимами. Результат поместить в новый файл.
12 Дан текстовой файл. Напечатать в алфавитном порядке все слова из данного файла, имеющие заданную длину n.


По возможности опишите коментарии подробно.
Заранее благодарю.

Отправлен: 23.11.2009, 15:01
Вопрос задал: Volentain, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Dr_Andrew, Старший модератор :
Здравствуйте, Volentain!
Ответ на задачу 1.
Обработка текстового файла, содержащего искомые слова, осуществляется в функции int iProcessFile(char* psFileName); (см. приложение). Если файл открыт, то мы считываем символы до тех пор, пока не достигнут его конец (while((cCharacter = getc(pFile)) != EOF)), т.е. неважно, сколько строк в файле. Поиск новых слов осуществляется по пробелам (int iSpacePrevious; int iSpaceCurrent;) Если найдено новое слово, то проверяется, начинается ли оно с искомой буквы:

Код:

// Если предыдущий символ - пробел (флаг равен 1), а текущий - нет,
// (т.е. начало нового слова), а слово начинается с буквы, то увеличиваем
// счётчик слов.
if(iSpacePrevious && !iSpaceCurrent && cCharacter == LETTER)
{
iWordsCount++; // Увеличиваем счётчик слов, если начало слова - искомая буква.
}


Имя обрабатываемого файла принимается программой в качестве параметра. Пример работы программы, обрабатывающей файл, содержащий текст

© Цитата: Текст
why do you cry, Willie, why do you cry?
why, Willie, why, Willie, why, Willie, why?


представлен ниже:




Программа написана в старом стиле, поэтому будет компилироваться Borland C++ 5.02, если Вы имели в виду именно эту среду разработки. На будущее - указывайте версию IDE.

Приложение:

Ответ отправил: Dr_Andrew, Старший модератор
Ответ отправлен: 23.11.2009, 19:57
Казахстан, Алма-Ата
Организация: Казахский научный центр карантинных и зоонозных инфекций
Адрес сайта: Медицинские программы для Linux
ICQ # 256452186

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256878 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174485:

    Доброго времени суток! Друзья,помогите пожалуйста довести до ума(а может кое-где и что-то исправить) одну программу для Visual С++.Говоря конкретнее,нужно добавить функцию для расчёта чисел "a" и "b" ,возможные операции на ними следующие :'+','-','/','*'.Готовое окно для этой программы в приложении.

    Отправлен: 23.11.2009, 15:50
    Вопрос задал: Roma2010, 4-й класс
    Всего ответов: 2
    Страница вопроса »


    Отвечает amnick, 6-й класс :
    Здравствуйте, Roma2010.

    Исправленный вариант программы — в приложении. Изменения небольшие:
    - элементам управления присвоены идентификаторы и нажатая кнопка определяется по ID вместо HWND (просто, мне так больше нравится);
    - выбор знака операции сделан через COMBOBOX, так что пользователь может выбрать только одну из допустимых операций;
    - порядок элементов в окне изменен, так что операция помещена между операндами;
    - проверка на число изменена - теперь допустим ввод знаков '+' и '-' в первой позиции. Хитрое условие
    int i = (*s == '-' || *s == '+') && len > 1;
    обеспечивает проверку, что пользователь не ввел только знак (без числа);
    - написана собственно функция вычисления результата (func1);
    - ExitProcess(0) в функции WinMain не нужнож
    - еще кое-что по мелочам (воспользуйтесь программой сравнения текстовых файлов).

    А еще мне интересно, почему Вы не сделали программу с обычным диалоговым окном в к ачестве главного окна (dialog based application)? Тогда Вам не нужно было бы вызывать кучу CreateWindowEx, а просто нарисовать диалог в редакторе ресурсов. Если Вас интересует такой вариант, то напишите в мини-форуме.

    Успехов!

    Приложение:

    Ответ отправил: amnick, 6-й класс
    Ответ отправлен: 23.11.2009, 17:40

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256867 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Лысков Игорь Витальевич, Модератор :
    Здравствуйте, Roma2010.
    Программа в приложении.
    Немного переделал:
    1) проверку на числа делаем по изменению содержимого.
    Для полей a и b разрешены цифры и +,- в первой позиции
    Для поля кода операции: +, -, *, /
    Некорректный символ просто не отображается.
    2) проверку длину строки возложена на edit-ы, посылаем им сообщения EM_LIMITTEXT.
    3) функция считает результат плюс проверяет код операции и деление на 0.
    4) сообщения выводятся в edit-е результата

    Удачи!

    Приложение:

    -----
    Удачи!

    Ответ отправил: Лысков Игорь Витальевич, Модератор
    Ответ отправлен: 23.11.2009, 17:42
    Украина, Кировоград
    Тел.: +380957525051
    ICQ # 234137952
    Mail.ru-агент: igorlyskov@mail.ru
    Абонент Skype: igorlyskov

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256868 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.11 от 17.11.2009

    В избранное