מחלקות classes.

Slides:



Advertisements
Similar presentations
STACKS & QUEUES. Stacks Abstract data types An abstract data type (ADT) is an abstraction of a data structure An ADT specifies : –Data stored –Operations.
Advertisements

Stacks and Queues. Not really data structures – More of an enforcement of policy – Can be implemented using an array or linked list – Can store just about.
ממיבחניםC שאלות ++.
מבוא למדעי המחשב לתעשייה וניהול
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
האוניברסיטה העברית בירושלים
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 18 Stacks.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 18: Stacks And Queues.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
רשימה מקושרת Linked Lists. דוגמא STRING איך עושים Dim x as String בלי לדעת מראש את הגודל !
1 מבוא למדעי המחשב משתנים. 2  סוגי משתנים בשפת C  ההבדלים בין סוגי המשתנים השונים.
סוגי מידע / משתנים ד " ר אבי רוזנפלד. סוגאורךטווח Boolean1 Bit0,1 Byte1 byte0-255 Char 2 bytes תו Decimal16 bytes0 through +/-79,228,162,514,264,337,593,543,950,335.
Unit 11 1 Unit 11: Data Structures H We explore some simple techniques for organizing and managing information H This unit focuses on: Abstract Data Types.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
CS 106 Introduction to Computer Science I 12 / 11 / 2006 Instructor: Michael Eckmann.
שימוש במערך דינמי : ArrayList. מאפיינים חשובים בכל LIST יכולת להכניס מידע בלי תלות בטיפוס יכולת למחוק מידע יכולת להוסיף מידע פונקציות נוספות ( מיון, חיפוש.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
מערכים מבוא לתכנות למנע"ס - שבוע מספר 8 - מאיר קומר - סמסטר ב' - תשס"ו והנה בעיה כתוב תוכנית אשר תקלוט 36 מספרים ותדפיס כמה מתוכם גדולים יותר מהממוצע.
תרגול 10: הכרות עם ++C ++C כ- C משופר
Stacks and Queues. Stack ADT סוג של מערך מוגבל מהר מאוד ולוקחים מעט זכרון שימוש ב LIFO – LIFO (Last In, First Out) lists. –אפשר להוסיף רק בסוף הרשימה.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
CS 106 Introduction to Computer Science I 12 / 13 / 2006 Instructor: Michael Eckmann.
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
1 Lecture 26 Abstract Data Types – IV Overview  The List ADT  Implementing Stacks as Linked List  Linked List Implementation of Queues .  Preview:
מערכים דו ממדי ו STRUCTS פונקציות בוליאנית Module Module1 Function Flip(ByVal word1 As String) As Boolean Dim i As Integer For i = 0 To word1.Length()
פונקציות. פונקציות מוכרות Imports System.Math Module Module1 Sub Main() Dim x As Decimal = Math.Abs(-10.4) Dim y As Decimal Console.WriteLine("I will.
אתחול עצמים. אתחולים ובנאים יצירת מופע חדש של עצם כוללת: הקצאת זכרון, אתחול, הפעלת בנאים והשמה לשדות במסגרת ריצת הבנאי נקראים גם הבנאי/ם של מחלקת הבסיס.
© 2004 Pearson Addison-Wesley. All rights reserved12-1 Chapter 12 : Collections Intermediate Java Programming Summer 2007.
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
Stacks and queues Basic operations Implementation of stacks and queues Stack and Queue in java.util Data Structures and Algorithms in Java, Third EditionCh04.
Copyright © 2012 Pearson Education, Inc. Chapter 18: Stacks And Queues.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 18 Stacks and Queues.
1 Chapter 7 Stacks and Queues. 2 Stack ADT Recall that ADT is abstract data type, a set of data and a set of operations that act upon the data. In a stack,
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
ניתוח מערכות מידע ב נעים להכיר... תכנות ב C#.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
1 מבוא למדעי המחשב הרצאה 21: Queue, Iterator & Iterable.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
1 תרגול 11: Design Patterns ומחלקות פנימיות 1 תוכנה 1.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
Stacks And Queues Chapter 18.
Arrays and Collections Tonga Institute of Higher Education.
מחסנית ותור Stacks and Queues. מחסנית Stack מחסנית - Stack ADT סוג של מערך מוגבל מהיר מאוד ותופס מעט זיכרון שימוש ב LIFO – LIFO (Last In, First Out)
מחסנית ותור Stacks and Queues. מחסנית Stack מחסנית - Stack ADT סוג של מערך מוגבל מהיר מאוד ותופס מעט זיכרון שימוש ב LIFO – LIFO (Last In, First Out)
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
Combo Box שלושה סוגים של Combo Box: Style 0 (default) - drop-down combo box המשתמש יכול להוסיף אפשרויות לרשימה או ללחוץ על החץ לבחירה מרשימת האפשרויות.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 18: Stacks and Queues.
Lecture 16 Stacks and Queues Richard Gesick. Sample test questions 1.Write a definition for a Node class that holds a number. 2.Write a method that sums.
18 Chapter Stacks and Queues
Chapter 18: Stacks and Queues.
G64ADS Advanced Data Structures
מבוא למדעי המחשב לתעשייה וניהול
QueueStack CS1020.
Operators Overloading
Web Services אוספים - Collections ליווי מקצועי : ארז קלר
Chapter 19: Stacks and Queues.
Lecture 21 Stacks and Queues Richard Gesick.
בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה
ניתוח מערכות מידע תכנות ב C#
מבוא לתכנות מונחה עצמים Object Oriented Programming
תוכנה 1 תרגול 13 – סיכום.
מחסנית ותור Stacks and Queues.
מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.
Container classes, ADTs
Abstract Data Type (ADT)
Lecture 16 Stacks and Queues CSE /26/2018.
Presentation transcript:

מחלקות classes

תזכורת - Structure דוגמא: Structure Oved Dim name As String Dim maskoret As Integer End Structure סינטקס: Structure שם המבנה משתנה 1 משתנה 2 ... End Structure מתאים כאשר רוצים לאגוד ביחד מספר משתנים שיש ביניהם קשר ואם רוצים להוסיף יכולת לבצע "פעילויות" שקשורות למבנה?

מחלקה class מחלקה משמשת לאיגוד קבוצה של משתנים ופעולות (הנקראות מתודות) למחלקה יש אוסף של משתנים המתודות של המחלקה פועלות על המשתנים של המחלקה מתודה מיוחדת הנקראת בנאי (constructor) מגדירה מה קורה כאשר נוצר אוביקט חדש של המחלקה

גישה לחלקי המחלקה המשתנים מוגדרים כפרטיים Private רק מתודות של המחלקה יכולות להשתמש בהם המתודות מכירות את כל המשתנים של המחלקה המתודות מוגדרות כפומביות Public אפשר להשתמש במתודות מחוץ למחלקה מתודות main מחלקה תכונות

סינטקס של מחלקה class Public Class שם המחלקה Private משתנה 1 Private משתנה 2 ... Public Sub New() Public Function 1 כותרת הפונקציה ….. Public Function2 כותרת הפונקציה….. … Public Sub 1 כותרת הפונקציה ….. Public Sub 2כותרת הפונקציה …. End Class

עובד כמחלקה Public Class Oved Private name As String Private maskoret As Integer Public Sub New() name = "noName" maskoret = 0 End Sub Public Function GetName() As String Return name End Function Public Sub SetName(ByVal str As String) name = str End Class

שימוש במחלקה "עובד" מתוך "Main" Sub Main() Dim ov As New Oved() Console.WriteLine("The oveds name is " & ov.GetName) ov.SetName("Ariella") 'ov.name = "Ariella" DOES NOT WORK!!! WHY? End Sub

מבני הנתונים Stack, queue, linked list כמחלקות

תזכורת –Stack (מחסנית) שימוש בLIFO LIFO (Last In, First Out) lists. אפשר להוסיף רק בסוף הרשימה PUSH אפשר להוריד רק מסוף הרשימה POP

להמציא מחדש את הגלגל – ראינו קודם (שימוש בפונקציות) להמציא מחדש את הגלגל – ראינו קודם (שימוש בפונקציות) Module Module1 Function Count(ByVal list As ArrayList) As Integer Return list.Count() End Function Sub Push(ByVal val As Object, ByRef list As ArrayList) list.Add(val) End Sub Function Pop(ByVal list As ArrayList) As Object Dim obj As Object = list.Item(list.Count - 1) list.RemoveAt(list.Count - 1) Return obj Function Peek(ByVal list As ArrayList) As Object Return list.Item(list.Count - 1) … … Sub Main() Dim test As New ArrayList() Dim i As Integer For i = 0 To 4 Push(i, test) Next Console.WriteLine(Count(test)) For i = 0 To test.Count - 1 Dim num As Integer = Pop(test) Console.WriteLine(num) End Sub End Module

להמציא מחדש את הגלגל עם מחלקות Public Class CStack Private index As Integer Private list As New ArrayList() Public Sub New() index = -1 End Sub Public Function Count() As Integer Return list.Count() End Function Public Sub Push(ByVal val As Object) list.Add(val) index += 1 Public Function Pop() As Object Dim obj As Object = list.Item(index) list.RemoveAt(index) index -= 1 Return obj Public Function Peek() As Object Return list.Item(index) End Class להמציא מחדש את הגלגל עם מחלקות

שימוש בMAIN (אותו דבר כמו שימוש בStack ADT) Sub Main() Dim test As New CStack() Dim i As Integer For i = 1 To 5 test.Push(i) Next Console.WriteLine(test.Count) For i = 1 To test.Count Dim num As Integer = test.Pop() Console.WriteLine(num) End Sub

תזכורת Queue (תור) שימוש בFIFO FIFO (First In, First Out) lists. אפשר להוסיף רק בסוף הרשימה Enqueue אפשר להוריד רק מהתחלת הרשימה Dequeue

תרגיל: איך בונים QUEUE? Public Class CQueue Private list As New ArrayList() Public Function Count() As Integer ??? End Function Public Sub Enqueue(ByVal val As Object) End Sub Public Function Dequeue() As Object Public Function Peek() As Object End Class

פתרון אפשרי Public Class CQueue Private list As New ArrayList() Public Sub New() End Sub Public Function Count() As Integer Return list.Count() End Function Public Sub Enqueue(ByVal val As Object) list.Add(val) Public Function Dequeue() As Object Dim obj As Object = list.Item(0) list.RemoveAt(0) Return obj Public Function Peek() As Object Return list.Item(0) End Class