1 / 16

תרגיל #1 פתרונות

תרגיל #1 פתרונות. שאלה #1. יש לקלוט 10 מספרים למערך. לאחר מכן יש להעתיק את המספרים אשר נמצאים במקומות הזוגיים למערך שני שהוא בגודל 5. את המספרים אשר נמצאים במקומות האי-זוגיים במערך הראשון יש להעתיק למערך שלישי בגודל 5 . יש צורך להתחיל כל מערך במקום ה0 (ולא במקום 1). פתרון #1. Module Module1

matsu
Download Presentation

תרגיל #1 פתרונות

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. תרגיל #1פתרונות

  2. שאלה #1 • יש לקלוט 10 מספרים למערך. לאחר מכן יש להעתיק את המספרים אשר נמצאים במקומות הזוגיים למערך שני שהוא בגודל 5. את המספרים אשר נמצאים במקומות האי-זוגיים במערך הראשון יש להעתיק למערך שלישי בגודל 5. יש צורך להתחיל כל מערך במקום ה0 (ולא במקום 1).

  3. פתרון #1 Module Module1 Sub Main() Dim i, a(9), b(4), c(4), num1, num2 As Integer num1 = 0 num2 = 0 For i = 0 To 9 a(i) = Console.ReadLine Next For i = 0 To 9 If i Mod 2 = 0 Then b(num1) = a(i) num1 = num1 + 1 Else c(num2) = a(i) num2 = num2 + 1 End If Next Console.WriteLine("Zugi index") For i = 0 To num1 - 1 Console.Write(" {0},", b(i)) Next Console.WriteLine() Console.WriteLine("E Zugi index") For i = 0 To num2 - 1 Console.Write(" {0},", c(i)) Next Console.ReadKey() End Sub End Module

  4. פתרון #2 Module Module1 Sub Main() Dim i, a(9), b(4), c(4) As Integer For i = 0 To 9 a(i) = Console.ReadLine Next For i = 0 To 9 If i Mod 2 = 0 Then b(i \ 2) = a(i) Else c(i \ 2) = a(i) End If Next Console.WriteLine("Zugi index") For i = 0 To 4 Console.Write(" {0},", b(i)) Next Console.WriteLine() Console.WriteLine("E Zugi index") For i = 0 To 4 Console.Write(" {0},", c(i)) Next Console.ReadKey() End Sub End Module

  5. שאלה #2 יש לבנות שני מערכים חד ממדיים. יש למלא את המערך הראשון במחרוזות.  (לנוחות, אפשר להניח שיש לך מערך קבוע בגודל 10.) לאחר מילוי המערך הראשון יש למלא במערך השני את אורך המחרוזת שנמצאת במערך הראשון באינדקס המקביל.

  6. פתרון Module Module1 Sub Main() Dim a(9) As String Dim i, b(9) As Integer For i = 0 To 9 a(i) = Console.ReadLine Next For i = 0 To 9 b(i) = Len(a(i)) Next For i = 0 To 9 Console.Write("{0},", a(i)) Next Console.WriteLine("") For i = 0 To 9 Console.Write("{0},", b(i)) Next End Sub End Module

  7. פתרון נוסף Module Module1 Sub Main() Dim arrS(9) As String Dim lens(9) As Integer Dim i As Integer For i = 0 To arrS.Length - 1 arrS(i) = Console.ReadLine() Next For i = 0 To lens.Length - 1 lens(i) = arrS(i).Length Next For i = 0 To arrS.Length - 1 Console.WriteLine(arrS(i) & ",") Next For i = 0 To lens.Length - 1 Console.WriteLine(lens(i) & ",") Next End Sub End Module

  8. שאלה #3 . יש לכתוב פונקציה המקבלת מערך של מספרים (לאו דווקא שלמים) ומחזירה את המינימום שביניהם. הפרוטוטייפ של הפונקציה הוא: Function Min(ByVal x() As Decimal) As Integer

  9. פתרון Module Module1 Sub Main() Dim i, x(9) As Decimal For i = 0 To 9 x(i) = Console.ReadLine Next Console.WriteLine("the minimum is:" & Min(x)) End Sub Function Min(ByVal x() As Decimal) As Decimal Array.Sort(x) 'Min = x(0) ' Do NOT do this! Return x(0) End Function End Module

  10. פתרון Module Module1 Sub Main() Dim i, x(9) As Decimal For i = 0 To 9 x(i) = Console.ReadLine Next Dim val As Integer = Min(x) Console.WriteLine("the minimum is:" & val) Console.ReadKey() End Sub Function Min(ByVal x() As Decimal) As Decimal Dim temp As Decimal= x(0) Dim i As Integer = 0 For i = 1 To x.Length() - 1 If x(i) < temp Then temp = x(i) End If Next Return temp End Function End Module

  11. שאלה #4 יש לכתוב פונקציה המקבלת מערך של מספרים (דווקא שלמים) ומדפיסה את העצרת של כל המספרים במערך. הפרוטוטייפ של הפונקציה הוא: Sub PrintAtzeret(ByVal x() As Integer)

  12. Module Module1 Sub Main() Dim x() As Integer = {1, 2, 4, 5, 7} PrintAtzeret(x) Console.ReadKey() End Sub Sub PrintAtzeret(ByVal x() As Integer) Dim num, j, atseret(4) As Integer For i = 0 To 4 num = x(i) atseret(i) = 1 For j = 1 To num atseret(i) = atseret(i) * num num = num - 1 Next Console.WriteLine(" aatseret shel aeivar a {0} hi: {1}", i + 1, atseret(i)) Next End Sub End Module פתרון

  13. יותר טוב? Module Module1 Sub Main() Dim i, x(4) As Integer For i = 0 To 4 x(i) = Console.ReadLine Next PrintAtzeret(x) Console.ReadKey() End Sub Sub PrintAtzeret(ByVal x() As Integer) Dim num, j, atseret(x.Length) As Integer j = x.Length For i = 0 To x.Length - 1 num = x(i) atseret(i) = 1 For j = 1 To num atseret(i) = atseret(i) * num num = num - 1 Next Console.WriteLine(" aatseret shel aeivar a {0} hu: {1}", i + 1, atseret(i)) Next End Sub End Module

  14. שאלה #5  כתוב פונקציה הבודקת אם מערך הוא סימטרי.  הפונקציה יחזיר את הערך הבוליאני TRUE אם הוא סימטרי, וFALSE אחרת.  הפרוטוטיפ הוא: Function Compare(ByVal x() As Integer) As Boolean

  15. פתרון Module Module1 Sub Main() Dim x(4), i AsInteger For i = 0 To 4 x(i) = Console.ReadLine Next Console.WriteLine(Compare(x)) EndSub Function Compare(ByVal x() AsInteger) AsBoolean Dim k AsInteger = x.Length - 1 Compare = True For i = 0 To x.Length - 1 If x(i) <> x(k) Then return False EndIf k = k - 1 Next return True EndFunction EndModule

  16. פתרון Module Module1 Sub Main() Dim x() As Integer = {1, 2, 2, 1} Dim y() As Integer = {1, 2, 1, 1} Console.WriteLine(Compare(x)) Console.WriteLine(Compare(y)) End Sub Function Compare(ByVal x() As Integer) As Boolean Dim k As Integer = x.Length - 1 For i = 0 To x.Length - 1 If x(i) <> x(k) Then return False End If k = k - 1 Next return True End Function End Module

More Related