Подсчет количества разных символов в тексте

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Аватара пользователя
litis
Сообщения: 4
Зарегистрирован: 15 апр 2008, 20:21
Откуда: Кривой Рог
Контактная информация:

Помогите, пожалуйста решить эту задачу, заранее спасибо!
Определите какие символы и сколько раз встречаються в тексте.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Создать массив из 256 элементов типа Integer.
Дальше брать каждый символ текста и повышать на единицу элемент массива с индексом этого символа. Дальше вывести значения всех элементов, не равных 0.
Ни что так не ограничивает фантазию программиста, как компилятор...
BHy4ok
Сообщения: 237
Зарегистрирован: 01 май 2007, 09:03
Откуда: г.Находка
Контактная информация:

litis писал(а):Помогите, пожалуйста решить эту задачу, заранее спасибо!
Определите какие символы и сколько раз встречаються в тексте.

Делфи, паскаль ?
< L3X. (ICQ: 8721378, Mail - l3x@list.ru)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Переименовал тему
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
un4-funeral
Сообщения: 60
Зарегистрирован: 18 апр 2008, 23:40
Контактная информация:

в тексте? в смысле в текстовом файле ? хотя не важно

в своё время делал для интереса...не откопал исходник


Код: Выделить всё

//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdio.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;


struct simvoli
        {
        char s;
        int kol;
        };


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void kol_sim(AnsiString str)
{
simvoli sim[200];     //Массив структур, содержащий символы и их количество
int point;

point=0;              //Число символов
//Занос неповторяющихся символов в массив
for (int i=1;i<=str.Length();++i)
        {
        int fl;
        fl=0;
        for (int j=0;j<point;++j)
                {
                if (str[i]==sim[j].s)
                        ++fl;
                }
        if (fl==0)
                {
                sim[point].s=str[i];
                sim[point].kol=1;
                ++point;
                }
        }


//Подсчёт количества
for (int j=0;j<point;++j)
        {
        int kol;
        kol=0;
        for (int i=1;i<=str.Length();++i)
                {
                if (str[i]==sim[j].s)
                        ++kol;
                }
        sim[j].kol=kol;
        }
//Вывод в Edit2
for (int i=0;i<point;++i)
        {
        Form1->Edit2->Text=Form1->Edit2->Text+sim[i].s;
        Form1->Edit2->Text=Form1->Edit2->Text+sim[i].kol;
        }

}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
kol_sim(Edit1->Text);

}
//---------------------------------------------------------------------------


вообще мы в void kol_sim(AnsiString str) отправляем строк и производим с ней действия
писал на скорую руку...так что сорь, если нерационально =)
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

если я не ошибаюсь, в разделе алгоритмов эта тема рассматривалась.
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Ответить