c++ programming

วันอังคารที่ 11 สิงหาคม พ.ศ. 2552

C++ Programming/Editor's TOC

C++ Programming/Editor's TOC
From Wikibooks, the open-content textbooks collection
< C++ Programming
Current revision (unreviewed)
Jump to: navigation, search


Audience & Scope
[hide ▲]
Wikibook Charter
This book covers the C++ programming language, its interactions with software design and real life use of the language. Its presented as a introductory to advance course but can also be used as reference book. This is an open work, if you find any problems with terms or concepts you can help by contribute to it, your participation is needed and welcomed!. You are also welcome to state any preference, shortcomings or vision for the actual book content, structure or other conceptual matters, see this wikibook's discussion page for the right forum for participating.
Wikibook Development Stages
Sparse text
Developing text
Maturing text
Developed text
Comprehensive text:

Chapters/Pages needing work
Linker - Complete Internal linkage and External linkage information (remember to mention static, extern, unnamed namespaces and link to the relevant sections). File Organization - Add reference to over .cpp .h, common rules to file naming and code distribution.The compiler- some TODOs to be cleanedI/O Streams- some TODOs to be cleaned, "safe bool" idiom can probably be more clear or have linking to other relevant information if available.Assignment and Operators- some hevy duty cleanup needed and removing of references and a simpler as possible introduction to operator overloading needed, pointing to the complete information already present on the book.Data Type StorageClass/Inheritance- Multiple inheritance still need some work and example.Class/Interface class- Add description and give an example.C++ Programming/Classes- Possible rename to code/?/class (proper link to keyword table, good idea) restructure class members (data and function) and children pages, note that static is at present inside function members and talks on static data members...Language Comparisons- include information on how and that C++ can to use embedded ASM code.Programming ParadigmsAbstract ClassesPure Abstract ClassesTemplate meta-programming (TMP)C++ Programming/RAIIUsing Static Libraries- anyone willing to make add an example with a free IDE/Compiler ? (it is all its missing)Type Casting- implicit conversions missing.Unified Modeling Language (UML)- remove wikipedia link and tie the text more with the C++ subject, (text also includes introduction to Modeling Tools and CASE).Encapsulation- try to demonstrate in the example how exposing data members can damage another part of the programSTL- still missing to much info (some text on functors), see the other pages on the chapter string, I/O Streams.Win32 - Windows API, only the basic is there, there is a Windows Programming book probably reference or move some content there (they don't want C++ content).C++ Programming/Code/Scope- introduction to the concept of scope/context with references to the further insight and practical usefulness in sections like Namespaces, class space and flow control structures.C++ Programming/Threading- needs some content on Fibers, OpenMP, Inter-Process Communication (IPC), Threads, Critical Section, Synchronizing on Objects etc...
Orphans needing attentionThese pages are not linked to by this book. Please link to them, merge them into existing pages and mark them with {{now mergeddestination page}}, or if they are not desired mark them with {{deletereasoning}}. Thanks.
C++ Programming/Arrays
C++ Programming/Chapter Standard Library Print version
C++ Programming/Enumerations
C++ Programming/Example Using User Input
C++ Programming/Getting Started
C++ Programming/Multi-Paradigm
C++ Programming/Variables & Intro to Control Statements for C++
-- Adrignola talk contribs 22:43, 4 August 2009 (UTC)
[ edit list above ]
See if you can answer some questions related to C++ or point users to where they are addressed in the book on Q&A.

A printable version of C++ Programming is available. for the book Content (edit it)
Go to:
v1 Contents >>
v2 Contents >>
See:
Conventions >>
All pages >>

Missing contents
System Resources
Quick introduction to the Computer architecture (CPU, memory, registers, filesystem).
mention stack, heap their use and simple examples, remember to refer them in debugging to.
Portability
common issues, pitfalls, mistakes in writing portable code and solutions.
Random number generators
introduction, mention language default resources for the task and known alternatives.
CRC Cards
Introduction to CRC Cards
POSIX
C++ and POSIX
POSIX Threads
From 32 to 64 bits
mention Parkinson's law
Source ControlFunctors (class type functor)Functors (template type functor)Creating LibrariesConstraintsUnit Testing
[ edit list above ]

To be merged
Please add here pages that are not linked to from anywhere in this book (but have to be merged or marked for deletion). (This may also be of interest: Transwiki:Type conversion.)...
C++ Programming/ctype.h headerProcedural idioms in C++Memory Management - new, delete, smart pointers, Garbage Collection and RAII, Comparison to C, Common MistakesC++ Programming/Memory Management TechniquesC++ Programming/Chapter Learning the BasicsC++ Programming/Lost Bits
[ edit list above]]

ป้ายกำกับ: , ,

C++ Programming/TOC2

From Wikibooks, the open-content textbooks collection
< C++ Programming
Current revision (unreviewed)
Jump to: navigation, search

A discussion on the possible deletion of this page occured at this location. The result was no votes.
C++ Programming
[hide ▲]

Wikibook Charter
This book covers the C++ programming language, its interactions with software design and real life use of the language. Its presented as a introductory to advance course but can also be used as reference book. This is an open work, if you find any problems with terms or concepts you can help by contribute to it, your participation is needed and welcomed!. You are also welcome to state any preference, shortcomings or vision for the actual book content, structure or other conceptual matters, see this wikibook's discussion page for the right forum for participating.
v1 Contents >> and Editor's TOC >>

[edit] Introduction to Programming
Introduction - History of C++, program organization and programming paradigms.
Tools for Programming - Compiler, Translator, Linker, Loader, Debugger, Preprocessor

