Страница 1 из 1

Visual Basic, строки

Добавлено: 15 дек 2008, 17:24
Mary Yu
Мои преподы звери...Им было скушно,и они решили устроить экзамен сразу на 2 языках программирования Паскаль и...вижу бэйсике. Т.Т
Над вижу бэйсиком мы работали почти ровно год назад..Некоторые лекции серьёзно не разбирали,даже лаб не было.
Вот задача,которую предоставил препод:
"Сколько букв в строке заканчивается на английскую заглавную "А"? "Вот его решению только не доверяю,потому что у него бывают потери памяти,серьёзно:

Код: Выделить всё

Dim s As integer               {например , rA_DA}
Dim sum,n,i,k as integer
cls
sum=0
s=text1.text
n=len(s)
for i=1 to n 
k=mid(s,i,1)
 if k="A" and mid(s,i+1,1)=" "
  then str=s1+1 or mid(s,i+1,1)="."
next
Помогите найти ошибки,чт.она заработала!

Re: А теперь о Visual Basic

Добавлено: 15 дек 2008, 17:39
Naeel Maqsudov
0)

Наверное имелось в виду "Сколько слов заканчивается"

1)
Не уверен, что представленное решение на Visual Basic. Может это QBasic?.. Хотя text1.text... Что-то тут вообще не из той оперы...

2)
S as String, а не

3)
cls - это точно не из VBasic :) Какой экран хотите очистить?

4)
где вывод результата? Куда надо вывести результат

5)
ошибка в алгоритме: делаете for i=1 to n, а потом еще mid(s,i+1,1). На последней итерации это будет обращение к символу n+1, которого не существует. (n-последний)

6)
вот тут:
if k="A" and mid(s,i+1,1)=" "
then str=s1+1 or mid(s,i+1,1)="."

Тут сразу 3 ошибки: синтаксическия и 2 логические. Возможно имелось в виду:
if k="A" and (mid(s,i+1,1)=" " or mid(s,i+1,1)=".") then sum=sum+1
но тогда как быть, если после слова стоит не точка, а запятая, или другой разделитель?

Re: А теперь о Visual Basic

Добавлено: 17 дек 2008, 01:08
Mary Yu
Naeel Maqsudov писал(а):0)

Наверное имелось в виду "Сколько слов заканчивается"

Угу
Не уверен, что представленное решение на Visual Basic. Может это QBasic?.. Хотя text1.text... Что-то тут вообще не из той оперы...

из этой :D

2)
S as String, а не
Он ещё сказал что мона использовать Variant

3)
cls - это точно не из VBasic Какой экран хотите очистить?

Это случайно не ку Б?

6)
вот тут:
if k="A" and mid(s,i+1,1)=" "
then str=s1+1 or mid(s,i+1,1)="."

Тут сразу 3 ошибки: синтаксическия и 2 логические. Возможно имелось в виду:
if k="A" and (mid(s,i+1,1)=" " or mid(s,i+1,1)=".") then sum=sum+1
но тогда как быть, если после слова стоит не точка, а запятая, или другой разделитель?


Ни наю,поэтому вас спрашиваю

Re: А теперь о Visual Basic

Добавлено: 17 дек 2008, 01:45
Naeel Maqsudov
Mary Yu писал(а): Это случайно не ку Б?


Это к кому вопрос? Это же у Вас написано "cls"!
Я поэтому и говорб, что у Вас тут намешан VBasic с чем-то еще :)

Допустим у Вас VBasic.
Допустим вы сделали там форму... Скажем, Form1
Снова Допустим (так как вы же не написали, как оно там на самом деле сделано) на эту форму вы "бросили" поле TextBox1 и кнопку CommandButton1

тогда Ваша программа - это должна быть процедура обработки нажатия кнопки. Так?

Что-то вроде

Код: Выделить всё

Sub CommandButton1_Click()
  .....
End Sub
Все правильно?

Re: Visual Basic, строки

Добавлено: 17 дек 2008, 12:54
SergeiNG
А может так???

Код: Выделить всё

Dim s As String             '  {например , rA_DA}
Dim sum, n, i, k As Integer
'Cls
sum = 0
s = text1.Text
n = Len(s)
For i = 1 To n
    k = Mid(s, i, 1)
    If i = n Then
        If k = "A" Then
        sum = sum + 1
    Else
        If k = "A" And (Mid(s, i + 1, 1) = " " Or Mid(s, i + 1, 1) = ".") Then
        sum = sum + 1
        End If
    End If
Next

Re: Visual Basic, строки

Добавлено: 18 дек 2008, 18:36
Banny
Уважаемые, помогите пожалуйста с решением нескольких задач

1. Строка, содержащая произвольный текст, состоит не более чем из 200 символов. Написать, какие буквы и сколько раз встречаются в этом тексте.
2. Из заданной символьной строки выбрать те символы, которые встречаются в ней только один, в том порядке, в котором они встречаются в тексте.
3. Определите, является ли заданная строка правильной записью вещественного числа с возможным знаком и десятичной точкой.
4. С клавиатуры вводиться отрывок N строкю Требуется напечатать строку, в которой больше всего слов.

Буду очень благодарен если поможете с решением данных задач.
Заранее большое вам Спасибо!

Re: А теперь о Visual Basic

Добавлено: 18 дек 2008, 21:23
Mary Yu

Все правильно?

да,...осталось тока запустить прогу...

Re: Visual Basic, строки

Добавлено: 18 дек 2008, 21:24
Mary Yu
SergeiNG писал(а):А может так???

Код: Выделить всё

Dim s As String             '  {например , rA_DA}
Dim sum, n, i, k As Integer
'Cls
sum = 0
s = text1.Text
n = Len(s)
For i = 1 To n
    k = Mid(s, i, 1)
    If i = n Then
        If k = "A" Then
        sum = sum + 1
    Else
        If k = "A" And (Mid(s, i + 1, 1) = " " Or Mid(s, i + 1, 1) = ".") Then
        sum = sum + 1
        End If
    End If
Next


сча запустим и проверим))