Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Saddler
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 8
1

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

31.05.2012, 22:43. Просмотров 1815. Ответов 12
Метки нет (Все метки)

Задание:Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все предыдущие вхождения его последней буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «.ИНИ.УМ». Количество пробелов между словами не изменять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 22:43
Ответы с готовыми решениями:

Удалить из строки все вхождения заданного слова
помогжите пожалуйста сделать две задачки 1.В веденной строке вывести на экран...

Все буквы слова, в котором содержится не менее двух букв а, заменить на заглавные буквы
Задача такая: Все буквы слова, в котором содержится не менее двух букв а,...

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

Во введенной строке заменить все строчные буквы на прописные и наоборот
Во введенной строке заменить все строчные буквы на прописные и наоборот.

Макрос для LibreOffice: заменять все буквы каждого пятого слова на вторые буквы следующего слова за ним
Здравсвуйте! Нужен макрос для LibreOffice, который будет заменять все буквы...

12
Catstail
Модератор
23615 / 11715 / 2047
Регистрация: 12.02.2012
Сообщений: 19,110
01.06.2012, 13:55 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function Transf(ByVal S As String) As String
   ii% = 2
   Do
       If (Mid$(S, ii%, 1) = " " And Mid$(S, ii% - 1, 1) <> " ") Or _
          (Mid$(S, ii%, 1) <> " " And ii% = Len(S)) Then
          If ii% = Len(S) Then
             last$ = Mid$(S, ii%, 1)
             jj% = ii% - 1
          Else
             last$ = Mid$(S, ii% - 1, 1)
             jj% = ii% - 2
          End If
          Do
             If (jj% < 1) Then Exit Do
             If Mid$(S, jj%, 1) = " " Then Exit Do
             If Mid$(S, jj%, 1) = last$ Then Mid$(S, jj%, 1) = "."
             jj% = jj% - 1
          Loop
       End If
       ii% = ii% + 1
       If ii% > Len(S) Then Exit Do
   Loop
   Transf = S
End Function
0
ikki
призрак
2823 / 879 / 118
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
01.06.2012, 14:53 3
чуть короче
Visual Basic
1
2
3
4
5
6
7
8
Function f$(s$)
  Dim x, i%
  x = Split(s)
  For i = 0 To UBound(x)
    If Len(x(i)) Then x(i) = Replace(Left(x(i), Len(x(i)) - 1), Right(x(i), 1), ".") & Right(x(i), 1)
  Next
  f = Join(x)
End Function
1
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
01.06.2012, 16:46 4
чуть быстрее, м.б.
Visual Basic
1
2
3
4
5
6
7
8
Function f$(s$)
  Dim x, i%
  x = Split(s)
  For i = 0 To UBound(x)
    If instrrev(x(i),Right(x(i), 1),Len(x(i)) - 1) Then x(i) = Replace(Left(x(i), Len(x(i)) - 1), Right(x(i), 1), ".") & Right(x(i), 1)
  Next
  f = Join(x)
End Function
1
ikki
призрак
2823 / 879 / 118
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
01.06.2012, 16:59 5
Цитата Сообщение от Diskretor Посмотреть сообщение
чуть быстрее, м.б.
скорее всего - да.
но при наличии однобуквенных слов - смертельная ошибка №5.
1
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
01.06.2012, 17:19 6
Варианты:
1)
Visual Basic
1
2
3
4
5
6
7
8
Function f$(s$)
Dim x, i%
x = Split(s)
For i = 0 To UBound(x)
    x(i) = Replace(x(i), Right(x(i), 1), ".", , Len(x(i)) - Len(Replace(x(i), Right(x(i), 1), "")) - 1)
Next
f = Join(x)
End Function
2)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Function f$(s$)
Dim x, i%
x = Split(s)
For i = 0 To UBound(x)
  if Len(x(i))>1 then
    Do While InStrRev(x(i), Right(x(i), 1), Len(x(i)) - 1)
        Mid(x(i), InStr(x(i), Right(x(i), 1)), 1) = "."
    Loop
  end if
