The bit where you program what the robot does using your computer. I'm making a project and I can't fit it all onto the screen, so if you can't do functions, is there any way to zoom out of the screen or something, so I can add more?
In lego mindstorm EV3, can you make the individual programs in a project into functions which can be used in the other programs?
You can turn parts of your program into custom blocks by selecting them and choosing Tools -> My Block Builder from the menu. See https://www.youtube.com/watch?v=CApCoGQJRcU for a tutorial on this feature.
In the MINDSTORMS EV3 software you can Zoom in and out to be able to view your complete program (there are magnifier icon and an 1:1 on the top right)
You can also create MyBlock ... select a group of block that do something specific like rotate till object detected - then click on Tool in the menu - then on MyBlock Builder -- once a MyBlock is created they appear in the CYAN colored block tab below (the one on the far right) Now every time you want to seek for object just call that MyBlock
MyBlocks are the right way to go, but you can still end up with a program that is larger than will fit on your screen.
The canvas on which you create your programs can be scrolled left to right and up and down.
In MS Windows, hold the Alt key and click and drag on an empty space in the canvas. I don't know the equivalent key on a Mac, but I'm sure there is one. There should also be arrows you can click on at each edge of the screen if your program is not fitting in the window. If you have a scroll wheel on your mouse, you can also use that to scroll up and down.
Blocks need not be adjacent. Though not considered a best practice in EV3 programming, you can "snake" the program on screen by breaking code up into sections of blocks that will fit the width of the screen in consecutive rows. Non-adjacent blocks can be connected with a "Beam" by dragging from the exit point of one block to the entry point of the next block.
I'm not particularly familiar with Mindstorms EV3, but I know that NXT-G has the capability to call other programs from a main program using MyBlocks.
As far as I know, you can't zoom out of the EV3 and NXT programming environments, although in NXT-G there is an overall view you can get by switching the tabs in the lower left hand corner.