Süsteemprogrammeerimine keeles C ja C#

Slides:



Advertisements
Similar presentations
Lecture Computer Science I - Martin Hardwick The Programming Process rUse an editor to create a program file (source file). l contains the text of.
Advertisements

Ilmselt maailma kõige hullem esitlus Demonstratsioon mida mitte teha luues ja kasutades PowerPointi esitlusi.
Chapter 16 Exception Handling. What is Exception Handling? A method of handling errors that informs the user of the problem and prevents the program from.
Passing Streams to Functions. Passing Streams to Functions One Rule: always pass a stream as a reference.
Templated Functions. Overloading vs Templating  Overloaded functions allow multiple functions with the same name.
C/c++ 4 Yeting Ge.
1 Class Vehicle #include #define N 10../.. 2 Class Vehicle class vehicle { public: float speed; char colour[N+1]; char make[N+1];
Kärdla School. School About 500 students About 40 teachers State school High school Primary school 12 grades.
計算機概論實習 Review of Practice 8 (P8) PLEASE write a program that when you fail to open a file, you have to throw a exception. Directly using.
“Fausti” elufilosoofiad
CS 192 Lecture 3 Winter 2003 December 5, 2003 Dr. Shafay Shamail.
Java ja.NET Framework programmide kompileerimine masinkoodi Siim Karus.
IT Kolledzh/TTÜ 2002 T.Tammet IT sissejuhatus loeng 11 lk Sissejuhatus informaatikasse.
Chapter 10C++ for Java Programmers1 Chapter 10 Input/Output.
Monday, Mar 31, 2003Kate Gregory with material from Deitel and Deitel Week 12 Labs 4 and 5 are back File IO Looking ahead to the final.
File I/O in C++ II. Open() function Open() is a member function in each classes ( fstream, ifstream, ofstream) Void fstream :: open ( const char *filename,
Exceptions in C++. Exceptions  Exceptions provide a way to handle the errors generated by our programs by transferring control to functions called handlers.
Input/Output in C++ C++ iostream.h instead of stdio.h Why change? –Input/output routines in iostream can be extended to new types declared by the user.
CSCI 333 Data Structures I/O with C++ 20 October, 2003.
Lecture 14 Arguments, Classes and Files. Arguments.
Int fact (int n) { If (n == 0) return 1; else return n * fact (n – 1); } 5 void main () { Int Sum; : Sum = fact (5); : } Factorial Program Using Recursion.
CS 1430: Programming in C++ 1. File Input in VS Project Properties Debugging Command Arguments quiz8-1.out We want to know how to do it ourselves, right?
Ilmselt maailma kõige halvem esitlus Demonstratsioon, mida mitte teha luues ja kasutades PowerPointi esitlusi. NIMED: kuupäev:
Vea haldus ja logiraamat hajutatud süsteemides Enn Õunapuu
Asif Nawaz University Institute of Information Technology, PMAS-AAUR Lecture 05: Object Oriented Programming:2014 Object-Oriented Programming in C++ Exception.
C++ Lesson 1.
Topics: Templates Exceptions
Part IX Fundamentals of C and C++ Programming Exception Handling
Compiler Construction
Õpiobjekt: ÕPIME KELLA
مبانی کامپیوتر و برنامه سازی
Veehaldjad eesti mütoloogias
Singapore Mathematical Society Association of Mathematics Educators
Reserved Words.
Introduction to Programming
RNA - ribonukleiinhape
Learning Objectives What else in C++ Bitwise operator
Remo Suurkivi Hansapank 26/10/2005
Süsteemprogrammeerimine keeles C ja C#
umbisikuline tegumood
null, true, and false are also reserved.
More About File Reading
Oрганизација програма
PMen Import failidest.
umbisikuline tegumood
Süsteemid ja protsessid sinu arvutis
Mare Hallop Kilingi-Nõmme Gümnaasium
Süsteemprogrammeerimine keeles C ja C#
Avo Ots telekommunikatsiooni õppetool,
BizTalk Martin Maripuu Integratsiooni-arhitekt
Introduction to Programming
Arvutisüsteemide instituut 2018
C keel AVR mikrokontrolleril
CMSC 202 Lesson 22 Templates I.
Läbirääkimised: vormide täitmine Participant Portal’i kaudu.
Pärilus ja ülekatmine Vt Aabits, vihik 8 Klassid: Kolmik.java
Exceptions CSCE 121 J. Michael Moore
C keel AVR mikrokontrolleril
KULDVILLAK SAAREMAA Created by Educational Technology Network
الوحدة الرابعة البرمجة وصياغة حل المسائل البرمجة وأهميتها أهداف الدرس الأول مفهوم البرمجة. الفرق بين المبرمج ومستخدم البرنامج. الحاجة إلى البرامج.
Standard Input/Output Stream
JavaScript Reserved Words
CSC 270 – Survey of Programming Languages
Prof. Bhushan Trivedi Director GLS Institute of Computer Technology
Exception Handling.
CSC 143 Stream I/O Classes and Files [A11-A15, A38-A50]
CS150 Introduction to Computer Science 1
Templates I CMSC 202.
File I/O in C++ II.
Text Files.
Presentation transcript:

Süsteemprogrammeerimine keeles C ja C# Üheteistkümnes loeng

Veel failidest ja streamidest Failitöötluse soovitus #include <iostream.h> #include <fstream.h> Annab kaks kasulikku klassi sulle ifstream – sisendfailivoog ofstream – väljundfailivoog KASUTAD NAGU cout, cin, cerr jne klasse

Veel failidest ja streamidest #include <iostream.h> #include <fstream.h> #include <stdio.h> void main() { int I = 0; char b[255]; ifstream loe("c:\\boot.ini"); while( loe.getline(b,255)) i++; cout << i << " " << loe.tellg() << " " << b << '\n'; }

Veel failidest ja streamidest #include <iostream.h> #include <fstream.h> #include <stdio.h> void main() { int I = 0; char b[255]; ifstream loe("c:\\boot.ini"); ofstream pane(“c:\\copyboot.ini”); while( loe.getline(b,255)) i++; pane << i << " " << loe.tellg() << " " << b << '\n'; }

Template Probleem – klassi kirjeldamisel on vaja terve hulk ühesuguse sisuga kuid eri tüüpi parameetritega funktsioone. See muudab klassi kirjelduse kohmakaks ja ebaotstarbekaks, rakesti loetavaks ja raskesti silutavaks

Template int compare_values(int a, int b); float compare_values(float a, float b); char compare_values(char a, char b); Kõigi kolme sisu on 1 ja seesama return ((a > b) ? a : b);

Lihtsam vorm template<class T> T compare_values(T a, T b) { return ((a > b) ? a : b; } nn GENERIC FUNKTSIOON!

Template kasutades saab koostada Generic funktsioone Generic struktuure Generic klasse Generic tüübiteisendusi (casting) jne jne

Veatöötlus Inimene teeb peamiselt vigu Avuti teeb peamiselt vigu Maailmas juhtub igasugu äpardusi ja kui ei juhtu, siis lugege Murphit

Vigade eelkontroll ja järeltöötlus translaator tüübikindlus nime tõstutundlikkus deklareerimisnõue ... Parameetrite ülekontrollimine (InLine) Järeltöötlus Vigade kinnipüüdmine, veateated, täpsustused

DISKUSSIOON KUS TULEKS ANDMEID KONTROLLIDA? KAS KÕIKI VÕIMALIKKE VIGU SAAB EELKONTROLLIDA?

InLine veatöötlus Iga parameetrit kontrollitakse hoolega, enne kui temaga midagi tegema hakatakse if (parameeteronõige) {teemekasulikku} else {teatameveast} while teemidagi(...) ; return (kuidasõnnestus); Keegi ei jõua kõike läbi kontrollida

Struktuurne veatöötlus Mõisted: try – proovi, plokk, milles toimuvat me kontrollime catch – püüa, plokk, mis saab juhtimise tõrke korral finally – peale segadust, plokk mis tuleb täita igal juhul throw – anna teada, koht kus öeldakse, et asi on p...s

Veatöötlus eri keeltes VB-s (vana) ON ERROR GoTo kuhugi C-s süsteemsed plokinimed __try __catch __finally C++ ja C# struktuur try { } catch(...) { } finally { }

Veatöötlus on korruseline ehitus {...; funktsioon1( ... ); ...;} void funktsioon( ... ) funktsioon2( ... );

Veatöötluskorrused plaanitud viga ootamatu viga F3 try F3 catch F3 finally F2 try F2 catch F2 finally F1 try F1 catch F1 finally

Milleks finally C ja C++ algselt seda võimalust ette ei näe tegemist on MS spetsiifilise lisandiga Sõltumata sellest, kas pruut ütleb altari ees jah või ei, tuleb peigmehe vanematel see nali kinni maksta finally – toakoristuskood!

Finally C++ - süsteemne märgend C# struktuurielement

C# - keeles on veel mõned vigurid Checked ja unchecked kood checked (avaldis) checked blokk unchecked (avaldis) unchecked blokk

throw ja catch ja veatüüp catch(T muutuja) { ... } blokk täidetakse, kui toimus T-tüüpi viga T muutuja; ... ; throw muutuja; kutsutakse esile T-tüüpi viga T on mingi tüüp (int, char, misiganes) on süsteemsed veatüübid

milline catch-blokk täidetakse Samad reeglid mis overloaditud funktsioonidel leitakse eismene sellele tüübile (klassile) sobiv catch-blokk kui ei ole, siis selle baastüübile sobiv jne kuni catch(...) või catch(System.Exception x) ja kui ikka ei ole, siis järgmisele korrusele ja kõige alumine korrus on süsteem (Dr. Watson)

C# keeles - veatüübid tuletatud klassist System.Exception System.SystemException ... vt tuletatud klassid Igas namespaces vt sealsed exceptionid

EXCEPTION Exception = erand Veatöötlus = reegel

Järgmine kord – (või harjutustunnis) käime läbi silumisvahendid transleerimisviisid (checked, unchecked) räägime trace ja debug klassidest (C#)