[edit] C++ Language Essentials
Variables - Declaration, assignment, scope, visibility and primitive types.
Flow Control - Conditionals, loop iterations and more.
Functions - Arguments, return values, recursive functions, function pointers and overloading.
Operators - Types, precedence order and composition.
Pointers
Memory Management
Internal Variable Storage - bits and bytes, data versus variables, two's complement, endian and floating point.
Typecasting - Automatic, explicit and advanced type casts and conversions.
Structures and Classes
Unions
Operator Overloading
Inheritance - Base, parent, child and multiple inheritance concepts.
Polymorphism - Virtualization and abstraction.
Templates
Runtime Type Information (RTTI)
Exception Handling
Namespaces

[edit] Standard Library
Standard Template Library (STL)
String class
Stream classes

[edit] Beyond the Standard
Debugging - Finding, fixing, preventing bugs and using debugging tools.
Coding Style Conventions - Comments, identifier names, indention, code blocks and more.
Documentation
Libraries - About libraries and extra libraries used everyday.
Multithreading
Introduction to design patterns
Optimizing Your Programs

[edit] Appendices
Glossary
Cheat Sheet
Keywords
Standard Headers
Preprocessor Directives
Operators Table
Variable Types
Examples
Resources - Various C++ websites, compilers, libraries, forums and online books, etc.
Books
Retrieved from "http://en.wikibooks.org/wiki/C%2B%2B_Programming/TOC2"

ป้ายกำกับ: , , ,

C++ Programming/TOC1

C++ Programming
Wikibook Charter
This book covers the C++ programming language, its interactions with software design and real life use of the language. Its presented as a introductory to advance course but can also be used as reference book. This is an open work, if you find any problems with terms or concepts you can help by contribute to it, your participation is needed and welcomed!. You are also welcome to state any preference, shortcomings or vision for the actual book content, structure or other conceptual matters, see this wikibook's discussion page for the right forum for participating.

About the book [ edit ]
A single page version with all chapters is available (attention to its size).

A printable version of C++ Programming is available. for the book Content (edit it)
You can use WikiType an online application which converts the WikiBooks into formatted PDF. With no source highlight.Use the link for the single page version version of the work (or any of the by Chapter print versions).
Foreword
Authors

Getting Started [ edit ] [ print chapter ]
Introducing C++
Programming languages
Programming paradigms - the versatility of C++ as a multi-paradigm language, concepts of Object-Oriented Programming.
Comparisons - to other languages, relation to other computer science constructs and idioms.
with C
with Java
with C#
with Managed C++ (C++/CLI)
with D

Fundamentals [ edit ] [ print chapter ]
Code
File organization
Statements
Coding style conventions
Documentation
Internal storage of data types
Variables - An introduction with source examples.
Scope - with source examples.
Namespace
Compiler - Introduction and installation, including a list of recognized keywords and directives.
Preprocessor - includes the standard headers.
Linker
Operators - with a brief mention of operator overloading.
Logical
Conditional
Type casting - Including Automatic, explicit and advanced type casts.
Flow of control - Conditionals, loops and goto.
Functions - An introduction including argument passing, returning values, recursive functions, pointers to functions and function overloading.
Standard C Library
Debugging - Detection, correction and prevention of bugs.

Object-Oriented Programming [ edit ] [ print chapter ]
Structures
Unions
Classes
Abstract Classes including Pure abstract classes (abstract types)
Nice Class
Operator overloading

Advanced Features [ edit ] [ print chapter ]
I/O
string
Streams
Standard Template Library (STL)
Smart Pointers
Exception Handling
Templates
Template Meta-Programming (TMP)
Run-Time Type Information (RTTI)

Beyond the Standard (In the real world) [ edit ] [ print chapter ]
Resource Acquisition Is Initialization (RAII)
Design Patterns
Libraries
APIs and Frameworks
Static and Dynamic Libraries
Garbage Collection
Boost Library
Cross-Platform Development
Win32 (aka WinAPI) - including Win32 Wrappers.
Cross Platform Wrappers
Multitasking
Software Internationalization
Text Encoding
Optimizing Your Programs
Unified Modeling Language (UML)

Appendix A: References Tables (used in book)
Keywords Preprocessors Directives Standard Headers Data Types Operators Standard C Library Functions

Appendix B: External References (used in book)
WeblinksBooks

Appendix C: Source Code Examples (used in book) [ edit ]
Compilable Example Programs
Simple "Hello World"
Confusing Scope
Average ( same program rewritten using a class )
Complicated Scope (v1 - v2 - v3)
Namespaces
Storing two values in integer variables (v1 - v2)
Using a Class
Displays a string (v1 - v2 - v3)

Appendix D: Exercises
Variables and types (5 exercises)
Iterations (20 exercises)
Static arrays (5/15 exercises)
Functions
The Standard IO Stream

ป้ายกำกับ: , ,

C++ Programming

From Wikibooks, the open-content textbooks collection
Jump to: navigation, search
The following three are three different books as a result of edit and admin wars.
C++ Programming/TOC1
C++ Programming/TOC2
C++ Programming/Editor's TOC
For other C++ books with different focuses, see the Subject:C++ programming language page.

ป้ายกำกับ: , ,

The C++ Programming Language

Advice of the day(from TC++PL)23.7[28] Always consider alternative representations for a class. If no alternative representation is plausible, the class is probably not representing a clean concept; sec23.4.3.4.
FAQ of the dayC++ got its Object-Oriented concepts from Smalltalk?
Article of the daySibling rivalry: C and C++. AT&T Labs - Research Technical Report. TD-54MQZY. January 2002. C++ is a general purpose programming language with a bias towards systems programming that
is a better C
supports data abstraction
supports object-oriented programming
supports generic programming.
I (Bjarne Stroustrup) am the designer and original implementor of C++. You can find the language, the techniques for using it, and the techniques for implementing it described in my books, my papers, in hundreds of books by others, and thousands of papers by others. There are far too many to list. Try a bookstore or a library. Answers to many questions about C++ can be found in
my FAQ,
my C++ Style and Technique FAQ
my C++ glossary, and
some interviews that I have given.
Topics:
Learning and teaching C++
The ISO C++ standard
Applications, compilers, etc.
Embedded systems
Libraries, etc.
C++ GUI libraries and tools
C++ design and history
General resources
Collections of articles
Related
The ISO C++ Standard: C++ is standardized by ISO (The International Standards Organization) in collaboration with national standards organizations, such as ANSI (The American National Standards Institute), BSI (The British Standards Institute), DIN (The German national standards organization). The original C++ standard was issued in 1998, a minor revison in 2003, and the work on the next standard "C++0x" is nearing completion.
An almost complete C++98 standard
The draft C++0x standard
My C++0x FAQ.
The ISO C++ standards committee (WG21) maintains an official site with information about the current state of the standards effort.
My book The Design and Evolution of C++ describes the standards process and many of the design decisions made
My book The C++ Programming Language (Special Edition) describes C++ as defined by the ISO standard.
The standard committee's technical report on implementation issues and programming techniques related to performance. This should be of particular interest to programmers of embedded systems.
The standard committee's technical report on library extensions that are likely to become part of C++0x (possibly after some revisions).
My foreword to the printed version of the C++ standard.
An 2004 evolution working group wish list; that is, the list of suggested additions to the C++ core language - note that only a fraction of these will be accepted into C++0x. Here is the current state of the evolution proposals.
A standard library wishlist maintained by Matt Austern.
a press release about C++ and its 1998 standard intended for non-programmers
a press release about the availability of the 1998 standard
The standard is ISO/IEC 14882; it is available for downloading from the National Committee for Information Technology Standards Electronic Store. The cost is (as I write this) US$18.00 payable on-line via credit card. It is available as a book (on paper): "The C++ Standard", published by Wiley, ISBN 0 470 84674-7.
Discussions about C++ and its use can be found in most forums covering programming. The usenet groups comp.lang.c++.moderated and alt.comp.lang.learn.c-c++ are good examples. These groups can be accessed in various ways including Google Groups (sort by date).
Applications, compilers, etc.:
A list of interesting C++ applications. I welcome suggestions for additions.
A list of major industry applications and tools with evolution paths by Vincent Lextrait.
An incomplete list of C++ compilers.
Hans-J. Boehm's site for C and C++ garbage collection and a couple of sites offering collectors based on his work (University of Tokyo, geodesic.com).
Test suites are available for C++. For example: Plumhall and Perennial.
Libraries, etc.:
A list of available C++ libraries known as the C++ libraries FAQ.
Boost.org: A repository for libraries meant to work well with the C++ standard library.
STLab: a collection of peer-reviewed and portable C++ source libraries, leveraging and extending both the C++ Standard Library and the Boost Libraries. That page also contains links to Adobe open source libraries, such as the Generic Image Library GIL.
Doug Schmidt's site with information about a lot of things including the ACE framework and the TAO real-time ORB.
High-performance numerical libraries provide excellent tests for interesting new programming techniques: The Object-Oriented Numerics Page is a list of libraries, projects, and mailing lists. For example: POOMA from LANL, Blitz++ from U. of Waterloo, MTL from Indiana Univarsity, and ROOT from CERN. These libraries, and many more, are available for downloading.
SGI's implementation of the STL.
Dinkumware's online standard library reference.
Rogue Wave's online documentation of an implementation of the standard library.
C++ design and history:
1991-2006: Evolving a language in and for the real world: C++ 1991-2006.
1979-1991: My paper about C++'s design and early years.
A more comprenensive book: The Design and Evolution of C++.
The Computer History Museum's site for early C++ sources (code, documentation, papers, etc.).
An old, but unfortunately not completely irrelevant, net posting answering some unfair criticisms of C++.
C++ GUI libraries and toolkits:
FLTK.
gtkmm.
Qt.
WxWidgets.
and many more.
Embedded systems:
A confence paper on the basic ideas of using C++ in embedded systems.
JSF++: The JSF air vehicle C++ coding standards.
The ISO C++ committee's TR on performance.
FAQs:
My FAQ.
My C++ Style and Technique FAQ.
My C++0x FAQ.
Marshall Cline's C++ FAQ.
C++ Standards FAQ containing many valuable links (including some to implementations of the standard library).
The learn.c-c++ newsgroup FAQ presents much information of use for C and/or C++ novices.
Learning and teaching C++:
My beginner's programming text book Programming: Principles and Practice using C++.
A list of resources for people learning C++ from The Cambridge University Engineering Department.
An extensive collection of book reviews can be found on the ACCU (The Association of C and C++ Users) site.
General resources:
C++.org; a C++ community site associated with ACCU.
A list of C++ resources such as libraries, implementations, books, FAQs, other C++ pages, etc..
A large (18,000+) collection of links to information on OO, OOP languages, etc. called Cetus.
A catalog of C++ links from Forschungszentrum Julich.
David Tribble's paper listing incompatibilities between C++ and C99.
Greg Comeau's C++ related site in New York.
Brad Appleton's collection of C++ and OOP links.
The C++ section of the open directory project.
A C++ idioms list.
Collections of articles:
Herb Sutter's collection of articles focussing on how to learn and use Standard C++ in a modern style.
Kevlin Henneys' collection of thought provoking and useful articles about good C++ design and style.
Artima's C++ source has a collection of C++ articles, columns, etc.
Danny Kalev's C++ articles and news items on informIT.com.
Videos:
A C++0x talk given at University of Waterloo. Google, NYC. August 2007.
A talk on C++0x initializer lists given at Google, Mountainview. February 2007.
Several videos, audio recordings, and transcripts of talks, panels, and interviews from Dr. Dobb's Technetcast archieves.
Related:
Dennis Ritchie's homepage containing lots of interesting information about the history of C, Unix, and (AT&T) Bell Lab's computer science research center (where C++ was born).
The Computer History Museum's Software Preservation Group's collection of C++ sources currently focusing on the early years. Contributions are most welcome (see the site for details).

ป้ายกำกับ: , ,

C and C++ Programming [link]

Free C/C++ Books - links to free C and C++ programming books that can be read online or downloaded.
Free C/C++ Compilers - links to free C and C++ compilers and interpreters including Borland's 5.5 compiler, the DJGPP compiler, Dev C++ from Bloodshed software, and many more.
C Tutorials - links to free C programming tutorials online and a downloadable tutorial.
C++ Tutorials - links to free online and downloadable C++ tutorials from beginner to advanced.
C++ Graphics Tutorials - Free Graphics tutorials for the C++ programming language.
C++ Programming Libraries - Free Programming libraries for the C++ programming language.
C/C++ FAQS - links to free c/c++ FAQs and resources including the hompages of the designers of both languages.
Visual C++ Tutorials - links to free online and downloadable Visual C++ tutorials from beginner to advanced.
Free C++ IDEs - links to free C++ Integrated Development Environments that many of the free compilers are lacking.
Free C/C++ Source Code - links to online repositories of free C and C++ source code, including Mozilla source code, and the code for Hexen and Heretic.
C/C++ Forums - links to free C and C++ forums and discussion boards.
Programming Libraries - this is a new section dedicated to programming libraries in all languages, but most are C++ and many come with source code. Categories include sockets, encryption, gaming, compression, grahpics and gui libraries and frameworks.
Related: IDEs and Programmer Editors

ป้ายกำกับ: , , ,

C and C++ Programming

C++ Programming Language Tutorials
C++ Network Programming: Resolving Complexity with ACE & Patterns
Pattern-Oriented Software Architecture
These tutorials were developed as part of a series of courses on C++ I taught at the University of California, Irvine, Washington University, St. Louis, and Vanderbilt University. I'm making these tutorials available on the Web for anyone who is interested in teaching or learning about C++. Other tutorials on C++ are available at http://www.cpp-home.com". Discussions about C and C++ are available at http://www.cfanatic.com/
The handouts on this page are stored in PDF 4-up on a page. Eric S Rosenthal has donated a perl script that converts the 4-up handouts to 1-up handouts. Please let me know if you find any bugs or typos in the handouts and I'll fix them.
Lectures Handouts
Overview of the C-portions of C++ (e.g., loops, structs, arrays, basic data types, etc.)
A quick tour through C++, focusing primarily on classes, templates, inheritance, and dynamic binding.
An extensive tour through C++ language features, illustrating the major and minor differences compared with C.
An in-depth look at defining abstract data types in C++, focusing primarily on classes, templates, and exception handling.
An in-depth look at C++ single and multiple inheritance.
An in-depth look at C++ dynamic binding.
An in-depth look at pointer-to-member functions in C++.
An overview of dynamic memory management in C++.
A brief overview of how to define container classes in C++.
Traps and pitfalls of using C++ and how to workaround them.
A set of simple examples that illustrate basic features of the language
More sophisticated examples illustrating advanced features of C++ and design patterns

thanks;http://www.cse.wustl.edu/~schmidt/C++/

ป้ายกำกับ: ,

การกำหนดชนิดข้อมูลชั่วคราว

3. การกำหนดชนิดข้อมูลชั่วคราว
จากตัวอย่างในโปรแกรมที่ผ่านมา เราจะต้องกำหนดชนิดของตัวแปรก่อนเสมอ เมื่อตัวแปรถูกกำหนดเป็นข้อมูลชนิดใด ตัวแปรนั้นก็จะเป็นข้อมูลชนิดนั้นตลอดไป ในการเขียนโปรแกรมบางครั้งอาจะมีความจำเป็นจะต้องเปลี่ยนชนิดของตัวแปรชั่วคราว ในกรณีเช่นนี้จะต้องระบุชนิดข้อมูลหน้าตัวแปร เช่น ตัวแปร a เป็นชนิดเลขจำนวนเต็ม เมื่อต้องการให้เป็นเชนิดเลขจำนวนจริงชั่วคราวให้เขียนเป็น (float) a
ตัวอย่าง โปรแกรมที่ 6
#include”stdio.h”
main()
{
int i;
float f;
f = 1285.458;
printf(“%f\n”,f);
printf(“%d\n”,(int)f);
}
ผลลัพธ์
1285.458008 1285
Download Source Code
ผลลัพธ์ของโปรแกรมที่ 6 ค่าแรกจะเป็นค่าของตัวแปร f ซึ่งเป็นชนิดเลขจำนวนจริง ส่วนค่าที่ 2 จะเป็นค่าของตัวแปร f ซึ่งเป็นชนิดเลขจำนวนเต็ม

from; http://www.thai-programmer.com

ป้ายกำกับ: ,

การกำหนดค่าเริ่มแรกให้กับตัวแปร

2. การกำหนดค่าเริ่มแรกให้กับตัวแปร
ในขณะที่กำหนดชนิดข้อมูลให้กับตัวแปร เราสามารถกำหนดค่าเริ่มแรกให้กับตัวแปรได้ดังในโปรแกรมที่ 5 สำหรับตัวแปรแบบโกลบอล (global variable) ถ้าไม่ได้กำหนดเป็นค่าใดๆ จะมีค่าเป็นศูนย์ขณะที่โปรแกรมแริ่มต้นทำงาน เมื่อมีการเรียกฟังก์ชันใด ตัวแปรแบบโลคอล (local variable) ซึ่งถูกกำหนดภายในฟังก์ชันนั้น จะถูกกำหนดให้มีค่าเริ่มแรกตามที่กำหนดไว้ทุกครั้ง ในกรณีที่ไม่ได้กำหนดค่าเริ่มแรกจะถือว่าตัวแปรแบบโลคอลไม่มีค่าใดๆ
ตัวอย่าง โปรแกรมที่ 5
#include”stdio.h”
float interest = 0.1; // กำหนดค่าเริ่มแรกให้กับตัวแปรโกลบอล
main()
{
int principle = 27000; // กำหนดค่าเริ่มแรกให้กับตัวแปรโลคอล
float amount;
amount = interest*principle;
printf(“amount = %f\n”,amount);
}
ผลลัพธ์
amount = 2700.000000
Download Source Code
ในโปรแกรมที่ 5 ตัวแปร interest และ principle ถูกกำหนดให้มีค่าเริ่มแรกเป็น 0.1 และ 27000 ตามลำดับ ขณะที่โปรแกรมเริ่มทำงานค่าของตัวแปรทั้งสองจะมีค่าเท่าเดิมเสมอในขณะที่โปรแกรมกำลังทำงาน

from;http://www.thai-programmer.com/?DPage=90200100

ป้ายกำกับ: ,

ชนิดข้อมูลและตัวแปร

ชนิดข้อมูลและตัวแปร

1. ชนิดข้อมูล ในการเขียนโปรแกรมคอมพิวเตอร์ ด้วยภาษาซี จะต้องกำหนดชนิดข้อมูล ให้กับตัวแปรก่อน ที่จะนำตัวแปรนั้นมาใช้เหมือน ภาษาปาสคาล ข้อมูลต่างชนิดกันจะมีคุณสมบัติ และการใช้งานต่างกัน ในทที่นี้จะได้กล่าวถึงรายละเอียดของชนิดข้อมูลต่างๆ
เทอร์โบซีมีข้อมูลทั้งหมด 4 ชนิดดังนี้
• ข้อมูลชนิดจำนวนเต็ม (integer type)
• ข้อมูลชนิดทศนิยม (floating point type)
• ข้อมูลชนิดทศนิยมละเอียดสองเท่า (double precision floating point)
• ข้อมูลชนิดตัวอักษร (character type)
• ข้อมูลชนิดไม่มีค่า (valueless type)
ข้อมูลชนิดจำนวนเต็ม ข้อมูลชนิดนี้ได้แก่ตัวเลขซึ่งไม่มีทศนิยม เช่น 35, 20 เป็นต้น ข้อมูลชนิดนี้แบ่งย่อยเป็นหลายแบบดังแสดงในตารางที่ 1
ข้อมูลชนิดทศนิยม ข้อมูลชนิดนี้ได้แก่ตัวเลขที่มีค่าเป็นทศนิยม เช่น 10.5, 20.8 เป็นต้น ข้อมูลชนิดนี้แบ่งย่อยเป็น 3 ชนิดดังแสดงในตารางที่ 2
ตารางที่ 1 ข้อมูลชนิดจำนวนเต็ม
ชนิดข้อมูล จำนวนบิตที่ใช้ ช่วงของข้อมูล การกำหนดชนิดข้อมูล เลขจำนวนเต็ม (integer) 16 -32768 ถึง 2767 int เลขจำนวนเต็มไม่คิดเครื่องหมาย (unsigned integer) 16 0 ถึง 65535 unsigned int เลขจำนวนเต็มคิดเครื่องหมาย (signed integer) 16 -32768 signed int เลขจำนวนเต็มสั้น (short integer) 16 -32768 ถึง 32767 short int เลขจำนวนเต็มสั้นไม่คิดเครื่องหมาย (unsigned short integer) 16 0 ถึง 65535 unsigned short int เลขจำนวนเต็มสั้นคิดเครื่องหมาย (signed short integer) 16 -32768 ถึง 32767 signed short int เลขจำนวนเต็มยาว (long integer) 32 -2147483648 ถึง 2147483649 long int เลขจำนวนเต็มยาวคิดเครื่องหมาย (signed long) 32 -2147483648 ถึง 2147483649 signed long int เลขจำนวนเต็มยาวไม่คิดเครื่องหมาย (unsigned long integer) 32 0 ถึง 4294967296 unsigned long int
หมายเหตุ เมื่อกำหนดตัวแปรเป็นชนิดตัวเลขจำนวนเต็มจะเป็นแบบคิดเครื่องหมายเสมอ
ตารางที่ 2 ข้อมูลทศนิยม
ชนิดข้อมูล จำนวนบิตที่ใช้ ช่วงของข้อมูล การกำหนดชนิดข้อมูล เลขจำนวนจริง (float point) 32 3.4x10 -38
ถึง
3.4x10 38 Float เลขจำนวนจริงละเอียด 2 เท่า (double precision floating point) 64 1.7x10 -308
ถึง
1.7x10 308 Double เลขจำนวนจริงยาวละเอียด 2 เท่า (long double precision floating point) 80 3.4x10 -4932
ถึง
1.1x10 4932 Long double
ข้อมูลชนิดตัวอักษร ข้อมูลชนิดนี้ได้แก่ตัวอักษร A-Z, เลข 0-9 และสัญลักษณ์ต่างๆ ตัวแปรที่กำหนดเป็นชนิดตัวอักษรจะรับตัวอักษรได้เพียง 1 ตัวเท่านั้น และสามารถรับข้อมูลจำนวนเต็มซึ่งมีค่าระหว่าง –128 ถึง 127 ซึ่งสามารถนำไปคำนวณทางคณิตศาสตร์ได้ ข้อมูลชนิดนี้จะใช้ 8 บิตในการเก็บตัวอักษร 1 ตัว การกำหนดข้อมูลชนิดนี้ให้กับตัวแปรต้องระบุด้วย char
ข้อมูลชนิดไม่มีค่า ข้อมูลชนิดนี้จะไม่ใช้ในการกำหนดชนิดของตัวแปรรายละเอียดจะกล่าวในตอนหลัง เทอร์โบซีจะไม่มีข้อมูลชนิดสตริงก์หรือข้อความต่างๆ ข้อมูลชนิดสตริงก์จะประกอบด้วยตัวอักษรหลายๆ ตัวเรียงติดกันเป็นข้อความ ดังนั้นจึงใช้อาร์เรย์ (array) ในการเก็บข้อมูลชนิดสตริงก์
ตัวอย่าง โปรแกรมที่ 1 #include ”stdio.h”
#include ”conio.h”
main()
{
int a;
float b;
clrscr();
a = 3;
b = 3.5;
printf(“%d\n”,a);
printf(“%f\n”,b);
}
ผลลัพธ์ 3
3.500000
Download Source Code
ตัวอย่าง โปรแกรมที่ 2 #include”stdio.h”
#include”conio.h”
main()
{
char c;
clrscr();
c = ‘A';
printf(“c = %c\n,c);
}
ผลลัพธ์ c = A
Download Source Code
ตัวอย่าง โปรแกรมที่ 3 #include”stdio.h”
#include”conio.h”
#include”string.h”
main()
{
char st[8];
clrscr();
strcpy(st,”Turbo C”);
printf(“%s\n”,st);
}
ผลลัพธ์ Turbo C
Download Source Code
โปรแกรมที่ 1 กำหนดให้ตัวแปร a และ b เป็นชนิดเลขจำนวนเต็มและเลขจำนวนจริงตามลำดับ ในโปรแกรมที่ 2 กำหนดให้ตัวแปร c เป็นชนิดตัวอักษรซึ่งจะรับตัวอักษรได้เพียง 1 ตัวเท่านั้น การกำหนดค่าให้กับตัวแปรชนิดนี้ จะต้องมีเครื่องหมาย ‘ หน้าและหลังตัวอักษรเสมอ สำหรับในโปรแกรม 3 เป็นการกำหนดอาร์เรย์ st สำหรับเก็บข้อมูลชนิดสตริงก์โดยสามารถเก็บตัวอักษรได้ทั้งหมด 7 ตัว ขอให้สังเกตว่าขนาดอาร์เรย์ จะต้องมากกว่าความยาวของสตริงก์ หรือข้อความอย่างน้อย 1 ตัวอักษร
T u r b o C \0
อาร์เรย์ที่เก็บข้อมูลที่สตริงก์จะปิดท้ายด้วยสตริงก์ศูนย์ (null string) ซึ่งเทอร์โบซีจะใช้ \0 แทนสตริงก์ศูนย์ ฟังก์ชัน strcpy ในโปรแกรมที่ 3 มีหน้าที่นำค่าคงที่สตริงก์อยู่ภายในเครื่องหมาย “ “ มาเก็บไว้ในอาร์เรย์ st ฟังก์ชันนี้กำหนดในไฟล์ string.h
โปรแกรมที่ 1, 2 และ 3 มีฟังก์ชัน clrscr() ซึ่งใช้ล้างจอภาพและเคอร์เซอร์จะเลื่อนไปมุมบนซ้าย ฟังก์ชันนี้กำหนดในไฟล์ conio.h
โปรแกรมที่ 4 กำหนดให้ตัวแปร i และ j เป็นชนิดเลขจำนวนเต็มและเลขจำนวนเต็มไม่คิดเครื่องหมาย ค่าของตัวแปร i จะมีค่า –15536 ทั้งนี้เพราะค่าของตัวแปร j = 50000 เมื่อแปลงเป็นเลขฐานสองแบบไม่คิดเครื่องหมายจะเป็น 1011 1100 1011 0000 เลขฐานสองนี้เมื่อแปลงเป็นเลขฐานสิบแบบคิดเครื่องหมายจะมีค่า –15536 โดยบิตซ้ายสุดจะเป็นบิตของเครื่องหมาย (sign flag) ซึ่งเป็นบวกเมื่อมีค่า 0 และเป็นลบ เมื่อมีค่าเป็น 1 ค่า –15536 มีค่าเท่ากับ 50000-65536
ตัวอย่าง โปรแกรมที่ 4 include”stdio.h”
main()
{
int i;
unsigned j;
j = 50000;
i = j;
printf(“i = %d\n”,I);
printf(“j = %u\n”,j);
}
ผลลัพธ์ i = -15536
j = 50000
Download Source Code

from ;http://www.thai-programmer.com

ป้ายกำกับ: ,

โครงประกอบของโปรแกรมขั้นพื้นฐาน

โครงประกอบของโปรแกรมขั้นพื้นฐาน
ในตอนนี้ เราลองมาพิจารราโปรแกรมแรกกันก่อน ครับ ซึ่งตัวโปรแกรมเป้นดังนี้
ตัวอย่าง
#include void main(){ cout << "สวัสดีครับ"; cout << "C++ Program แรก ";}
Download Source Code
แม้ว่าจะเป็นโปรแกรมเล็กๆ แต่โปรแกรมนี้ ได้แสดงเกี่ยวกับโครงประกอบ หลายๆ อย่างของโปรแกรม C++ เอาไว้ เราลองมาดูรายละเอียดของโปรแกรมนี้ดู
Function
Function เป็นหนึ่งในหน่วยการสร้างขั้นหลัก (Fundamental building block) ของ C++ โปรแกรมแรก ประกอบไปด้วย Function เดี่ยวๆ ที่เรียกว่า main() ส่วนของโปรแกรมนี้ไม่ได้เป็นส่วนหนึ่งของ Function มีเพียงส่วนเดียวคือ #include มันคืออะไร เดี๋วจะอธิบายให้ฟัง
ชื่อ Function (Function name)
เรื่องหมาย () ที่ตามหลังคำว่า main เป็นคุณลักษณะที่แบ่งแยก Function ออกจากส่วนประกอบอื่นๆ ถ้าไม่มีเครื่องหมาย () Compiler จะคิดว่า main หทายถึงตัวแปร หรือส่วนประกอบอื่นๆ ของโปรแกรม เมื่อกล่าวถึง Function เราจะดำเนินการตามข้อตกลงเดีนวกันกับที่ C++ ใช้นั่นคือ เราจะจัดวางเครื่องหมาย () ไว้หลังชื่อของ Function ในภายหลัง เราจะเเห้นว่า ภายใน () ไม่าได้ว่างเสมอไป คือมีการใช้ เครื่องหมาย () ในการส่ง อาร์กิวเมนต์ ของ Function (function arguments) ซึ่ง อาร์กิวเมนต์ เป็นค่าที่ผ่นจากโปรแกรม ที่เรียกใช้ Function
เครื่องหมาย {} และตัวของ Function
ตัว หรืห Body ของ Function ถูกโอบล้อมไว้ด้วย เครื่องหมาย {} เครื่องหมายเหล่านี้จะแสดงบทบาทในทำนองเดียวกันกับคำหลัก BEGIN และ END ทีพบอยู่ในภาษา Basic Pascal Delphi เป็นต้น โดยจะโอบล้อมหรือกำหนดขอบเขต Block หนึ่งๆ ของข้อความคำสั่งในโปรแกรมเอาไว้ ทุกๆ Function จะต้องใช้เครื่องหมาย {} คู่นี้ ดังตัวอย่างข้างต้น มีข้อความเพียง 2 บรรทัด คำสั่ง อยุ่ภายในเครื่องหมาย {} ก็คือคำสั่ง cout อย่างไรก็ตามตัวของ Function อาจประกอบไปด้วยข้อความหลายๆคำสั่ง
เริ่มต้นด้วย main() เสมอ
เมื่อคุณ เขียนโปรแกรมด้วย C++ ข้อความคำสั่งแรกที่กระทำการ จะเป็นข้วามคำสั่งซึ่งอยู่ตรงจุดเริ่มต้น ของ Function ที่เรียกว่า main() โปรแกรมหนึ่งๆ อาจประกอบไปด้วย Class และส่วนประกอบ อื่นๆ ของโปรแกรมอยู่เป็นจำนวนมาก แต่ตัวควบคุมการเริ่มต้น จะอยู่ที่ main() เสมอ ถ้าในโปรแกรมนั้น ไม่มี Function นี้ ปรากฏอยู่เลย ตัว Complier ก็จะแสดง ข้อผิดพลาด ออกมา
ข้อความคำสั่งของโปรแกรม
ข้อความคำสั่งของโปรแกรม เป็นหลักของการเขียนโปรแกรม เครื่อง หมาย ; จะเป็นตัวบงบอกให้ Compiler รู้ว่าสินสุด ข้อความคำสั่ง 1 คำสั่ง เครื่องหมายนี้เป็นส่วนสำคัญเป็นอย่างยิ่ง หากไม่มีข้อความนี้ ตัว Compiler เอง จะไม่ทราบว่า ข้อความคำสั่งสิ้นสุดที่ใหน ดังนั้น หากมีข้อความคำสัง มากกว่า 1 คำสั่ง แต่ใส่ เครื่องหมาย ; ที่ ท้ายของข้อความคำสั่งสุดท้าย ตัว Compiler เอง จะมองเป็น 1 คำลัง ดังนั้น จะเกิดข้อผิดพลาดทันที่ หรือหากไม่ใส่เลย ตัว Compiler ก็จะไม่ทราบ ที่สิ้นสุดของคำสั่ง ก็จะเกิดข้อผิดพลาด เช่นกัน
ระยะว่างเปล่า
ตามความเป็นจริงนั้น Compiler ของ C++ จะเพิกเฉยต่อระยะว่างเปล่า (White space) เกือบจะสมบูรณ์ ระยะว่างเปล้าหมายถึง ช่องว่าง (Space) การปัดแคร่ (Carriage return) การป้อนบรรทัด (Line feeds) การตั้งระยะ (Tab) การตั้งระยะแนวดิ่ง (Vertical tabs) และการป้อนกระดาษ (Form feeds) Compiler จะมองไม่เห็น อักขระเหล่านี้ จากลักษณะเช่นนี้ ทำให้เราสามารถ จัดวางข้อความหล่ายๆ ข้อความ คำสั่ง ไว้บน บรรทัดเดียวกันได้ และแยกข้อความ เหล่านั้นด้วย ช่องว่าง หรือการตั้งระยะ ในจำนวนไดๆ ก็ได้ หรือมิเช่นนั้น เราอาจเขียนข้อความคำสั่ง 1 ข้อความคำสัง ที่กินเนื้อที่ 2 บรรทัด หรือมากกว่า ก็ได้ เพราะ Compiler จะมองไม่เห็นถึงความแตกต่างเหล่านี้
การส่งออก โดยใช้คำสั่ง count และ printf
ข้อความต่อไปนี้
cout << "Thai Programmer WEB";
และข้อความต่อไปนี้
printf( "Thai Programmer WEB");
จะได้ผลลัพธ์เหมือนกัน แต่ สำหรับ cout นั้น จะใช้กับ C++ เท่านั้น ส่วน printf นั้นสามารภใช้ได้ทั้ง C++ และ C ซึ่งคำสั่งทั่งสองนี้ ทำให้มีการแสดงข้อความ ที่อยูภายในเครื่องหมาย " " ออกทางจอภาพ สำหรับ printf เปํนคำสั่งดังเดิม แต่สำหรับ cout นั้นสำหรับ C++ ที่ใช้เขียนโปรแกรมในแบบ OOP หรือการเขียนโปรแกรมแบบมีวัตถุเป้าหมายนั่นเอง โดย cout (ซี-เอาท์) เป็น วัตถุเป้าหมายตัวหนึ่ง (Object) ที่ถูกกำหนดไว้ก่อนแล้วใน C++ ในลักษณะที่สอดคล้องกับกระแสข้อมูลส่งออกมาตรฐาน (Standard output stream) คำว่า กระแส (Stream) เป็นลักษณะนามธรรม (Abstraction) ที่หมายถึงการใหลของข้อมูล โดบปกติการใหลของข้อมูล มักจะให้ใหลไปสู่ จอภาพ ถึงแม้ว่าจะสามารถเปลี่ยนทิศทางได้ (Redirect) ไปยังอุปกรณ์ส่งออกอื่นๆ ได้ก็ตาม เราจะอธิบายถึงกระแสข้อมูล ในโอกาสต่อไป
ตัวดำเนินการ << เรียกว่าตัวดำเนินการแทรก (Insertion operator) หรือ ตัวดำเนินการจัดวางเข้าไปสู่ (Put to operator) ตัวดำเนินการนี้จะชี้ทาง สิ่งที่บรรจุ อยู่ภายในตัวแปร ซึ่งอยู่ทางด้านขวา ไปให้แก่วัตถุเป้าหมาย ที่อยู่ทางด้านซ้าย
ค่าคงที่ String
ข้อความที่อยู่ในเครื่องหมาย " " ก็คือ "Thai Programmer WEB" เป็นตัวอย่างหนึ่งของค่าคงที่ String (String constant) ค่าคงที่ นั้นมีลักษณะต่างจาก ตัวแปรก็คือ เปลี่ยนแปลงค่าไม่ได้นั่นเอง กล่าวคือ ไม่สามารถถูกำหนด ค่าใหม่ได้ ในขณะที่ Program กำลังทำงานอยู่ เราจะกำหนดค่าคงที่ในขณะเริ่มต้นเขียนโปรแกรม และจะยังคงค่านี้ไว้ตลอดช่วงการคงอยู่ของโปรแกรม
พรีโพรเซสเซอร์ ไดเรคทีฟ (Preprocessor directive)
ข้อความต่อไปนี้
#include
อาจดูเหมือนเป็นข้อความคำสั่งของโปรแกรม แต่จริงๆแล้ว ไม่ใช่ บรรทัดนี้ไม่ได้เป็นส่วนหนึ่งของตัว Function และไม่ได้สิ้นสุดด้วยเครื่องหมาย ; ดั่งเช่นข้อความคำสั่งของโปรแกรม แต่บรรทัดแรกกลับเริ่มต้นด้วย # เราเรียกบรรทัดนี้ว่า พรีโพรเซสเซอร์ ไดเรคทีฟ (Preprocessor directive) จะเป็นคำสั่งที่ให้ตัว Compiler รวมเอาส่วนหนึ่งของ Compiler ที่เรียกว่า พรีโพรเซสเซอร์ (Preprocessor) เข้ามารวมก่อน ที่จะทำการ Compile โปรแกรม อย่างแท้จริง
Comment หรือ หมายเหตุ
หมายเหตุ เป็นส่วนหนึ่งของโปรแกรม เกือบทุกๆ โปรแกรม โดยจะช่วยคนที่กำลังเขียนโปรแกรม และใครก็ตาม ผู้ซึ่งจะต้องอ่าน File ต้นฉบับ สามารถเข้าใจได้ว่าอะไรกำลังดำเนินงานอยู่ Compiler จะเมินเฉยต่อ หมายเหตุ ดังนันหมายเหตุ จะไม่ทำมให้ Source Code หรือระยะเวลา ของการเอกซิคิวท์ เพิ่มขึ้น (Execution time) เครื่องหมายสำหรับ Comment มีดังนี้
// ข้อความหมายเหตุ
สำหรับมายเหตุชนิดนี้ จำทะการ หมายเหตุ ได้ทั่ง บรรทัดเพียงบรรทัดเดียว โดบข้อความที่อยู่หลัง เครื่องกมาย // จะเป็นข้อความหมายเหตุ
/* ข้อความหมายเหตุ */
สำหรับหมายเหตุแบบนี้ ใช้ในการหมายเหตุ กับ ข้อความ ที่อยู่ระหว่างบรรทัดคำสั่ง หรือ หมายเหตุข้อความได้ทีละหลายๆ บรรทัด เพราะข้อความหมายเหตุ จะอยู่ภายใน /*........ */

