Skip to main content

Find the bug in the following code.

This code opens / creates / reads and writes / appends to text files as specified by the user. Assuming that the user has entered numeric, comma-separated data, the GetRange module calculates the range and the range coefficient (lookup Statistics - Measures of Dispersion Std XI). Somewhere in this last bit the program does a few mistakes.

Imports System.io
Public Class FileOps
    Public Response As Integer
    Private Sub ReadFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReadFile.Click
        MyFileData.Clear()
        If CreateFile() > -1 Then MyFileData.Text = File.ReadAllText(MyFilePath.Text)
    End Sub

    Private Sub SaveToFile_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SaveToFile.Click
        If CreateFile() = -1 Then Exit Sub
        If File.ReadAllText(MyFilePath.Text).Length >= 0 Then
            Response = MsgBox("The file contains something already. Do you want to overwrite? (Clicking on 'No' will append to the file)", MsgBoxStyle.YesNoCancel)
            If Response = vbYes Then File.WriteAllText(MyFilePath.Text, MyFileData.Text)
            If Response = vbNo Then File.AppendAllText(MyFilePath.Text, vbCrLf & MyFileData.Text)
        End If
    End Sub
    Function CreateFile()
        CreateFile = -1
        If Not File.Exists(MyFilePath.Text) Then
            Response = MsgBox("File not found at the given path. Shall I create it?", MsgBoxStyle.YesNo)
            If Response = vbYes Then
                File.Create(MyFilePath.Text)
                CreateFile = 1
            Else
                Exit Function
            End If
        Else
            CreateFile = 0
        End If
    End Function

    Private Sub GetRange_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetRange.Click
        Dim c As String, s As String, i As Integer, t As String, k As Integer, max As Single, min As Single, R As Single, RC As Single
        Dim N(100) As Single
        t = MyFileData.Text
        s = ""
        k = 0
        For i = 1 To t.Length
            If c <> "," And Mid(t, i, 2) <> vbCrLf Then
                s = s & c
            Else
                N(k) = CSng(s)
                s = ""
                k = k + 1
                If k = 100 Then
                    MsgBox("Array is full and there is still some data in the textbox / file. Truncating the data to get range")
                    Exit For
                End If
            End If
        Next
        max = N(0) : min = N(0)
        For i = 1 To N.GetUpperBound(0) - 1
            If N(i) > max Then max = N(i)
            If N(i) < min Then min = N(i)
        Next
        R = max - min
        RC = R / (max + min)
        MsgBox("The range of the data in the file is " & R & vbCrLf & "The Range coefficient is " & RC)
    End Sub
End Class

Comments

All Time Popular Posts

Annual Day 2023

 After a long hiatus due to covid we finally got most activities on track. The Annual Day function is always a big deal for everyone at Abhinav. It has been a tradition my mother started that the Annual Day will be not a Teacher-managed event, but a Student Initiative. Since when I was a teenager, I was part of this and today 10 years after she passed, I still strive to make it work as she would have. After some hesitation, we began working in early January. I wanted to use an outside choreographer just so that teachers will not be burdened. (They are already struggling with post-covid learning difficulties) But then, an outside guy could never do justice to the Abhinav style of doing things. We always keep in mind that the cultural program should be enjoyable to everyone in the audience and at the same time should display as many of the diverse talents that our students have, as possible.  It was a great relief that my G3 students came to the rescue. Almost all of std 9 and m...

Trapping events - IT assignment for Std XI

Perform these tasks on your PC and give yor answers as comments to this post or as an email to my ID - director@abhinav.ac.in . What is the sequence for the events given below and when do they occur for the given object? a) Textbox - Change, KeyPress, KeyDown, Validate b) Command button - Click, GotFocus, LostFocus, KeyPress c) Combo Box - Change, Click, DblClick, DropDown, Scroll Draw an equilateral triangle (should actually look like it) whose one vertex is the point at which the user clicks on the form. Make a simple calculator which has buttons for different numbers & operations (+, -, *, /, ^) and a box to display the result of each operation as well as each number being typed.

Are Self-Driving Cars Taking Over Humans?

- Arya Dharmadhikari(Std X, Abhinav Vidyalay) The 21st century has played an important role in the advancement of technologies. This development has even revolutionized the Automobile industry. We have developed from fuel-efficient vehicles to Hybrids and EVs and now we are enhancing self-driving vehicles. Tesla, Waymo, Volvo, GM, BMW, Mercedes are among the few companies that have started testing self-driving cars. The leading among them is Waymo, which has developed level 4 autonomy which we will discuss in the next section. So before reaching levels of autonomy we should understand what self-driving cars are and why we require them. What is a self-driving car? A self-driving car (also called an autonomous vehicle) is a car that is competent in driving itself without any human intervention. The car has sensors, cameras, lasers, radars, GPS, LIDAR through which the Artificial Intelligence senses the surrounding environment, this helps the car to navigate on its path and to detect sig...