Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/27: Рейтинг темы: голосов - 27, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 6

вывод текста, определение количество слов в тексте, у которых первый и последний символы совпадают.

15.02.2010, 13:30. Показов 5048. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Прошу пожалуйста мне помочь с написанием этой программы. Всем за ранее огромное спасибо! Вы спасёте мне жизнь. =)

Условие:

Ввод данных осуществляется из файла с расширением .DAT.
Использовать ТОЛЬКО библиотечные функции ввода/вывода СИМВОЛА.
Исходный текст и результат работы программы выводятся на экран.
Нельзя использовать функции библиотеки в файле string.h
Нельзя использовать библиотечные функции работы со строками(словами)!
Обработка текста должна вестись посимвольно!


Задание:

С помощью текстового редактора QC создать файл, содержащий текст, длинна которого не превышает 1000 символов ( длинна строки текста не должна превышать 70 символов ) Имя файла должно иметь расширение .DAT.

Написать программу, которая:
1) Выводит текст на экран дисплея;
2) определяет количество слов в тексте, у которых первый и последний символы совпадают.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2010, 13:30
Ответы с готовыми решениями:

Определить количество слов в тексте, у которых первый и последний символы совпадают между собой
программа с использованием текстовых данных, файлов ввода/ вывода Помогите выполнить задание Определить количество таких слов в...

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

Определить количество слов, у которых первый и последний символы совпадают
#include <iostream> #include <string> #include <sstream> using namespace std; int num_symbol(string &_str){ int...

10
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
15.02.2010, 13:51
Посимвольно читаем файл. Находим букву из алфавита, заносим ее в переменную, продолжаем посимвольное чтение с сохраненимем еще двух значений - текущего и предыдущего символов. Если текущий символ является разделителем, то сравниваем предыдущий с начальным. Если равны, то увеличиваем значение счетчика. Снова ищем символ из алфавита. Повторяем дот тех пор, пока не кончится файл.
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
15.02.2010, 13:53
Какой язык программирования?
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
15.02.2010, 13:58
ZverBoy:
Какой язык это важно.
Так как люди могут сделать c ifstream(C++), без fopen языка(C), и других вещей языка C.
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
15.02.2010, 14:40
Ладно вот тебе сишный вариант
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
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <conio.h>
 
int main()
{
   FILE *fstream;
   char first_ch = ' ', last_ch = '\0', tmp_ch;
   int count = 0;
 
   fstream = fopen("file.dat", "r");
   if (!fstream)
   {
      printf("File error\n");
      getch();
      return 1;
   }
   printf("Soderjimoe faila\n");
   printf("-------------------------------\n");
   while ((tmp_ch = fgetc(fstream)) != EOF)
   {
      printf("%c", tmp_ch);
      if (first_ch == ' ' || first_ch == '\n')
         first_ch = tmp_ch;
      else
      {
         if (tmp_ch == ' ' || tmp_ch == '\n')
         {
            if (first_ch == last_ch)
            {
               count++;
            }
            first_ch = tmp_ch;
         }
         else if (last_ch == ' ' || last_ch == '\n')
         {
            first_ch = tmp_ch;
         }
         else
            last_ch = tmp_ch;
      }
   }
   printf("-------------------------------\n");
   printf("Kolichestvo slov s odinakovymi pervoi i poslednei bukvami %i\n", count);
   getch();
   return 0;
}
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 6
16.02.2010, 00:03  [ТС]
Простите, что сразу не ответил... очень не удобно. Язык программирования С++. Программа написанная вами у меня к сожалению не работает... пишет: File error.
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
16.02.2010, 00:26
Чтобы ошибка пропала, надо создать файл file.dat, записать в него текст, и сохранить в папке с программой.
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
16.02.2010, 01:37
Цитата Сообщение от ZverBoy Посмотреть сообщение
Использовать ТОЛЬКО библиотечные функции ввода/вывода СИМВОЛА.
Исходный текст и результат работы программы выводятся на экран.
Нельзя использовать функции библиотеки в файле string.h
Нельзя использовать библиотечные функции работы со строками(словами)!
Обработка текста должна вестись посимвольно!
Мазохизм какой-то! Точно не подойдёт, но может ещё кому пригодится:
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
38
39
40
41
42
43
#include <iostream>
#include <fstream>
#include <sstream>
#include <list>
#include <iterator>
#include <string>
 
/*
*   Написать программу, которая:
*   1) Выводит текст на экран дисплея;
*   2) определяет количество слов в тексте, у которых первый и последний символы совпадают.
*/
 
