User:Ujjavalverma10: Difference between revisions
No edit summary |
No edit summary |
||
| Line 10: | Line 10: | ||
here <i>length</i> can be the length of array 'a' ie: len(a) if <b>a</b> is already initialized or it can be a numerical value if <b>a</b> is being initialized right now. | here <i>length</i> can be the length of array 'a' ie: len(a) if <b>a</b> is already initialized or it can be a numerical value if <b>a</b> is being initialized right now. | ||
example: | example: | ||
<source> | <source lang="py"> | ||
>>> a = [2]*6; | >>> a = [2]*6; | ||
>>> a | >>> a | ||
| Line 16: | Line 16: | ||
</source> | </source> | ||
=2. Assigning a value to a partial range of elements of an array= | =2. Assigning a value to a partial range of elements of an array= | ||
<source> | <source lang="py"> | ||
for i in range(0,5): | for i in range(0,5): | ||
a[i] = 1; | a[i] = 1; | ||
| Line 22: | Line 22: | ||
This will produce the desired effect. | This will produce the desired effect. | ||
example: | example: | ||
<source> | <source lang="py"> | ||
a = [4]*10 | a = [4]*10 | ||
for i in range(0,4): | for i in range(0,4): | ||
Revision as of 02:23, 8 April 2011
A Proposed solution for issue 459
Issue 459 demands a way to assign values to a range of array elements. It is in fact true that Python can't address range of array elements. This is not covered by the syntax of the language and supporting this feature would require a patch for Python language itself (not ASCEND). I propose an alternate way to assign values to a range of array elements.
1. Assigning a value to all elements of an array
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn
here length can be the length of array 'a' ie: len(a) if a is already initialized or it can be a numerical value if a is being initialized right now. example:
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn
2. Assigning a value to a partial range of elements of an array
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn
This will produce the desired effect. example:
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn
output : [5, 5, 5, 5, 4, 4, 4, 4, 4, 4]
A simple model for FRUSTUM OF A CONE
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone
REQUIRE "system.a4l"; MODEL frustrum_of_cone; (* variables *) R, h, r, l, metal_density, curved_area, total_area, vol, metal_mass IS_A solver_var; (* specifications *) R = 30.0; r = 10.0; h = 50.0; metal_density = 9.60; (* equations *) l = sqrt(h^2 + (R-r)^2); vol = 3.1416*h*(R^2 + r^2 + r*R)/3; curved_area = 3.1416*l*(R+r); total_area = 3.1416*(R^2 + r^2) + curved_area; metal_mass = metal_density*vol; METHODS METHOD specify; FIX R; FIX r; FIX h; FIX metal_density; END specify; METHOD values; R := 30.0 ; r := 10.0; h := 50.0; metal_density := 9.60 ; END values; METHOD setup; RUN specify; RUN values; END setup; END frustrum_of_cone;
This MODEL is quite straight forward to write. ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using IS_A statements.
Partitioned Model for FRUSTUM OF A CONE
Following is a modified version of the Frustum MODEL which breaks down a frustum into two cones : A top cone cut out from a bottom cone.
REQUIRE "atoms.a4l"; MODEL cone; (* variables *) R, h, l IS_A distance; curved_area IS_A area; vol IS_A volume; (* equations *) l = sqrt(h^2 + R^2); vol = 3.1416*h*R^2/3; curved_area = 3.1416*l*R; METHODS METHOD specify; FIX R; FIX h; END specify; END cone; MODEL partitioned_frustrum_of_cone; (* variables *) R, r, h IS_A distance; l IS_A distance; curved_area, total_area IS_A area; vol IS_A volume; metal_density IS_A mass_density; metal_mass IS_A mass; (* parts *) top IS_A cone; bottom IS_A cone; (* specifications *) R = 30.0 {cm}; r = 10.0 {cm}; h = 50.0 {cm}; metal_density = 9.60 {g/cm^3}; (* equations *) top.R = r; top.h = r*h/(R-r); bottom.R = R; bottom.h = h + top.h; l = bottom.l - top.l; vol = bottom.vol - top.vol; curved_area = bottom.curved_area - top.curved_area; total_area = 3.1416*(R^2 + r^2) + curved_area; metal_mass = metal_density*vol; METHODS METHOD specify; FIX R; FIX r; FIX h; FIX metal_density; END specify; METHOD values; R := 30.0 {cm}; r := 10.0 {cm}; h := 50.0 {cm}; metal_density := 9.60 {g/cm^3}; END values; METHOD setup; RUN specify; RUN values; END setup; END partitioned_frustrum_of_cone;