Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 5
1

Поменять местами имя и фамилию, результат вывести на экран.

20.03.2011, 17:07. Показов 3740. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть два задания одно я сделал "В компьютер вводится 10 слов. Вывести эти слова на экран, отсортированные в алфавитном порядке." вот программа Sub Prog_v6()
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
Dim sl(10)  As String, ss As String ' описание переменных
Dim i As Integer, k  As Integer
 
 
' вводим массив в диалоге
For i = 1 To 10
  sl(i) = InputBox("Cлово " & Str(i) & " = ")
  Worksheets(1).Cells(i, 1) = sl(i)
Next i
 
' сортируем массив медленным, но верным способом
Do
k = 0
For i = 2 To 10
  If sl(i) < sl(i - 1) Then
    ss = sl(i)                  ' меняем местами слова
    sl(i) = sl(i - 1)
    sl(i - 1) = ss
    k = k + 1
  End If
Next i
Loop While k > 0
 
' выводим отсортированный массив на лист Excel
For i = 1 To 10
  Worksheets(1).Cells(i + 12, 1) = sl(i)
Next i
End Sub
а вторую"В компьютер последовательно вводятся 10 строк, содержащих имя и фамилию. Поменять местами имя и фамилию, результат вывести на экран.
" не могу понять там ф.и. вводить как в один массив или отдельно и потом поменять местами их ..или по другому потому что по условию стоит вводят 10 строк...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2011, 17:07
Ответы с готовыми решениями:

В одной строке ввести фамилию, имя, отчество. Вывести на экран фамилию и инициалы
В одной строке ввести фамилию, имя, отчество. Вывести на экран фамилию и инициалы. Пояснения: ...

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

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

Поменять местами первую и третью букву в слове и вывести результат на экран
Запросить у пользователя слово, состоящее из не менее букв. Поменять местами первую и третью букву...

13
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.03.2011, 20:33 2
владимир01, это в какой среде программка
0
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 5
21.03.2011, 08:50  [ТС] 3
это в вба..в экселе...
0
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 64
21.03.2011, 12:43 4
По строке первый цикл от начала строки до пробела ,выделяешь подстроку это будет имя, второй цикл с конца строки до пробела- получишь таким же образом фамилию,затем меняешь их местами
0
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 5
21.03.2011, 13:56  [ТС] 5
не до конца понял как это реализовать в коде
0
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 64
21.03.2011, 17:14 6
Visual Basic
1
2
3
4
5
6
7
8
9
10
Function swap(s As String) As String
L = Len(s)
 
Dim Name As String, Family
   Dim k As Integer
   k = InStr(1, s, " ")
   Name = Left(s, k - 1)
   Family = Right(s, L - k)
  swap = Family + "  " + Name
End Function
Это работающий , но простой вариант , когда пробел тока один между словами
Завтра я попробую дать общий вариант
1
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 5
22.03.2011, 10:56  [ТС] 7
спасибо большое за помощь)))
0
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 64
22.03.2011, 21:34 8
Код
Function f(s As String) As String
L = Len(s)
Dim Name As String, Family
   Dim k As Integer
   
   k = InStr(1, s, " ")
   Name = Left(s, k - 1)
   Do While Mid(s, k, 1) = " "
   k = k + 1
   Loop
        Family = Right(s, L - k + 1)
  f = Family + "  " + Name
End Function
Общий случай для двух слов
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
22.03.2011, 21:49 9
вариант
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Function f(s As String) As String
If InStr(1, s, " ") > 0 Then
Do While InStr(1, s, "  ") > 0
s = Replace(s, "  ", " ")
Loop
a = Split(s, " ")
f = a(1) & " " & a(0)
Else
f = s
End If
End Function
0
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 5
23.03.2011, 14:30  [ТС] 10
еще один вопрос просто у нас было 3 лекции по программированию и дали задание я первое сделал по подобию ...как привязать эту лубую из двух функций к циклу из 10 строк с фамилиями и выодом на лист эксель ..ввод то понятно через инпут вокс можно
0
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 64
24.03.2011, 20:58 11
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub one()
Dim a(10) As String
Dim s As String
For i = 0 To 9
a(i) = InputBox("Введите имя, фамилию и нажмите  OK")
a(i)=swap(a(i) )
Next
For i = 0 To 9
s = s + a(i) + vbCrLf
Next
MsgBox (s)
End Sub
0
Частенько бываю
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
25.03.2011, 09:58 12
2 Biggs: Функция Swap из языка С. Какой вы удачный симбиоз организовали, BaC++ic! У вас то хоть работает представленный код?

2 владимир01:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Task()
'Â êîìïüþòåð ïîñëåäîâàòåëüíî ââîäÿòñÿ 10 ñòðîê, ñîäåðæàùèõ èìÿ è ôàìèëèþ. Ïîìåíÿòü ìåñòàìè èìÿ è ôàìèëèþ, ðåçóëüòàò âûâåñòè íà ýêðàí.
On Error Resume Next
Dim a, i As Integer, sStr As String
For i = 1 To 10
    a = Split(InputBox("Èìÿ, Ôàìèëèÿ:"))
    sStr = sStr & a(1) & " " & a(0) & vbNewLine
Next
MsgBox sStr
End Sub
1
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 64
25.03.2011, 10:58 13
Vlanib , swap определили выше, на первой странице топика , я конечно пропустил код через Exсel
Хотя , наверное , ваш вариант получше
1
Частенько бываю
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
28.03.2011, 05:10 14
Да, ссори, не заметил, что на двух листах тема.
0
28.03.2011, 05:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2011, 05:10
Помогаю со студенческими работами здесь

Ввести имя, отчество и фамилию; поменять имя и отчество местами
Ввести имя, отчество и фамилию. Поменять имя и отчество местами (через тип данных string)...

Вывести в файл фамилию, имя и отчество исполнителя и результат вычисления математического выражения
Нужно написать программу в паскале, которая вводит фамилию имя и отчество и анализирует из...

Вывести на экран 10 раз имя и фамилию
Напишите программу, которая 10 раз выводит на экран ваши имя и фамилию Если можно то вышлите в...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru