String. Исправьте ошибку - VB
Формулировка задачи:
Дана строка. Если она представляет собой запись целого числа, то вывести 1, если вещественного (с дробной частью) — вывести 2; если строку нельзя преобразовать в число, то вывести 0. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.».
Вот так выглядит в Pascal
Вот так пытался сделать в Basic
Программа жалуется.
Листинг программы
- var s:string;
- r:real;
- t,c:integer;
- begin
- write('s=');
- readln(s);
- val(s,t,c);
- if c=0 then write('1')
- else
- begin
- val(s,r,c);
- if c=0 then write('2')
- else write('0');
- end;
- readln
- end.
Листинг программы
- Private Sub CommandButton1_Click()
- Dim s As String, i, err As Integer, r As Double
- s = Val(TextBox1.Text)
- For i = 1 To Len(s)
- err = Mid(s, i, 1)
- ''val(s,i,err);
- If err = 0 Then
- TextBox2.Text = "1"
- Else
- err = Mid(s, r, 1)
- ''val(s,r,err);
- If err = 0 Then
- TextBox2.Text = "2"
- Else
- TextBox2.Text = "0"
- End If
- End If
- Next i
- End Sub
Решение задачи: «String. Исправьте ошибку»
textual
Листинг программы
- Option Explicit
- Dim WithEvents tx As TextBox, WithEvents cb As CommandButton
- Private Sub tx_KeyPress(KeyAscii As Integer)
- Select Case KeyAscii
- Case 48 To 57, 8
- Case 44, 46, 225, 254
- If InStr(1, tx, ",") Then KeyAscii = 0 Else KeyAscii = 44
- Case Else: KeyAscii = 0
- End Select
- End Sub
- Private Sub cb_Click()
- Const rz = "Результат = "
- If Not IsNumeric(tx) Then
- Caption = rz & 0
- ElseIf Fix(tx) = tx Then Caption = rz & 1
- Else: Caption = rz & 2
- End If
- End Sub
- Private Sub Form_Load()
- Const r = 90
- Dim l&
- Set tx = Controls.Add("vb.TextBox", "tx"): With tx
- .Move r, r: l = .Left + .Width + r
- .Visible = 1
- End With
- Set cb = Controls.Add("vb.CommandButton", "cb"): With cb
- .Move l, r
- .Caption = "Вывести"
- .Visible = 1
- End With
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д