1. A method of creating a program to solve a problem pertaining to a first task, the method comprising the steps of: receiving user input data from an operator pertaining to a second task, said second task being different from said first task; automatically obtaining a number of subprograms based on the received user input data; and creating said program based on the obtained subprogram or subprograms.