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

вводить можно только кириллицу и знак пробел .
Помогите,пожалуйста,буду безумно благодарна!!!
...
Рейтинг: 0 / 0
08.01.2010, 19:44
    #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
09.01.2010, 01:40
    #36401273
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строковый калькулятор,Помогите!
Кормление сушами/роллами (в Москве)
Приятное с полезным
Написание программы непосредственно за поеданием роллов с подробными комментариями процесса
...
Рейтинг: 0 / 0
09.01.2010, 07:39
    #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
09.01.2010, 11:45
    #36401412
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строковый калькулятор,Помогите!
VipFedor,

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

А вот так оно работает (код не менял)
...
Рейтинг: 0 / 0
09.01.2010, 12:08
    #36401426
Nastya9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строковый калькулятор,Помогите!
СПАСИИИБО!!!!!!!!!!!!! Вы меня спасли!!!))))
...
Рейтинг: 0 / 0
09.01.2010, 15:13
    #36401567
Nastya9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строковый калькулятор,Помогите!
Спасибо Вам огромное!! Вот только преподаватель теперь требует,чтобы при нажатии на кнопку выводилось не количество гласных, А сами встреченные гласные(отдельно строчные,отдельно прописные) (((((((((
...
Рейтинг: 0 / 0
09.01.2010, 17:06
    #36401651
VipFedor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строковый калькулятор,Помогите!
Shocker.Pro , проверил еще раз, код рабочий. Он не даст ввести латинские буквы. Ищите ошибку у себя.
...
Рейтинг: 0 / 0
09.01.2010, 18:36
    #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
10.01.2010, 11:40
    #36402196
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строковый калькулятор,Помогите!
VipFedor Shocker.Pro , проверил еще раз, код рабочий. Ищите ошибку у себя.

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

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

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

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

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

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

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

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

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

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

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

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

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

подскажите тугодуму..
пожалуйста
...
Рейтинг: 0 / 0
26.01.2010, 11:54
    #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
26.01.2010, 12:27
    #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
26.01.2010, 13:57
    #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
26.01.2010, 14:26
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Строковый калькулятор,Помогите! / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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