Popular Posts

Tuesday 16 November 2010

C++PROGRAMING FOR YOU.

C Programming and C++ Programming - Cprogramming.com

Cprogramming.com is a web site designed to help you learn the C or C++ programming languages, and provide you with C and C++ programming language resources.

Just starting out? Check out the Getting Started with the C++ (or C) language for our super-easy list of exactly what you need to do to get started programming in C or C++, today.

Check out our From C++ Beginner to C++ Expert book series, or learn from our popular C++ language tutorial, C++ Made Easy and C language tutorial, C Made Easy.

If you need help getting set up, check out our compilers page.

Need immediate programming help?


Don't forget to bookmark cprogramming.com or Subscribe to cprogramming.com by Email.

subscribe to a feed Latest additions:

November 15, 2010 Why AppUp? An Quick Review of the AppUp Model Learn about AppUp, an app store framework that allows developers to submit apps to app stores serving a variety of devices [Intel AppUp]
November 10, 2010 Same Game, Part 5 - Implementing an Undo/Redo Stack and Keyboard Accelerators In this final article on creating your own game, you'll learn how to create an undo/redo stack and add some handy keyboard accelerators [Game Programming]
November 9, 2010 Same Game, Part 4 - Adjusting Board Size and Block Count To add replay value and more excitement, it's time to add more configuration to the game, including changing the number of blocks and the board size [Game Programming]
November 8, 2010 Same Game, Part 3 - Adding Difficulty Levels Now that we a playable game, it's time to add some challenge and make it harder [Game Programming]
November 7, 2010 Same Game, Part 2 - Creating a Playable Game In the second article in this series, you'll go from drawing the game board to actually having a playable game! [Game Programming]
November 6, 2010 Same Game, Part 1 - A Simple Game from Start to Finish The first in a series of articles that will teach you exactly how to create a game starting at the very beginning and ending with a fully playable game (source included!) [Game Programming]
October 3, 2010 Setting up Apple XCode Added some instructions for setting up Apple's XCode environment on OS X
Navigation Guide

Learn C and C++

Getting Started with C++ Get answers to questions about C++ programming basics and suggestions on learning C++.

From C++ Beginner to C++ Expert
A series of books that takes you from knowing nothing about programming to a C++ expert

Tutorials
Both C and C++ programming language tutorials, Standard Template Library tutorials, OpenGL programming and graphics tutorials, AI, data structures and algorithms tutorials.

Articles
Read articles written about C, C++, AI, and other programming and computer science topics.

Quiz
Take either the 50 question C++ programming language/computer science megaquiz or a series of smaller quizzes on different topics like memory allocation and templates.

Challenges
C++ Programming challenges -- attempt to write these programs, either by filling in a prewritten framework or by writing your own program from scratch.

Programmer's Tools

What do I need? From a powerful text editor, to a good compiler, to a feature-rich debugger, having the right tools makes a good programmer great.

Compilers
Which compiler is right for you? Compiler information and reviews.

Editors
What's a text editor, why do you need one, and which should you choose?

Debuggers
Tutorials on using debuggers and advice on which debugger to choose.

Resources

Programming Links Directory A directory of Programming Resources

Source Code
Source code to learn from, or to incorporate into your own programs.

Code Snippets
Incomplete programs that fulfill a particular task well, available for viewing directly online, and typically shorter than the full programs available in the source code repository. Find out more about snippets, or help other programmers by adding your own.

Programming Tips
Find or contribute C and C++ programming tips and tricks.

C++ Syntax Reference
Find the proper syntax for any C or C++ keyword or statement

Glossary
A growing glossary of programming and computer science terms and jargon.


Function Lookup
Look at the standard C and C++ functions.

AI Programming
AI Horizon is Cprogramming.com's sister site for AI programming resources

Questions

C and C++ Programming FAQ Get answers to programming questions

C Message Board
Post and answer programming questions on the C Message Board--covers C, C++, C#, AI and platform-specific programming!

About us
Find out who is behind Cprogramming.com

Frograming For Beginners.





