We are usually programming to solve a particular problem. In the case of a program which runs on a large computer such as an IBM PC ® we often take the input from the user (perhaps via the keyboard or mouse, or from a source file) process it and then produce a display or set of printed results.

You can use a language like C to do this and many programs that run on PCs are written in this way. However, you can also use computers in "embedded" systems, where they are just one of the components which makes the device or system do its stuff.