powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Строковый калькулятор,Помогите!
21 сообщений из 21, страница 1 из 1
Строковый калькулятор,Помогите!
    #36400867
Nastya9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Очень нуждаюсь в помощи! С Visual Basic 6 знакома ооочень поверхностно,но курсовая горит((((( Нужно сделать строковый калькулятор.Программа должна производить с введенной строкой символов следующие действия:
- по мере ввода считать к-во введенных символов(отдельно строчных,отдельно прописных)
- по нажатию кнопки выводить встреченные гласные буквы ( отдельно строчные,отдельно прописные)

вводить можно только кириллицу и знак пробел .
Помогите,пожалуйста,буду безумно благодарна!!!
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36400974
Фотография by-pass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
500 руб, 1 день

inet: http://www.by-pass.narod.ru
e-mail: by-pass (шабака) narod (точка) ru
icq: 1_7_1 634323
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401273
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кормление сушами/роллами (в Москве)
Приятное с полезным
Написание программы непосредственно за поеданием роллов с подробными комментариями процесса
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401349
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Настя, держи! Сдай все на отлично! :) И сообщи мне результат!

Код: plaintext
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.
Option Explicit 'Это чтоб переменные всегда были определины. иначе ошибка
Dim RussSmallCount As Integer, RussBigCount As Integer 'Счетчики строчных и прописных букв (тут, чтоб держались в памяти при каждом наборе буквы)

Private Sub Command1_Click()
Dim GlassnueSmall As String, GlassnueBig As String, i As Integer 'Объявляем переменные
Dim GlassnueBigCount As Integer, GlassnueSmallCount As Integer 'Объявляем переменные
GlassnueSmall = "аеёиоуыэюя" 'Задаем буквы в переменную
GlassnueBig = "АЕЁИОУЫЭЮЯ"
For i =  1  To Len(Text1.Text) 'Ищем в цикле все строчные глассные
    If InStr( 1 , GlassnueSmall, Mid(Text1.Text, i,  1 )) >  0  Then 'Проверяем каждую букву из Text1 является ли она строчной гласной
        GlassnueSmallCount = GlassnueSmallCount +  1  'Если да, увеличиваем счетчик на 1
    End If
Next

For i =  1  To Len(Text1.Text) 'Ищем в цикле все прописные глассные
    If InStr( 1 , GlassnueBig, Mid(Text1.Text, i,  1 )) >  0  Then 'Проверяем каждую букву из Text1 является ли она прописной гласной
        GlassnueBigCount = GlassnueBigCount +  1  'Если да, то увеличиваем счетчик на 1
    End If
Next

MsgBox "Всего в набранном тексте " + CStr(GlassnueSmallCount) + " строчных гласных букв и " + CStr(GlassnueBigCount) + " прописных гласных букв." 'Выводим результат сообщением
End Sub

Private Sub Command2_Click()
RussSmallCount =  0 
RussBigCount =  0  'Обнуляем счетчики
Text1.Text = "" 'Очищаем Text1
End Sub


Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim VseSimvolu As String, RussSmall As String, RussBig As String  'Объявляем переменные
VseSimvolu = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ" 'Задаем буквы в переменную
RussSmall = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя" 'Задаем буквы в переменную
RussBig = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ" 'Задаем буквы в переменную
If InStr( 1 , VseSimvolu, Chr$(KeyAscii)) =  0  Then KeyAscii =  0  'вводить можно только кириллицу и знак пробел

If InStr( 1 , RussSmall, Chr$(KeyAscii)) >  0  Then 'Проверяем введенную букву является ли она строчной
    RussSmallCount = RussSmallCount +  1  'Счетчик строчных букв
ElseIf InStr( 1 , RussBig, Chr$(KeyAscii)) >  0  Then 'Проверяем введенную букву является ли она прописной
    RussBigCount = RussBigCount +  1  'Счетчик прописных букв
End If


Label1 = "Всего введено: " + CStr(RussSmallCount) + " строчных букв и " + CStr(RussBigCount) + " прописных букв." 'Выводим результат в Label1
End Sub

Благодарности принимаются в аську из профиля (нажми на мой НИК чтобы увидеть :))
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401412
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedor,

А вот так оно работает (код не менял)
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401413
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedor,

А вот так оно работает (код не менял)
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401426
Nastya9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИИИБО!!!!!!!!!!!!! Вы меня спасли!!!))))
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401567
Nastya9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Вам огромное!! Вот только преподаватель теперь требует,чтобы при нажатии на кнопку выводилось не количество гласных, А сами встреченные гласные(отдельно строчные,отдельно прописные) (((((((((
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401651
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro , проверил еще раз, код рабочий. Он не даст ввести латинские буквы. Ищите ошибку у себя.
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36401726
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поменяй код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Command1_Click()
Dim GlassnueSmall As String, GlassnueBig As String, i As Integer 'Объявляем переменные
Dim GlassnueBigCount As Integer, GlassnueSmallCount As Integer 'Объявляем переменные
GlassnueSmall = "аеёиоуыэюя" 'Задаем буквы в переменную
GlassnueBig = "АЕЁИОУЫЭЮЯ"
For i =  1  To Len(Text1.Text) 'Ищем в цикле все строчные глассные
    If InStr( 1 , GlassnueSmall, Mid(Text1.Text, i,  1 )) >  0  Then 'Проверяем каждую букву из Text1 является ли она строчной гласной
        GlassnueSmallCount = GlassnueSmallCount +  1  'Если да, увеличиваем счетчик на 1
    End If
Next

For i =  1  To Len(Text1.Text) 'Ищем в цикле все прописные глассные
    If InStr( 1 , GlassnueBig, Mid(Text1.Text, i,  1 )) >  0  Then 'Проверяем каждую букву из Text1 является ли она прописной гласной
        GlassnueBigCount = GlassnueBigCount +  1  'Если да, то увеличиваем счетчик на 1
    End If
Next

MsgBox "Всего в набранном тексте " + CStr(GlassnueSmallCount) + " строчных гласных букв и " + CStr(GlassnueBigCount) + " прописных гласных букв." 'Выводим результат сообщением
End Sub

На КОД:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Command1_Click()
Dim GlassnueSmall As String, GlassnueBig As String, i As Integer 'Объявляем переменные
Dim GlassnueBigCount As String, GlassnueSmallCount As String 'Объявляем переменные
GlassnueSmall = "аеёиоуыэюя" 'Задаем буквы в переменную
GlassnueBig = "АЕЁИОУЫЭЮЯ"
For i =  1  To Len(Text1.Text) 'Ищем в цикле все строчные глассные
    If InStr( 1 , GlassnueSmall, Mid(Text1.Text, i,  1 )) >  0  Then 'Проверяем каждую букву из Text1 является ли она строчной гласной
        GlassnueSmallCount = GlassnueSmallCount + Mid(Text1.Text, i,  1 )  'Если да, то добавляем глассную букву в строковую переменную
    End If
Next

For i =  1  To Len(Text1.Text) 'Ищем в цикле все прописные глассные
    If InStr( 1 , GlassnueBig, Mid(Text1.Text, i,  1 )) >  0  Then 'Проверяем каждую букву из Text1 является ли она прописной гласной
        GlassnueBigCount = GlassnueBigCount + Mid(Text1.Text, i,  1 ) 'Если да, то добавляем глассную букву в строковую переменную
    End If
Next

MsgBox "В набранном тексте '" + CStr(GlassnueSmallCount) + "' строчные гласные буквы и '" + CStr(GlassnueBigCount) + "' прописные гласные буквы." 'Выводим результат сообщением
End Sub

Остальное оставь как есть!
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36402196
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedor Shocker.Pro , проверил еще раз, код рабочий. Ищите ошибку у себя.

Я посторяю еще раз - я код не менял. Поэтому ошибки не может быть У МЕНЯ.

VipFedorОн не даст ввести латинские буквы.

Зато дает пользоваться клавишами редактирования, в частности дает возможность удалить ранее набранный текст, при этом твой код не пересчитывает статистику и выводит неверное количество встреченных символов. Не запрещает он и пользоваться буфером обмена.

Ну и вывод по кнопке не соответствовал ТЗ, но с этим вы уже разобрались не без помощи преподавателя.
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36402766
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЗато дает пользоваться клавишами редактирования, в частности дает возможность удалить ранее набранный текст, при этом твой код не пересчитывает статистику и выводит неверное количество встреченных символов. Не запрещает он и пользоваться буфером обмена.

Удалить и вставить Вы сможете только с помощью мышки или другого доп. HID-устройства. С клавиатуры - нет.
Можно еще и в Text1.Text оставить какой-то текст (даже английский) и он тоже не будет учтен.
Можно еще к чему-нибудь придраться, если захотеть. Задание выполнено верно, и человек, который получил ответ - доволен и благодарен.

Shocker.Pro
Ну и вывод по кнопке не соответствовал ТЗ, но с этим вы уже разобрались не без помощи преподавателя.

Видимо Вас очень гложет, не съеденный на халяву ролл (суши) :) Я не считаю нужным более продолжать эту бессмысленную дискуссию.
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36402771
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedorУдалить и вставить Вы сможете только с помощью мышки или другого доп. HID-устройства. С клавиатуры - нет.
VipFedorМожно еще к чему-нибудь придраться, если захотеть

Разумеется. К первой процитированной строке. Я же вам сказал - как, а вы все равно упираетесь, что нельзя с клавиатуры.

Не знаю, как на вашей клавиатуре, а на моей есть:
а) стрелки (для перемещения курсора)
б) клавиша DEL (для удаления)
в) клавиша Shift (для выделения символов совместно со стрелками)
г) клавиша Insert (для копирования в буфер совместно с Ctrl и вставки из буфера совместно с Shift)

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

А вы почитайте хелп по KeyPress, чтобы быть в курсе, что он не перехватывает управляющие комбинации клавиш, поэтому использование этого события в данном случае некорректно, ну или как минимум (если отказаться от мониторинга попыток вставки из буфера), реагировать хотя бы на удаление символов пересчетом статистики.
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36402787
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что он не перехватывает управляющие комбинации клавиш, поэтому использование этого события в данном случае некорректно

Принимаю замечание. Но вот, Вы вместо бы того, чтобы найти неточность в моем коде, лучше бы давно бы уже привели код любимого Вами и, действительно более целесообразного для данного примера, события Text1_Change. Хотя, наверное, это уже будет поздно....
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36403314
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сейчас уже, конечно, нет смысла писать другой код. А "пережаривать яичницу" - доделывать ваш код - тоже нет смысла, я бы к, примеру, не стал использовать громоздкую конструкцию типа
VseSimvolu = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ"
когда можно написать проще
"[ А-Яа-я]"
Но, поскольку ваш код в этом смысле работает верно, можно оставить как есть - я просто обратил ваше внимание на недостатки.
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36406452
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите за некропостинг, сообразил, что тут немножно не прав, надо так:
Код: plaintext
"[ А-ЯЁа-яё]"

а то спать плохо буду
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36427620
Зеленка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
составте фрагмент программы,которая в выделенном фрагменте текста(например,включающем 10 символов),буквам "а" задает начертание полужирным,а всем остальным символам - начертание курсив.

подскажите тугодуму..
пожалуйста
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36430906
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зеленкасоставте фрагмент программы,которая в выделенном фрагменте текста(например,включающем 10 символов),буквам "а" задает начертание полужирным,а всем остальным символам - начертание курсив.

подскажите тугодуму..
пожалуйста
Если бы речь шла об Excel, то можно было бы применить такой код для активной ячейки, в коде буква a-латинская:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Изменение_шрифта_отдельных_букв()
 Dim s As String
 Dim i As Integer
 Dim ls As Integer
 
 s = ActiveCell.Value
 ls = Len(s)
 For i =  1  To ls
  If Mid(s, i,  1 ) = "a" Then
    ActiveCell.Characters(Start:=i, Length:= 1 ).Font.FontStyle = "полужирный"
   Else
    ActiveCell.Characters(Start:=i, Length:= 1 ).Font.FontStyle = "курсив"
  End If
 Next i
End Sub
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36431049
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть немного другой вариант для Excel, русская версия. Раскладка для А не важна.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Option Explicit

Sub MakeBoldA()
Dim text_$
Dim i%
Dim r As Range

If [a1] = "" Then [a1] = "Ljubaja fraza"

text_ = [a1]
Set r = [a1]

For i =  1  To Len(text_)
With r.Characters(Start:=i, Length:= 1 ).Font
    If UCase(Mid(text_, i,  1 )) = "A" Or UCase(Mid(text_, i,  1 )) = "А" Then
    .FontStyle = "полужирный"
    Else
    .FontStyle = "курсив"
    End If
End With
Next
End Sub
Ещё делал под Ворд, но там засада - меняет формат сразу всему слову, а не только выделенному фрагменту (если выделить например часть слова):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub MakeBoldAWord()
txt = Selection.Text
With Selection
    For i =  1  To Len(txt)
        If UCase(Mid(txt, i,  1 )) = "A" Or UCase(Mid(txt, i,  1 )) = "А" Then
        Selection.Font.Bold =  1 
        Else
        Selection.Font.Italic =  1 
        End If
    Selection.TypeText Text:=Mid(txt, i,  1 )
    Selection.Font.Bold =  0 
    Selection.Font.Italic =  0 
    Next
End With
End Sub

...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36431360
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз пошла такая пляска, то можно и так для Excel:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Изменение_шрифта_отдельных_букв()
 Dim s As String
 Dim i As Integer
 Dim ls As Integer
 
 With ActiveCell
   s = .Value
   ls = Len(s)
   For i =  1  To ls
    If Mid(s, i,  1 ) Like "[aA]" Then
      .Characters(Start:=i, Length:= 1 ).Font.FontStyle = "полужирный"
     Else
      .Characters(Start:=i, Length:= 1 ).Font.FontStyle = "курсив"
    End If
   Next i
 End With
End Sub
...
Рейтинг: 0 / 0
Строковый калькулятор,Помогите!
    #36431462
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот макрос для Word, все буквы а (русские и латинские, большие и маленькие) в выделенном тексте делает жирными, а остальные курсивными.
Работает корректно только для сплошного текста в пределах одного абзаца.
Чтобы работал корректно в любом тексте нужно переделать код.
Считывать по одному символу и сразу-же устанавливать параметры символа.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub Изменение_шрифта_отдельных_букв()
 Dim s As String
 Dim i As Integer
 Dim ls As Integer
 
 With Selection
   s = .Text
   ls = Len(s)
   .MoveLeft Unit:=wdCharacter, Count:= 1 
   For i =  1  To ls
    If Mid(s, i,  1 ) Like "[aAаА]" Then
      .MoveRight Unit:=wdCharacter, Count:= 1 , Extend:=wdExtend
      .Font.Bold = wdToggle
      .MoveRight Unit:=wdCharacter, Count:= 1 
      
     Else
      .MoveRight Unit:=wdCharacter, Count:= 1 , Extend:=wdExtend
      .Font.Italic = wdToggle
      .MoveRight Unit:=wdCharacter, Count:= 1 
      
    End If
   Next i
 End With
End Sub
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Строковый калькулятор,Помогите!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]