int main(){
    std::string buf, tmp;
    std::list<std::string> words;
    std::ifstream fin("text.dat");
    if ( !fin.is_open() ){
        std::cerr << "Can't open input file!" << std::endl;
        return 1;
    }
    std::cout << std::endl << "File content:" << std::endl << std::endl;
    while ( std::getline(fin, buf) ){
        std::cout << buf << std::endl;
        std::istringstream ist(buf);
        while ( ist >> tmp ){
            std::string::size_type pos = tmp.find_last_not_of(".,!?:;");
            if ( pos == std::string::npos )
                continue;
            tmp.erase(pos + 1);
            if ( tmp.size() > 1 && *tmp.begin() == *tmp.rbegin() )
                words.push_back(tmp);
        }
    }
    fin.close();
    words.sort();
    words.unique();
    std::cout << std::endl << words.size() << " words with same first and last letter." << std::endl;
    std::copy(words.begin(), words.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    std::cout << std::endl;
    
    return 0;
}

text.dat
Code
1
2
3
4
5
6
7
This tutorial assumes no previous knowledge of scripting or programming, 
but progresses rapidly toward an intermediate/advanced level of instruction 
(...all the while sneaking in little snippets of UNIX wisdom and lore). 
It serves as a textbook, a manual for self-study, and a reference and source 
of knowledge on shell scripting techniques. The exercises and heavily-commented 
examples invite active reader participation, under the premise that the only 
way to really learn scripting is to write scripts.


вывод
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ./same_first_last_letter 
File content:
 
This tutorial assumes no previous knowledge of scripting or programming, 
but progresses rapidly toward an intermediate/advanced level of instruction 
(...all the while sneaking in little snippets of UNIX wisdom and lore). 
It serves as a textbook, a manual for self-study, and a reference and source 
of knowledge on shell scripting techniques. The exercises and heavily-commented 
examples invite active reader participation, under the premise that the only 
way to really learn scripting is to write scripts.
 
6 words with same first and last letter.
level
reader
scripts
serves
snippets
that
1
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 6
16.02.2010, 01:45  [ТС]
Спасибо огромнейшее! Я вам благодарен. )
0
Olenj-Olenj
03.11.2010, 13:29
Подскажите пожалуйста как переделать эту программу так, чтобы еще:
при нажатии произвольной клавиши, поочередно выделялось цветом каждое из слов текста в котором первый и последний символы совпадают

Добавлено через 2 минуты
Цитата Сообщение от kazak Посмотреть сообщение
Ладно вот тебе сишный вариант
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
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <conio.h>
 
int main()
{
   FILE *fstream;
   char first_ch = ' ', last_ch = '\0', tmp_ch;
   int count = 0;
 
   fstream = fopen("file.dat", "r");
   if (!fstream)
   {
      printf("File error\n");
      getch();
      return 1;
   }
   printf("Soderjimoe faila\n");
   printf("-------------------------------\n");
   while ((tmp_ch = fgetc(fstream)) != EOF)
   {
      printf("%c", tmp_ch);
      if (first_ch == ' ' || first_ch == '\n')
         first_ch = tmp_ch;
      else
      {
         if (tmp_ch == ' ' || tmp_ch == '\n')
         {
            if (first_ch == last_ch)
            {
               count++;
            }
            first_ch = tmp_ch;
         }
         else if (last_ch == ' ' || last_ch == '\n')
         {
            first_ch = tmp_ch;
         }
         else
            last_ch = tmp_ch;
      }
   }
   printf("-------------------------------\n");
   printf("Kolichestvo slov s odinakovymi pervoi i poslednei bukvami %i\n", count);
   getch();
   return 0;
}
Сергей_Малой
15.03.2012, 23:35
Извините, что вмешиваюсь, но программа, написанная на Си, не совсем правильно работает, а я никак не могу понять почему, помогите разобраться, пожалуйста. Дело в том, что при вводе текста, если в последнем слове первый и последний символы совпадают, то почему-то количество таких слов не увеличивается, т.е. почему-то не учитывается последнее слово, почему так?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2012, 23:35
Помогаю со студенческими работами здесь

Найти количество слов, у которых первый и последний символы совпадают между собой
Дан текст. а) Найти количество слов, начинающихся с буквы б; б) Найти количество слов, у которых первый и последний символы совпадают между...

Найти количество слов, у которых первый и последний символы совпадают между собой.
Даны натуральное число n, символы s1,...,sn. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри...

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

Символьные строки: найти количество слов, у которых первый и последний символы совпадают между собой
Дана строка из N симво-лов. Группы символов, разделенные пробелами (одним или несколькими) и не со-держащие пробелов внутри себя, будем...

Дана строка символов. Определить количество слов, у которых первый и последний символы совпадают между собой.
Собственно само задание. 2)Дана строка символов. Определить количество слов, у которых первый и последний символы совпадают между...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru