Οι πίνακες στην C++/CLI δημιουργούνται και δεσμεύουν χώρο στο Managed Heap (Garbage Collected Heap) Για τον λόγο αυτό οι μεταβλητές των πινάκων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Οι πίνακες στην C++/CLI δημιουργούνται και δεσμεύουν χώρο στο Managed Heap (Garbage Collected Heap) Για τον λόγο αυτό οι μεταβλητές των πινάκων"

Transcript

1 Οι πίνακες στην C++/CLI δημιουργούνται και δεσμεύουν χώρο στο Managed Heap (Garbage Collected Heap) Για τον λόγο αυτό οι μεταβλητές των πινάκων δηλώνονται πάντα ως Λαβές Εντοπισμού (Tracking Handles) «^». Η δήλωση ενός πίνακα γίνεται με την δεσμευμένη λέξη array ως εξής array<τύπος στοιχείων του πίνακα> ^ όνομα_πίνακα, π.χ. array<int> ^ data; array<double> ^ grades; κ.λ.π. Η δέσμευση μνήμης για τον πίνακα γίνεται με χρήση της εντολής gcnew ως εξής: όνομα_πίνακα = gcnew array<τύπος στοιχείων>(πλήθος στοιχείων); Π.χ. array<int> ^ data; data = gcnew array<int>(100); Μετά την δήλωσή της (array<int> ^ data;) η μεταβλητή data έχει την τιμή nullptr. Η τιμή αυτή σημαίνει ότι το managed handle δεν δείχνει σε κανένα αντικείμενο. Η gcnew θα δώσει στο handle την τιμή της περιοχής μνήμης που δεσμεύτηκε για το αντικείμενο.

2 Η δήλωση ενός πίνακα μπορεί να γίνει και με functional notation : array<int> ^ data( gcnew array<int>(100) ); Επίσης είναι δυνατό κατά την δήλωση του πίνακα να γίνει και αρχικοποίηση των τιμών του πίνακα, για παράδειγμα: array<int> ^ numbers = { 1, 2, 3, 4, 5 }; Σε αυτή την περίπτωση το πλήθος των στοιχείων του πίνακα για την δέσμευση μνήμης λαμβάνεται από το πλήθος των στοιχείων εντός των άγκιστρων (στην περίπτωση αυτή = 5). Τέλος αρχικοποίηση μπορεί να γίνει και με την κλήση της gcnew ως εξής : array<int> ^ numbers; numbers = gcnew array<int>{ 1, 2, 3, 4, 5 }; Παράδειγμα αρχικοποίησης πίνακα με String: array < String^ > ^ onomata = { "John", Ann", Mary", Tom", "Jim"};

3 Η προσπέλαση των στοιχείων του πίνακα γίνεται με τον γνωστό τρόπο με χρήση των τετράγωνων αγκύλων και ενός δείκτη θέσης του πίνακα: Στοιχείο_Πίνακα = Όνομα_Πίνακα [ Δείκτης_Θέσης ] ; Η αρίθμηση των θέσεων των στοιχείων του πίνακα ξεκινά από το 0. Λόγω του δείκτη θέσης, η προσπέλαση όλων των στοιχείων ενός πίνακα μπορεί να γίνει εύκολα με ένα βρόχο for, Π.χ. : for (i=0 ; i<5 ; i++ ) sum+= data[i]; Εκτός από τον βρόχο for μπορούμε να χρησιμοποιήσουμε και τον βρόχο for each που συντάσσεται ως εξής : for each ( όνομα_μεταβλητής in όνομα_πίνακα ) { } Παράδειγμα : array<int> ^ data= gcnew array<int>{1,2,3,4,5}; int Max=data[0]; for each (int n in data) {if (n>max) Max=n;} Console::WriteLine("Max = {0}",Max);

4 Οι πίνακες ως αντικείμενα έχουν και ορισμένες πολύ χρήσιμες ιδιότητες και μεθόδους που διευκολύνουν την χρήση τους : Ιδιότητα Length: επιστρέφει το πλήθος των στοιχείων του πίνακα ως ακέραιο αριθμό, π.χ. for (i=0 ; i<data->length ; i++) sum=sum+data[i]; Ιδιότητα Rank: επιστρέφει τον αριθμό των διαστάσεων του πίνακα, π.χ. 1 για μονοδιάστατο, 2 για δισδιάστατο, 3 για τρισδιάστατο κ.λ.π. Μέθοδος Clear: μηδενίζει τα στοιχεία ενός πίνακα. Αν τα στοιχεία είναι αριθμητικά γίνονται ίσα με το 0. Αν είναι bool γίνονται false. Αν είναι pointers γίνονται nullptr, κ.λ.π. π.χ. if (data!=nullptr) Array::Clear(data,0,data->Length); Μέθοδος Sort: ταξινομεί έναν πίνακα με αύξουσα σειρά. Ο πίνακας θα πρέπει να έχει οριστεί στο Heap (να μην είναι nullptr) και θα πρέπει να είναι μονοδιάστατος (Rank=1). Παράδειγμα : array<int> ^ data= gcnew array<int>{3,1,5,4,2}; Array::Sort(data); // data = {1,2,3,4,5}

5 Με την μέθοδο Sort είναι δυνατό να ταξινομήσουμε δύο μονοδιάστατους πίνακες ταυτόχρονα. Η ταξινόμηση γίνεται με βάση τα στοιχεία του πρώτου πίνακα που θεωρείται πίνακας «κλειδιών» αλλά αναδιατάσσονται ταυτόχρονα και τα στοιχεία του δεύτερου πίνακα. Παράδειγμα: array < String^ > ^ onomata = { "John", Ann", Mary", Tom", "Jim"}; array <float> ^ bathmoi = {7.5, 9.0, 6.8, 5.4, 8.1 }; Array::Sort( onomata, bathmoi ); Μέθοδος Reverse: Αντιστρέφει την σειρά των στοιχείων του πίνακα, π.χ array<int> ^ data= gcnew array<int>{1,2,3,4,5}; Array::Reverse(data); // {5,4,3,2,1} Μέθοδος Copy: Αντιγράφει έναν πίνακα σε έναν άλλο. Παράδειγμα : array <float> ^ bathmoi = {7.5, 9.0, 6.8, 5.4, 8.1 }; array <float> ^ grades = gcnew array<float> (5) ; Array::Copy( bathmoi, grades, 5);

6 Μέθοδος BinarySearch: με την μέθοδο αυτή μπορούμε να αναζητήσουμε ένα στοιχείο μέσα σε έναν ταξινομημένο πίνακα. Η σύνταξη είναι : θέση_στοιχείου = Array::BinarySearch( πίνακας, στοιχείο ); Π.χ. array < int > ^ values = { 23, 45, 68, 94, 123, 127, 150, 203, 299}; int tobefound=127; int position = Array::BinarySearch(values, tobefound); // 5 Αν το στοιχείο δεν βρεθεί η μέθοδος επιστρέφει αρνητικό νούμερο. Μέθοδος IndexOf: με την μέθοδο αυτή μπορούμε να αναζητήσουμε ένα στοιχείο μέσα σε έναν πίνακα που δεν χρειάζεται να είναι ταξινομημένος. Η σύνταξη είναι : θέση_στοιχείου = Array::IndexOf( πίνακας, στοιχείο ); Π.χ. array < String^ > ^ onomata = { "John", Ann", Mary", Tom", "Jim"}; String ^ student ( Tom ); int position = Array::IndexOf( onomata, student); // 3

7 Με βάση την κλάση Array μπορούμε να δημιουργήσουμε πίνακες δύο η περισσότερων διαστάσεων με μέγιστο αριθμό διαστάσεων τις 32. Για παράδειγμα, η δημιουργία πίνακα δύο διαστάσεων γίνεται ως εξής: array < int, 2 > ^ values = gcnew array < int, 2 > (4, 5); όπου το «,2» δηλώνει το πλήθος των διαστάσεων του πίνακα, ενώ το 4,5 είναι το πλήθος των γραμμών και το πλήθος των στηλών του πίνακα αντίστοιχα. Η προσπέλαση των στοιχείων του πίνακα γίνεται ως εξής: όνομα_πίνακα [ γραμμή, στήλη ] = τιμή ; Παράδειγμα κώδικα : int nrows=4; int ncols=5; array < int, 2 > ^ values(gcnew array < int, 2 > (nrows, ncols)); for(int i = 0 ; i < nrows ; i++) for(int j = 0 ; j < ncols ; j++) values[i,j] = (i+1)*(j+1);

8 File extension Type Contents.cpp,.c Source Τα πηγαία αρχεία κώδικα της εφαρμογής..exe,.dll Project Το παραγόμενο εκτελέσιμο πρόγραμμα ή η παραγόμενη dynamic-link library.h Source Αρχείο επικεφαλίδας (header file) που συνδυάζεται με το.cpp.ico Resource Αρχείο με την γραφική αναπαράσταση εικονιδίου..ilk Linking Incremental link file -αρχείο που υποβοηθά το αυξητικό link..map Linking Ένα αρχείο κειμένου που περιέχει πληροφορίες για το linking..obj,.o Compiling Αρχείο κώδικα μηχανής μετά την μεταγλώττιση και πριν το linking..pch Debug Precompiled header file αρχείο προ-μεταγλωττισμένης επικεφαλίδας.pdb Debug Program debug database αρχείο με βάση δεδομένων του Debugging.res Resource Αρχείο Binary με τα Resources του Project..resx Resource XML αρχείο που περιγράφει τα resources του project..rc,.rc2 Resource Script file που χρησιμοποιείται στην παραγωγή των resources..sln Solution Το αρχείο του Solution (Solution File).suo Solution Το αρχείο με τα Options του Solution (solution options file) sdf Compiling Βάση Δεδομένων του κώδικα (Code Browsing Database) tlog Compiling Αρχεία συμβάντων - Log Files.vcxproj Project Το αρχείο του Project

9 Σε κάθε Windows Forms Application παράγεται και ένα.cpp αρχείο με το όνομα που δώσαμε στο project μας p.x. Askhsh1-1.cpp. Το αρχείο αυτό περιέχει το εναρκτήριο σημείο της εφαρμογής (application entry point) που είναι η ρουτίνα main : // Askhsh1-1.cpp : main project file. #include "stdafx.h" #include "Form1.h" using namespace Askhsh11; [STAThreadAttribute] int main(array<system::string ^> ^args) { // Enabling Windows XP visual effects before any controls are created Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // Create the main window and run it Application::Run(gcnew Form1()); return 0; }

10 #include "stdafx.h : Στο αρχείο αυτό ενσωματώνουμε όλους τους precompiled headers της εφαρμογής. Το #include αυτό πρέπει να ενσωματώνεται πριν από οποιοδήποτε.cpp [STAThreadAttribute] : καθορίζει ότι η τρέχουσα εφαρμογή θα είναι μονού νήματος (single threaded). Application::EnableVisualStyles() : Ενεργοποιεί τα οπτικά εφφέ (visual styles) τα οποία απαρτίζουν ένα «θέμα» του Λειτουργικού Συστήματος ώστε να μπορούν τα Controls να εμφανίζονται με βάση αυτά τα visual styles. Απαιτείται πριν την δημιουργία οποιουδήποτε Control. Application::SetCompatibleTextRenderingDefault(false): Καθορίζει ότι τα Controls θα χρησιμοποιούν την κλάση TextRenderer που βασίζεται στο GDI (Graphics Device Interface) των Windows. Application::Run(gcnew Form1()) : Ξεκινάει τον βρόχο μηνυμάτων της εφαρμογής στο τρέχον νήμα (thread) και δεσμεύει μνήμη στο garbage collected heap για την βασική φόρμα της εφαρμογής (Form1) την οποία και εμφανίζει στην οθόνη.

11 Το αρχείο Form1.h περιέχει τον βασικό κώδικα που σχετίζεται με την συγκεκριμένη φόρμα, δηλαδή δήλωση της κλάσης της φόρμας, δήλωση των ενσωματωμένων Controls, αρχικοποίηση των Controls σύμφωνα με την σχεδίασή τους από τον προγραμματιστή και τον κώδικα των διαχειριστών συμβάντων (Event Handlers). Τα τμήματα του Form1.h είναι τα ακόλουθα: Δηλώσεις για την χρήση namespaces Δήλωση της κλάσης Form1 Δήλωση του Constructor και του Destructor Δήλωση και δημιουργία των ενσωματωμένων Controls Αρχικοποίηση των Controls σύμφωνα με την σχεδίαση Δήλωση του κώδικα των Event Handlers

12 #pragma once namespace Askhsh21 { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Add the constructor code here // }

13 protected: ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::Label^ label1; private: System::Windows::Forms::Button^ button1; private: System::Windows::Forms::Button^ button2; private: System::Windows::Forms::Button^ button3; private: System::Windows::Forms::Button^ button4; private: System::Windows::Forms::Button^ button5; protected: /// <summary> /// Required designer variable. /// </summary> private: System::ComponentModel::Container ^components;

14 #pragma region Windows Form Designer generated code void InitializeComponent(void) {this->button1 = (gcnew System::Windows::Forms::Button()); this->label1 = (gcnew System::Windows::Forms::Label()); this->button2 = (gcnew System::Windows::Forms::Button()); this->button3 = (gcnew System::Windows::Forms::Button()); this->button4 = (gcnew System::Windows::Forms::Button()); this->button5 = (gcnew System::Windows::Forms::Button()); this->suspendlayout(); //παύση ενημέρωσης της φόρμας // button1 this->button1->location = System::Drawing::Point(105, 106); this->button1->name = L"button1"; this->button1->size = System::Drawing::Size(75, 23); // label1 this->label1->autosize = true;

15 this->resumelayout(false); //ενεργοποίηση της ενημέρωσης της φόρμας this->performlayout(); //επανασχεδιασμός της φόρμας } #pragma endregion private: System::Void button1_click(system::object^ sender, System::EventArgs^e) { label1->left=(this->clientsize.width-label1->width)/2; label1->top=(this->clientsize.height-label1->height)/2; } private: System::Void button2_click(system::object^ sender, System::EventArgs^ e) { label1->left=0; label1->top=0; } }; // τέλος της δήλωσης της κλάσης Form1 } // τέλος του namespace Askhsh21

16 #include : ενσωματώνει αρχείο επικεφαλίδων (με δηλώσεις κλάσεων, συναρτήσεων, μεταβλητών κ.λ.π., στο πηγαίο αρχείο κατά την μεταγλώττιση (#include <stdafx.h>). #define : καθορίζει τιμή σταθεράς που μακρο-αντικαθίσταται πριν την μεταγλώττιση (#define N 100) #ifdef, #ifndef, #else, #endif : δομές για υπό συνθήκη μεταγλώττιση κώδικα. (#ifdef WINDOWS #include <win.h> #else #include <dos.h> #endif) #mport : ενσωματώνει μία βιβλιοθήκη τύπων.olb,.tlb, ή.dll ( π.χ. #import "..\drawctl\drawctl.tlb ) #pragma token-string : η οδηγία pragma ακολουθούμενη από μία χαρακτηριστική λέξη (token-string) αποτελεί μία εξειδικευμένη οδηγία προς τον συγκεκριμένο compiler, που μπορεί να μην αναγνωρίζεται από άλλους compilers, αλλά δεν προκαλεί την δημιουργία σφαλμάτων κατά την μεταγλώττιση. Ο compiler της C/C++ αναγνωρίζει 40 τέτοια tokens.

17

18 Αποτελεί ένα κοινό TextBox στο οποίο καθορίζουμε την ιδιότητα Multiline σε true. Στην περίπτωση αυτή το TextBox μπορεί να δεχτεί πολλαπλές γραμμές κειμένου. Συμπληρωματικά Properties WordWrap : (true/false) καθορίζει αν οι γραμμές θα αναδιπλώνονται στο τέλος κάθε γραμμής ή όχι. ScrollBars : (None/Horizontal/Vertical/Both) εισάγει scroll bars για την ολίσθηση πάνω-κάτω και δεξιά-αριστερά. Για να εμφανιστούν τα οριζόντια scrollbars πρέπει η ιδιότητα WordWrap να είναι false. Lines : (array<string^> ^ Lines) πίνακας από Strings που περιέχει τις γραμμές του Multiline TextBox. Μέσω της ιδιότητας αυτής μπορώ να διαβάσω (read) τις γραμμές του TextBox σε μορφή πίνακα, αλλά με ανάθεση πίνακα στην ιδιότητα Lines μπορώ να επανα-καθορίσω τις γραμμές που εμφανίζονται μέσα σε ένα Multiline TextBox.

19 Κληρονομείται από την κλάση System::Windows:: Forms::ComboBox. Λειτουργεί σαν TextBox αλλά ο χρήστης μπορεί να επιλέξει μία από τις επιλογές της drop-down λίστας που εμφανίζεται πατώντας το Properties DropDownHeight: καθορίζει το ύψος της drop-down λίστας DropDownWidth: καθορίζει το πλάτος της drop-down λίστας DropDownStyle: καθορίζει τον τρόπο εμφάνισης του ComboBox Simple DropDown DropDownList Εμφανίζει ταυτόχρονα το Εμφανίζει το TextBox και Επιτρέπει εισαγωγή TextBox και την λίστα με και την λίστα μόνο από την λίστα

20 Properties Text : το κείμενο του ComboBox MaxDropDownItems: καθορίζει το μέγιστο πλήθος επιλογών που θα εμφανίζονται στο Drop-Down list. Sorted: (true/false) καθορίζει εάν οι επιλογές της λίστας θα εμφανίζονται ταξινομημένες ή όχι. Items: Collection του τύπου ComboBox::ObjectCollection που περιέχει τις επιλογές της drop-down λίστας με ιδιότητες Count, Item[] και μεθόδους Add, Clear, IndexOf, Insert, Remove, RemoveAt, κ.λ.π. SelectedIndex: δείχνει ή καθορίζει τον α/α της επιλογής από την λίστα. SelectedItem: Επιστρέφει το ίδιο το επιλεγμένο αντικείμενο της λίστας. Methods BeginUpdate(), EndUpdate() επιτρέπουν την πολλαπλή ενημέρωση του ComboBox χωρίς ενδιάμεσο επανα-σχεδιασμό του. RefreshItems(): επανα-σχεδιάζει τις επιλογές του ComboBox. Events DropDown, DropDownClosed, SelectedIndexChanged, SelectionChangeCommitted, κ.λ.π.

21 Κληρονομείται από την κλάση System::Windows:: Forms::CheckBox. Εμφανίζει ένα τετράγωνο που μπορεί να περιέχει ένα checkmark ή όχι και δίπλα μία λεζάντα κειμένου. Properties Appearance: (Normal/Button) καθορίζει αν θα εμφανίζεται ως checkbox ή ως button που μένει πατημένο ή όχι. AutoSize: (true/false) καθορίζει εάν το μέγεθος του αντικειμένου θα καθορίζεται αυτόματα ή ελεύθερα από τον χρήστη. CheckAlign: (BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight, TopCenter, TopLeft, TopRight) καθορίζει την σχετική θέση του checkbox σε σχέση με την λεζάντα κειμένου. Checked: (true/false) καθορίζει αν το CheckBox είναι τσεκαρισμένο ή όχι CheckState: (Checked, Unchecked, Indeterminate) καθορίζει την κατάσταση του CheckBox. ThreeState: (true/false) καθορίζει εάν το checkbox θα έχει 3 καταστάσεις αντί για 2 (Checked, Unchecked, Indeterminate). Text: το κείμενο της λεζάντας του checkbox

22 Properties: TextAlign: (BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight, TopCenter, TopLeft, TopRight) καθορίζει την σχετική θέση του κειμένου στο control. Image: εικόνα που μπορεί να φορτωθεί στο background του control. ImageAlign: (BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight, TopCenter, TopLeft, TopRight) καθορίζει την σχετική θέση της εικόνας στο control. TextImageRelation: (Overlay, ImageAboveText, TextAboveImage, ImageBeforeText, TextBeforeImage) καθορίζει την σχετική θέση εικόνας και κειμένου μέσα στο checkbox control. Methods Hide, Show : Εξαφανίζει / εμφανίζει το CheckBox. Refresh(), Invalidate(), Focus(), SendToBack(), BringToFront(), SetBounds(), Scale(factor), Select(), Events CheckedChanged(), CheckStateChanged(), AppearanceChanged(),

23 Κληρονομείται από την κλάση System::Windows:: Forms::RadioButton. Εμφανίζει ένα κυκλικό κουμπί που μπορεί να είναι επιλεγμένο ή όχι και δίπλα μία λεζάντα κειμένου. Μοιάζει με το CheckBox. Χρησιμοποιείται σε συστοιχίες πολλών RadioButtons τα οποία συμπεριφέρονται με ενιαίο τρόπο: όταν επιλέγεις το ένα από-επιλέγονται τα υπόλοιπα. Properties Appearance: (Normal/Button) καθορίζει αν θα εμφανίζεται ως checkbox ή ως button που μένει πατημένο ή όχι. AutoSize: (true/false) καθορίζει εάν το μέγεθος του αντικειμένου θα καθορίζεται αυτόματα ή ελεύθερα από τον χρήστη. CheckAlign: (BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight, TopCenter, TopLeft, TopRight) καθορίζει την σχετική θέση του checkbox σε σχέση με την λεζάντα κειμένου. Checked: (true/false) καθορίζει αν το CheckBox είναι τσεκαρισμένο ή όχι CheckState: (Checked, Unchecked, Indeterminate) καθορίζει την κατάσταση του CheckBox.

24 Properties Text: το κείμενο της λεζάντας του radiobutton TextAlign: (BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight, TopCenter, TopLeft, TopRight) καθορίζει την σχετική θέση του κειμένου στο control. Image: εικόνα που μπορεί να φορτωθεί στο background του control. ImageAlign: (BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight, TopCenter, TopLeft, TopRight) καθορίζει την σχετική θέση της εικόνας στο control. TextImageRelation: (Overlay, ImageAboveText, TextAboveImage, ImageBeforeText, TextBeforeImage) καθορίζει την σχετική θέση εικόνας και κειμένου μέσα στο radiobutton control. Methods Hide, Show : Εξαφανίζει / εμφανίζει το radiobutton. Refresh(), Invalidate(), Focus(), SendToBack(), BringToFront(), SetBounds(), Scale(factor), Select(), Events: CheckedChanged(), CheckStateChanged(), AppearanceChanged(),...

25 Δημιουργούμε νέο Project. Αλλάζουμε το text της Form1 σε Άσκηση 3-1. Ενσωματώνουμε ένα TextBox και καθορίζουμε την ιδιότητα Multiline σε true, την WordWrap σε false και την ιδιότητα ScrollBars σε Both. Προσθέτουμε δύο Label και δύο TextBox για την γραμμή και την στήλη. Προσθέτουμε 4 buttons και αλλάζουμε το μέγεθός τους και το text. Για την εμφάνιση γραμμής και στήλης «παγιδεύουμε» τα Events Click και KeyUp και γράφουμε τον ακόλουθο κώδικα: private: System::Void textbox1_click(system::object^sender, System::EventArgs^e) { int start = textbox1->selectionstart; int line = textbox1->getlinefromcharindex(start); textbox2->text = Convert::ToString(line+1); //correct 0-based int col = start - textbox1->getfirstcharindexofcurrentline(); textbox3->text = Convert::ToString(col+1); //correct 0-based }

26 Για την εμφάνιση κειμένου δημιουργούμε event handler και γράφουμε τον ακόλουθο κώδικα: private: System::Void button1_click (System:: Object^ sender, System:: EventArgs^ e) { MessageBox::Show(textBox1->Text, "Άσκηση 3-1", MessageBoxButtons:: OKCancel,MessageBoxIcon:: Information); } Για την εισαγωγή γραμμής δημιουργούμε event handler και γράφουμε: private: System::Void button2_click(system::object^ sender, System::EventArgs^ e) { int start = textbox1->getfirstcharindexofcurrentline(); textbox1->text=textbox1->text->insert(start,environment::newline); // NewLine="\r\n" }

27 Για το Undo δημιουργούμε event handler και γράφουμε τον κώδικα: private: System::Void button4_click (System::Object^ sender, System::EventArgs^ e) { textbox1->undo(); } Τέλος για την διαγραφή γραμμής γράφουμε τον κώδικα: private: System::Void button3_click(system::object^ sender, System::EventArgs^ e) {if (textbox1->lines->length>0) { int line = textbox1->getlinefromcharindex(textbox1->selectionstart); array<string^>^ temp=gcnew array<string^>(textbox1->lines->length-1); Array::Copy(textBox1->Lines,temp,line); Array::Copy(textBox1->Lines,line+1,temp,line,textBox1->Lines->Length-line-1); textbox1->lines=temp; } }

28 Η εφαρμογή αποτελείται από 3 φόρμες και υλοποιεί ένα Setup Wizard. Η κάθε φόρμα μπορεί να μας οδηγήσει στην επόμενη φόρμα μέχρι την ολοκλήρωση της διαδικασίας, αλλά και στην προηγούμενη για επανάληψη των βημάτων. Στην αρχική φόρμα ενσωματώνουμε ένα Label ένα PictureBox και 2 Buttons. Αλλάζουμε το κείμενο το και το font του Label. Φορτώνουμε μία εικόνα στο PictureBox. Αλλάζουμε το Text των 2 Buttons.

29 Δημιουργούμε και 2 η φόρμα και ενσωματώνουμε σε αυτήν ένα Label, ένα ComboBox ένα CheckBox και 3 Buttons. Καθορίζουμε το κείμενο του Label. Προσθέτουμε επιλογές στην ιδιότητα Items του ComboBox. Αλλάζουμε το Text του CheckBox. Αλλάζουμε το Text των 3ων Buttons Δημιουργούμε και 3 η φόρμα και ενσωματώνουμε σε αυτήν 3 RadioButtons και 3 Buttons. Καθορίζουμε το Text των 3ων RadioButtons. Καθορίζουμε το Text των 3ων Buttons. Στο Form1.h κάνουμε include τις δύο άλλες φόρμες: #include "Form2.h" #include "Form3.h" Στην κλάση της Form1 ενσωματώνουμε 2 μέλη δεδομένα: public: Form2 ^ frm2; Form3 ^ frm3;

30 Στo Form2.h ενσωματώνουμε στην κλάση της φόρμας δύο data members: public: System::Windows::Forms::Form ^ frm1; System::Windows::Forms::Form ^ frm3; Στo Form3.h ενσωματώνουμε στην κλάση της φόρμας ένα data member: public: System::Windows::Forms::Form ^ frm2; Στo Form1.h ενσωματώνουμε στον Constructor τον παρακάτω κώδικα αρχικοποίησης ώστε να δημιουργηθούν οι Form2 και Form3 και η κάθε φόρμα να έχει pointers για τις άλλες δύο: Form1(void) {InitializeComponent(); frm2= gcnew Form2(); frm3= gcnew Form3(); frm2->frm1=this; frm2->frm3=frm3; frm3->frm2=frm2; }

31 Παράγουμε Event Handlers για τα Buttons. Για το Button Έξοδος της Form1 γράφουμε τον παρακάτω κώδικα: private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) { this->close(); } Για το Button Επόμενο> της Form1 γράφουμε τον παρακάτω κώδικα: private: System::Void button2_click(system::object^ sender, System::EventArgs^ e) { this->hide(); frm2->show(); } Για το Button Έξοδος της Form2 γράφουμε τον παρακάτω κώδικα: private: System::Void button3_click(system::object^ sender, System::EventArgs^ e) { frm1->close(); } Για το Button <Προηγούμενο της Form2 γράφουμε τον παρακάτω κώδικα: private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) { frm1->show(); this->hide(); }

32 Για το Button Επόμενο> της Form2 γράφουμε τον παρακάτω κώδικα: private: System::Void button2_click(system::object^ sender, System::EventArgs^ e) { frm3->show(); this->hide(); } Για το Button <Προηγούμενο της Form3 γράφουμε τον παρακάτω κώδικα: private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) { frm2->show(); this->hide(); } Για το Button Έξοδος της Form3 γράφουμε τον παρακάτω κώδικα: private: System::Void button2_click(system::object^ sender, System::EventArgs^ e) { Application::Exit(); } Για το Button Ολοκλήρωση της Form3 γράφουμε τον παρακάτω κώδικα: private: System::Void button3_click(system::object^ sender, System::EventArgs^ e) { MessageBox::Show("Η Εγκατάσταση Ολοκληρώθηκε με Επιτυχία!", "Εφαρμογή",MessageBoxButtons::OKCancel,MessageBoxIcon::Exclamation);}

Το MS Visual Studio επιτρέπει στον προγραμματιστή να αναπτύξει προγράμματα σε δύο διαφορετικές εκδόσεις της γλώσσας C++ : ISO/IEC C++ που αποτελεί

Το MS Visual Studio επιτρέπει στον προγραμματιστή να αναπτύξει προγράμματα σε δύο διαφορετικές εκδόσεις της γλώσσας C++ : ISO/IEC C++ που αποτελεί Το MS Visual Studio επιτρέπει στον προγραμματιστή να αναπτύξει προγράμματα σε δύο διαφορετικές εκδόσεις της γλώσσας C++ : ISO/IEC C++ που αποτελεί την στάνταρ έκδοση της γλώσσας, χρησιμοποιεί στάνταρ βιβλιοθήκες

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

Διαβάστε περισσότερα

Συνέχεια του αντικειμενoστραφούς προγραμματισμού Επέκταση των κλάσεων σε Visual Components (Window Controls) Κατασκευή του Interface στο Design Time,

Συνέχεια του αντικειμενoστραφούς προγραμματισμού Επέκταση των κλάσεων σε Visual Components (Window Controls) Κατασκευή του Interface στο Design Time, Συνέχεια του αντικειμενoστραφούς προγραμματισμού Επέκταση των κλάσεων σε Visual Components (Window Controls) Κατασκευή του Interface στο Design Time, και καθορισμός πολλών παραμέτρων των αντικειμένων (properties).

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν λίστες από δεδομένα. Να κατασκευάσουν συναρτήσεις με λίστες. Να διαβάσουν και

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

4 η Εργαστηριακή Άσκηση

4 η Εργαστηριακή Άσκηση 4 η Εργαστηριακή Άσκηση Σκοπός της εργαστηριακής άσκησης είναι η δημιουργία μιας εφαρμογής πολλαπλών καρτελών με κοινή σύνδεση σε Βάση Δεδομένων και προβολή δεδομένων από διαφορετικούς πίνακες της ίδιας

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 10 η : Το αντικείμενο Συλλογή (Collection) & τα αντικείμενα ListBox, CheckedListBox & ComboBox Ι.

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 11 η : Αντικείμενα Γραφικής Διασύνδεσης (Μέρος 1 ο ) Ι. Ψαρομήλιγκος Χ.

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 9 η : Αντικείμενα για επιλογή τιμής (CheckBox, RadioButton) & το αντικείμενο ομαδοποίησης GroupBox

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Δομημένος Προγραμματισμός ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΙΑΣ Διάλεξη 2 Νικόλαος Ζ. Ζάχαρης 2007 Σκοπός της διάλεξης Θα αναπτύξουμε ένα πρόγραμμα όπου θα επαναλάβουμε τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής. Θα

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 8 η : Αντικείμενα για εισαγωγή & επεξεργασία κειμένου (TextBox, RichTextBox, MaskedTextBox) Ι. Ψαρομήλιγκος

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Παρουσίαση Delphi. Μέμος-Μπαγκράτσας Ιωάννης 1232 Μαργαρίτης Νικόλαος 1226

Παρουσίαση Delphi. Μέμος-Μπαγκράτσας Ιωάννης 1232 Μαργαρίτης Νικόλαος 1226 Παρουσίαση Delphi Μέμος-Μπαγκράτσας Ιωάννης 1232 Μαργαρίτης Νικόλαος 1226 Object Oriented Pascal Το Delphi χρησιμοποιεί την Object Oriented Pascal. Ο περισσότερος κώδικας γράφεται αυτόματα κάθε φορά που

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κατασκευάσουν πίνακες

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κάνουν αποσφαλμάτωση

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ)

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ) Γενικός Σκοπός Το αναλυτικό πρόγραμμα έχει ως γενικό σκοπό να δώσει στους μαθητές τις απαιτούμενες γνωστικές, κριτικές και αναλυτικές δεξιότητες ώστε να είναι ικανοί να χρησιμοποιούν τους υπολογιστές για

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

New Project Windows Forms Applications

New Project Windows Forms Applications Ανάπτυξη απλής εφαρµογής. Solutions, Projects, GUI, Events, Debugging. New Project Windows Forms Applications Name: ΜyLucky7 Location: C:\... Solution Name: ΜyLucky7 OK (επιλογή έκδοσης του πλαισίου Εφαρµογών.NET)

Διαβάστε περισσότερα

Διαδικτυακό Λογισμικό Αριθμητικής Ανάλυσης. Numerical Analysis Network Software

Διαδικτυακό Λογισμικό Αριθμητικής Ανάλυσης. Numerical Analysis Network Software ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΜΕΑΣ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Διαδικτυακό Λογισμικό Αριθμητικής Ανάλυσης Numerical Analysis Network

Διαβάστε περισσότερα

ΜICROSOFT VISUAL STUDIO 2008. Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή

ΜICROSOFT VISUAL STUDIO 2008. Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή ΜICROSOFT VISUAL STUDIO 2008 Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging Εισαγωγή Visual Basic 2008 Eργαλείο ανάπτυξης εντυπωσιακών εφαρµογών στα Windows, στο Web, φορητά

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

Διαβάστε περισσότερα

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++ Εντολές εισόδου - εξόδου Εισαγωγή στη C++ Το πρώτο πρόγραμμα //my first program #include using namespace std; int main(){ cout

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κατασκευάσουν πίνακες