thanks,http://www.thai-programmer.com

ป้ายกำกับ: ,

C++ Builder

บทนำ
ก่อนที่เราจะมาเขียน เข้าสู่การเขียนโปรแกรม Borland C++ Builder เราก้ต้องมารู้จักกับ พื้นฐาน ของภาษา C++ กันก่อน ครับ เนื่องจากภาษา พื้นฐาน C++ จะทำให้เราเข้าใจและ เขียนโปรแกรม ภาษา C++ ได้ หากเราไม่รู้ พื้นฐาน คงเป็นเรื่องยาก ที่จะก้าวเข้าสู่การเขียนโปรแกรม ภาษานี้ ได้ นี่แหละครับ ที่อยากให้ ผู้ที่จะศึกษาภาษานี้ ได้เริ่มต้น กัน ณ จุดนี้กันเลย โดยพื้นฐานที่ว่านี้ มีอยู่ 3 อย่าง ด้วยกันคือ โครงประกอบขั้นพื้นฐาน (Basic program construction) ตัวแปร (Variables) และ การรับเข้า/การส่งออก (Input/Output) หรือ ไอโอ (I/O) นอกจากนี้ยังกล่าวเรื่องอื่นๆ อีกด้วย เช่น หมายเหตุ (Comment) ตัวดำเนินการคำนวน (Arithmetic operators) ตัวดำเนินการส่วนเพิ่ม (Increment operators) การแปลงข้อมูล (Data conversion) และ ฟังก์ชั่นจากคลัง (Libray functions)

from http://www.thai-programmer.com

ป้ายกำกับ: ,