avoin/avoin23

# avoin

Huom! TÄMÄ ON AVOIMEN YLIOPISTON SIVU.

Et voi suorittaa kurssia, ellet ole ilmoittautunut täällä.

Ohjelmointi 1, avoin 2023, luento 03

# L03

3. luento: ma 11.9.2023 klo 12:15-14:00: Yksinkertainen graafinen C#-ohjelma, aliohjelmat, dokumentointi

Suosituksia opiskeluun

  • kertausta kurssin sivujen rakenteesta
    • (PÄÄTE)OHJAUKSET (kurssilla n. 300, n. 200 ilmoittautui, 144 kävi!)
    • ks em lista luennon aiheista
    • jos menuista puuttuu jotakin, kerro niin lisätään
    • lue huolella!
    • laiskuus (lazy), ks demo1
    • muutosten tilaaminen
    • muista klikata punaiset pois!!!
    • Pisteet/eteneminen

Tällä sivulla kerrotaan, kuinka Ohjelmointi 1 -kurssi on suunniteltu suoritettavaksi "ihanteellisesti".

Varaa kurssille vähintään 15 tuntia/viikko.

Ohjelmointi 1 -kurssin viikkorytmi joka toistuu 11 viikon ajan
Ohjelmointi 1 -kurssin viikkorytmi joka toistuu 11 viikon ajan

Viikon ensimmäisellä luennolla jaetaan seuraavan viikon demotehtävät. Tehtäviin kannattaa tutustua jo samantien ja jopa yrittää niiden tekemistä ennen viikon jälkimmäistä luentoa. Demotehtävien omatoimiseen tekemiseen on varattu keskimäärin 4 tuntia per viikko, mutta varsinkin alkuvaiheessa niiden tekemiseen voi mennä enemmänkin aikaa. Lisäksi työmäärän yksilöllinen vaihtelu on huomattavan suurta. Varaa siis riittävästi aikaa opiskeluun.

Kurssin aikana sinun on tarkoitus oppia seuraavia asioita (osaamisen taso sovelletulla Bloomin asteikolla: 1=muistaa, 2=ymmärtää, 3=osaa soveltaa, 4=osaa analysoida, 5=osaa arvioida, 6=osaa luoda)

Siirrä alla osaamisesi (punainen pallukka) aina sitä vastaavalle kohdalle. Keltainen ruutu on tavoite johon tulisi päästä kurssin lopuksi. Ruksaa ensin muokkaa.

# goaltable2

Please to interact with this component.

Osattava asia123456
Rakenteisen ohjelmoinnin perusajatus o
Algoritminen ajattelu o
C#-kielen perusteet o
Peräkkäisyys o
Muuttujat o
Aliohjelmat ja funktiot o
Parametrin välitys o
Ehtolauseet o
Silmukat o
Taulukot o
Tiedostot ohjelmasta käytettynä o
Olioiden käyttö o
Yksikkötestit (TDD) o
Debuggerin käyttö o
Lukujärjestelmät, ASCII-koodi o
Rekursio o
Dokumentointi ja sen lukeminen o

Hello World

# helloeka
  • Ohjelman kääntäminen komentoriviltä

  • Hello World

      export PATH="/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/bin/Roslyn/:$PATH"
      csc.exe HelloWorld.cs
      .\HelloWorld.exe
  • Lumiukkko
    Ennen:

      csc Lumiukko.cs /reference:Jypeli.dll;Jypeli.Physics2d.dll;MonoGame.Framework.dll /platform:x86

    Nyt:

      dotnet run

Lumiukko

# lumiukko1
// Otetaan käyttöön Jyväskylän yliopiston Jypeli-kirjasto
using Jypeli;

/// @author  Vesa Lappalainen, Antti-Jussi Lakanen
/// @version 22.12.2011
///
///
/// <summary>
/// Luokka, jossa harjoitellaan piirtämistä lisäämällä ympyröitä ruudulle
/// </summary>
public class LumiukkoTyhma: PhysicsGame
{

    /// <summary>
    /// Piirretään oliot ja zoomataan kamera niin että kenttä näkyy kokonaan.
    /// </summary>
    public override void Begin()
    {
        Camera.ZoomToLevel();
        Level.Background.Color = Color.Black;

        {
            double x = -200;
            PhysicsObject p1 = new PhysicsObject(2 * 100.0, 2 * 100.0, Shape.Circle);
            p1.X = x;
            p1.Y = Level.Bottom + 200.0;
            this.Add(p1);

            PhysicsObject p2 = new PhysicsObject(2 * 50.0, 2 * 50.0, Shape.Circle);
            p2.X = x;
            p2.Y = p1.Y + 100 + 50;
            this.Add(p2);

            PhysicsObject p3 = new PhysicsObject(2 * 30.0, 2 * 30.0, Shape.Circle);
            p3.X = x;
            p3.Y = p2.Y + 50 + 30;
            this.Add(p3);
        }
        {
            double x = 200;
            PhysicsObject p1 = new PhysicsObject(2 * 100.0, 2 * 100.0, Shape.Circle);
            p1.X = x;
            p1.Y = Level.Bottom + 200.0;
            this.Add(p1);

            PhysicsObject p2 = new PhysicsObject(2 * 50.0, 2 * 50.0, Shape.Circle);
            p2.X = x;
            p2.Y = p1.Y + 100 + 50;
            this.Add(p2);

            PhysicsObject p3 = new PhysicsObject(2 * 30.0, 2 * 30.0, Shape.Circle);
            p3.X = x;
            p3.Y = p2.Y + 50 + 30;
            this.Add(p3);
        }

    }
}
  • komentoriviltä
  • Visual Studiolla
  • 2 lumiukkoa
# tekstia

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.