Διαβάστε περισσότερα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

Διαβάστε περισσότερα

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC Η Visual Basic είναι μια γλώσσα προγραμματισμού οδηγούμενη από συμβάντα που έχει ένα ολοκληρωμένο περιβάλλον ανάπτυξης Έχει δημιουργηθεί από τη

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

Διαβάστε περισσότερα

7η Εργαστηριακή Άσκηση: Προβολή εικόνας στη φόρμα με εκτέλεση ερωτήματος.

7η Εργαστηριακή Άσκηση: Προβολή εικόνας στη φόρμα με εκτέλεση ερωτήματος. 7η Εργαστηριακή Άσκηση: Προβολή εικόνας στη φόρμα με εκτέλεση ερωτήματος. Σκοπόσ τησ εργαςτηριακήσ άςκηςησ είναι να διδαχθεί ο ςπουδαςτήσ να δημιουργεί πεδία ςε πίνακα που να περιέχουν κάποιεσ διαδρομέσ

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η

Διαβάστε περισσότερα

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8 Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 1000 1001 1002 1003 1004 1005 12 9.8 9976 3 1010 26 1006 1007 1008 1009 1010 1011 16 125 1299 a 13 1298 Δήλωση Δήλωση Τύπος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET 1. Ανοίξτε το πρόγραμμα Microsoft Visual Studio Net 2. Στην start page επιλέξτε my profile 3. Στο πεδίο profile επιλέξτε visual basic developer και κλείστε την start page 4. Επιλέξτε File New Project 5.

Διαβάστε περισσότερα

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

Διαβάστε περισσότερα

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database

Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database Στο παρόν παράδειγμα, θα δούμε πώς εκτυπώνουμε έναν κατάλογο με συγκεκριμένα στοιχεία μαθητών, με γραμματοσειρά σταθερού πλάτους. Δηλαδή, θα

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Λίστες Λίστες - Απλά Συνδεδεμένες Λίστες - Διπλά Συνδεδεμένες Λίστες Είδη Γραμμικών Λιστών Σειριακή Λίστα Καταλαμβάνει συνεχόμενες θέσεις κύριας μνήμης Συνδεδεμένη Λίστα Οι κόμβοι βρίσκονται σε απομακρυσμένες

Διαβάστε περισσότερα

Απάντηση. // We write in a header file named my_header.h #ifndef my_header_h #define my_header_h #define divides(x,y) (((y)%(x)==0)?

Απάντηση. // We write in a header file named my_header.h #ifndef my_header_h #define my_header_h #define divides(x,y) (((y)%(x)==0)? Θέμα 1. Γράψτε τον κώδικα ενός header file που να περιέχει: 1) Ένα macro με όνομα divides που, αν του μεταβιβάσουμε δύο ακέραιους αριθμούς επιστρέφει 1 αν ο πρώτος αριθμός διαιρεί τον δεύτερο, αλλιώς,