In computer programming, BASIC acronym for Beginner's All-purpose Symbolic Instruction Code[1]) is a family of high-level programming languages. The original BASIC was designed in 1964 by John George Kemeny and Thomas Eugene Kurtz at Dartmouth College in New Hampshire, USA to provide computer access to non-science students. At the time, nearly all use of computers required writing custom software, which was something only scientists and mathematicians tended to be able to do. The language and its variants became widespread on microcomputers in the late 1970s and 1980s. BASIC remains popular to this day in a handful of highly modified dialects and new languages influenced by BASIC such as Microsoft Visual Basic. As of 2006, 59% of developers for the .NET platform used Visual Basic .NET as their only language.[2]

Contents

[hide]

History

Before the mid-1960s, computers were extremely expensive and used only for special-purpose tasks. A simple batch processing arrangement ran only a single "job" at a time, one after another. But during the 1960s faster and more affordable computers became available. With this extra processing power, computers would sometimes sit idle, without jobs to run.
Programming languages in the batch programming era tended to be designed, like the machines on which they ran, for specific purposes (such as scientific formula calculations or business data processing or eventually for text editing). Since even the newer, less expensive machines were still major investments, there was a strong tendency to consider efficiency to be the most important feature of a language. In general, these specialized languages were difficult to use and had widely disparate syntax.
As prices decreased, the possibility of sharing computer access began to move from research labs to commercial use. Newer computer systems supported time-sharing, a system which allows multiple users or processes to use the CPU and memory. In such a system the operating system alternates between running processes, giving each one running time on the CPU before switching to another. The machines had become fast enough that most users could feel they had the machine all to themselves. In theory, timesharing reduced the cost of computing tremendously, as a single machine could be shared among hundreds of users.

[edit] Early years: the mainframe and mini-computer era

The original BASIC language was designed in 1964 by John Kemeny and Thomas Kurtz[3] and implemented by a team of Dartmouth students under their direction. BASIC was designed to allow students to write programs for the Dartmouth Time-Sharing System. It was intended to address the complexity issues of older languages with a new language design specifically for the new class of users that time-sharing systems allowed—that is, a less technical user who did not have the mathematical background of the more traditional users and was not interested in acquiring it. Being able to use a computer to support teaching and research was quite novel at the time. In the following years, as other dialects of BASIC appeared, Kemeny and Kurtz's original BASIC dialect became known as Dartmouth BASIC.
The eight design principles of BASIC were:
  1. Be easy for beginners to use.
  2. Be a general-purpose programming language.
  3. Allow advanced features to be added for experts (while keeping the language simple for beginners).
  4. Be interactive.
  5. Provide clear and friendly error messages.
  6. Respond quickly for small programs.
  7. Not to require an understanding of computer hardware.
  8. Shield the user from the operating system.
The language was based partly on FORTRAN II and partly on ALGOL 60, with additions to make it suitable for timesharing. (The features of other time-sharing systems such as JOSS and CORC, and to a lesser extent LISP, were also considered.) It had been preceded by other teaching-language experiments at Dartmouth such as the DARSIMCO (1956) and DOPE (1962 implementations of SAP and DART (1963) which was a simplified FORTRAN II). Initially, BASIC concentrated on supporting straightforward mathematical work, with matrix arithmetic support from its initial implementation as a batch language and full string functionality being added by 1965. BASIC was first implemented on the GE-265 mainframe which supported multiple terminals. At the time of its introduction, it was a compiled language. It was also quite efficient, beating FORTRAN II and ALGOL 60 implementations on the 265 at several fairly computationally intensive (at the time) programming problems such as numerical integration by Simpson's Rule.
The designers of the language decided to make the compiler available free of charge so that the language would become widespread. They also made it available to high schools in the Hanover area and put a considerable amount of effort into promoting the language. As a result, knowledge of BASIC became relatively widespread (for a computer language) and BASIC was implemented by a number of manufacturers, becoming fairly popular on newer minicomputers like the DEC PDP series and the Data General Nova. The BASIC language was also central to the HP Time-Shared BASIC system in the late 1960s and early 1970s, and the Pick operating system. In these instances the language tended to be implemented as an interpreter, instead of (or in addition to) a compiler.
Several years after its release, highly respected computer professionals, notably Edsger W. Dijkstra, expressed their opinions that the use of GOTO statements, which existed in many languages including BASIC, promoted poor programming practices.[4] Some have also derided BASIC as too slow (most interpreted versions are slower than equivalent compiled versions) or too simple (many versions, especially for small computers, left out important features and capabilities).

 Explosive growth: the home computer era


MSX BASIC version 3.0
Notwithstanding the language's use on several minicomputers, it was the introduction of the MITS Altair 8800 "kit" microcomputer in 1975 that provided BASIC a path to universality. Most programming languages required suitable text editors, large amounts of memory and available disk space, whereas the early microcomputers had no resident editors, limited memory and often substituted recordable audio tapes for disk space. All these issues allowed a language like BASIC, in its interpreted form with a built-in code editor, to operate within those constraints.
BASIC also had the advantage that it was fairly well-known to the young designers and computer hobbyists who took an interest in microcomputers, and generally worked in the electronics industries of the day. Kemeny and Kurtz's earlier proselytizing paid off in this respect and the few hobbyists' journals of the era were filled with columns that made mentions of the language or focused entirely on one version compared to others.
One of the first to appear for the 8080 machines like the Altair was Tiny BASIC, a simple BASIC implementation originally written by Dr. Li-Chen Wang, and then ported onto the Altair by Dennis Allison at the request of Bob Albrecht (who later founded Dr. Dobb's Journal). The Tiny BASIC design and the full source code were published in 1976 in DDJ.
In 1975, MITS released Altair BASIC, developed by Bill Gates and Paul Allen as the company Micro-Soft, which grew into today's corporate giant, Microsoft. The first Altair version was co-written by Gates, Allen, and Monte Davidoff. Versions of Microsoft BASIC (also known then, and most widely as M BASIC or MBASIC) was soon bundled with the original floppy disk-based CP/M computers, which became widespread in small business environments. As the popularity of BASIC on CP/M spread, newer computer designs also introduced their own version of the language, or had Micro-Soft port its version to their platform.
When three major new computers were introduced in what Byte Magazine would later call the "1977 Trinity",[5] all three had BASIC as their primary programming language and operating environment. Commodore Business Machines paid a one-time fee for an unlimited license to a version of Micro-Soft BASIC that was ported to the MOS 6502 in their PET computer, while Apple II and TRS-80 both introduced new, largely similar versions of the language. The similarities are striking because the first 50 tokens, used for conserving memory, were all the same. As new companies entered the field, additional versions were added that subtly changed the BASIC family. The Atari 8-bit family had their own Atari BASIC that was modified in order to fit on an 8 kB ROM cartridge. The BBC published BBC BASIC, developed for them by Acorn Computers Ltd, incorporating many extra structuring keywords. Most of the home computers of the 1980s had a ROM-resident BASIC interpreter, allowing the machines to boot directly into BASIC. Because of this legacy, there are more dialects of BASIC than there are of any other programming language.
As the popularity of BASIC grew in this period, magazines (such as Creative Computing Magazine in the US) published complete source code in BASIC for games, utilities, and other programs. Given BASIC's straightforward nature, it was a simple matter to type in the code from the magazine and execute the program. Different magazines were published featuring programs for specific computers, though some BASIC programs were considered universal and could be used in machines running any variant of BASIC (sometimes with minor adaptations). Correcting the publishing errors that frequently occurred in magazine listings was an educational exercise in itself.
BASIC source code was also published in fully-fledged books: the seminal examples being David Ahl's BASIC Computer Games series.[6][7][8] Later packages, such as Learn to Program BASIC would also have gaming as an introductory focus.

Three modern Basic variants: Mono Basic, OpenOffice.org Basic and Gambas
Many BASIC dialects have also sprung up in the last few years, including Bywater BASIC and True BASIC (the direct successor to Dartmouth BASIC from a company controlled by Kurtz). One notable variant is RealBasic which although first released in 1998 for Macintosh computers, has since 2005 fully compiled programs for Microsoft Windows, Mac OS X and 32-bit x86 Linux, from the same object-oriented source code. RealBasic compiled programs may execute natively on these platforms as services, consoles or windowed applications. However in keeping with BASIC tradition, single-platform hobbyist versions are also still maintained. Many other BASIC variants and adaptations have been written by hobbyists, equipment developers, and others, as it is a relatively simple language to develop translators for. More complex examples of free software BASIC implementations (development tools and compilers) include Gambas and FreeBASIC.





The ubiquity of BASIC interpreters on personal computers was such that textbooks once included simple "Try It In BASIC" exercises that encouraged students to experiment with mathematical and computational concepts on classroom or home computers. Futurist and sci-fi writer David Brin mourned the loss of ubiquitous BASIC in a 2006 Salon article.[11]

Examples

Unstructured BASIC

New BASIC programmers on a home computer might start with a simple program similar to the Hello world program made famous by Kernighan and Ritchie. This generally involves simple use of the language's PRINT statement to display the message (such as the programmer's name) to the screen. Often an infinite loop was used to fill the display with the message. Most first generation BASIC languages such as MSX BASIC and GW-BASIC supported simple data types, loop cycles and arrays. The following example is written for GW-BASIC, but will work in most versions of BASIC with minimal changes:
10 INPUT "What is your name: ", U$
20 PRINT "Hello "; U$
30 INPUT "How many stars do you want: ", N
40 S$ = ""
50 FOR I = 1 TO N
60 S$ = S$ + "*"
70 NEXT I
80 PRINT S$
90 INPUT "Do you want more stars? ", A$
100 IF LEN(A$) = 0 THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye "; U$
140 END

[edit] Structured BASIC

Second generation BASICs (for example QuickBASIC and PowerBASIC) introduced a number of features into the language, primarily related to structured and procedure-oriented programming. Usually, line numbering is omitted from the language and replaced with labels (for GOTO) and procedures to encourage easier and more flexible design.[12]
INPUT "What is your name: ", UserName$
PRINT "Hello "; UserName$
DO
  INPUT "How many stars do you want: ", NumStars
  Stars$ = STRING$(NumStars, "*") 
  PRINT Stars$
  DO
    INPUT "Do you want more stars? ", Answer$
  LOOP UNTIL Answer$ <> ""
  Answer$ = LEFT$(Answer$, 1)
LOOP WHILE UCASE$(Answer$) = "Y"
PRINT "Goodbye "; UserName$

[edit] BASIC with object-oriented features

Third generation BASIC dialects such as Visual Basic, REALbasic, StarOffice Basic and BlitzMax introduced features to support object-oriented and event-driven programming paradigm. Most built-in procedures and functions now represented as methods of standard objects rather than operators.
The following example is in Visual Basic .NET:
Public Class StarsProgram
    Public Shared Sub Main()
        Dim UserName, Answer, stars As String, NumStars As Integer
        Console.Write("What is your name: ")
        UserName = Console.ReadLine()
        Console.WriteLine("Hello {0}", UserName)
        Do
            Console.Write("How many stars do you want: ")
            NumStars = CInt(Console.ReadLine())
            stars = New String("*", NumStars)
            Console.WriteLine(stars)
            Do
                Console.Write("Do you want more stars? ")
                Answer = Console.ReadLine()
            Loop Until Answer <> ""
            Answer = Answer.Substring(0, 1)
        Loop While Answer.ToUpper() = "Y"
        Console.WriteLine("Goodbye {0}", UserName)
    End Sub
End Class

[edit] Data types and variables

Minimal versions of BASIC had only integer variables and single-letter variable names. More powerful versions of BASIC offered floating-point arithmetic, and variables could be labelled with names six or more characters long.
String variables are usually distinguished by having $ suffixed to their name, and string values are typically enclosed in quotation marks.
Arrays in BASIC could contain integers, floating point or string variables.

[edit] List of typical BASIC keywords

[edit] Data manipulation

  • LET Command - assigns a value (which may be the result of an expression) to a variable.
  • DATA Statement - holds a list of values which are assigned sequentially using the READ Command.

[edit] Program flow control

  • IF ... THEN ... ELSE Statement - used to perform comparisons or make decisions.
  • FOR ... NEXT Statement - repeat a section of code a given number of times. A variable that acts as a counter is available within the loop.
  • WHILE ... WEND and REPEAT ... UNTIL Commands - repeat a section of code while the specified condition is true. The condition may be evaluated before each iteration of the loop, or after.
  • GOTO Command - jumps to a numbered or labelled line in the program.
  • GOSUB Command - temporarily jumps to a numbered or labelled line, returning to the following line after encountering the RETURN Command. This is used to implement subroutines.
  • ON ... GOTO/GOSUB Command - chooses where to jump based on the specified conditions. See Switch statement for other forms.

[edit] Input and output

  • PRINT Statement - displays a message on the screen or other output device.
  • INPUT Statement - asks the user to enter the value of a variable. The statement may include a prompt message.
  • TAB or AT Function - sets the position where the next character will be shown on the screen or printed on paper.

[edit] Miscellaneous

  • REM (Remark) - holds a programmer's comment; often used to give a title to the program and to help identify the purpose of a given section of code.

Basic Computer Terms and Their Meanings.

Here are few tips on computer and their meanings.



screen resolution
measures how clear and detailed the image is.
script
Computer: small subprogram Languages : the lettering system for writing a language. Latin script is used by English, German, French, Italian, and Spanish. Cyrillic script is used by Russian, Bulgarian, Serbian, and other Slavic languages.
scrolling
graphical interface: moving document around within window;   text interface: moving the lines displayed on the screen up or down one line at a time
search
look for specific word(s) or character(s) in a document
sector
a numbered wedge-shaped area of a storage disk
seek time
time it takes to move the read/write head of a drive to the proper track on the storage disk. Measured in milliseconds (ms)
semiconductor
integrated circuit on a chip. This is what modern computers use for memory
serial printer cable
sends data only 1 bit at a time. Printer can be up to 1000 feet from the computer.
server
a computer which handles network tasks and data
settling time
time for read/write head to lower to the storage disk and cease vibrating, allowing reliable reading and writing. Measured in milliseconds (ms)
shading
background color or pattern of a table
shareware
software which you may try for a limited time before purchasing
shut down
close all background programs and turn off computer
single sheet paper
regular letter paper
single-sided disk
only one surface of the storage disk is used.
slack space
unused space in a cluster beyond the data stored in it.
slide
a single picture or screen in a sequence for a presentation
smart terminal
also called intelligent or programmable. Can process or store data on its own.
smart card
credit card type card which has an embedded computer chip that updates your account values with each use.
soft copy
displayed on screen or by other non-permanent means
software
the programs (instructions) that tell the computer what to do
spacing
space between letters or lines of text
speaker dependent system
a voice input system which must be trained to recognize each word by each individual user.
speaker independent system
a voice input system which recognizes words from most speakers with no training.
spell checker
program which looks for spelling errors
spike
see power spike
spreadsheet
program for handling numeric data, like budgets, financial statements, grade sheets, and sales records
SQL
Structured Query Language - the language for commands that create database queries
star configuration
network configuration where all devices are connected directly to the host computer
storage
the media and methods used to keep information available for later use
style sheets
saved sets of formats to reuse
suite
a set of separate applications which are packaged together usually at a lower price than they would cost separately. Also may have some additional software to help the programs work together.
supercomputer
used for weather forecasting, engineering design and testing, serious decryption. They cost several million dollars so they are few and far between.
surge
see power surge
surge protector
device that blocks power spikes
SVGA
Super VGA, a video type allowing several large resolutions and 16 million colors.
swap file
file used for virtual memory in Windows
swap
moving data from main memory to virtual memory and back
system clock
electronic pulse used to synchronize processing. Measured in megahertz (MHz)
system software
programs that handle the running of your computer's hardware
system requirements
hardware needed to run the program
systems analyst
designs the overall program requirements and sets the strategy for the program.