Программирование циклических алгоритмов - VB

Узнай цену своей работы

Формулировка задачи:

Есть два задания. Первое я кое как селал, просьба перепроверить. Однако насчет второго ну вообще не въезжаю что изменить в коде для результатов в задании 2.

Задание 1.

Дана последовательность из М (М = 10) чисел. Сколько из этих чисел больше 7, но меньше 20. Найти произведение таких чисел. Код
Листинг программы
  1. Private Sub CommandButton1_Click()
  2. Dim k, M, P, n, j As Integer
  3. P = 1
  4. j = 0
  5. M = Val(Text1.Text)
  6. For k = 1 To M Step 1
  7. n = Val(InputBox("Введите число"))
  8. If (n > 7) And (n < 20) Then
  9. P = P * n
  10. j = j + 1
  11. End If
  12. Next k
  13. If j > 0 Then
  14. Text2.Text = P
  15. Text3.Text = j
  16. Else
  17. P = 0
  18. Text2.Text = P
  19. Text3.Text = "нет таких чисел"
  20. End If
  21. End Sub

Задание 2.

Дана последовательность из M чисел. Найти наименьшее из всех чисел, больших 10, и его порядковый номер. Именно разница в вопросе задания, и особенно "порядковый номер" сбивают с толку. Просьба помочь
Вот попытался сделать второе с массивом:
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim a() As Single, k As Integer, M As Integer, Min As Single
  3. M = 10
  4. ReDim a(M)
  5. k = 0
  6. For i = 1 To M
  7. a(i) = Rnd * 20 + 10
  8. If (a(i) > 10) Then
  9. k = k + 1
  10. If k = 1 Then
  11. Min = a(i)
  12. Else
  13. If a(i) < Min Then Min = a(i)
  14. End If
  15. End If
  16. Next i
  17. If k > 0 Then
  18. MsgBox ("ГЌГ*èìåГ*ГјГёГҐГҐ ÷èñëî = ") & Min
  19. Else
  20. MsgBox " Нету чисел > 10"
  21. End If
  22. End Sub
Это для части "найти наименьшее из чисел больше 10". В чем ошибка в коде?
Неужеди никто не знает? Вот, написал норм код, но оно выдает только наименьшее число. Помогите исправить чтоб находило наименьшее БОЛЬШЕ 10
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim i, x, b(), M As Integer
  3. M = InputBox("Èç ñêîëüêè Г·ГЁГ±ГҐГ« ГўГ*ГёГ* ïîñëåäîâГ*òåëüГ*îñòü?", "Ñêîëüêî Г·ГЁГ±ГҐГ« áóäåì ââîäèòü?", 20)
  4. ReDim b(1 To M)
  5. For i = 1 To M
  6. b(i) = Int(InputBox("", "Ââåäèòå ÷èñëî"))
  7. Print b(i);
  8. Next i
  9. x = b(1)
  10. For i = 1 To M
  11. If x > b(i) Then
  12. x = b(i)
  13. End If
  14. Next i
  15. MsgBox "ГЌГ*èìåГ*ГјГёГҐГҐ ГЁГ§ ââåäåГ*ûõ Г·ГЁГ±ГҐГ« " & x
  16. End Sub
Изменение на If x > b(i) And b(i) > 10 Then в условии не помогает..

Решение задачи: «Программирование циклических алгоритмов»

textual
Листинг программы
  1. Module Module1
  2.     Sub Main()
  3.         Dim i, x, b(), M, n As Integer
  4.         M = InputBox("Из скольких чисел ваша последовательность?", "Сколько чисел будем вводить?", 20)
  5.         ReDim b(0 To M - 1)
  6.         For i = 0 To M - 1
  7.             b(i) = Int(InputBox("", "Введите число"))
  8.         Next i
  9.         For i = 0 To M - 1
  10.             If b(i) > 10 Then
  11.                 x = b(i)
  12.                 n = i + 1
  13.                 Exit For
  14.             End If
  15.         Next
  16.         For i = 0 To M - 1
  17.             If x > b(i) And b(i) > 10 Then
  18.                 x = b(i)
  19.                 n = i + 1
  20.             End If
  21.         Next i
  22.         MsgBox("Наименьшее из введеных чисел большее 10 = " & x)
  23.         MsgBox("Его порядковый номер = " & n)
  24.     End Sub
  25. End Module

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы