Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/43: Рейтинг темы: голосов - 43, средняя оценка - 4.79
Елена 91

Запросить у пользователя Фамилию Имя Отчество через пробел в одну строку и выдать в сокращенном виде Фамилию И. О.

02.12.2011, 17:32. Показов 9089. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание 7. Запросить у пользователя Фамилию Имя Отчество через пробел в одну строку и выдать в сокращенном виде Фамилию И. О.

Задание 8. Создайте функцию пользователя, которая бы возвращала число гласных в строковой переменной

Задание 9. Создайте функцию пользователя для проверки, есть ли в строковой переменой заданный символ. Функция должна запросить у пользователя строковую переменную и символ и вернуть True в случае если символ присутствует в строке и в противном случае False.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2011, 17:32
Ответы с готовыми решениями:

Запросить у пользователя Фамилию Имя Отчество и выдать в сокращенном виде Фамилию И.О.
Visual basic Запросить у пользователя Фамилию Имя Отчество через пробел в одну строку(в Textbox) и выдать в сокращенном виде Фамилию И. О.

Запросить фамилию, имя и отчество пользователя, и вывести его фамилию и инициалы
Вот задание:Написать программу, которая запрашивает фамилию, имя и отчество, а выводит фамилию и инициалы!!!

Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Записать одну фамилию в виде И...в.
Помогите пожалуйста. Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Записать одну фамилию в виде И...в. ...

21
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
03.12.2011, 20:21
Студворк — интернет-сервис помощи студентам
покажите преподавателю этот код, пусть порадуется
А преподавателя любимая книга: "12 стульев"

Остап Сулейман Берта Мария Бендер-Бей
три доступные функции выдали такое:
Остап Сулейман Берта Мария Бендер-Б.
Остап С.
О.-Б.
Великий маликитский факих, имам Ибн аль-Хадж аль-Малики (ум. 737 г. по хиджре/ 1336 г.) пишет о посещении могил учёных и праведников, в своей книге «Аль-Мадхаль»:
Ибн аль-Хадж аль-М.
Ибн А.-Х.
И.-Х.
Ага, Восток дело тонкое
0
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 6
23.10.2019, 12:29
Мира вашему дому. А можно ли этот код, переделать так, чтоб он брал ФИО из таблицы (для слияния) и вставлял переделанную Фамилию И.О. в шаблон (слияния с таблицой)? Таблица и шаблон разные файлы