Διαβάστε περισσότερα

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ηµιουργία και χειρισµός LIFO λιστών µεταβλητού µήκους µε στοιχεία ακεραίους αριθµούς. Γενίκευση για χειρισµό λιστών πραγµατικών

Διαβάστε περισσότερα

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:

Διαβάστε περισσότερα

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

Προγραμματισμός 2 Σημειώσεις εργαστηρίου Προγραμματισμός 2 Σημειώσεις εργαστηρίου 02-Java, Τύποι Δεδομένων ως Αντικείμενα Νεβράντζας Βάιος-Γερμανός Λάρισα, Μάρτιος 2013 02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 1 Περίληψη

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15 Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

Διαβάστε περισσότερα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

Διαβάστε περισσότερα

Δυναμική μνήμη με πίνακες και λίστες

Δυναμική μνήμη με πίνακες και λίστες Δυναμική μνήμη με πίνακες και λίστες Ατζέντα ονομάτων Οι πίνακες βοηθάνε στην εύκολη προσπέλαση, στην σειριοποίηση των δεδομένων για αποθήκευση ή μετάδοση. Απαιτούν ωστόσο είτε προκαταβολική δέσμευση μνήμης

Διαβάστε περισσότερα

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C Τεχνολογία και Προγραμματισμός Υπολογιστών Η γλώσσα προγραμματισμού C Με μια ματιά Τύπος Πίνακα Μεταβλητές με ενδείκτη Αλφαριθμητικά - Πίνακες Δισδιάστατος Πολυδιάστατος Πίνακας 2 2 Τύπος Πίνακα Σύνθετος

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα

Διαβάστε περισσότερα

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons.

Διαβάστε περισσότερα

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++ Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++ Γενικά Η εντολή: int arr[5][2]; Δηλώνει την μεταβλητή arr σαν πίνακα με πέντε γραμμές (rows) και με δύο στήλες (columns). Η αρίθμηση και των δύο δεικτών

Διαβάστε περισσότερα

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE NetBeans όπου θα παρουσιάζεται ποιο κουμπί πατήθηκε. Η εφαρμογή θα μοιάζει ως εξής: Πρώτο Βήμα: Αρχική

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο

Διαβάστε περισσότερα

Επίλυση προβλήματος με Access

Επίλυση προβλήματος με Access Δ.1. Το προς επίλυση πρόβλημα Ζητείται να κατασκευάσετε τα αρχεία και τα προγράμματα μιας εφαρμογής καταχώρησης Δαπανών μελών ΔΕΠ (Διδακτικό και Ερευνητικό Προσωπικό) για την παρακολούθηση του απολογισμού

Διαβάστε περισσότερα

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

Διαβάστε περισσότερα

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

Διαβάστε περισσότερα

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΙΣΤΟΣΕΛΙΔΑΣ ΠΑΡΑΓΓΕΛΙΩΝ ΛΙΑΝΙΚΗΣ ΣΕ ΕΡΓΟΣΤΑΣΙΟ

ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΙΣΤΟΣΕΛΙΔΑΣ ΠΑΡΑΓΓΕΛΙΩΝ ΛΙΑΝΙΚΗΣ ΣΕ ΕΡΓΟΣΤΑΣΙΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ Τ.Ε.Ι ΠΕΙΡΑΙΑ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΙΣΤΟΣΕΛΙΔΑΣ ΠΑΡΑΓΓΕΛΙΩΝ ΛΙΑΝΙΚΗΣ ΣΕ ΕΡΓΟΣΤΑΣΙΟ ΒΑΣΙΛΕΙΟΣ ΠΑΣΣΙΟΣ Α.Μ:37992 ΙΩΑΝΝΗΣ ΑΓΓΕΛΟΠΟΥΛΟΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ

