Skip to content
Snippets Groups Projects
Commit b8d25cba authored by Antti-Jussi Lakanen's avatar Antti-Jussi Lakanen :field_hockey:
Browse files

Luento 9

parent c9bdbf09
No related branches found
No related tags found
No related merge requests found
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
/// @author Antti-Jussi Lakanen
/// @version 2025
/// <summary>
/// Luento 9, debuggaus
/// </summary>
public class Debuggaus
{
/// <summary>
/// Harjoitellaan debuggausta
/// </summary>
public static void Main()
{
double pertinRahat = 100.0;
double korkokerroin = 1.07;
// Silmukan tarkoitus on tässä "simuloida" vuosien kulumista
// 10 vuotta tässä tapauksessa
for (int i = 0; i < 10; i++)
{
pertinRahat = Sijoitus(pertinRahat, korkokerroin);
pertinRahat = Kulutus(pertinRahat, 8.90);
Console.WriteLine($"Pertillä on nyt {pertinRahat} rahaa!");
}
}
/// <summary>
/// Pertti kuluttaa rahaa
/// </summary>
/// <param name="paaoma">Alkuperäinen pääoma</param>
/// <param name="kulutettavaSumma">Kulutettava summa</param>
/// <returns>Pääoma kulutuksen jälkeen</returns>
public static double Kulutus(double paaoma, double kulutettavaSumma)
{
return paaoma - kulutettavaSumma;
}
/// <summary>
/// Pertti sijoittaa rahaa
/// </summary>
/// <param name="paaoma">Alkuperäinen pääoma</param>
/// <param name="korkokerroin">Korkokerroin</param>
/// <returns>Pääoma sijoituksen jälkeen</returns>
public static double Sijoitus(double paaoma, double korkokerroin)
{
return paaoma * korkokerroin;
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silmukat", "Silmukat\Silmukat.csproj", "{A3BACC1D-C1D2-436C-8837-6B0E1D48B01A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debuggaus", "Debuggaus\Debuggaus.csproj", "{776196E9-CBE5-4A48-8847-FF1881C7FB09}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Taulukot", "Taulukot\Taulukot.csproj", "{DE710578-0700-4CB4-9230-5E8BCCE9BEED}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A3BACC1D-C1D2-436C-8837-6B0E1D48B01A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A3BACC1D-C1D2-436C-8837-6B0E1D48B01A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3BACC1D-C1D2-436C-8837-6B0E1D48B01A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3BACC1D-C1D2-436C-8837-6B0E1D48B01A}.Release|Any CPU.Build.0 = Release|Any CPU
{776196E9-CBE5-4A48-8847-FF1881C7FB09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{776196E9-CBE5-4A48-8847-FF1881C7FB09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{776196E9-CBE5-4A48-8847-FF1881C7FB09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{776196E9-CBE5-4A48-8847-FF1881C7FB09}.Release|Any CPU.Build.0 = Release|Any CPU
{DE710578-0700-4CB4-9230-5E8BCCE9BEED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE710578-0700-4CB4-9230-5E8BCCE9BEED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE710578-0700-4CB4-9230-5E8BCCE9BEED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE710578-0700-4CB4-9230-5E8BCCE9BEED}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
/// @author Antti-Jussi Lakanen
/// @version 2025
///
/// <summary>
/// Luento 9, while ja do-while
/// </summary>
public class Silmukat
{
/// <summary>
/// Silmukat
/// </summary>
public static void Main()
{
// Esimerkki 1
// while-silmukkarakenne soveltuu hyvin tilanteisiin,
// joissa toistojen määrä ei ole ennalta tiukasti kiinnitetty.
double kerrottava = 1.0;
int kierroksia = 0;
while (kerrottava <= 1000)
{
kerrottava = kerrottava * 1.1;
kierroksia++;
}
Console.WriteLine($"Luku on: {kerrottava}");
Console.WriteLine($"Tehtiin {kierroksia} kierrosta.");
// Esimerkki 2
// Hallittu ikuinen silmukka
string syote = "";
while (true)
{
Console.Write("Anna syöte > ");
syote = Console.ReadLine();
if (syote == "Jypeli") break;
}
// Esimerkki 3
// Hallittu ikuinen silmukka 2
// Tässä esimerkissä pyydetään käyttäjältä syöte ja
// lasketaan kuinka monta lukua käyttäjä syöttää ennen nollaa.
// Kun käyttäjä syöttää luvun 0, näytetään lukujen määrä.
int lukuja = 0;
int luku = 0;
while (true)
{
Console.Write("Anna luku > ");
luku = int.Parse(Console.ReadLine());
if (luku == 0) break;
lukuja++;
}
Console.WriteLine($"Syötit {lukuja} nollasta poikkeavaa lukua.");
// Esimerkki 4
// Lopuksi vielä do-while-rakenne.
// do-osa tehdään aina vähintän yhden kerran.
// Minkälaisiin tilanteisiin do-while-silmukka soveltuu?
// Tilanteisiin, joissa VARMASTI haluamme tehdä
// asian vähintään kerran, esimerkiksi salasanan kysyminen,
// sopivan paikan etsiminen pelikentältä vihulle,
// kun kentällä on esteitä
int laskuriDoWhile = 0;
do
{
Console.WriteLine(laskuriDoWhile);
laskuriDoWhile++;
} while (laskuriDoWhile < 0);
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
/// @author Antti-Jussi
/// @version 2025
/// <summary>
/// Luento 9, taulukot
/// </summary>
public class Taulukot
{
/// <summary>
/// Taulukot
/// </summary>
public static void Main()
{
// Alla useita "samaan asiaan"
// liittyviä muuttujia
int luento1 = 200;
int luento2 = 180;
int luento3 = 100;
int luento4 = 50;
int luento5 = 57;
// Lasketaan luennolla kävijöiden keskiarvo
int summa = luento1 + luento2 + luento3 + luento4 + luento5;
Console.WriteLine($"Luennoille osallistui yhteensä {summa} henkilöä.");
double keskiarvo = summa / 5.0;
Console.WriteLine($"Luenoilla osallistui keskimäärin {keskiarvo} opiskelijaa.");
// Luvut voidaan sijoittaa taulukkoon
int[] luentojenOsallistujat = new int[] { 200, 180, 100, 50, 57 };
int summa2 = luentojenOsallistujat[0]
+ luentojenOsallistujat[1]
+ luentojenOsallistujat[2]
+ luentojenOsallistujat[3]
+ luentojenOsallistujat[4];
double keskiarvo2 = summa2 * 1.0 / luentojenOsallistujat.Length;
Console.WriteLine($"Luenoilla osallistui keskimäärin {keskiarvo2} opiskelijaa.");
// Yritetään laittaa taulukkoon "kuudes" luento ja sille osallistujamäärä 20
// luentojenOsallistujat[5] = 20;
// Taulukon läpikäymiseen voidaan hyödyntää silmukkaa.
// Käymme läpi taulukkoa alkaen indeksistä 0, ja päättyen indeksiin "Length"
int summa3 = 0;
for (int i = 0; i < luentojenOsallistujat.Length; i++)
{
// Tulostetaan aluksi kullekin luennolle osallistujien lkm
// Console.WriteLine($"Paikassa {i} on luku: {luentojenOsallistujat[i]}");
summa3 += luentojenOsallistujat[i];
}
double keskiarvo3 = summa3 * 1.0 / luentojenOsallistujat.Length;
Console.WriteLine(summa3);
Console.WriteLine($"Luennoilla oli keskimäärin {keskiarvo3} opiskelijoita.");
string[] henkilot = { "Antti-Jussi", "Jonne", "Vesa", "Tuomo" };
for (int i = 0; i < henkilot.Length; i++)
{
Console.WriteLine(henkilot[i]);
}
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment