Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Помогите решить несложную задачку.ПЛИЗ!!! Добавлено: 12.01.06 23:15  

Автор вопроса:  Romikus

Ответить

  Ответы Всего ответов: 22  

Номер ответа: 16
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #16
Добавлено: 14.01.06 17:47
А вот с возможностью задавать размерность массива и собственно сами
элементы:

Option Explicit

Private Sub Command1_Click()
Dim N As Integer 'размерность массива
Dim A() As Integer 'массив
Dim I As Integer 'переменная цикла
Dim intFirst As Integer 'первое отрицательное значение
Dim intLast As Integer 'последние отрицательное значение
Dim intC As Integer

'при отмене возникает ошибка, которую надо обрабатывать
On Error GoTo metka 'инициируем обработчик ошибок
N = InputBox("Введите размер массива";)
ReDim A(0 To N) As Integer
'REDIM сбрасывает элементы массива на ноль
For I = 1 To N
A(I) = InputBox("A (" + Str(I) + ";)=", "Размерность вашего массива - " & N)
Next I
On Error GoTo 0 'выключаем обработчик ошибок
Text1.Text = "Элементы массива: "
'Для Text1 лучше поставит свойство MULTILINE=true и вертикальную полосу прокрутки

For I = 1 To N
        If A(I) < 0 And intC = 0 Then intC = 1: intFirst = I
        If A(I) < 0 And intFirst <> I Then intLast = I: Exit For
Next I

For I = intFirst + 1 To N - (intLast - intFirst - 1)
            A(I) = A(I + (intLast - intFirst - 1))
Next I

For I = 1 To N - (intLast - intFirst - 1)
    Text1.Text = Text1.Text & Str(A(I)) & " "
Next I

Exit Sub 'выход из процедуры, если нет ошибки
'подпрограмма обработки ошибок
metka:
MsgBox "Данные введены некорректно"
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
Form1.Caption = "Ввод и обработка массива"
Text1.Text = ""
Command1.Caption = "Выполнить задание"
Command2.Caption = "Выход"
End Sub

Ответить

Номер ответа: 17
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #17
Добавлено: 17.01.06 13:28
Мы тут кое что не предъусмотрели!
Ошибка если не вводим отрицательных совсем и если одно отрицательное
Вот добавил пару циклов:

If intFirst > 0 And intLast > 0 Then
    For I = intFirst + 1 To N - (intLast - intFirst - 1)
                A(I) = A(I + (intLast - intFirst - 1))
    Next I
Else
    GoTo Error 'инициируем обработчик ошибок
End If

If intFirst > 0 And intLast > 0 Then
    For I = 1 To N - (intLast - intFirst - 1)
        Text1.Text = Text1.Text & Str(A(I)) & " "
    Next I
Else
    On Error GoTo Error 'инициируем обработчик ошибок
End If
Exit Sub 'выход из процедуры, если нет ошибки
'подпрограмма обработки ошибок
metka:
MsgBox "Данные введены некорректно"
End
Error:
MsgBox "В массиве нет отрицательных значений"

Ответить

Номер ответа: 18
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #18 Добавлено: 17.01.06 21:22
Всё гораздо легче!
p=0
for i=1 to n
 if a(i)> 0 then p=p+1
 if p=2 then exif for
next i
if p<2 then exit sub:MsgBox "В массиве нет отрицательных значений"
'goto лучше не использовать

Ответить

Номер ответа: 19
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #19
Добавлено: 18.01.06 12:17
Ну не знаю, вроде в моем варианте вообще ни чего сложного нет!

Ответить

Номер ответа: 20
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #20 Добавлено: 18.01.06 15:02
хотя ты прав! Твой вариант лучше! Меньше циклов, больше производительность! Просто в программе переменных очень мало! А имена у них чёт очень длинные с толку сбивает!
Ещё из кожи вылези, но Goto обойди!

Ответить

Номер ответа: 21
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #21
Добавлено: 18.01.06 15:41
Да это же не принципиально для автора топика - ему нужно было считать,
мы сделали, а еще плюс сделали проверку на ошибки, ему бы препод
сказал - "гуд"
А с чем связано твое отношение к GoTo


Ответить

Номер ответа: 22
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #22 Добавлено: 18.01.06 16:36
Ищи информацию о "хороше" стиле программирования!
Просто трудно читать, искать ссылку и т.д. и т.п.
можешь тему создать может быть кто-то лучше знает!

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам