avoin/avoin23
Huom! TÄMÄ ON AVOIMEN YLIOPISTON SIVU.
Et voi suorittaa kurssia, ellet ole ilmoittautunut täällä.
Ohjelmointi 1, avoin 2023, luento 03
3. luento: ma 11.9.2023 klo 12:15-14:00: Yksinkertainen graafinen C#-ohjelma, aliohjelmat, dokumentointi
- osallistu tekemään luentovideoista hakemisto
- Kurssin postilistat ja niiden arkistot
- Kurssin keskustelualue
- faktaa vai fiktiota?
- M: 6. Aliohjelmat
- Lumiukot tyhmästi
- Lumiukko aliohjelmien avulla ja dokumentoituna.
- Lumiukot-koodin dokumentaatio
- M: 2.4 Kommentointi
- Dokumentaatiokommentit tästä eteenpäin oltava jokaisessa luokassa ja jokaisessa aliohjelmassa.
- Esimerkki doxygenin tuottamasta Jypeli-kirjaston dokumentaatiosta.
- M: 7.5 Muuttujien näkyvyys
- Muuttujat.cs - esimerkki muuttujista
- Muuttujat.java - sama esimerkki Javalla
- Matka.cs
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 3. luento videona Osa 1 MP4 alkuperäinen
- luentoseinä
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.
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.
Please
Osattava asia | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
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
-
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
// 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
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.