Удалить из массива все элементы, в которых последняя цифра четная, а само число делится на нее - VB (170397)
Формулировка задачи:
Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-10,60]. Удалить из него все элементы, в которых последняя цифра четная, а само число делится на нее.
Вот на паскале эта программа Удалить из массива все элементы, в которых последняя цифра четная, а само число делится на нее
переделать под бэйсик не смог, пришлось самому писать но не получается.
Помогите кто чем может
Листинг программы
- Private Sub Command2_Click()
- Picture1.Cls
- n = Val(Text1)
- ReDim A(1 To n)
- For i = 1 To n
- A(i) = Int(71 * Rnd - 10)
- Picture1.Print A(i);
- Next i
- i = 1
- Do While i <= n
- If A(i) <> -10 And A(i) <> 0 And A(i) <> 10 And A(i) <> 20 And A(i) <> 30 And A(i) <> 40 And A(i) <> 50 And A(i) <> 60 Then
- If (A(i) Mod 2 <> 0) And (A(i) Mod (A(i) Mod 10) <> 0) Then
- i = i + 1
- Else
- For j = i To n - 1
- A(j) = A(j + 1)
- Next j
- n = n - 1
- End If
- Loop
- End Sub
Листинг программы
- [size="1"][color="grey"][I]Добавлено через 1 час 20 минут[/I][/color][/size]
- Private Sub Command2_Click()
- Picture1.Cls
- n = Val(Text1)
- ReDim A(1 To n)
- For i = 1 To n
- A(i) = Int(71 * Rnd - 10)
- Picture1.Print A(i);
- Next i
- Picture3.Cls
- For i = 1 To n
- If A(i) <> -10 And A(i) <> 0 And A(i) <> 10 And A(i) <> 20 And A(i) <> 30 And A(i) <> 40 And A(i) <> 50 And A(i) <> 60 Then
- If ((A(i) Mod 2 = 0) And ((A(i) Mod (A(i) Mod 10)) = 0)) Then
- For j = i To n - 1
- A(j) = A(j + 1)
- Next j
- End If
- End If
- Next
- For j = 1 To n - 1
- Picture3.Print A(j);
- Next
- End Sub
Относительно работает
Но не уплотняет массив
Решение задачи: «Удалить из массива все элементы, в которых последняя цифра четная, а само число делится на нее»
textual
Листинг программы
- Private Sub Command2_Click()
- Picture1.Cls
- n = Val(Text1)
- ReDim a(1 To n)
- For i = 1 To n
- a(i) = Int(71 * Rnd - 10)
- Picture1.Print a(i);
- Next i
- Picture3.Cls
- For i = 1 To n
- If a(i) Mod 10 Then
- ' If a(i) <> -10 And a(i) <> 0 And a(i) <> 10 And a(i) <> 20 And a(i) <> 30 And a(i) <> 40 And a(i) <> 50 And a(i) <> 60 Then
- If ((a(i) Mod 2 = 0) And ((a(i) Mod (a(i) Mod 10)) = 0)) Then
- n = n - 1
- For j = i To n '- 1
- a(j) = a(j + 1)
- Next j
- End If
- End If
- Next
- ReDim Preserve a(1 To n)
- For j = 1 To n
- Picture3.Print a(j);
- Next
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д