Перейти к содержимому

Фотография

тестовый анализатор


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 66

#21
artem_g

artem_g
  • Завсегдатай
  • 206 сообщений
for i:=1 to размермассива do
begin
if массивзаписей[i].слово=массивзаписей[i+1].слово then
begin
массивзаписей[i].количество:=массивзаписей[i].количество+1;
for j:=i+1 to размермассива do
массивзаписей[j]:=массивзаписей[j+1];
end;
end;

Попрошу не смеяться над программистом-самоучкой)
зы возможна ошибка, ибо пишу на бегу


зызы массив по умолчанию отсортирован по алфавиту
  • 0

#22
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
Смеяться незачем, но это вообще не программа, а какой-то эскизный псевдокод. Исходник должен быть рабочий, чтобы он у каждого желающего компилировался в рабочую программу. И на тестовом примере (контрольный текст) чтобы показывал идентичные результаты.
  • 0

#23
zladey

zladey
  • Гость
  • 6 сообщений
)))))))))))))))))

если у вас есть толковые ссылки по perl где можно доходчиво почитать про язык, то скиньте пожалуйста =) просто мои знания пока ограничиваются на С++ (работал MicroSoft Visual Basic C++ 6.0 и сейчас начал работать в Microsoft Visual Studio 9.0)... специализация у меня просто маленько другая, не на программирование оринтирование а больше СисАдмина =)
  • 0

#24
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
Мне представляется, если мало работали или вообще не работали с Linux, то на Perl пересаживаться будет долго и трудно. Впрочем, я не настаиваю. Все очень индивидуально. Лично мне на C# для .NET намного проще и удобней.

Итак, как я уже обещал, выкладываю свой исходник на 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();
			}
		}
	}
}


  • 0

#25
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
Ну во первых, конечно же perl.org и русскоязычный сайт http://www.perl.org.ru Также cpan.org - огромное количество всего по перлу.
Еще рекомендую поискать книжку "Camel Book" - чуть ли не культовая книга.
Вообще я изучал по Дейтелу - "Как программировать на Perl" Ну и гугля.
Сам перл под винду можно скачать здесь
  • 0

#26
Кими

Кими
  • В доску свой
  • 2 252 сообщений
на великом и могучем языке 1С код рассматривается?
  • 0

#27
Gloomy

Gloomy
  • Свой человек
  • 861 сообщений
AWK.

Но работать с не-ASCII будет только на POSIX 1003.2 совместимых системах (читай не совсем уж рухляди) и при правильно установленной локали. Зато - как бесплатный бонус поймёт не только "великий и могучий" :rotate:

BEGIN   {
	FS="[^[:alnum:]]+"
}
{
	print $0
	x=1
	while ( x<=NF ) {
		  fr[$x]++
		  x++
	}
}
END	 { 
	for(j in fr) print j,fr[j]
}

  • 0

#28
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
Итак, для решения поставленной задачи представлены исходники работающих программ на Perl, C# и на AWK. Были также сделаны предварительные заявки на решение при помощи Delphi и даже 1С. :(

Однако, господа! Не забываем, что клиент (в данном случае это пользователь zladey) просил программу для работы с текстами на немецком языке:

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

Немецкие тексты имеют некоторые специфические буквы (например, ß), и особенно так называемые умляуты - например, ä, ö, ü, Ä, Ö, Ü.

Вопрос: может ли кто-нибудь показать, что его программа корректно отображает немецкий алфавит? Причем, без общих слов и рассуждений, что нужна "правильная настройка локали". Лучше покажите скриншот (снимок с экрана) вашей программы.
  • 0

#29
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

Вопрос: может ли кто-нибудь показать, что его программа корректно отображает немецкий алфавит? Причем, без общих слов и рассуждений, что нужна "правильная настройка локали". Лучше покажите скриншот (снимок с экрана) вашей программы.

Моя программа должна отображать и работать с немецким алфавитом. Естественно, нужна "правильная настройка локали" - понятно, что с некоректно настроенной локалью и при отсутсвии должных шрифтов вы ничего не увидите. Выложите пожалуйста образец файла.. Желательно в UTF-8 кодировке.
  • 0

#30
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Моя программа должна отображать и работать с немецким алфавитом. Естественно, нужна "правильная настройка локали"

Так "должна работать" или уже работает? Покажите снимок экрана.

- понятно, что с некоректно настроенной локалью и при отсутсвии должных шрифтов вы ничего не увидите. Выложите пожалуйста образец файла.. Желательно в 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.
  • 0

#31
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
Да пожалуйста. http://vse.kz/index....m...i&img=47950
  • 0

#32
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
Теперь вижу. Все в полном порядке. У меня аналогично:

Изображение


  • 0

#33
Gloomy

Gloomy
  • Свой человек
  • 861 сообщений
Visual1 - Вы персонально имеете право верить что Земля - плоская или к примеру - что международный стандарт POSIX - фуфел ...
Но просить нас доказывать что это не так ...
Ищите любой не протухший Линукс с UTF8 (думаю есть в Алма-Ате) - да проверяйте :)




