String. Исправьте ошибку - VB

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

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

Дана строка. Если она представляет собой запись целого числа, то вывести 1, если вещественного (с дробной частью) — вывести 2; если строку нельзя преобразовать в число, то вывести 0. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.». Вот так выглядит в Pascal
Листинг программы
  1. var s:string;
  2. r:real;
  3. t,c:integer;
  4. begin
  5. write('s=');
  6. readln(s);
  7. val(s,t,c);
  8. if c=0 then write('1')
  9. else
  10. begin
  11. val(s,r,c);
  12. if c=0 then write('2')
  13. else write('0');
  14. end;
  15. readln
  16. end.
Вот так пытался сделать в Basic
Листинг программы
  1. Private Sub CommandButton1_Click()
  2. Dim s As String, i, err As Integer, r As Double
  3. s = Val(TextBox1.Text)
  4. For i = 1 To Len(s)
  5. err = Mid(s, i, 1)
  6. ''val(s,i,err);
  7. If err = 0 Then
  8. TextBox2.Text = "1"
  9. Else
  10. err = Mid(s, r, 1)
  11. ''val(s,r,err);
  12. If err = 0 Then
  13. TextBox2.Text = "2"
  14. Else
  15. TextBox2.Text = "0"
  16. End If
  17. End If
  18. Next i
  19. End Sub
Программа жалуется.

Решение задачи: «String. Исправьте ошибку»

textual
Листинг программы
  1. Option Explicit
  2. Dim WithEvents tx As TextBox, WithEvents cb As CommandButton
  3.  
  4. Private Sub tx_KeyPress(KeyAscii As Integer)
  5.     Select Case KeyAscii
  6.     Case 48 To 57, 8
  7.     Case 44, 46, 225, 254
  8.         If InStr(1, tx, ",") Then KeyAscii = 0 Else KeyAscii = 44
  9.     Case Else: KeyAscii = 0
  10.     End Select
  11. End Sub
  12.  
  13. Private Sub cb_Click()
  14.     Const rz = "Результат = "
  15.     If Not IsNumeric(tx) Then
  16.         Caption = rz & 0
  17.     ElseIf Fix(tx) = tx Then Caption = rz & 1
  18.     Else: Caption = rz & 2
  19.     End If
  20. End Sub
  21.  
  22. Private Sub Form_Load()
  23.     Const r = 90
  24.     Dim l&
  25.     Set tx = Controls.Add("vb.TextBox", "tx"): With tx
  26.         .Move r, r: l = .Left + .Width + r
  27.         .Visible = 1
  28.     End With
  29.     Set cb = Controls.Add("vb.CommandButton", "cb"): With cb
  30.         .Move l, r
  31.         .Caption = "Вывести"
  32.         .Visible = 1
  33.     End With
  34. End Sub

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


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

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

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

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

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

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