тестовый анализатор
#21
Отправлено 19.12.2008, 18:02:02
begin
if массивзаписей[i].слово=массивзаписей[i+1].слово then
begin
массивзаписей[i].количество:=массивзаписей[i].количество+1;
for j:=i+1 to размермассива do
массивзаписей[j]:=массивзаписей[j+1];
end;
end;
Попрошу не смеяться над программистом-самоучкой)
зы возможна ошибка, ибо пишу на бегу
зызы массив по умолчанию отсортирован по алфавиту
#23
Отправлено 19.12.2008, 18:40:27
если у вас есть толковые ссылки по perl где можно доходчиво почитать про язык, то скиньте пожалуйста =) просто мои знания пока ограничиваются на С++ (работал MicroSoft Visual Basic C++ 6.0 и сейчас начал работать в Microsoft Visual Studio 9.0)... специализация у меня просто маленько другая, не на программирование оринтирование а больше СисАдмина =)
#24
Отправлено 19.12.2008, 18:52:05
Итак, как я уже обещал, выкладываю свой исходник на C# для .NET 2.0:
using System; using System.IO; using System.Text; using System.Collections; using System.Text.RegularExpressions; namespace TextInputAnalyzer { class Program { static void Main(string[] args) { int total = 0; Hashtable ht = new Hashtable(); string input; string FileToRead; Console.WriteLine("Введите имя файла, из которого читать текст:"); try { FileToRead = Console.ReadLine(); using (StreamReader sr = new StreamReader(FileToRead, Encoding.GetEncoding(1251))) { input = sr.ReadToEnd(); Console.WriteLine("Текст, считанный из файла {0}:", FileToRead); Console.WriteLine("\"" + input + "\""); } Match match = Regex.Match(input, @"\w+"); while (match.Success) { string word = match.ToString(); if (ht.ContainsKey(word)) ht[word] = ((int)ht[word] + 1); else ht.Add(word, 1); match = match.NextMatch(); ++total; } Console.WriteLine("Всего слов в тексте: {0}", total); Console.WriteLine("Количество повторений каждого слова:"); foreach (DictionaryEntry entry in ht) { Console.WriteLine("{0,-20} : {1} раз", entry.Key, entry.Value); } } catch { Console.WriteLine("Файл не найден или не существует!"); } finally { Console.WriteLine("Для выхода нажмите <Enter>"); Console.ReadLine(); } } } }
#25
Отправлено 19.12.2008, 18:58:30
Еще рекомендую поискать книжку "Camel Book" - чуть ли не культовая книга.
Вообще я изучал по Дейтелу - "Как программировать на Perl" Ну и гугля.
Сам перл под винду можно скачать здесь
#27
Отправлено 20.12.2008, 13:27:42
Но работать с не-ASCII будет только на POSIX 1003.2 совместимых системах (читай не совсем уж рухляди) и при правильно установленной локали. Зато - как бесплатный бонус поймёт не только "великий и могучий"
BEGIN { FS="[^[:alnum:]]+" } { print $0 x=1 while ( x<=NF ) { fr[$x]++ x++ } } END { for(j in fr) print j,fr[j] }
#28
Отправлено 23.12.2008, 11:10:38
Однако, господа! Не забываем, что клиент (в данном случае это пользователь zladey) просил программу для работы с текстами на немецком языке:
Немецкие тексты имеют некоторые специфические буквы (например, ß), и особенно так называемые умляуты - например, ä, ö, ü, Ä, Ö, Ü.Мне это программа нужна для работы с немецкими текстами, задача программы выявить наиболее употребляймые слова в текстах, которые предоставляют учителя перед лекциями в онлайн виде. Это должно облегчить изучение немецкого
Вопрос: может ли кто-нибудь показать, что его программа корректно отображает немецкий алфавит? Причем, без общих слов и рассуждений, что нужна "правильная настройка локали". Лучше покажите скриншот (снимок с экрана) вашей программы.
#29
Отправлено 23.12.2008, 11:17:59
Моя программа должна отображать и работать с немецким алфавитом. Естественно, нужна "правильная настройка локали" - понятно, что с некоректно настроенной локалью и при отсутсвии должных шрифтов вы ничего не увидите. Выложите пожалуйста образец файла.. Желательно в UTF-8 кодировке.Вопрос: может ли кто-нибудь показать, что его программа корректно отображает немецкий алфавит? Причем, без общих слов и рассуждений, что нужна "правильная настройка локали". Лучше покажите скриншот (снимок с экрана) вашей программы.
#30
Отправлено 23.12.2008, 11:36:36
Так "должна работать" или уже работает? Покажите снимок экрана.Моя программа должна отображать и работать с немецким алфавитом. Естественно, нужна "правильная настройка локали"
- понятно, что с некоректно настроенной локалью и при отсутсвии должных шрифтов вы ничего не увидите. Выложите пожалуйста образец файла.. Желательно в UTF-8 кодировке.
Вы имеете в виду образец текста для проверки программы? Пожалуйста:
Reich ist man nicht durch das, was man besitzt, sondern mehr noch durch das, was man mit Würde zu entbehren weiß, und es könnte sein, dass die Menschheit reicher wird, indem sie ärmer wird, und gewinnt, indem sie verliert.
#31
Отправлено 23.12.2008, 11:47:32
#33
Отправлено 24.12.2008, 13:11:06
Но просить нас доказывать что это не так ...
Ищите любой не протухший Линукс с UTF8 (думаю есть в Алма-Ате) - да проверяйте
Перечитал, решил что грубовато получилось - решил добавить why?
Visual1 - Ваши условия как бы сказать - too windoze что ли. Ну вот нахрена скриншоты? Любой вменяемый юниксоид дал бы входной и выходной файлы и всё. Я бы вам на десятке разных ящиков прогнал бы тест. Но настраивать там иксы ради этого? Ну уж нет
Сообщение отредактировал Gloomy: 24.12.2008, 13:21:49
#36
Отправлено 24.12.2008, 13:39:04
Gloomy - я брал в качестве разделителей , . и \s. и их составляющие.
Почему то у меня под \w попадает только латиница. соответсвенно кирилица уходит под \W
RH4.5
perl v5.8.5
Попробуй регексп из моего скрипта. Шорткаты (\s \w) насколько мой моск наполненный финкой помнит - в позиксе не упоминаются - стал быть implementation behavior.
PS: А кстати! Если у тебя Линукс с UTF8 - будь ласка прогони мой скрипт типа awk -f gloomy.awk deutche_guten_alles.txt и скриншот пришпиль ... пыжалыста! А то Visual1 зверствует - грит без скриншота в финал не выйду %)
PPS: Visual1 - а регехпы в .нет-е как поддерживаются? Линковкой regexp.dll (или как ея) - или своё?
всё я спать.
#37
Отправлено 24.12.2008, 13:40:59
Разделители фиксированные что ли... или любые... например... дефис... разделитель или часть слова... какой-либо
*Предлагаю вместо массива использовать динамические списки каки нибудь... или в базу данных все слова сливать... хоть какой никакой анализ...
**А так задача для первокурсника...
#38
Отправлено 24.12.2008, 17:07:18
Придумывание идиотских мыслей и приписывание этих мыслей собеседнику - типичный демагогический прием.Visual1 - Вы персонально имеете право верить что Земля - плоская или к примеру - что международный стандарт POSIX - фуфел ...
Читайте внимательней. Я не просил вас "доказывать, что это не так". Я всего лишь предложил показать, что ваша программа корректно воспроизводит немецкий алфавит. Странно, что для вас это такой труд. Мне (так же как и Zulkar'у) на это потребовалось несколько минут.Но просить нас доказывать что это не так ...
Вот не знал, что мне, оказывается, кроме моей программы, надо еще и вашу проверять. И к тому же я должен для этого искать какой-то специальный Линукс, чтобы он был "не протухшим".Ищите любой не протухший Линукс с UTF8 (думаю есть в Алма-Ате) - да проверяйте
Получилось у вас не только грубовато, а даже по-хамски.Перечитал, решил что грубовато получилось
Нет, это не мои условия. Читайте внимательней тему. Пользователь zladey хотел, чтобы программа выполняла обработку немецких текстов. Никто не ограничивал, чтобы непременно под Windows.Visual1 - Ваши условия как бы сказать - too windoze что ли.
Ну вот еще раз удивляюсь вам. "Десяток ящиков" никто у вас не просил, только один небольшой скриншот с коротким немецким текстом, который был дан выше для проверки. Дела-то на несколько минут, а вы развели базар какой-то.Ну вот нахрена скриншоты? Любой вменяемый юниксоид дал бы входной и выходной файлы и всё. Я бы вам на десятке разных ящиков прогнал бы тест. Но настраивать там иксы ради этого? Ну уж нет
Гениальная догадка! Особенно после того, как условие задачи обсуждалось еще на прошлой неделе, и уже представлены три готовых исходника.Я так понял тема про простой счетчик слов... безо всякого анализа...
Ну так в чем проблема? Вот и показали бы, как надо делать.*Предлагаю вместо массива использовать динамические списки каки нибудь... или в базу данных все слова сливать... хоть какой никакой анализ...
Замечательно. Знайте все на этом форуме, что пользователи Gloomy, Zulkar и Visual1 - первокурсники. Или скажем так, у них способности не выше чем у первокурсников. А вот пользователь massacre такой ерундой не занимается, у него задачи намного сложнее (восстановление клитора и либидо, например).**А так задача для первокурсника...
Сообщение отредактировал Visual1: 24.12.2008, 17:36:04
#40
Отправлено 24.12.2008, 17:20:08
кто все эти люди...Замечательно. Знайте все на этом форуме, что Gloomy, Zulkar и Visual1 - первокурсники. Пользователь massacre такой ерундой не занимается, у него задачи намного сложнее (восстановление клитора, например).
*Насчет подпеси... еще раз...
*Насчет пробовать самому... ну в лом мне херней страдать... я уж лучше за деньги поработаю... ни для славы...
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0