Ohjelmointi 1, kesä 2024, luento04

Olin tällä sivulla luennon aikana Agorassa

Please to interact with this component.

.
Olin tällä sivulla luennon aikana Zoomissa

Please to interact with this component.

.
Olin tällä sivulla videon katsomisen aikana

Please to interact with this component.

.
Katson sivua etukäteen

Please to interact with this component.

.

# runner
# L04

4. luento: ti 12.9.2023 klo 14:15-16:00: Aliohjelmat, muuttujat

# Plugin1

Kurssista

Kun tehtävien vastaukset on julkistettu (esim demopalautuksissa), pitää jokaisen korjata omat vastauksensa niin, että ainakin Tauno ja perustehtävät 1-6 tuottavat vähintään 1p kukin. Eli demon palautuksen jälkeen pitää demosivun näyttää 7 p.

Siis esim. ennen demo 2 tehtävien aloittamista pitää demoista 1 tulla mainittu pistemäärä.

Oikeastaan 90% kurssin sisällöstä on jo noissa kahdessa:

  • tämän päivän lumiukko joka piirretään PiirraPallo avulla

Demo 1, tiedoston tekeminen

  • d1 mallivastaukset

  • teht2.bash

    #! /bin/bash
    printf "Harjoittelen tekstitiedoston tekemistä!\n%.0s" {1..100}
    printf "%.s-"   {1..80}; printf "\n"
    printf "%02d\n" {1..40}
    printf "%80s\n" " " | tr " " -
# teht2cs

Lauseita avuksi

        for (int i=1; i<=100; i++)
        Console.Write("-");
        Console.WriteLine();
        Console.WriteLine("{0,2:00}", i);
    public static void Main()
    {
        for (int i = 1; i <= 1; i++)
            System.Console.WriteLine("Harjoittelen tekstitiedoston tekemistä!");

        TulostaViiva(80);

        for (int i = 1; i <= 40; i++)
            System.Console.WriteLine("{0,2:00}", i);

        TulostaViiva(4);
    }


    public static void TulostaViiva(int pituus)
    {
        for (int i = 1; i <= pituus; i++)
            System.Console.Write("-");
        System.Console.WriteLine();
    }
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;

/// @author vesal
/// @version 15.9.2020
/// <summary>
/// Esimerkki tulostamisesta
/// </summary>
public class Teht2
{
    /// <summary>
    /// Tulostetaan demo 1 tehtävän 2 tarvittavat jutut
    /// </summary>
    public static void Main()
    {
        for (int i = 1; i <= 4; i++)
        {
            Console.WriteLine("Harjoittelen tekstitiedoston tekemistä!");
        }
        TulostaViiva(80);
        for (int i = 1; i <= 12; i++)
        {
            Console.WriteLine($"{i,2:00}");
        }
        TulostaViiva(80);
    }


    public static void TulostaViiva(int pituus)
    {
        for (int i = 1; i <= pituus; i++)
        {
            Console.Write("-");
        }
        Console.WriteLine();
    }
}
# teht2csb

LumiukkoAli

  • LumiukkoAli - lumiukko jossa pallokin piirretään aliohjelmalla
  • dokumentaatiokommentti C#:issa alkaa ///, vrt tavallinen //
  • Dokumentaatio Katso myös alla olevassa ohjelmassa linkki Dokumentaatio ja lisää aliohjelmiin kunnon dokumentaatio ja katso uudelleen.
  • Jypeli dokumentaatio
# lumiukko1
    /// <summary>
    /// Aliohjelma piirtää lumiukon
    /// annettuun paikkaan.
    /// </summary>
    /// <param name="peli">Peli, johon lumiukko tehdään.</param>
    /// <param name="x">Lumiukon alimman pallon x-koordinaatti.</param>
    /// <param name="y">Lumiukon alimman pallon y-koordinaatti.</param>
    /// <param name="r1">Lumiukon alimman pallon säde.</param>
    public static void PiirraLumiukko(PhysicsGame peli, double x=0, double y=0, double r1=100.0)
    {
        PhysicsObject p1, p2, p3;
        double r2 = r1*0.5;
        double r3 = r1*0.3;

        p1 = PiirraPallo(peli, x, y, r1);
        p2 = PiirraPallo(peli, x, p1.Y + r1 + r2, r2);
        p3 = PiirraPallo(peli, x, p2.Y + r2 + r3, r3);

        p2.Color = Color.Red;
    }


    public static PhysicsObject PiirraPallo(PhysicsGame peli, double x, double y, double r)
    {
        PhysicsObject p = new PhysicsObject(2 * r, 2 * r, Shape.Circle);
        p.X = x;
        p.Y = y;
        peli.Add(p);
        return p;
    }
        Level.CreateBorders();
        Gravity = new Vector(0, -200);  // ei toimi TIMissä koska TIM ottaa yhden kuvan

Huom! Demotehtävässä muuten sama, mutta ei tarvita PiirraLumiukko!

Binäärilukuja

# intn

# binaaribitti
Reikäkortti
Reikäkortti
# binluvut

Ohjelmia

  • M: 7. Muuttujat
  • yksinkertainen esimerkki funktioaliohjelmasta joka laskee ja PALAUTTAA keskiarvon
# helloeka
    public static void Main()
    {
        double a = 4;
        double b = 5;
        double ka;
        ka = Keskiarvo(a, b);
        Console.WriteLine(ka);
    }


    public static double Keskiarvo(double a, double b)
    {
        double k = (a + b) / 2;
        return k;
    }

Muuttujat

tyyppi nimi;

# intn2
# muuttujanSijoitus
# muuttujanAlustusEsittelyssa
# intiinDouble
# doubleenInt
# intylivuoto

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