Tietojenkäsittelyopin laboratorio
Teknillinen korkeakoulu
Suomeksi

In English


T-93.210

Ohjelmoinnin peruskurssi T1

Etusivu

Yleistiedot Tehtävät Opiskelu Työkalut Muuta

Usein kysyttyjä kysymyksiä

Miten käynnistän Scheme-tulkin Emacsissa?

M-x run-scheme.

Miten saan bufferin Scheme-moodiin Emacsissa?

M-x scheme-mode.

Miten saan Emacsiin kaksi bufferia näkymään yhtä aikaa?

C-x 2 tai C-x 3.

Miten saan poistettua ylimääräisiä buffereita Emacsista?

C-x 0.

Miten saan vain yhden bufferin näkymään Emacsissa?

C-x 1.

Miten voin vaihtaa bufferia Schemessä?

C-x o.

Miten voin lähettää scheme-bufferista koodia tulkki-bufferiin Emacsissa?

C-c C-e lausekkeen alussa, C-x C-e lausekkeen lopussa, (load "tiedosto"), C-c C-r lähettää alueen.

Miksi ylläolevat eivät toimi?

Bufferin pitää olla Scheme-moodissa.

Miksei (load "tiedosto") toimi tulkissa?

Tallenna tiedosto aina ennen lataamista.

Onko Emacsissa sisennystoimintoa?

On, kunhan scheme-mode on päällä. Tab sisentää rivin jolla kursori on edellisen rivin mukaan, C-M-Q sisentää kursorin kohdalta alkavan lauseen.

Saan virheilmoituksen "procedure application: expected procedure, given: .."

Tarkasta ettei ohjelmassa ole liikaa sulkuja.

Miten scheme-roboon pääsee?

Scheme-robo toimii sähköpostilla (ks. kurssin kotisivu).

Miten saan viikkotehtävät?

Ne tulevat kaksi viikkoa ennen deadlinea, mutta ne voi myös tilata. (ks. kurssin kotisivu).

Onko väliä minkälaisia arvoja scheme-robolle palauttaa (tarkka/liukuluku)?

Yleensä käytetään tarkkoja arjova, ellei esimerkit tai tehtävänanto tarkenna asiaa.

Voinko lähettää robolle useita tehtäviä kerralla?

Voit.

Voinko lähettää robolle yhden tehtävän kerrallaan?

Voit. Poista kuitenkin ylimääräiset #tehtävän-numero rivit.

Mitä (restart-scheme!) tekee?

Se käynnistää tulkin uudestaan, jolloin tulkista poistuvat sinne sinun evaluoimasi lausekkeet.

Miten saan selville pistetilanteeni Scheme-robolta?

Katso kurssin kotisivulta.

Mitä tarkoittaa, kun ilmoitttaa kuitissa että 'Yhteensä 1/1 pistettä' vaikka olen palauttanut usemman tehtävän aikaisemmin hyväksytysti?

Robo ilmoittaa aina monta kyseisellä kerralla palautetuista tehtävistä oli oikein.

Pitääkö load-010-code -komennot pistää vastaukseen mukaan?

Ei saa laittaa, itse käyttää niitä.

Mitä tarkoittaam kun tehtävänannossa lukee "Älä palauta xxx-proceduuria"?

Scheme-robolla on oma versio xxx-proceduurista, joten sen määrittelyä ei saa palauttaa.

Voinko käyttää xxx-proceduuria, jos sitä ei saa palauttaa?

Voit käyttää sitä, mutta älä palauta sen määrittelyä.

Scheme-robo ei hyväksy vastaustani, vaan ilmoittaa: The code does not have the correct structure (internal definitions). Missä vika?

Ohjelmasi ei käytä tehtävänannon määrittelemää rakennetta.

Miksi robo ilmoittaa "Error loading the code into the interpreter."?

Tehtäväsi on syntaksiltaan luultavasti Schemen-vastainen, tarkista ettet käytä MzSchemen erikoisominaisuuksia (esim. tyhjä lista on '() schemessä).

Ovatko viikkotehtävät pakollisia?

Osa on, katso robon lähettämien tehtävien alkuosaa.

Ovatko viikottaiset tietokoneharjoitukset pakollisia?

Eivät.

Voinko sisentää C-tyyliin?

Et. Käytä SICP:n käyttämää sisennystyyliä.

Windowsin Dr. Scheme valittaa "define: body must have exactly one expression" tai "malformed define". Missä vika?

Aseta Language -> Configure Language -> R4RS+ tai MrEd.

Miksei (1 + 1) toimi?

Käytä prefix-notaatiota: (+ 1 1).

Miksei (+1 1) toimi?

Kokeile (+ 1 1).

Miten voin evaluoida monta lauseketta esim. if:n ehto-haarassa?

Käytä erikoismuotoa (begin exp1 .. expn)(ks. SICP).

Miksi MzScheme antaa virheilmoituksen define-values: illegal use (not at top-level) in: ...?

Tarkista että define-määrittelyt ovat ennen proceduurin runkoa.

Minkälaisen tyhjän listan määritelmän Scheme-robo hyväksyy?

'() (ei ()).

Pitääkö minun kirjoittaa omat proceduurit sqrt:ksi ja appendiksi?

Ei, ne ovat Schemen primitiiviproceduureja, joten ne ovat robossa ja tulkissa valmiina.

Mitä seuraavista kannattaa käyttää: nil, null vai '() ?

'():a, koska MzScheme, Scheme-robo ja Windowsin DrScheme ymmärtävät sen.



 

Tämän sivun ylläpidosta vastaa Seppo Törmä (email: seppo.torma@hut.fi).