Skip to content

Questa libreria vuole essere un piccolo esempio pratico di uso del linguaggio TypeScript attraverso l'implementazione di una libreria sugli spazi vettoriali.

License

Notifications You must be signed in to change notification settings

JoeFerri/vettoriale

Repository files navigation

License: LGPL v3 GitHub issues Contributor Covenant

Il progetto è fondamentalmente chiuso, data la sua natura di mero esercizio di coding.

Vettoriale

Questa libreria vuole essere un piccolo esempio pratico di uso del linguaggio TypeScript attraverso l'implementazione di una libreria sugli spazi vettoriali. In particolare si vuole dare enfasi alle potenzialità dell'uso combinato della tipizzazione e del paradigma di programmazione ad oggetti attraverso l'uso dei Generics.

Si lasciano da implementare come esercizio:

coordinate.ts

  • class Coordinata<T extends iNumero>
  • class Coordinate<T extends iNumero>
  • class CoordinateCartesiane<T extends iNumero>
  • class CoordinatePolari<T extends iNumero>

spazio-vettoriale.ts

  • norma(): Reale
  • distanza(t: T): Reale
  • dipendenteDa(ts: T[]): true | false
  • indipendenteDa(ts: T[]): true | false

spazio-vettoriale.ts

  • function gaussJordan(matrice: Matrice) : Matrice

Indice

Come iniziare

Dipendenze

vedi file package.json per le versioni:

testing

@types/chai
@types/mocha
chai
mocha
nyc

compilazione

npm-run-all
del-cli
ts-node
typescript

Come installare

$ git clone https://github.com/JoeFerri/vettoriale
$ cd ../path/to/the/file
$ npm install del-cli --save-dev
$ npm install npm-run-all --save-dev
$ npm install typescript --save-dev
$ npm start

installare le dipendenze per il testing

$ cd ../path/to/the/file
$ npm i -D chai mocha nyc ts-node typescript
$ npm i -D @types/chai @types/mocha

avviare i test

$ npm t

avviare i test coverage

$ npm run coverage

File di esempio

File di esempio

Documentazione

Per la documentazione si vedano le note interne al codice sorgente.

Struttura del progetto

La struttura del progetto è autodeterminata dal meccanismo costruttivo di scrittura del codice, e nello specifico si basa su un'unica cartella lib contenente i sorgenti in TypeScript, e su un'unica cartella dist contenente i files JavaScript generati dalla compilazione.

gerarchia files

  • operatori.ts
    • numeri.ts
      • insieme.ts
        • coordinate.ts
          • spazio-vettoriale.ts
            • matrice.ts
              • gauss.ts

diagramma UML delle classi

link

Community

Code of conduct

Codice di condotta

Esempi su terminale

Gli esempi sono stati generati utilizzando la funzione printOnOneLine del modulo print.ts.

esempio 1.1 esempio 2 esempio 3 esempio 4

Licenza

Licenza generale

GNU Lesser General Public License v3.0 only

Copyright (C) 2021 Giuseppe Ferri

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

About

Questa libreria vuole essere un piccolo esempio pratico di uso del linguaggio TypeScript attraverso l'implementazione di una libreria sugli spazi vettoriali.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published