Programming learning updates & discussion

For discussion of non-Wonderland topics - please read rules!

Moderators: ~xpr'd~, tyteen4a03, Stinky, Emerald141, Qloof234, jdl

Post Reply
User avatar
boh123321
Rainbow Wizard
Posts: 477
Joined: Tue Nov 06, 2012 12:26 am

Programming learning updates & discussion

Post by boh123321 » Sun Oct 06, 2013 10:50 pm

Hello everyone!

I just recently started learning C++ (a programming language) and made this thread for me to post little programs I have made and also for people to
discuss programming of any kind (Java, Gamemaker, etc.)

So far my best program is one that takes a number and multiplies it by another number and gives a result

Here it is:

#include <iostream>
//This is put at the beginning of every program

int multiply(int x , int y)
{
return x * y;
}
//This chunk here creates a new function that
//multiplys x and y and returns the number to the system

int main()
{
using namespace std;
cout << "This program will multiply your two numbers" <<endl;
cout << "Type in a number:" << endl;
int x;
int y;
cin >> x >> y;
cout << "This is " << x << " times " << y << ": " << multiply(x , y) << endl;
}
//This part here takes two numbers that you type in
// multiplies them and gives you the result

Yay!
no
User avatar
VirtLands
Rainbow Master
Posts: 756
Joined: Thu Dec 29, 2005 1:49 am

Re: Programming learning updates & discussion

Post by VirtLands » Wed Oct 09, 2013 8:24 pm

boh123321 wrote:main()
{
using namespace std;
cout << "I am the
zombie. Goodbye!" << endl;
return 0
}
Excellent. :wink:

Currently I'm using Blitz3D and Pelles C together.
You can use Pelles C to created DLLs which can be accessed by other languages including Blitz.

What version of C++ do you use? I've tried some C++ before, but am
currently just using plain C, ( which is Pelles C ).

Pelles C:
http://www.christian-heffner.de/index.p ... rt&lang=en
http://www.christian-heffner.de/index.p ... ad&lang=en

Blitz3D:
http://www.blitzbasic.com/Home/_index_.php

On the Blitz Community Forum, I go by the same username as I do here, = VirtLands
.
Last edited by VirtLands on Thu Oct 10, 2013 7:59 pm, edited 1 time in total.
User avatar
tyteen4a03
Rainbow AllStar
Posts: 4380
Joined: Wed Jul 12, 2006 7:16 am
Contact:

Post by tyteen4a03 » Wed Oct 09, 2013 9:08 pm

I never really liked Eclipse because of how much RAM it ate - I like JetBrains products better.

I'm going to make a Tile-based engine similar to Wonderland in Panda3D when I'm getting bored with writing my distributed Minecraft server, so maybe I'll be able to pick up C++ then.
and the duck went moo

Beep bloop
User avatar
VirtLands
Rainbow Master
Posts: 756
Joined: Thu Dec 29, 2005 1:49 am

JetBrained

Post by VirtLands » Wed Oct 09, 2013 9:53 pm

tyteen4a03 wrote: I never really liked Eclipse because of how much RAM it ate - I like JetBrains products better.
Getting Jetbrained.
Only these 4 programs from JetBrains are apparently FREE :

Pycharm 3.0 Community Edition { Python IDE }
http://www.jetbrains.com/pycharm/download/

IntelliJ IDEA 12 { Java IDE }
http://www.jetbrains.com/idea/download/

Meta Programming System :
http://www.jetbrains.com/mps/

Kotlin ... a statically typed programming language that compiles to JVM byte codes and JavaScript
http://kotlin.jetbrains.org/

Last edited by VirtLands on Thu Oct 10, 2013 7:56 pm, edited 1 time in total.
User avatar
md
Rainbow Master
Posts: 748
Joined: Wed Oct 17, 2007 9:26 am

Post by md » Thu Oct 10, 2013 10:12 am

I've done a bit of coding in my times. I know quite a few languages, but my strength at the moment is C# (and XNA).
I've worked a bit with C++ and Java for a bit of Minecraft Modding.

In terms of programs used, I've worked around with Game Maker, Visual Studio, Dreamweaver and Eclipse.
If you bothered to copy and paste this signature, or zoom in, to make it possible to read, then I wasted 5-10 seconds of your life.
User avatar
Sammy_P
Rainbow SuperStar
Posts: 2888
Joined: Fri May 11, 2007 9:01 pm
Location: map ref 41°n 93°w
Contact:

Post by Sammy_P » Thu Oct 10, 2013 3:52 pm

I've been learning some C lately.
User avatar
boh123321
Rainbow Wizard
Posts: 477
Joined: Tue Nov 06, 2012 12:26 am

Post by boh123321 » Fri Oct 11, 2013 5:46 am

Sammy_P wrote:I've been learning some C lately.
It took me forever to figure out which programming language I wanted to learn. Seriously, it took 2 weeks! :shock:
Virtlands wrote:What version of C++ do you use? I've tried some C++ before, but am
currently just using plain C, ( which is Pelles C ).
Do you mean C++ 10 or C++ 11? I honestly don't know.

by the way, i use code::blocks for my programming.

My new best program is a mini calculator (the code is kinda long and don't really want to right now)

After learning C++ (probably will take 1-2 years) I am considering learning either Java or C#. what do you peoples think.
I am going to buy C++ primer edition 5, which is probably the best C++ book ever (over 1000 pages!)
toodles
no
User avatar
tyteen4a03
Rainbow AllStar
Posts: 4380
Joined: Wed Jul 12, 2006 7:16 am
Contact:

Post by tyteen4a03 » Fri Oct 11, 2013 7:30 am

I don't ever remember C++10 - however I remember C++03 and C++11.

These are just different versions of C++ which improves the syntax. For a beginner, they should start with C++11 (although we don't really mention the "version" of the language)
and the duck went moo

Beep bloop
User avatar
md
Rainbow Master
Posts: 748
Joined: Wed Oct 17, 2007 9:26 am

Post by md » Sun Oct 13, 2013 3:07 am

boh123321 wrote:
Sammy_P wrote:I've been learning some C lately.
It took me forever to figure out which programming language I wanted to learn. Seriously, it took 2 weeks! :shock:
Yeah, it took me quite some time too. I was kind of going back and forth between languages.
In the end, I ended up earning a little bit of them all, with a few languages that I learnt more than others.
If you bothered to copy and paste this signature, or zoom in, to make it possible to read, then I wasted 5-10 seconds of your life.
User avatar
tyteen4a03
Rainbow AllStar
Posts: 4380
Joined: Wed Jul 12, 2006 7:16 am
Contact:

Post by tyteen4a03 » Sun Oct 13, 2013 8:32 am

For a beginner, Python is a very good language to pick up.
and the duck went moo

Beep bloop
User avatar
VirtLands
Rainbow Master
Posts: 756
Joined: Thu Dec 29, 2005 1:49 am

Blitz Research Products

Post by VirtLands » Sun Oct 13, 2013 10:42 pm

Also, try these:

PureBasic demo
http://www.purebasic.com/download.php

Purebasic has over 300 user supplied add-ons (online, in Zip form), so in many cases you don't have to start from scratch.

( The difference between PureBasic demo vs PureBasic FULL is that the demo has the following limitations:
No Win32 API support
No DLL creation
Code size limitation (about 800 lines)
Nag screen

)

DarkBasic Pro -Free version

http://www.thegamecreators.com/?id=2000 ... &page=free

Pelles C - is FREE .
http://www.smorgasbordet.com/pellesc/

Pelles C is an awesome language collection;
it includes loads of free user supplied libraries as well as lots of add-ons.

Show here is a brief display of my Pelles directories.

10/13/2013 04:05 PM <DIR> .
10/13/2013 04:05 PM <DIR> ..
09/21/2013 02:12 PM <DIR> Bin
03/05/2013 07:28 PM <DIR> downloaded
08/23/2013 01:20 PM <DIR> Include
08/23/2013 01:30 PM <DIR> Lib
08/22/2013 02:38 PM <DIR> _Add-ins
08/22/2013 03:01 PM <DIR> _Common Controls
08/22/2013 03:00 PM <DIR> _Custom Controls
08/22/2013 02:49 PM <DIR> _Games
08/22/2013 03:30 PM <DIR> _GdiPlus Examples
08/22/2013 03:31 PM <DIR> _General Graphics
08/22/2013 03:14 PM <DIR> _General Windows
08/22/2013 03:34 PM <DIR> _Graphics (OpenGL_DirectX)
08/22/2013 03:21 PM <DIR> _Libraries
08/22/2013 03:28 PM <DIR> _OLE & COM
08/22/2013 03:10 PM <DIR> _Utilities
08/22/2013 03:25 PM <DIR> _Wizards
0 File(s) 0 bytes
18 Dir(s) 43,573,547,008 bytes free
-----------------------------------------------------------------------------

http://www.blitzbasic.com/Products/_index_.php

Blitz3D has over 12000 user made programs ready for download.
BlitzMax has over 5000 user made programs lready for download.
User avatar
boh123321
Rainbow Wizard
Posts: 477
Joined: Tue Nov 06, 2012 12:26 am

Post by boh123321 » Sat Oct 19, 2013 6:02 am

I just bought "C++ Primer" which is one of the best C++ books ever.

I'm about 100 pages in and pointers make my head hurt :lol:
no
User avatar
tyteen4a03
Rainbow AllStar
Posts: 4380
Joined: Wed Jul 12, 2006 7:16 am
Contact:

Post by tyteen4a03 » Sat Oct 19, 2013 9:34 am

boh123321 wrote:I just bought "C++ Primer" which is one of the best C++ books ever.

I'm about 100 pages in and pointers make my head hurt :lol:
Pointers are just stickers on the boxes (memory addresses): They refer to a specific box.
and the duck went moo

Beep bloop
User avatar
VirtLands
Rainbow Master
Posts: 756
Joined: Thu Dec 29, 2005 1:49 am

C++ pointers

Post by VirtLands » Sat Oct 19, 2013 11:37 pm

It's a fascinating book/topic .

Since I've spent most of my time on regular C instead of C++,
I still assume that the two languages are very similar.



on page 84, you'll start the pointers subject, ...
on page 324, you'll start pointers to functions, ...

Pointers can be really fun, you can do multiple levels of indirection (dereferences).
-----------------------------------------------------------------------------
Here is some strange idea that I dreamed up: ©

You can create a 2 dimensional array of function pointers, where each function itself takes 2 parameters as input;

The 2 parameter type -combo per each function determines that function's placement within that 2D array.

So,...
you call each function directly by means of a function pointer
residing in that 2D array, where their position in the array is dictated
directly by the parameter types.

Each parameter can itself be a pointer to a (data-type + value) structure, ( = abstract data type).

But, for even more data flexibility, the data can be placed in circular "byte" queues instead of structures. Structures would be an inefficient
container to store data, because we don't know ahead of time
what kind of data-types are needed, nor the size of those data types.

For example: Create 2 circular (memory) queues as follows:

DIM Q_D(10000) ; allocate 10,000 bytes for data values
DIM Q_T(10000) ; allocate 10,000 bytes for data-type descriptions

{ Worst case scenario for Q_T() is that each byte in Q_D() is a CHAR data type, and each CHAR is only 1 byte long. }

An example enumeration of data types, can be like this::
UNSIGNED_CHAR, SIGNED_CHAR, UNSIGNED_SHORT, SIGNED_SHORT, UNSIGNED INT, SIGNED INT,...
etc, and starting with enumeration value "1".

So,...., in abstract pseudo-code .....

Quick_sum( INT *i, SIGNED_CHAR *sc) is called by computing
where in a 2D function pointer array that specific combo is.

The benefits of this weird logic are as follows:

(a) Create a generic collection of functions whose parameters can be multiple data types,
the concept is like "parameter overloading", but not exactly.
Each parameter would actually be a pointer to a (data-type & value)structure.
______________
A minor variation of this logic is to use a 1-D (linear) array of function
pointers instead of a 2D array of function pointers.

Each function's position within the linear array can be calculated quickly
as a BOOLEAN SUM of the 2 parameter types:

For example: Quick_Sum( SIGNED_CHAR_type *sc, UNSIGNED_INT_type *ui)

would look for the enumeration reference of SIGNED_CHAR_type=2, and UNSIGNED_INT_type=16,

add them together,

then call function pointer index 18, .... which would be a
dedicated function created just to add a SIGNED char to an UNSIGNED int.

Note that if the parameter types traded places, the result is the same,
( 2+16 = 16+2 =18 ), they would point to the same
dedicated function in a linear array of function pointers. ;)

There would be many dedicated functions, and each would return
an appropriate { data-type + value } structure.

Since there are approximately 14 "C" data types, then there
are approximately 196 (=14*14) combinations of those data types, taken two at a time,
where each data type has an opportunity to meld with any other data type by means of dedicated functions.

A list of C data types:
https://en.wikipedia.org/wiki/C_data_types

Why do all this?
The reason is basically that Blitz3D has only a limited collection of
'data types' and ways it uses them.
Blitz3D has no "DOUBLES", and it has no LONG LONGs (=64 bit).

My ultimate goal is to allow for the flexibility of any data type to mingle
with any other data type (within reason), and to add data types 64-bits and higher .

To be specific, each function would return a reference to a { data-type + value } structure, allowing dedicated functions to be conveniently nested.

These structures in turn can be (optionally) taken from of a circular queue
of previously allocated memory, instead of creating brand new structure
instances each time.

The benefit of this is that "old variables" get automatically reused
after a reasonable queue cycle. There's no chance of overloading your PC's memory.

The downside is that you have to be alert, because if you don't use your
variables in time, their values may CHANGE. :twisted:

These are Short-Lived variables. ©
_______________________________________

( Note that Blitz3D can't do DOUBLES, so a special DOUBLE function has
to be invented. )

An awkward old style Function for DOUBLES is like this:

Does send the sum of (a+b) into dest. THis formation cannot be nested.
DOUBLE_ADD( DOUBLE *a, DOUBLE *b, DOUBLE *dest ) ;
_______________________________________________

My improved version that I have in mind would work like this (if I ever make it): :D

Returns a reference to a queue memory (byte offset) that represents (a+b):
This formation can be nested.

dest *d = DOUBLE_ADD( DOUBLE *a, DOUBLE *b)

And, here's a nesting example:

dest *e = DOUBLE_ADD( DOUBLE_ADD(*a, *b), DOUBLE_ADD( *c, *d) )

e gets the successful result of (a+b+c+d), using a dedicated DOUBLES function.

©©©

Yup, this is crazy stuff.
Last edited by VirtLands on Mon Oct 21, 2013 5:46 pm, edited 1 time in total.
User avatar
boh123321
Rainbow Wizard
Posts: 477
Joined: Tue Nov 06, 2012 12:26 am

Post by boh123321 » Sun Oct 20, 2013 4:48 am

VirtLands wrote:Since I've spent most of my time on regular C instead of C++, I still assume that the two languages are very similar.
C and C++ are basically the same thing except that C++ has classes and OOP unlike its older parent C
no
Post Reply