Giter Site home page Giter Site logo

matijapretnar / programiranje-1 Goto Github PK

View Code? Open in Web Editor NEW
5.0 6.0 223.0 30.12 MB

Gradiva s predavanj pri predmetu Programiranje 1, 2. letnik matematike, FMF

Home Page: https://matija.pretnar.info/programiranje-1/

HTML 1.72% TeX 4.47% Python 0.58% OCaml 3.58% Dockerfile 0.06% Standard ML 0.03% CSS 0.04% JavaScript 80.65% Assembly 0.06% Jupyter Notebook 8.81%

programiranje-1's Introduction

Programiranje 1

V tem repozitoriju se zbirajo gradiva za predmet Programiranje 1 v 2. letniku matematike na Fakulteti za matematiko in fiziko.

Povezave do prosojnic

Ker vam GitHub ob kliku na HTML datoteko namesto strani prikaže izvorno HTML kodo, je treba prosojnice pogledati s pomočjo strani http://htmlpreview.github.io. Tu so direktne povezave na prosojnice:

Namestitev programov

1. Namestitev urejevalnika Visual Studio Code

Namestite si urejevalnik Visual Studio Code in razširitev za OCaml. Razširitev deluje brez posebnih nastavitev za manjše datoteke, pri večjih projektih je potrebno nekaj nastavitev za pravilno prepoznavanje OCamla. Razširitev za Python bi morala biti že nameščena.

2. Klon predmetnega repozitorija

Vse vaje (skupaj z rešitvami) so objavljene na v tem repozitoriju. Najenostavnejše jih boste reševali, če si naredite svoj fork.

3. Namestitev Pythona in OCamla

Za namestitev imate več možnosti: direktno na računalniku, z uporabo dockerja ali prek kakšnega od upravljalcev paketov. Če nič od tega ne dela, lahko OCaml uporabljate tudi iz spletnega brskalnika.

A) Direktna namestitev

Python
  • Namestite si Python in poskrbite, da je dodan v pot (Path)
OCaml

Pozor: Obvezno si namestite OCaml 4.XX.XX in ne nameščajte različice 5.XX.XX

  • Linux: Namestite OCaml primeren za vaš sistem.
  • MacOS: Namestite OCaml primeren za vaš sistem.
  • Windows: Priporočamo, da uporabljate namestitev OCamla s pomočjo Dockerja v naslednjem razdelku. OCaml lahko na windowse namestite tudi direktno, vendar je ta možnost vedno manj podprta. [Za Windows uporabnike je na voljo preprostejša namestitev za OCaml 4.02, ki jo uporabljajo tudi šolski računalniki.] Novejša različica OCaml 4.12 zahteva rahlo naprednejšo uporabo taskov v VSCode.

Taska za zagon Python in OCaml datotek sta na voljo na repozitoriju predmeta.

Pri namestitvi na Windowsih brez Dockerja je potrebno nekoliko popraviti taske za OCaml:

"label": "OCaml",  
"type": "shell",  
"command":
 "C:\\OCaml64\\usr\\local\\bin\\ocaml-env.exe exec -- C:\\OCaml64\\home\\???\\.opam\\4.12.0+mingw64c\\bin\\ocaml.exe -init \\\"${file}\\\""

kjer ??? nadomestite z uporabniškim imenom, s katerim ste prijavljeni na računalnik. Pri uporabniškem imenu pobrišete vse presledke in neangleške znake nadomestite z angleškimi verzijami (č -> c), npr. namesto Katja Berčič, uporabite KatjaBercic. Prav tako pri uporabi 32-bitne namestitve zamenjajte vse 64 z 32.

Preverite, da ste namestili pravilno verzijo, saj namestitveni program posodabljajo. Odprite C:\OCaml64\home\???\.opam\ in v task namesto 4.12.0+mingw64c prilepite pravilno verzijo.

B) Namestitev z uporabo Dockerja

Namesto da si Python in OCaml namestite direktno na računalnik lahko uporabite docker kontainerje, ki poskrbijo, da so namestitve ločene. Slaba stran te namestitve je dejstvo, da (trenutno) porabi nekoliko več prostora na disku (prostor, ki ga potrebuje docker + 4.5 GB)

Pri namestitvi sledite navodilom iz https://code.visualstudio.com/docs/devcontainers/containers, kamor se lahko obrnete, če pride do kakšnih napak.

Za uporabo klonirajte repozitorij predmeta in zaženite ukaz (ctrl + shift + P) Dev Containers: Rebuild and Reopen in Container.

Prvi zagon traja nekaj časa, saj mora naložiti celotno sliko, vsi naslednji zagoni pa so hitri.

Ko se projekt odpre, lahko normalno uporabljate taske, ki so na voljo na repozitoriju predmeta.

C) Namestitev s pomočjo upravljalcev paketov

  • Če docker in Mingw ne delujeta, lahko uporabite Diskuv
  • Če vas zanima delo na večjih ocaml projektih povezanih z medmrežjem, si lahko ocaml namestite prek ogrodja esy

D) Uporaba v spletnem brskalniku

Če vam nobena od zgornjih možnosti ne dela, lahko uporabite enega od spletnih vmesnikov:

4. Preverjanje namestitve

Odprite poljubno OCaml datoteko (recimo to) in poženite ukaz Run Tasks in izberite task OCaml.

V konzolo vpišite fakulteta 10;; in preverite, če je rezultat pravilen.

Pogoste težave in odgovori

  • Ukaz pip javi da pip ne obstaja, čeprav je python delujoč in dodan v PATH.

    Problem je lahko v tem, da se pip ni pravilno namestil. Na windowsih lahko vidite, da v Scripts ni nobenih datotek. Gre za znano težavo pri nameščanju pythona. Trenutno je to najlažje odpraviti tako, da namestite starejšo verzijo pythona (3.6 ali nižje).

  • Terminal pri zagonu taskov na windowsu javi, da ne najde datoteke.

    Nekatere verzije windowsa zahtevajo drugačno obliko zapisa za zagon. V obeh taskih trojne znake \\\ zamenjajte z enojnimi \. Del taska tako postane \"${file}\".

  • Pri nameščanju OCaml-a dobim napako "Cygwin instalation is incomplete".

    Izklopite vse antivirusne programe, odstranite obstoječo namestitev OCamla in namestitveni program za OCaml zaženite kot administrator.

  • Ob zagonu ocaml programa se nič ne zgodi, ali pa dobim napako "Error: Unbound module Stdlib"

    Verjetno je prišlo do napake pri namestitvi cygwina. Možna rešitev je, da ročno nastavite sistemsko spremenljivko "OCAMLLIB" na mesto namestitve ocamla: "C:\OCaml64\home\UPORABNISKO_IME.opam\4.12.0+mingw64c\lib\ocaml" (Kjer pravilno vpišete svoje uporabniško ime in verzijo ocamla).

  • Na linuxu dobim vse možne težave

    Preverite, da imate nameščeno novejšo verzijo opama (vsaj 2.X)

  • Na računalniku ne znam nastavit sistemskih spremenljivk

    https://superuser.com/a/1528432

Zapiski

Viri zapiskov se nahajajo v mapi zapiski. Za izdelavo HTML datotek si morate namestiti paket jupyter-book. Nato pa pokličete

jupyter-book build zapiski

Če imate ustrezne pravice, lahko HTML najenostavneje objavite kar prek GitHub pages tako, da si namestite še paket ghp-import in poženete

ghp-import --no-jekyll --no-history --force --push zapiski/_build/html

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.