Добавлено через 3 минуты
Цитата Сообщение от R Dmitry Посмотреть сообщение
Автор Aent , за что ему отдельное спасибо.
покажите преподавателю этот код, пусть порадуется

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Option Compare Text
Public Function Инициалы(s As String, Optional Cлева As Boolean = False)
 
    Dim sv As Variant
    DimAs String
    DimAs String
    DimAs String
    Dim i As Long
    Dim k As Long
    Application.Volatile True
    
    If InStr(s, ".") > 0 Or Len(Trim$(s)) = 0 Then
        Инициалы = s 'Инициалы заданы явно или пустая строка
        Exit Function
    End If
    'Нормализация входной строки
    s = Replace(Application.Trim(s), Chr(30), "-")
    s = Replace(Replace(s, " -", "-"), "- ", "-")
    s = Replace(Replace(s, "' ", "'"), " '", "'") ' О 'Генри Александр; О' Генри Александр; Н' Гомо; Д' Тревиль
    sv = Split(s)
    
    sИ = vbNullString
    sО = vbNullString
    sФ = vbNullString
    
    i = UBound(sv)
    If i < 1 Then
        Инициалы = s
        Exit Function
    End If
    Select Case sv(i)
        Case "оглы", "кызы", "заде" 'бей, бек, заде, зуль, ибн, кызы, оглы, оль, паша, уль, хан, шах, эд, эль
            i = i - 1
            sО = UCase(Left$(sv(i), 1)) & "."
            i = i - 1
        Case "паша", "хан", "шах", "шейх"
            i = i - 1
        Case Else
            Select Case Right$(sv(i), 3)
                Case "вич", "вна"
                    If i >= 2 Then 'Стандартное окончание русских отчеств
                        sО = СropWord(sv(i))
                    Else           'Имя типа Босан Славич
                        sИ = СropWord(sv(i))
                        sФ = sv(0)
                    End If
                    i = i - 1
                Case Else
                    k = InStr(sv(i), "-")
                    If k > 0 Then
                        Select Case Mid$(sv(i), k + 1)
                            Case "оглы", "кызы", "заде", "угли", "уулы", "оол" 'Вариант насаба «-оглы» и «-заде»  типа Махмуд-оглы
                                sО = UCase(Left$(sv(i), 1)) & "."
                                i = i - 1
                                If i = 0 Then
                                   sИ = sО
                                   sО = vbNullString
                                End If
                        End Select
                    ElseIf i > 2 Then
                        Select Case sv(i - 1)
                            Case "ибн", "бен", "бин"
                                sО = UCase(Left$(sv(i), 1)) & "." ' Усерталь Алишер бен Сулейман
                                i = i - 2
                        End Select
                    Else ' Бен Эдуард
                        sИ = UCase(Left$(sv(i), 1))
                        If Len(sv(i)) > 1 Then sИ = sИ & "."
                        i = i - 1
                    End If
            End Select
    End Select
         
    Select Case sv(0)
        Case "де", "дел", "дос", "cент", "ван", "фон", "цу"
            If i >= 2 Then
                sФ = sv(0) & " " & StrConv(sv(1), vbProperCase)
                sИ = СropWord(sv(2))
            Else   'Де Николай
                If Len(sИ) > 0 Then
                    sФ = sv(0) & " " & StrConv(sv(1), vbProperCase)
                Else
                    sФ = StrConv(sv(0), vbProperCase)
                    sИ = СropWord(sv(1))
                End If
            End If
       Case Else
            If Len(sФ) = 0 Then 'Ещё не определили фамилию
                sФ = StrConv(sv(0), vbProperCase)
                If Len(sИ) = 0 Then
                   sИ = СropWord(sv(1))
                End If
            End If
    End Select
    If Слева Then
        Инициалы = sИ & sО & " " & sФ
    Else
        Инициалы = sФ & " " & sИ & sО
    End If
 
End Function
Public Function СropWord(s As Variant) As String
    Dim ss As String
    If Len(s) = 1 Then
        СropWord = s
    Else
        ss = UCase(Left$(s, 1)) & "."
        k = InStr(s, "-")
        If k > 0 Then
            ss = ss & "-" & Mid$(s, k + 1, 1) & "."
        End If
        СropWord = ss
    End If
End Function
Function CropFIO(ByVal FIO As String) As String
    ' получает в качестве параметра текстовую строку с виде "Фамилия имя отчество"
    ' обрезает имя и отчество, оставляя лишь инициалы - в виде "Фамилия И. О."
    Application.Volatile True
    CropFIO = Application.Trim(FIO): arr = Split(Replace(CropFIO, "-", " - "), " ")
 
    For i = UBound(arr) - 1 To UBound(arr)
        If Len(arr(i)) > 1 Then arr(i) = UCase(Left(arr(i), 1)) & "."
    Next i
    CropFIO = Replace(Replace(Join(arr, " "), " - ", "-"), ". ", ".")
End Function
Visual Basic
1
2
3
4
Sub tttest()
MsgBox Инициалы("Курамбек сулейман ибн хатаб")
MsgBox CropFIO("Курамбек сулейман ибн хатаб")
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2019, 12:29

Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести фамилию и инициалы
Пример: Введите фамилию, имя и отчество: Иванов Петр Семёнович П.С. Иванов

Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести фамилию и инициалы
Пример: Введите фамилию, имя и отчество: Иванов Петр Семёнович П.С. Иванов Нашёл такую же тему, но не могу понять как устроено,...

Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы
Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы. _______ Как это задание...

Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы
Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы.

Дана строка, содержащая фамилию, имя и отчество. Вывести на экран строку, содержащую фамилию и инициалы
Дана строка, содержащая фамилию, имя и отчество. Вывести на экран строку, содержащую фамилию и инициалы. Пример: Вводим: Кукушкин...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru