Ring Documentation, Release 1.10
oQueue.add(1)
oQueue.add(2)
oQueue.add(3)
see oQueue.remove() + nl
see oQueue.remove() + nl
see oQueue.remove() + nl
oQueue.add(4)
see oQueue.remove() + nl
oQueue { add("one") add("two") add("three") }
oQueue.print()
output:
1
2
3
4
one
two
three
49.6 HashTable Class
Parent Class : List Class
Methods:
Method Description/Output
Init(List)
Add(cKey,Value) Add item to the HashTable
Set(cKey,Value) Set item value using the Key
GetValue(cKey) Get item value using the Key
Contains(cKey) Check if the HashTable contains item using the Key
Index(cKey) Get the item index using the Key
example:
Load "stdlib.ring"
ohashtable = new hashtable
See "Test the hashtable Class Methods" + nl
ohashtable {
Add("Egypt","Cairo")
Add("KSA","Riyadh")
see self["Egypt"] + nl
see self["KSA"] + nl
see contains("Egypt") + nl
see contains("USA") + nl
see index("KSA") + NL
print()
delete(index("KSA"))
see copy("*",60) + nl
print()
}
output:
49.6. HashTable Class 418
Ring Documentation, Release 1.10
Test the hashtable Class Methods
Cairo
Riyadh
1
0
2
Egypt
Cairo
KSA
Riyadh
************************************************************
Egypt
Cairo
49.7 Tree Class
Data:
Attribute Description
Data Node Value
Children Children List
Methods:
Method Description/Output
set(value) Set the node value.
value() Get the node value.
Add(value) Add new child.
parent() Get the parent node.
print() Print the tree nodes.
example:
Load "stdlib.ring"
otree = new tree
See "Test the tree Class Methods" + nl
otree {
set("The first step") # set the root node value
see value() + nl
Add("one")
Add("two")
Add("three") {
Add("3.1")
Add("3.2")
Add("3.3")
see children
}
see children
oTree.children[2] {
Add("2.1") Add("2.2") Add("2.3") {
Add("2.3.1") Add("2.3.2") Add("test")
}
}
oTree.children[2].children[3].children[3].set("2.3.3")
}
49.7. Tree Class 419
Ring Documentation, Release 1.10
see copy("*",60) + nl
oTree.print()
output:
Test the tree Class Methods
The first step
data: 3.1
parent: List...
children: List...
data: 3.2
parent: List...
children: List...
data: 3.3
parent: List...
children: List...
data: one
parent: List...
children: List...
data: two
parent: List...
children: List...
data: three
parent: List...
children: List...
************************************************************
one
two
2.1
2.2
2.3
2.3.1
2.3.2
2.3.3
three
3.1
3.2
3.3
49.8 Math Class
Methods:
49.8. Math Class 420
Ring Documentation, Release 1.10
Method Description
sin(x) Returns the sine of an angle of x radians
cos(x) Returns the cosine of an angle of x radians
tan(x) Returns the tangent of an angle of x radians
asin(x) Returns the principal value of the arc sine of x, expressed in radians
acos(x) Returns the principal value of the arc cosine of x, expressed in radians
atan(x) Returns the principal value of the arc tangent of x, expressed in radians
atan2(y,x) Returns the principal arc tangent of y/x, in the interval [-pi,+pi] radians
sinh(x) Returns the hyperbolic sine of x radians
cosh(x) Returns the hyperbolic cosine of x radians
tanh(x) Returns the hyperbolic tangent of x radians
exp(x) Returns the value of e raised to the xth power
log(x) Returns the natural logarithm of x
log10(x) Returns the common logarithm (base-10 logarithm) of x
ceil(x) Returns the smallest integer value greater than or equal to x
ïŹ‚oor(x) Returns the largest integer value less than or equal to x
fabs(x) Returns the absolute value of x.
pow(x,y) Returns x raised to the power of y
sqrt(x) Returns the square root of x
random(x) Returns a random number in the range [0,x]
unsigned(n,n,c) Perform operation using unsigned numbers
decimals(n) Determine the decimals digits after the point in ïŹ‚oat/double numbers
example:
Load "stdlib.ring"
oMath = new Math
See "Test the Math Class Methods" + nl
See "Sin(0) = " + oMath.sin(0) + nl
See "Sin(90) radians = " + oMath.sin(90) + nl
See "Sin(90) degree = " + oMath.sin(90*3.14/180) + nl
See "Cos(0) = " + oMath.cos(0) + nl
See "Cos(90) radians = " + oMath.cos(90) + nl
See "Cos(90) degree = " +oMath. cos(90*3.14/180) + nl
See "Tan(0) = " + oMath.tan(0) + nl
See "Tan(90) radians = " + oMath.tan(90) + nl
See "Tan(90) degree = " + oMath.tan(90*3.14/180) + nl
See "asin(0) = " + oMath.asin(0) + nl
See "acos(0) = " + oMath.acos(0) + nl
See "atan(0) = " + oMath.atan(0) + nl
See "atan2(1,1) = " +oMath. atan2(1,1) + nl
See "sinh(0) = " + oMath.sinh(0) + nl
See "sinh(1) = " + oMath.sinh(1) + nl
See "cosh(0) = " + oMath.cosh(0) + nl
See "cosh(1) = " + oMath.cosh(1) + nl
See "tanh(0) = " + oMath.tanh(0) + nl
See "tanh(1) = " + oMath.tanh(1) + nl
See "exp(0) = " + oMath.exp(0) + nl
See "exp(1) = " + oMath.exp(1) + nl
See "log(1) = " + oMath.log(1) + nl
49.8. Math Class 421
Ring Documentation, Release 1.10
See "log(2) = " + oMath.log(2) + nl
See "log10(1) = " + oMath.log10(1) + nl
See "log10(2) = " + oMath.log10(2) + nl
See "log10(10) = " + oMath.log10(10) + nl
See "Ceil(1.12) = " + oMath.Ceil(1.12) + nl
See "Ceil(1.72) = " + oMath.Ceil(1.72) + nl
See "Floor(1.12) = " + oMath.floor(1.12) + nl
See "Floor(1.72) = " + oMath.floor(1.72) + nl
See "fabs(1.12) = " + oMath.fabs(1.12) + nl
See "fabs(1.72) = " + oMath.fabs(1.72) + nl
See "pow(2,3) = " + oMath.pow(2,3) + nl
see "sqrt(16) = " + oMath.sqrt(16) + nl
for x = 1 to 20
see "Random number Max (100) : " + oMath.random(100) + nl
next
x = 1.1234567890123
for d = 0 to 14
oMath.decimals(d)
see x + nl
next
cKey = "hello"
h = 0
for x in cKey
h = oMath.unsigned(h,ascii(x),"+")
h = oMath.unsigned(h,oMath.unsigned(h,10,"<<"),"+")
r = oMath.unsigned(h,6,">>")
h = oMath.unsigned(h, r,"^")
next
h = oMath.unsigned(h,oMath.unsigned(h,3,"<<"),"+")
h = oMath.unsigned(h,oMath.unsigned(h,11,">>"),"^")
h = oMath.unsigned(h,oMath.unsigned(h,15,"<<"),"+")
see "Hash : " + h
output:
Test the Math Class Methods
Sin(0) = 0
Sin(90) radians = 0.89
Sin(90) degree = 1.00
Cos(0) = 1
Cos(90) radians = -0.45
Cos(90) degree = 0.00
Tan(0) = 0
Tan(90) radians = -2.00
Tan(90) degree = 1255.77
asin(0) = 0
acos(0) = 1.57
atan(0) = 0
atan2(1,1) = 0.79
49.8. Math Class 422
Ring Documentation, Release 1.10
sinh(0) = 0
sinh(1) = 1.18
cosh(0) = 1
cosh(1) = 1.54
tanh(0) = 0
tanh(1) = 0.76
exp(0) = 1
exp(1) = 2.72
log(1) = 0
log(2) = 0.69
log10(1) = 0
log10(2) = 0.30
log10(10) = 1
Ceil(1.12) = 2
Ceil(1.72) = 2
Floor(1.12) = 1
Floor(1.72) = 1
fabs(1.12) = 1.12
fabs(1.72) = 1.72
pow(2,3) = 8
sqrt(16) = 4
Random number Max (100) : 87
Random number Max (100) : 49
Random number Max (100) : 99
Random number Max (100) : 58
Random number Max (100) : 15
Random number Max (100) : 46
Random number Max (100) : 37
Random number Max (100) : 64
Random number Max (100) : 73
Random number Max (100) : 35
Random number Max (100) : 89
Random number Max (100) : 80
Random number Max (100) : 20
Random number Max (100) : 33
Random number Max (100) : 44
Random number Max (100) : 89
Random number Max (100) : 82
Random number Max (100) : 94
Random number Max (100) : 83
Random number Max (100) : 68
1
1.1
1.12
1.123
1.1235
1.12346
1.123457
1.1234568
1.12345679
1.123456789
1.1234567890
1.12345678901
1.123456789012
1.1234567890123
1.12345678901230
Hash : 3372029979.00000000000000
49.8. Math Class 423
Ring Documentation, Release 1.10
49.9 DateTime Class
Methods:
Method Description/Output
clock() The number of clock ticks from program start.
time() Get the system time.
date() Get the date.
timelist() List contains the date and the time information.
adddays(cDate,nDays) Return Date from cDate and after nDays
diffdays(cDate1,cDate2) Return the Number of days (cDate1 - cDate2)
example:
Load "stdlib.ring"
oDateTime = new datetime
See "Test the datetime Class Methods" + nl
See "Calculate performance" + nl
t1 = oDateTime.clock()
for x = 1 to 1000000 next
see oDateTime.clock() - t1 + nl
See "Time : " + oDateTime.time() + nl
See "Date : " + oDateTime.date() + nl
See oDateTime.TimeList()
See "Month Name : " + oDateTime.TimeList()[4]
cDate = oDateTime.date()
see cDate + nl
cDate = oDateTime.adddays(cDate,10)
see cDate + nl
cDate1 = oDateTime.date()
see cDate1 + nl
cDate2 = oDateTime.adddays(cDate1,10)
see cDate2 + nl
see "DiffDays = " + oDateTime.diffdays(cDate1,cDate2) + nl
see "DiffDays = " + oDateTime.diffdays(cDate2,cDate1) + nl
output:
Test the datetime Class Methods
Calculate performance
85
Time : 02:53:35
Date : 31/08/2016
Wed
Wednesday
Aug
August
08/31/16 02:53:35
31
49.9. DateTime Class 424
Ring Documentation, Release 1.10
02
02
244
08
53
AM
35
35
3
08/31/16
02:53:35
16
2016
Arab Standard Time
%
Month Name : August31/08/2016
10/09/2016
31/08/2016
10/09/2016
DiffDays = -10
DiffDays = 10
49.10 File Class
Methods:
49.10. File Class 425
Ring Documentation, Release 1.10
Method Description/Output
read(cFileName) Read the ïŹle content
write(cFileName,cStr) Write string to ïŹle
dir(cFolderPath) Get the folder contents (ïŹles & sub folders)
rename(cOld,cNew) Rename ïŹles using the Rename() function
remove(cFileName) Delete a ïŹle using the Remove() function
open(cFileName,cMode) Open a ïŹle using the Fopen() function
close() Close ïŹle
ïŹ‚ush() Flushes the output buffer of a stream
reopen(cFileName,cMode) Open another ïŹle using the same ïŹle handle
tempïŹle() Creates a temp. ïŹle (binary).
seek(noffset,nwhence) Set the ïŹle position of the stream
tell() Know the current ïŹle position of a stream
rewind() Set the ïŹle position to the beginning of the ïŹle
getpos() Get handle to the current ïŹle position
setpos(poshandle) Set the current ïŹle position
clearerr() Clear the EOF error and the error indicators of a stream
eof() Test the end-of-ïŹle indicator
error() Test the error indicator
perror(cErrorMessage) Print error message to the stderr
getc() Get the next character from the stream
gets(nsize) Read new line from the stream
putc(cchar) Write a character to the stream
puts(cStr) Write a string to the stream
ungetc(cchar) Push a character to the stream
fread(nsize) Read data from a stream
fwrite(cString) Write data to a stream
exists(cFileName) Check if a ïŹle exists
example:
Load "stdlib.ring"
ofile = new file
See "Test the file Class Methods" + nl
see ofile.read(filename())
see nl
ofile.open(filename(),"r")
see ofile.gets(100) + nl
ofile.close()
49.11 System Class
Methods:
49.11. System Class 426
Ring Documentation, Release 1.10
Method Description/Output
system() Execute system commands
sysget() Get environment variables
ismsdos() Check if the operating system is MSDOS or not
iswindows() Check if the operating system is Windows or not
iswindows64() Check if the operating system is Windows 64bit or not
isunix() Check if the operating system is Unix or not
ismacosx() Check if the operating system is macOS or not
islinux() Check if the operating system is Linux or not
isfreebsd() Check if the operating system is FreeBSD or not
isandroid() Check if the operating system is Android or not
windowsnl() Get the windows new line string
sysargv() Get the command line arguments passed to the ring script
ïŹlename() Get the active source ïŹle
example:
Load "stdlib.ring"
oSystem = new System
See "Test the System Class Methods" + nl
oSystem.system("dir")
see oSystem.sysget("path") + nl
see oSystem.ismsdos() + nl
see oSystem.iswindows() + nl
see oSystem.iswindows64() + nl
see oSystem.isunix() + nl
see oSystem.ismacosx() + nl
see oSystem.islinux() + nl
see oSystem.isfreebsd() + nl
see oSystem.isandroid() + nl
see oSystem.windowsnl() + nl
see oSystem.sysargv() + nl
see oSystem.filename() + nl
49.12 Debug Class
Methods:
Method Description/Output
eval(cCode) Execute code during the runtime from string.
raise(cError) Raise an exception.
assert(cCondition) Test condition before executing the code.
example:
Load "stdlib.ring"
oDebug = new Debug
See "Test the Debug Class Methods" + nl
oDebug.eval("see 'Hello'+nl")
try
x = 10
oDebug.assert(x=11)
49.12. Debug Class 427

More Related Content

PDF
The Ring programming language version 1.8 book - Part 30 of 202
PDF
The Ring programming language version 1.6 book - Part 27 of 189
PDF
The Ring programming language version 1.6 book - Part 38 of 189
PDF
The Ring programming language version 1.5.4 book - Part 36 of 185
PDF
The Ring programming language version 1.2 book - Part 25 of 84
PDF
The Ring programming language version 1.5.3 book - Part 36 of 184
PDF
The Ring programming language version 1.4 book - Part 10 of 30
PDF
The Ring programming language version 1.3 book - Part 50 of 88
The Ring programming language version 1.8 book - Part 30 of 202
The Ring programming language version 1.6 book - Part 27 of 189
The Ring programming language version 1.6 book - Part 38 of 189
The Ring programming language version 1.5.4 book - Part 36 of 185
The Ring programming language version 1.2 book - Part 25 of 84
The Ring programming language version 1.5.3 book - Part 36 of 184
The Ring programming language version 1.4 book - Part 10 of 30
The Ring programming language version 1.3 book - Part 50 of 88

What's hot (20)

PDF
The Ring programming language version 1.3 book - Part 27 of 88
PDF
The Ring programming language version 1.4 book - Part 18 of 30
PDF
The Ring programming language version 1.5.3 book - Part 77 of 184
PDF
The Ring programming language version 1.9 book - Part 45 of 210
PDF
The Ring programming language version 1.5.1 book - Part 34 of 180
PDF
The Ring programming language version 1.8 book - Part 42 of 202
PDF
The Ring programming language version 1.5.2 book - Part 35 of 181
PDF
The Ring programming language version 1.3 book - Part 16 of 88
PDF
The Ring programming language version 1.5.4 book - Part 25 of 185
PDF
The Ring programming language version 1.10 book - Part 33 of 212
PDF
The Ring programming language version 1.2 book - Part 24 of 84
PDF
The Ring programming language version 1.5.1 book - Part 35 of 180
PDF
The Ring programming language version 1.10 book - Part 44 of 212
PDF
The Ring programming language version 1.5.2 book - Part 24 of 181
PDF
The Ring programming language version 1.9 book - Part 32 of 210
PDF
The Ring programming language version 1.5.1 book - Part 23 of 180
PDF
The Ring programming language version 1.9 book - Part 44 of 210
PDF
The Ring programming language version 1.6 book - Part 39 of 189
PDF
The Ring programming language version 1.7 book - Part 38 of 196
PDF
The Ring programming language version 1.2 book - Part 14 of 84
The Ring programming language version 1.3 book - Part 27 of 88
The Ring programming language version 1.4 book - Part 18 of 30
The Ring programming language version 1.5.3 book - Part 77 of 184
The Ring programming language version 1.9 book - Part 45 of 210
The Ring programming language version 1.5.1 book - Part 34 of 180
The Ring programming language version 1.8 book - Part 42 of 202
The Ring programming language version 1.5.2 book - Part 35 of 181
The Ring programming language version 1.3 book - Part 16 of 88
The Ring programming language version 1.5.4 book - Part 25 of 185
The Ring programming language version 1.10 book - Part 33 of 212
The Ring programming language version 1.2 book - Part 24 of 84
The Ring programming language version 1.5.1 book - Part 35 of 180
The Ring programming language version 1.10 book - Part 44 of 212
The Ring programming language version 1.5.2 book - Part 24 of 181
The Ring programming language version 1.9 book - Part 32 of 210
The Ring programming language version 1.5.1 book - Part 23 of 180
The Ring programming language version 1.9 book - Part 44 of 210
The Ring programming language version 1.6 book - Part 39 of 189
The Ring programming language version 1.7 book - Part 38 of 196
The Ring programming language version 1.2 book - Part 14 of 84

Similar to The Ring programming language version 1.10 book - Part 46 of 212 (17)

PDF
The Ring programming language version 1.7 book - Part 40 of 196
PDF
The Ring programming language version 1.5.2 book - Part 36 of 181
PDF
The Ring programming language version 1.7 book - Part 28 of 196
PDF
The Ring programming language version 1.7 book - Part 41 of 196
PDF
The Ring programming language version 1.5.4 book - Part 37 of 185
PDF
The Ring programming language version 1.9 book - Part 46 of 210
PDF
The Ring programming language version 1.10 book - Part 40 of 212
PDF
The Ring programming language version 1.8 book - Part 43 of 202
PDF
The Ring programming language version 1.2 book - Part 26 of 84
PDF
The Ring programming language version 1.6 book - Part 32 of 189
PDF
The Ring programming language version 1.10 book - Part 43 of 212
PDF
The Ring programming language version 1.5.1 book - Part 32 of 180
PDF
The Ring programming language version 1.10 book - Part 127 of 212
PDF
The Ring programming language version 1.7 book - Part 37 of 196
PDF
The Ring programming language version 1.5.3 book - Part 25 of 184
PDF
The Ring programming language version 1.9 book - Part 38 of 210
PDF
The Ring programming language version 1.10 book - Part 45 of 212
The Ring programming language version 1.7 book - Part 40 of 196
The Ring programming language version 1.5.2 book - Part 36 of 181
The Ring programming language version 1.7 book - Part 28 of 196
The Ring programming language version 1.7 book - Part 41 of 196
The Ring programming language version 1.5.4 book - Part 37 of 185
The Ring programming language version 1.9 book - Part 46 of 210
The Ring programming language version 1.10 book - Part 40 of 212
The Ring programming language version 1.8 book - Part 43 of 202
The Ring programming language version 1.2 book - Part 26 of 84
The Ring programming language version 1.6 book - Part 32 of 189
The Ring programming language version 1.10 book - Part 43 of 212
The Ring programming language version 1.5.1 book - Part 32 of 180
The Ring programming language version 1.10 book - Part 127 of 212
The Ring programming language version 1.7 book - Part 37 of 196
The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.9 book - Part 38 of 210
The Ring programming language version 1.10 book - Part 45 of 212

More from Mahmoud Samir Fayed (20)

PDF
The Ring programming language version 1.10 book - Part 212 of 212
PDF
The Ring programming language version 1.10 book - Part 211 of 212
PDF
The Ring programming language version 1.10 book - Part 210 of 212
PDF
The Ring programming language version 1.10 book - Part 208 of 212
PDF
The Ring programming language version 1.10 book - Part 207 of 212
PDF
The Ring programming language version 1.10 book - Part 205 of 212
PDF
The Ring programming language version 1.10 book - Part 206 of 212
PDF
The Ring programming language version 1.10 book - Part 204 of 212
PDF
The Ring programming language version 1.10 book - Part 203 of 212
PDF
The Ring programming language version 1.10 book - Part 202 of 212
PDF
The Ring programming language version 1.10 book - Part 201 of 212
PDF
The Ring programming language version 1.10 book - Part 200 of 212
PDF
The Ring programming language version 1.10 book - Part 199 of 212
PDF
The Ring programming language version 1.10 book - Part 198 of 212
PDF
The Ring programming language version 1.10 book - Part 197 of 212
PDF
The Ring programming language version 1.10 book - Part 196 of 212
PDF
The Ring programming language version 1.10 book - Part 195 of 212
PDF
The Ring programming language version 1.10 book - Part 194 of 212
PDF
The Ring programming language version 1.10 book - Part 193 of 212
PDF
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 192 of 212

Recently uploaded (20)

PDF
OpenTimelineIO Virtual Town Hall - August 2025
PDF
10 Mistakes Agile Project Managers Still Make
PDF
Coding with GPT-5- What’s New in GPT 5 That Benefits Developers.pdf
PDF
OpenEXR Virtual Town Hall - August 2025
PDF
IDM Crack Activation Key 2025 Free Download
PPTX
oracle_ebs_12.2_project_cutoveroutage.pptx
PDF
WhatsApp Chatbots The Key to Scalable Customer Support.pdf
PPTX
Comprehensive Guide to Digital Image Processing Concepts and Applications
PDF
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
 
PDF
OpenImageIO Virtual Town Hall - August 2025
PDF
C language slides for c programming book by ANSI
PPTX
Advanced Heap Dump Analysis Techniques Webinar Deck
PPTX
MCP empowers AI Agents from Zero to Production
PPTX
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
PDF
Difference Between Website and Web Application.pdf
PPTX
Post-Migration Optimization Playbook: Getting the Most Out of Your New Adobe ...
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
PDF
Streamlining Project Management in Microsoft Project, Planner, and Teams with...
PPTX
Lesson-3-Operation-System-Support.pptx-I
PDF
Enscape 3D Crack + With 2025 Activation Key free
OpenTimelineIO Virtual Town Hall - August 2025
10 Mistakes Agile Project Managers Still Make
Coding with GPT-5- What’s New in GPT 5 That Benefits Developers.pdf
OpenEXR Virtual Town Hall - August 2025
IDM Crack Activation Key 2025 Free Download
oracle_ebs_12.2_project_cutoveroutage.pptx
WhatsApp Chatbots The Key to Scalable Customer Support.pdf
Comprehensive Guide to Digital Image Processing Concepts and Applications
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
 
OpenImageIO Virtual Town Hall - August 2025
C language slides for c programming book by ANSI
Advanced Heap Dump Analysis Techniques Webinar Deck
MCP empowers AI Agents from Zero to Production
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
Difference Between Website and Web Application.pdf
Post-Migration Optimization Playbook: Getting the Most Out of Your New Adobe ...
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Streamlining Project Management in Microsoft Project, Planner, and Teams with...
Lesson-3-Operation-System-Support.pptx-I
Enscape 3D Crack + With 2025 Activation Key free

The Ring programming language version 1.10 book - Part 46 of 212

  • 1. Ring Documentation, Release 1.10 oQueue.add(1) oQueue.add(2) oQueue.add(3) see oQueue.remove() + nl see oQueue.remove() + nl see oQueue.remove() + nl oQueue.add(4) see oQueue.remove() + nl oQueue { add("one") add("two") add("three") } oQueue.print() output: 1 2 3 4 one two three 49.6 HashTable Class Parent Class : List Class Methods: Method Description/Output Init(List) Add(cKey,Value) Add item to the HashTable Set(cKey,Value) Set item value using the Key GetValue(cKey) Get item value using the Key Contains(cKey) Check if the HashTable contains item using the Key Index(cKey) Get the item index using the Key example: Load "stdlib.ring" ohashtable = new hashtable See "Test the hashtable Class Methods" + nl ohashtable { Add("Egypt","Cairo") Add("KSA","Riyadh") see self["Egypt"] + nl see self["KSA"] + nl see contains("Egypt") + nl see contains("USA") + nl see index("KSA") + NL print() delete(index("KSA")) see copy("*",60) + nl print() } output: 49.6. HashTable Class 418
  • 2. Ring Documentation, Release 1.10 Test the hashtable Class Methods Cairo Riyadh 1 0 2 Egypt Cairo KSA Riyadh ************************************************************ Egypt Cairo 49.7 Tree Class Data: Attribute Description Data Node Value Children Children List Methods: Method Description/Output set(value) Set the node value. value() Get the node value. Add(value) Add new child. parent() Get the parent node. print() Print the tree nodes. example: Load "stdlib.ring" otree = new tree See "Test the tree Class Methods" + nl otree { set("The first step") # set the root node value see value() + nl Add("one") Add("two") Add("three") { Add("3.1") Add("3.2") Add("3.3") see children } see children oTree.children[2] { Add("2.1") Add("2.2") Add("2.3") { Add("2.3.1") Add("2.3.2") Add("test") } } oTree.children[2].children[3].children[3].set("2.3.3") } 49.7. Tree Class 419
  • 3. Ring Documentation, Release 1.10 see copy("*",60) + nl oTree.print() output: Test the tree Class Methods The first step data: 3.1 parent: List... children: List... data: 3.2 parent: List... children: List... data: 3.3 parent: List... children: List... data: one parent: List... children: List... data: two parent: List... children: List... data: three parent: List... children: List... ************************************************************ one two 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 three 3.1 3.2 3.3 49.8 Math Class Methods: 49.8. Math Class 420
  • 4. Ring Documentation, Release 1.10 Method Description sin(x) Returns the sine of an angle of x radians cos(x) Returns the cosine of an angle of x radians tan(x) Returns the tangent of an angle of x radians asin(x) Returns the principal value of the arc sine of x, expressed in radians acos(x) Returns the principal value of the arc cosine of x, expressed in radians atan(x) Returns the principal value of the arc tangent of x, expressed in radians atan2(y,x) Returns the principal arc tangent of y/x, in the interval [-pi,+pi] radians sinh(x) Returns the hyperbolic sine of x radians cosh(x) Returns the hyperbolic cosine of x radians tanh(x) Returns the hyperbolic tangent of x radians exp(x) Returns the value of e raised to the xth power log(x) Returns the natural logarithm of x log10(x) Returns the common logarithm (base-10 logarithm) of x ceil(x) Returns the smallest integer value greater than or equal to x ïŹ‚oor(x) Returns the largest integer value less than or equal to x fabs(x) Returns the absolute value of x. pow(x,y) Returns x raised to the power of y sqrt(x) Returns the square root of x random(x) Returns a random number in the range [0,x] unsigned(n,n,c) Perform operation using unsigned numbers decimals(n) Determine the decimals digits after the point in ïŹ‚oat/double numbers example: Load "stdlib.ring" oMath = new Math See "Test the Math Class Methods" + nl See "Sin(0) = " + oMath.sin(0) + nl See "Sin(90) radians = " + oMath.sin(90) + nl See "Sin(90) degree = " + oMath.sin(90*3.14/180) + nl See "Cos(0) = " + oMath.cos(0) + nl See "Cos(90) radians = " + oMath.cos(90) + nl See "Cos(90) degree = " +oMath. cos(90*3.14/180) + nl See "Tan(0) = " + oMath.tan(0) + nl See "Tan(90) radians = " + oMath.tan(90) + nl See "Tan(90) degree = " + oMath.tan(90*3.14/180) + nl See "asin(0) = " + oMath.asin(0) + nl See "acos(0) = " + oMath.acos(0) + nl See "atan(0) = " + oMath.atan(0) + nl See "atan2(1,1) = " +oMath. atan2(1,1) + nl See "sinh(0) = " + oMath.sinh(0) + nl See "sinh(1) = " + oMath.sinh(1) + nl See "cosh(0) = " + oMath.cosh(0) + nl See "cosh(1) = " + oMath.cosh(1) + nl See "tanh(0) = " + oMath.tanh(0) + nl See "tanh(1) = " + oMath.tanh(1) + nl See "exp(0) = " + oMath.exp(0) + nl See "exp(1) = " + oMath.exp(1) + nl See "log(1) = " + oMath.log(1) + nl 49.8. Math Class 421
  • 5. Ring Documentation, Release 1.10 See "log(2) = " + oMath.log(2) + nl See "log10(1) = " + oMath.log10(1) + nl See "log10(2) = " + oMath.log10(2) + nl See "log10(10) = " + oMath.log10(10) + nl See "Ceil(1.12) = " + oMath.Ceil(1.12) + nl See "Ceil(1.72) = " + oMath.Ceil(1.72) + nl See "Floor(1.12) = " + oMath.floor(1.12) + nl See "Floor(1.72) = " + oMath.floor(1.72) + nl See "fabs(1.12) = " + oMath.fabs(1.12) + nl See "fabs(1.72) = " + oMath.fabs(1.72) + nl See "pow(2,3) = " + oMath.pow(2,3) + nl see "sqrt(16) = " + oMath.sqrt(16) + nl for x = 1 to 20 see "Random number Max (100) : " + oMath.random(100) + nl next x = 1.1234567890123 for d = 0 to 14 oMath.decimals(d) see x + nl next cKey = "hello" h = 0 for x in cKey h = oMath.unsigned(h,ascii(x),"+") h = oMath.unsigned(h,oMath.unsigned(h,10,"<<"),"+") r = oMath.unsigned(h,6,">>") h = oMath.unsigned(h, r,"^") next h = oMath.unsigned(h,oMath.unsigned(h,3,"<<"),"+") h = oMath.unsigned(h,oMath.unsigned(h,11,">>"),"^") h = oMath.unsigned(h,oMath.unsigned(h,15,"<<"),"+") see "Hash : " + h output: Test the Math Class Methods Sin(0) = 0 Sin(90) radians = 0.89 Sin(90) degree = 1.00 Cos(0) = 1 Cos(90) radians = -0.45 Cos(90) degree = 0.00 Tan(0) = 0 Tan(90) radians = -2.00 Tan(90) degree = 1255.77 asin(0) = 0 acos(0) = 1.57 atan(0) = 0 atan2(1,1) = 0.79 49.8. Math Class 422
  • 6. Ring Documentation, Release 1.10 sinh(0) = 0 sinh(1) = 1.18 cosh(0) = 1 cosh(1) = 1.54 tanh(0) = 0 tanh(1) = 0.76 exp(0) = 1 exp(1) = 2.72 log(1) = 0 log(2) = 0.69 log10(1) = 0 log10(2) = 0.30 log10(10) = 1 Ceil(1.12) = 2 Ceil(1.72) = 2 Floor(1.12) = 1 Floor(1.72) = 1 fabs(1.12) = 1.12 fabs(1.72) = 1.72 pow(2,3) = 8 sqrt(16) = 4 Random number Max (100) : 87 Random number Max (100) : 49 Random number Max (100) : 99 Random number Max (100) : 58 Random number Max (100) : 15 Random number Max (100) : 46 Random number Max (100) : 37 Random number Max (100) : 64 Random number Max (100) : 73 Random number Max (100) : 35 Random number Max (100) : 89 Random number Max (100) : 80 Random number Max (100) : 20 Random number Max (100) : 33 Random number Max (100) : 44 Random number Max (100) : 89 Random number Max (100) : 82 Random number Max (100) : 94 Random number Max (100) : 83 Random number Max (100) : 68 1 1.1 1.12 1.123 1.1235 1.12346 1.123457 1.1234568 1.12345679 1.123456789 1.1234567890 1.12345678901 1.123456789012 1.1234567890123 1.12345678901230 Hash : 3372029979.00000000000000 49.8. Math Class 423
  • 7. Ring Documentation, Release 1.10 49.9 DateTime Class Methods: Method Description/Output clock() The number of clock ticks from program start. time() Get the system time. date() Get the date. timelist() List contains the date and the time information. adddays(cDate,nDays) Return Date from cDate and after nDays diffdays(cDate1,cDate2) Return the Number of days (cDate1 - cDate2) example: Load "stdlib.ring" oDateTime = new datetime See "Test the datetime Class Methods" + nl See "Calculate performance" + nl t1 = oDateTime.clock() for x = 1 to 1000000 next see oDateTime.clock() - t1 + nl See "Time : " + oDateTime.time() + nl See "Date : " + oDateTime.date() + nl See oDateTime.TimeList() See "Month Name : " + oDateTime.TimeList()[4] cDate = oDateTime.date() see cDate + nl cDate = oDateTime.adddays(cDate,10) see cDate + nl cDate1 = oDateTime.date() see cDate1 + nl cDate2 = oDateTime.adddays(cDate1,10) see cDate2 + nl see "DiffDays = " + oDateTime.diffdays(cDate1,cDate2) + nl see "DiffDays = " + oDateTime.diffdays(cDate2,cDate1) + nl output: Test the datetime Class Methods Calculate performance 85 Time : 02:53:35 Date : 31/08/2016 Wed Wednesday Aug August 08/31/16 02:53:35 31 49.9. DateTime Class 424
  • 8. Ring Documentation, Release 1.10 02 02 244 08 53 AM 35 35 3 08/31/16 02:53:35 16 2016 Arab Standard Time % Month Name : August31/08/2016 10/09/2016 31/08/2016 10/09/2016 DiffDays = -10 DiffDays = 10 49.10 File Class Methods: 49.10. File Class 425
  • 9. Ring Documentation, Release 1.10 Method Description/Output read(cFileName) Read the ïŹle content write(cFileName,cStr) Write string to ïŹle dir(cFolderPath) Get the folder contents (ïŹles & sub folders) rename(cOld,cNew) Rename ïŹles using the Rename() function remove(cFileName) Delete a ïŹle using the Remove() function open(cFileName,cMode) Open a ïŹle using the Fopen() function close() Close ïŹle ïŹ‚ush() Flushes the output buffer of a stream reopen(cFileName,cMode) Open another ïŹle using the same ïŹle handle tempïŹle() Creates a temp. ïŹle (binary). seek(noffset,nwhence) Set the ïŹle position of the stream tell() Know the current ïŹle position of a stream rewind() Set the ïŹle position to the beginning of the ïŹle getpos() Get handle to the current ïŹle position setpos(poshandle) Set the current ïŹle position clearerr() Clear the EOF error and the error indicators of a stream eof() Test the end-of-ïŹle indicator error() Test the error indicator perror(cErrorMessage) Print error message to the stderr getc() Get the next character from the stream gets(nsize) Read new line from the stream putc(cchar) Write a character to the stream puts(cStr) Write a string to the stream ungetc(cchar) Push a character to the stream fread(nsize) Read data from a stream fwrite(cString) Write data to a stream exists(cFileName) Check if a ïŹle exists example: Load "stdlib.ring" ofile = new file See "Test the file Class Methods" + nl see ofile.read(filename()) see nl ofile.open(filename(),"r") see ofile.gets(100) + nl ofile.close() 49.11 System Class Methods: 49.11. System Class 426
  • 10. Ring Documentation, Release 1.10 Method Description/Output system() Execute system commands sysget() Get environment variables ismsdos() Check if the operating system is MSDOS or not iswindows() Check if the operating system is Windows or not iswindows64() Check if the operating system is Windows 64bit or not isunix() Check if the operating system is Unix or not ismacosx() Check if the operating system is macOS or not islinux() Check if the operating system is Linux or not isfreebsd() Check if the operating system is FreeBSD or not isandroid() Check if the operating system is Android or not windowsnl() Get the windows new line string sysargv() Get the command line arguments passed to the ring script ïŹlename() Get the active source ïŹle example: Load "stdlib.ring" oSystem = new System See "Test the System Class Methods" + nl oSystem.system("dir") see oSystem.sysget("path") + nl see oSystem.ismsdos() + nl see oSystem.iswindows() + nl see oSystem.iswindows64() + nl see oSystem.isunix() + nl see oSystem.ismacosx() + nl see oSystem.islinux() + nl see oSystem.isfreebsd() + nl see oSystem.isandroid() + nl see oSystem.windowsnl() + nl see oSystem.sysargv() + nl see oSystem.filename() + nl 49.12 Debug Class Methods: Method Description/Output eval(cCode) Execute code during the runtime from string. raise(cError) Raise an exception. assert(cCondition) Test condition before executing the code. example: Load "stdlib.ring" oDebug = new Debug See "Test the Debug Class Methods" + nl oDebug.eval("see 'Hello'+nl") try x = 10 oDebug.assert(x=11) 49.12. Debug Class 427