Διαβάστε περισσότερα

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή

Διαβάστε περισσότερα

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα Τύπος Δεδομένων: ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα - Ένας ΑΤΔ είναι ένα μαθηματικό μοντέλο (οντότητα)

Διαβάστε περισσότερα

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο

Διαβάστε περισσότερα

Γράφοντας μουσική με το Finale 2006 (B μέρος)

Γράφοντας μουσική με το Finale 2006 (B μέρος) Γράφοντας μουσική με το Finale 2006 (B μέρος) Συνέχεια λοιπόν των οδηγιών για την χρήση του FINALE 2006, αν και ήδη έχει κυκλοφορήσει το FINALE 2007. Αφού ολοκληρώσουμε την παρουσίαση των κυριοτέρων λειτουργιών

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Το PowerPoint (PP) είναι ένα γραφικό πρόγραμμα για παρουσιάσεις. Χαρακτηριστικά Παρουσιάσεων:

Το PowerPoint (PP) είναι ένα γραφικό πρόγραμμα για παρουσιάσεις. Χαρακτηριστικά Παρουσιάσεων: Κεφάλαιο 5 Το PowerPoint (PP) είναι ένα γραφικό πρόγραμμα για παρουσιάσεις. Χαρακτηριστικά Παρουσιάσεων: Επεξεργασία κειμένου. Δημιουργία και επεξεργασία γραφικών παραστάσεων. Δημιουργία και επεξεργασία

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 2η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Βασικοί αριθμητικοί τύποι, μετατροπές τύπων και σταθερές. Πίνακες. Πίνακες

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

Υπερφόρτωση τελεστών (operator(

Υπερφόρτωση τελεστών (operator( Υπερφόρτωση τελεστών (operator( overloading) Η υπερφόρτωση τελεστών είναι ένα από τα πιο ενδιαφέροντα χαρακτηριστικά του αντικειμενοστραφούς προγραμματισμού. Αναφέρεται στην πρόσθετη χρήση των συνηθισμένων

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

Διαβάστε περισσότερα

Στις εφαρμογές της C++/CLI μπορούμε να ενσωματώσουμε δύο ειδών μενού: 1. Κύρια Μενού (Main Menu) Τα οποία εμφανίζονται στο επάνω μέρος της φόρμας,

Στις εφαρμογές της C++/CLI μπορούμε να ενσωματώσουμε δύο ειδών μενού: 1. Κύρια Μενού (Main Menu) Τα οποία εμφανίζονται στο επάνω μέρος της φόρμας, Στις εφαρμογές της C++/CLI μπορούμε να ενσωματώσουμε δύο ειδών μενού: 1. Κύρια Μενού (Main Menu) Τα οποία εμφανίζονται στο επάνω μέρος της φόρμας, περιλαμβάνουν οριζόντιες επιλογές με κάθετες υποεπιλογές

Διαβάστε περισσότερα

Διαδικασία Ανάπτυξης Λογισμικού

Διαδικασία Ανάπτυξης Λογισμικού Διαδικασία Ανάπτυξης Λογισμικού Ανάλυση Απαιτήσεων (προϋποθέτει κατανόηση του προβλήματος και τη συλλογή πληροφοριών και των απαιτήσεων από το σύστημα) Σχεδιασμός (ορισμός διεργασιών για να ικανοποιηθούν

Διαβάστε περισσότερα

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

Διαβάστε περισσότερα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

Διαβάστε περισσότερα

Visual Basic Γλώσσα οπτικού

Visual Basic Γλώσσα οπτικού Visual Basi Γλώσσα οπτικού προγραµµατισµού «Η αρχή είναι το ήµισυ του παντός» Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι Μαθήµατος Οι µαθητές να µπορούν: να εξηγούν τι είναι η Visual Basi. ναεξηγούνταστάδιαδηµιουργίας

Διαβάστε περισσότερα

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT)

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) Τύπος Δεδομένων: ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα - Ένας ΑΤΔ είναι ένα μαθηματικό μοντέλο (οντότητα)

Διαβάστε περισσότερα

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες Προγραμματισμός Η/Υ Ι Υπολογισμός - - Πίνακες ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συζητήσουμε τη χρήση του πίνακα (array) για τη συλλογή

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων Σκοπός της Άσκησης ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση πινάκων σαν διατάξεις αποθήκευσης δεδοµένων της Γλώσσας Προγραµµατισµού C. H συγκεκριµένη άσκηση

Διαβάστε περισσότερα

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

Διαβάστε περισσότερα

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

Διαβάστε περισσότερα