Перечитал, решил что грубовато получилось - решил добавить why?
Visual1 - Ваши условия как бы сказать - too windoze что ли. Ну вот нахрена скриншоты? Любой вменяемый юниксоид дал бы входной и выходной файлы и всё. Я бы вам на десятке разных ящиков прогнал бы тест. Но настраивать там иксы ради этого? Ну уж нет :D

Сообщение отредактировал Gloomy: 24.12.2008, 13:21:49

  • 0

#34
Gloomy

Gloomy
  • Свой человек
  • 861 сообщений
Zulkar - я или уже перепел :) либо у Вас в перловке регехп не соответствует заданию Visual1-го. Мне кажется там нужен тупо \W (у меня в авке тоже самое но POSIX-compl. чтоб работало везде)

Сообщение отредактировал Gloomy: 24.12.2008, 13:23:35

  • 0

#35
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
Gloomy - я брал в качестве разделителей , . и \s. и их составляющие.
Почему то у меня под \w попадает только латиница. соответсвенно кирилица уходит под \W
RH4.5
perl v5.8.5
  • 0

#36
Gloomy

Gloomy
  • Свой человек
  • 861 сообщений

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 (или как ея) - или своё?

всё я спать.
  • 0

#37
megadeath

megadeath

    Фиона - не спать... )))

  • Читатель
  • 19 226 сообщений
Я так понял тема про простой счетчик слов... безо всякого анализа... :)
Разделители фиксированные что ли... или любые... например... дефис... разделитель или часть слова... какой-либо :-/
*Предлагаю вместо массива использовать динамические списки каки нибудь... :D или в базу данных все слова сливать... хоть какой никакой анализ... ;)
**А так задача для первокурсника...

#38
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Visual1 - Вы персонально имеете право верить что Земля - плоская или к примеру - что международный стандарт POSIX - фуфел ...

Придумывание идиотских мыслей и приписывание этих мыслей собеседнику - типичный демагогический прием. :D

Но просить нас доказывать что это не так ...

Читайте внимательней. Я не просил вас "доказывать, что это не так". Я всего лишь предложил показать, что ваша программа корректно воспроизводит немецкий алфавит. Странно, что для вас это такой труд. Мне (так же как и Zulkar'у) на это потребовалось несколько минут.

Ищите любой не протухший Линукс с UTF8 (думаю есть в Алма-Ате) - да проверяйте :p

Вот не знал, что мне, оказывается, кроме моей программы, надо еще и вашу проверять. И к тому же я должен для этого искать какой-то специальный Линукс, чтобы он был "не протухшим". ;)

Перечитал, решил что грубовато получилось

Получилось у вас не только грубовато, а даже по-хамски.

Visual1 - Ваши условия как бы сказать - too windoze что ли.

Нет, это не мои условия. Читайте внимательней тему. Пользователь zladey хотел, чтобы программа выполняла обработку немецких текстов. Никто не ограничивал, чтобы непременно под Windows.

Ну вот нахрена скриншоты? Любой вменяемый юниксоид дал бы входной и выходной файлы и всё. Я бы вам на десятке разных ящиков прогнал бы тест. Но настраивать там иксы ради этого? Ну уж нет :)

Ну вот еще раз удивляюсь вам. "Десяток ящиков" никто у вас не просил, только один небольшой скриншот с коротким немецким текстом, который был дан выше для проверки. Дела-то на несколько минут, а вы развели базар какой-то.


Я так понял тема про простой счетчик слов... безо всякого анализа... :)

Гениальная догадка! :) Особенно после того, как условие задачи обсуждалось еще на прошлой неделе, и уже представлены три готовых исходника. :D

*Предлагаю вместо массива использовать динамические списки каки нибудь... :D или в базу данных все слова сливать... хоть какой никакой анализ... :)

Ну так в чем проблема? Вот и показали бы, как надо делать.

**А так задача для первокурсника...

Замечательно. Знайте все на этом форуме, что пользователи Gloomy, Zulkar и Visual1 - первокурсники. Или скажем так, у них способности не выше чем у первокурсников. А вот пользователь massacre такой ерундой не занимается, у него задачи намного сложнее (восстановление клитора и либидо, например).

Сообщение отредактировал Visual1: 24.12.2008, 17:36:04

  • 0

#39
megadeath

megadeath

    Фиона - не спать... )))

  • Читатель
  • 19 226 сообщений

Гениальная догадка! :D Особенно когда условие задачи обсуждалось на прошлой

Хех... ну читаю я наискось... :)
А как с этим... поступить... ;)

потом сверяется со словами которые уже были раньше в других текстах =)

Текст только плоский будет? :)

#40
megadeath

megadeath

    Фиона - не спать... )))

  • Читатель
  • 19 226 сообщений

Замечательно. Знайте все на этом форуме, что Gloomy, Zulkar и Visual1 - первокурсники. Пользователь massacre такой ерундой не занимается, у него задачи намного сложнее (восстановление клитора, например).

:) кто все эти люди... :)
*Насчет подпеси... еще раз... :D

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


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.