Next
f = Join(x)
End Function
Добавлено через 6 минут
Мдя. Тогда все-таки так:
Visual Basic
1
2
3
4
5
6
7
8
Function f$(s$)
  Dim x, i%
  x = Split(s)
  For i = 0 To UBound(x)
    If Len(x(i))>1 then if instrrev(x(i),Right(x(i), 1),Len(x(i)) - 1) Then x(i) = Replace(Left(x(i), Len(x(i)) - 1), Right(x(i), 1), ".") & Right(x(i), 1)
  Next
  f = Join(x)
End Function
Ушел учить мат.часть
0
Saddler
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 8
01.06.2012, 17:20  [ТС] 7
Я чайник,ребята какую нужно форму создать? У меня не получается что-то(
0
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
01.06.2012, 17:21 8
Такую:
Visual Basic
1
2
3
sub aa()
msgbox f("МОЙ ТЕКСТ")
end sub
и без формы.
0
Mindfreak667
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 13
01.06.2012, 19:02 9
Ребята, мы тупые студенты напишите нам нормально код программы чтобы он работал, мы ваще ппц непонимаем ничего в этом коде он для нас как китайский язык! нужен код чтобы его тупо ввести и чтобы он работал и когда мы вводили бы текст Все работать должно ептЭ!помогите плиз) ато код ы какието нерабочие чтото там нужно менять чтобы они работали( или зделайте плиз всамом вижуал бейсике 6,0 это задание и залейте на фриспейс http://freespace.by
0
Saddler
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 8
01.06.2012, 19:13  [ТС] 10
Цитата Сообщение от Mindfreak667 Посмотреть сообщение
Ребята, мы тупые студенты напишите нам нормально код программы чтобы он работал, мы ваще ппц непонимаем ничего в этом коде он для нас как китайский язык! нужен код чтобы его тупо ввести и чтобы он работал и когда мы вводили бы текст Все работать должно ептЭ!помогите плиз) ато код ы какието нерабочие чтото там нужно менять чтобы они работали( или зделайте плиз всамом вижуал бейсике 6,0 это задание и залейте на фриспейс http://freespace.by
или на депозит..
0
Памирыч
Почетный модератор
20878 / 8762 / 1080
Регистрация: 11.04.2010
Сообщений: 11,013
01.06.2012, 19:36 11
Никаких файлопомоек. Файлы нужно прикреплять к посту, в расширенном режиме "Скрепка"
0
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
02.06.2012, 05:38 12
Цитата Сообщение от Saddler Посмотреть сообщение
или зделайте плиз всамом вижуал бейсике 6,0
Вы в разделе VBA. Это код для него. Ничего менять не нужно. Тупо вставить код функции ikki_cf и процедуру (ALT+F8).
0
Вложения
Тип файла: xls To4ki.xls (27.0 Кб, 17 просмотров)
Alex77755
10740 / 3312 / 550
Регистрация: 13.02.2009
Сообщений: 9,759
02.06.2012, 07:46 13
Ребята, мы тупые студенты напишите нам нормально код программы чтобы он работал, мы ваще ппц непонимаем ничего в этом коде он для нас как китайский язык! нужен код чтобы его тупо ввести и чтобы он работал и когда мы вводили бы текст Все работать должно ептЭ

Не по теме:

+
Вот с этим заявлением вам как будущим "СПЕЦИАЛИСТАМ" и руководителям производства лучше обратится в деканат

0
02.06.2012, 07:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2012, 07:46

Нужно заменить все вхождения в тексте каждого пункта списка (word 2007 - 2010)
Есть список слов. У каждого свой номер в списке. Нужно заменить в тексте все...

Преобразовать каждое слово в строке, заменив в нём все предыдущие вхождения последней буквы на точку
Дана строка, состоящая из русских слов, набранных заглавными буквами и...

Удалить из каждого третьего слова заданного текста слова все предыдущие вхождения последней буквы
Дана последовательность слов.Напечатать все слова,предварительно преобразив...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru