Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
44 / 44 / 28
Регистрация: 06.07.2011
Сообщений: 353

Сравнивание строковых элементов двух массивов

14.12.2011, 20:46. Показов 2978. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Необходимо написать программку, которая сверяет 2 массива, и находит процент правильных(совпавших слов) ответов!

VB.NET
1
2
3
4
5
6
7
8
9
10
 Dim slova As String 'Сюда заносятся все слова
'Массив с которым сверяем
        Dim mass() As String = {"один", "два", "три", "cyberforum", "google"} 
        Dim slp() As String 'Массив, после разбития slova(массив)
        Dim schetchik As Integer 'Счетчик правильных ответов
 
 
        Console.WriteLine("Введите слова через запятую:")
        slova = Console.ReadLine 'Считываем, что нам ввели
        slp = slova.Split(",") 'Разбиваем слова
Далее нужно каждое слово прогнать по массиву mass, и если есть такое слово тогда делаем к счетчику +1
После того как мы прогнали все слова, мы должны посчитать процент правильных ответов (Максимальный бал: 100%, минимальный 1%)

Надеюсь на вашу помощь!
Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2011, 20:46
Ответы с готовыми решениями:

Работа с массивами в С++ . Поиск отличающихся элементов двух строковых массивов
Как заполнить массив элементами , которые отличают массивы между собой? Например , есть 1-ый массив ( "1.txt",...

Отбор через сравнивание двух массивов
Здравствуйте, умные люди! Столкнулся по работе с большими массивами данных, обработать которые в Excel, я так понимаю, можно только с...

Сравнение двух строковых массивов
Необходимо провести сравнение двух строковых массивов на одно отличие Например, в первом массиве хранится 0000, а в другом 0001, 0010, то...

12
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
14.12.2011, 21:11
Принцип переделывать не стал, оставлю это тебе, резать строку по запятой, имхо, не гуд, ибо попадется пробел и начнется вранье.
Доделал то что у тебя начато:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
        Dim slova As String 'Сюда заносятся все слова
        'Массив с которым сверяем
        Dim mass() As String = {"один", "два", "три", "cyberforum", "google"} 
        Dim slp() As String 'Массив, после разбития slova(массив)
        Dim schetchik As Integer 'Счетчик правильных ответов
        Console.WriteLine("Введите слова через запятую:")
        slova = Console.ReadLine 'Считываем, что нам ввели
        slp = slova.Split(",") 'Разбиваем слова
        For I As Integer = 0 To slp.Length - 1
            If mass.Contains(slp(I)) Then schetchik += 1
        Next
        Console.WriteLine("Процент совпадения слов: " & Int((schetchik / mass.Length) * 100) & "%")
        Console.ReadKey()
1
44 / 44 / 28
Регистрация: 06.07.2011
Сообщений: 353
17.12.2011, 22:56  [ТС]
Памирыч, все хорошо, но если ввести 5 раз подряд одно и тоже слово которое есть в массиве, он его засчитает столько раз, сколько оно встречается

Т.е если есть массив:
VB.NET
1
Dim mass() As string = {"1","2"}
И в нашей строке (которая сравнивает), вписать 5 раз по "1", он посчитает

Как можно это исправить?Т.е если слово уже было, потом искать не будет (до перезапуска программы)
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
17.12.2011, 23:43
objaa, это называется, выпрямление рук юзера
(обработка ошибок, контроль введенных данных и прочее)
Честно говоря, писать все это для такого приложения - не очень хочется.

Но раз ты взялся за это дело, могу посоветовать поставить контроль, чтобы количество введенных слов не превышало количество слов исходной строки, и по меньшей мере, были уникальны
0
44 / 44 / 28
Регистрация: 06.07.2011
Сообщений: 353
17.12.2011, 23:45  [ТС]
Цитата Сообщение от Памирыч Посмотреть сообщение
objaa, это называется, выпрямление рук юзера
(обработка ошибок, контроль введенных данных и прочее)
Честно говоря, писать все это для такого приложения - не очень хочется.

Но раз ты взялся за это дело, могу посоветовать поставить контроль, чтобы количество введенных слов не превышало количество слов исходной строки, и по меньшей мере, были уникальны
Был бы очень вам признателен
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
17.12.2011, 23:59
objaa, смотри метод Intersect - у тебя вроде обычное пересечение множеств, с помощью этого метода находишь результирующий массив и затем получаешь его размер. Этот размер делишь на размер массива с исходными словами - и таким образом получаешь процент совпадения
1
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
18.12.2011, 00:10
objaa, я вообще-то совет дал тебе, решать за тебя не собирался.
Но раз на то пошло, продолжение этого велосипеда:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Dim slova As String 'Сюда заносятся все слова
        'Массив с которым сверяем
        Dim mass() As String = {"один", "два", "три", "cyberforum", "google"}
        Dim slp() As String 'Массив, после разбития slova(массив)
        Dim schetchik As Integer 'Счетчик правильных ответов
        Console.WriteLine("Введите слова через запятую:")
        slova = Console.ReadLine 'Считываем, что нам ввели
        slp = slova.Split(",") 'Разбиваем слова
        If slp.Distinct.Count = slp.Count And slp.Count <= mass.Count Then 'КОНТРОЛЬ
            For I As Integer = 0 To slp.Length - 1
                If mass.Contains(slp(I)) Then schetchik += 1
            Next
            Console.WriteLine("Процент совпадения слов: " & Int((schetchik / mass.Length) * 100) & "%")
        Else
            Console.WriteLine("Вы ввели неверные данные (неуникальные слова или число слов больше, чем требуется). Досвиданья")
        End If
        Console.ReadKey()
1
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
18.12.2011, 01:01
Цитата Сообщение от Памирыч Посмотреть сообщение
slp.Distinct
Это что такое? У стринга есть такое? или это выше 2.0?
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
18.12.2011, 01:04
eJ_Studio, пришлось глянуть в 3.5, неохота свои огороды городить было.

Тока это не у стринга, а у массива
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
18.12.2011, 01:49
ну да, ну да...Жаль что 2.0 не поддерживает многие интересные функции и т.д. какие есть в 3.0 и выше
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
18.12.2011, 18:42
Короче вся эта лабуда для чисел делается так
VB.NET
1
2
3
4
5
6
Dim a() As Integer = New Integer() {1, 2, 3, 4, 5, 6}
 
        Dim b() As Integer = New Integer() {5, 5, 6, 6, 7, 8, 9}
        Dim c As IEnumerable(Of Integer) = a.Intersect(b)
 
        Console.WriteLine("Процент совпадения: {0:f2} %", c.Count / a.Count * 100)
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
18.12.2011, 18:50
Цитата Сообщение от Eugene22 Посмотреть сообщение
Integer
Дык у него слова вроде
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
18.12.2011, 18:53
Цитата Сообщение от Памирыч Посмотреть сообщение
Дык у него слова вроде
дык, пускай додумывает, я просто показал образец
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2011, 18:53
Помогаю со студенческими работами здесь

Сравнение двух строковых массивов
Как сравнить два строковых массива на одно отличие и если оно есть, то записать в новый с заменой отличающейся позиции на * В первом...

Сравнение элементов строковых массивов
Всем привет и всех с прошедшим! :) При разработке программки столкнулся с проблемой: есть 2 строковых массива типа String^, нужно...

Объединение двух массивов в один с чередованием элементов исходных массивов.
Вариант 4 (упр 1 и 2)Помогите написать ребят! в частности не получается написать 2 задачу с матрицой нехватает навыков программирования ...

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

Сравнивание массивов.Как можно сделать проще ?
Реализовал метод richEquals,который принимает два параметра array1 {Array} array2 {Array}.И возвращает булен равны ли массивы array1 и...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru