about summary refs log tree commit diff
path: root/usth/ICT2.1/labwork/2/README.md
blob: 25b43c420895e7694299a255e2a1e9d05dd59226 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Algorithms and Data Structures: Tutorial 2

This package contains the following files:

* construct.h
* construct.c
* Ex1.c
* Ex2.c

Where construct is an minimal implementation of Lisp construct with
`cons`, `car`, `cdr`, `length`, `nth` and `insert`.  It eases and simplifies
the implementation of linked lists (and trees and and graphs if we study them
later on).  All source files are as licensed under the Unlicense which states

> This is free and unencumbered software released into the public domain.
>
> Anyone is free to copy, modify, publish, use, compile, sell, or
> distribute this software, either in source code form or as a compiled
> binary, for any purpose, commercial or non-commercial, and by any
> means.
>
> In jurisdictions that recognize copyright laws, the author or authors
> of this software dedicate any and all copyright interest in the
> software to the public domain. We make this dedication for the benefit
> of the public at large and to the detriment of our heirs and
> successors. We intend this dedication to be an overt act of
> relinquishment in perpetuity of all present and future rights to this
> software under copyright law.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
> OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> OTHER DEALINGS IN THE SOFTWARE.
>
> For more information, please refer to <http://unlicense.org/>

The solution of the second exercise uses the math library and thus
it needs to by linked during compilation.  Both uses the `construct` library:

    cc construct.c Ex1.c -o Ex1
    cc construct.c Ex2.c -lm -o Ex2

Additionally, `Ex2` requires a value of `x` to be entered from stdin:

    ./Ex1
    echo 7 | ./Ex2