Public Class Form1
Private Structure Pára
Dim érték As Integer
Dim nap As Integer
End Structure
Dim P(100) As Pára
Dim Rendezo(100) As Pára
Dim N, K, I As Integer
Dim napok() As Integer
Dim rj, PT, Fn As String
Dim Rajzlap As Graphics
Dim F As New Font("Ariel", 14, FontStyle.Regular, GraphicsUnit.World)
Dim Y_pos, X_pos As Integer
Private Sub nyomtat(ByVal sor As String)
Rajzlap.DrawString(sor, F, Brushes.Blue, X_pos, Y_pos)
Y_pos = Y_pos + 16
End Sub
Private Sub feladat()
Dim J, K, Q, S, W, Nap As Integer
I = 0
rj = ""
Dim Olvasó As New IO.StreamReader("para.be")
N = CInt(Olvasó.ReadLine)
K = CInt(Olvasó.ReadLine)
ReDim napok(K) 'újradimenzionálja a napok tömböt
Rajzlap = Me.CreateGraphics
Rajzlap.Clear(Color.LightYellow)
X_pos = 20
Y_pos = 50 'grafika alaphelyzetbe állítása
nyomtat("N értékéke:" & Str(N))
nyomtat("K értékéke:" & Str(K))
nyomtat("*********************")
nyomtat("")
Do While Not Olvasó.EndOfStream ' beolvasás soronként
I = I + 1
P(I).érték = Olvasó.ReadLine
P(I).nap = I
If I >= K Then ' ha már elérte a beolvasott adatok száma K-t
For J = 1 To 100
Rendezo(J).érték = 0 ' nullázza a rendező tömböt
Rendezo(J).nap = 0
Next J
For J = 1 To I ' feltölti a rendező tömböt
Rendezo(J).érték = P(J).érték
Rendezo(J).nap = P(J).nap
Next J
Dim Tároló As Pára
For Q = I - 1 To 1 Step -1 'páratartalom szerint rendezi az adatokat a tömbben
For W = 1 To Q
If Rendezo(W).érték > Rendezo(W + 1).érték Then
Tároló = Rendezo(W)
Rendezo(W) = Rendezo(W + 1)
Rendezo(W + 1) = Tároló
End If
Next W
Next Q
For J = 1 To K ' A napok tömbben összegyűjti a K legkisebb páratartalmú napot
'rj = rj & " " & Str(Rendezo(j).nap) kiíratható a rendezetlen napok száma a tömbből
napok(J) = Rendezo(J).nap
Next J
'nyomtat rj
rj = ""
For Q = K - 1 To 1 Step -1 ' sorba rendezi a napokat
For S = 1 To Q
If napok(S) > napok(S + 1) Then
Nap = napok(S)
napok(S) = napok(S + 1)
napok(S + 1) = Nap
End If
Next S
Next Q
For J = 1 To K 'kiírja a napok rendezett adatait
rj = rj & " " & Str(napok(J))
Next J
If I < 10 Then
nyomtat(Str(I) & ". " & " nap után:" & rj)
Else
nyomtat(Str(I) & "." & " nap után:" & rj)
End If
rj = ""
End If
Loop
Olvasó.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call feladat()
End Sub
End Class
Colorized by: CarlosAg.CodeColorizer