Skip to content
Snippets Groups Projects
Commit c14625bd authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files
parents dbaf8b58 b0636600
No related branches found
No related tags found
No related merge requests found
Showing
with 666 additions and 24 deletions
using System;
using System.Text;
/// @author Vesa Lappalainen
/// @version 10.10.2011
......@@ -12,11 +11,10 @@ public class Matriisit
/// <summary>
/// Esimerkkejä matriiseista
/// </summary>
/// <param name="args">ei käytössä</param>
public static void Main(string[] args)
public static void Main()
{
// int[] luvut = int[3];
int[] luvut = { 3, 5, 1, 9 };
// int[] luvut = new int[]{ 3, 5, 1, 9 };
int[,] matriisi1 = new int[4, 5];
......@@ -35,12 +33,58 @@ public class Matriisit
Console.WriteLine("Paikassa 2,1: " + matriisi[2, 1]);
int rivi = MiltaRiviltaLoytyy(matriisi, 8);
Console.WriteLine($"Löytyi riviltä {rivi}");
matriisi1[3, 2] = 99;
Tulosta(matriisi1);
}
// TÄYDENNÄ
/// <summary>
/// Etsitään miltä riviltä löytyy etsittävä luku
/// </summary>
/// <param name="mat">Matriisi josta etsitään</param>
/// <param name="etsittava">luku jota etsitään</param>
/// <returns>rivi, jolta luku löytyy. Jos usealla rivillä, palautetaan 1. indeksi.
/// jos ei löydy lainkaan, palautetaan -1.</returns>
/// <example>
/// <pre name="test">
/// int[,] m = {{2,4,1},{9,2,0},{5,6,1},{0,12,3}};
/// MiltaRiviltaLoytyy(m,1) === 0;
/// MiltaRiviltaLoytyy(m,0) === 1;
/// MiltaRiviltaLoytyy(m,12) === 3;
/// MiltaRiviltaLoytyy(m,11) === -1;
/// </pre>
/// </example>
public static int MiltaRiviltaLoytyy(int[,] mat, int etsittava)
{
int riveja = mat.GetLength(0);
int sarkkeita = mat.GetLength(1);
for (int iy = 0; iy < riveja; iy++)
{
for (int ix = 0; ix < sarkkeita; ix++)
{
int luku = mat[iy, ix];
if (luku == etsittava) return iy;
}
}
return -1;
}
/// <summary>
/// Tulostetaan matriisin alkiot riveittäin.
/// Kukin alkio vie kahden merkin kokoisen tilan.
/// </summary>
/// <param name="mat">tulostettava matriisi</param>
public static void Tulosta(int[,] mat)
{
}
}
\ No newline at end of file
using System;
using NUnit.Framework;
using static Matriisit;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestMatriisit
{
[Test]
public void TestMiltaRiviltaLoytyy52()
{
int[,] m = {{2,4,1},{9,2,0},{5,6,1},{0,12,3}};
Assert.AreEqual( 0, MiltaRiviltaLoytyy(m,1) , "in method MiltaRiviltaLoytyy, line 54");
Assert.AreEqual( 1, MiltaRiviltaLoytyy(m,0) , "in method MiltaRiviltaLoytyy, line 55");
Assert.AreEqual( 3, MiltaRiviltaLoytyy(m,12) , "in method MiltaRiviltaLoytyy, line 56");
Assert.AreEqual( -1, MiltaRiviltaLoytyy(m,11) , "in method MiltaRiviltaLoytyy, line 57");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Matriisit\Matriisit.csproj"/>
</ItemGroup>
</Project>
using System;
using NUnit.Framework;
using static SuurinJaPienin;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestSuurinJaPienin
{
[Test]
public void TestPienin51()
{
Assert.AreEqual( 1, Pienin(new int[]{1, 2 ,3}) , "in method Pienin, line 52");
Assert.AreEqual( 1, Pienin(new int[]{1, 3 ,2}) , "in method Pienin, line 53");
Assert.AreEqual( 1, Pienin(new int[]{2, 1, 3}) , "in method Pienin, line 54");
Assert.AreEqual( 1, Pienin(new int[]{2, 3, 1}) , "in method Pienin, line 55");
Assert.AreEqual( 1, Pienin(new int[]{3, 1 ,2}) , "in method Pienin, line 56");
Assert.AreEqual( 1, Pienin(new int[]{3, 2 ,1}) , "in method Pienin, line 57");
Assert.AreEqual( 2, Pienin(new int[]{3, 3, 2}) , "in method Pienin, line 58");
Assert.AreEqual( 3, Pienin(new int[]{3, 3, 3}) , "in method Pienin, line 59");
Assert.AreEqual( 1, Pienin(new int[]{1, 2}) , "in method Pienin, line 60");
Assert.AreEqual( 2, Pienin(new int[]{2}) , "in method Pienin, line 61");
Assert.AreEqual( int.MaxValue, Pienin(new int[]{}) , "in method Pienin, line 62");
}
[Test]
public void TestSuurin82()
{
Assert.AreEqual( 3, Suurin(new int[]{1, 2 ,3}) , "in method Suurin, line 83");
Assert.AreEqual( 3, Suurin(new int[]{1, 3 ,2}) , "in method Suurin, line 84");
Assert.AreEqual( 3, Suurin(new int[]{2, 1, 3}) , "in method Suurin, line 85");
Assert.AreEqual( 3, Suurin(new int[]{2, 3, 1}) , "in method Suurin, line 86");
Assert.AreEqual( 3, Suurin(new int[]{3, 1 ,2}) , "in method Suurin, line 87");
Assert.AreEqual( 3, Suurin(new int[]{3, 2 ,1}) , "in method Suurin, line 88");
Assert.AreEqual( 4, Suurin(new int[]{4, 2, 4}) , "in method Suurin, line 89");
Assert.AreEqual( 1, Suurin(new int[]{1, 1, 1}) , "in method Suurin, line 90");
Assert.AreEqual( 2, Suurin(new int[]{1, 2 }) , "in method Suurin, line 91");
Assert.AreEqual( 1, Suurin(new int[]{1 }) , "in method Suurin, line 92");
Assert.AreEqual( 0, Suurin(new int[]{ }) , "in method Suurin, line 93");
}
[Test]
public void TestPienin3116()
{
Assert.AreEqual( 1, Pienin3(new int[]{1, 2 ,3}) , "in method Pienin3, line 117");
Assert.AreEqual( 1, Pienin3(new int[]{1, 3 ,2}) , "in method Pienin3, line 118");
Assert.AreEqual( 1, Pienin3(new int[]{2, 1, 3}) , "in method Pienin3, line 119");
Assert.AreEqual( 1, Pienin3(new int[]{2, 3, 1}) , "in method Pienin3, line 120");
Assert.AreEqual( 1, Pienin3(new int[]{3, 1 ,2}) , "in method Pienin3, line 121");
Assert.AreEqual( 1, Pienin3(new int[]{3, 2 ,1}) , "in method Pienin3, line 122");
Assert.AreEqual( 2, Pienin3(new int[]{3, 3, 2}) , "in method Pienin3, line 123");
Assert.AreEqual( 3, Pienin3(new int[]{3, 3, 3}) , "in method Pienin3, line 124");
}
[Test]
public void TestSuurin3145()
{
Assert.AreEqual( 3, Suurin3(new int[]{1, 2 ,3}) , "in method Suurin3, line 146");
Assert.AreEqual( 3, Suurin3(new int[]{1, 3 ,2}) , "in method Suurin3, line 147");
Assert.AreEqual( 3, Suurin3(new int[]{2, 1, 3}) , "in method Suurin3, line 148");
Assert.AreEqual( 3, Suurin3(new int[]{2, 3, 1}) , "in method Suurin3, line 149");
Assert.AreEqual( 3, Suurin3(new int[]{3, 1 ,2}) , "in method Suurin3, line 150");
Assert.AreEqual( 3, Suurin3(new int[]{3, 2 ,1}) , "in method Suurin3, line 151");
Assert.AreEqual( 4, Suurin3(new int[]{4, 2, 4}) , "in method Suurin3, line 152");
Assert.AreEqual( 1, Suurin3(new int[]{1, 1, 1}) , "in method Suurin3, line 153");
try
{
Assert.AreEqual( 1, Suurin3(new int[]{1, 1 }) , "in method Suurin3, line 154");
Assert.Fail("Did not throw IndexOutOfRangeException in method Suurin3 on line 153");
}
catch (IndexOutOfRangeException)
{
}
Assert.IsTrue( System.Text.RegularExpressions.Regex.Matches(("ABC" ).ToString(), ( "A.C").ToString()).Count > 0, "in method Suurin3, line 155 with actual value [" + "ABC" + "]" );
}
[Test]
public void TestSuurimmanPaikka173()
{
int[] luvut = {2,5,4,3};
Assert.AreEqual( 1, SuurimmanPaikka(luvut) , "in method SuurimmanPaikka, line 175");
Assert.AreEqual( 0, SuurimmanPaikka(new int[]{3,2,1}) , "in method SuurimmanPaikka, line 176");
Assert.AreEqual( 1, SuurimmanPaikka(new int[]{3,4,1}) , "in method SuurimmanPaikka, line 177");
Assert.AreEqual( 2, SuurimmanPaikka(new int[]{3,2,5}) , "in method SuurimmanPaikka, line 178");
Assert.AreEqual( 0, SuurimmanPaikka(new int[]{3}) , "in method SuurimmanPaikka, line 179");
Assert.AreEqual( -1, SuurimmanPaikka(new int[]{}) , "in method SuurimmanPaikka, line 180");
}
[Test]
public void TestVaihdaSuurin206()
{
int[] luvut = {2,5,4,3};
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 4 3", String.Join(" ",luvut) , "in method VaihdaSuurin, line 209");
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 1 3", String.Join(" ",luvut) , "in method VaihdaSuurin, line 211");
VaihdaSuurin(luvut,9);
Assert.AreEqual( "2 1 1 9", String.Join(" ",luvut) , "in method VaihdaSuurin, line 213");
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 1 1", String.Join(" ",luvut) , "in method VaihdaSuurin, line 215");
VaihdaSuurin(luvut,-1);
Assert.AreEqual( "-1 1 1 1", String.Join(" ",luvut) , "in method VaihdaSuurin, line 217");
luvut = new int[]{5};
VaihdaSuurin(luvut,2);
Assert.AreEqual( "2", String.Join(" ",luvut) , "in method VaihdaSuurin, line 220");
luvut = new int[0];
VaihdaSuurin(luvut,2);
Assert.AreEqual( "", String.Join(" ",luvut) , "in method VaihdaSuurin, line 223");
}
[Test]
public void TestTayta240()
{
int[] luvut = {1,2,3,4};
Tayta(luvut,5);
Assert.AreEqual( "5 5 5 5", String.Join(" ",luvut) , "in method Tayta, line 243");
}
[Test]
public void TestEtsi264()
{
int[] luvut = {1,2,3,4,3,2,0};
Assert.AreEqual( -1, Etsi(luvut,5) , "in method Etsi, line 266");
Assert.AreEqual( 3, Etsi(luvut,4) , "in method Etsi, line 267");
Assert.AreEqual( 0, Etsi(luvut,1) , "in method Etsi, line 268");
Assert.AreEqual( 6, Etsi(luvut,0) , "in method Etsi, line 269");
Assert.AreEqual( 1, Etsi(luvut,2) , "in method Etsi, line 270");
Assert.AreEqual( -1, Etsi(new int[]{},1) , "in method Etsi, line 271");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SuurinJaPienin\SuurinJaPienin.csproj"/>
</ItemGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Olioviitteet", "Olioviitteet\Olioviitteet.csproj", "{58B3B602-33E5-470A-B67B-30A99D6A88D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Matriisit", "Matriisit\Matriisit.csproj", "{EE1FB694-64F7-4F2F-9087-870D228728C9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SuurinJaPienin", "SuurinJaPienin\SuurinJaPienin.csproj", "{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MatriisitTest", "MatriisitTest\MatriisitTest.csproj", "{C0EDB357-E7AB-4E33-A5B8-412957F962D0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SuurinJaPieninTest", "SuurinJaPieninTest\SuurinJaPieninTest.csproj", "{4FCEB08A-F7AD-41E1-9B77-32259806AB58}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Release|Any CPU.Build.0 = Release|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Release|Any CPU.Build.0 = Release|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Release|Any CPU.Build.0 = Release|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Release|Any CPU.Build.0 = Release|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Release|Any CPU.Build.0 = Release|Any CPU
{C0EDB357-E7AB-4E33-A5B8-412957F962D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C0EDB357-E7AB-4E33-A5B8-412957F962D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C0EDB357-E7AB-4E33-A5B8-412957F962D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C0EDB357-E7AB-4E33-A5B8-412957F962D0}.Release|Any CPU.Build.0 = Release|Any CPU
{4FCEB08A-F7AD-41E1-9B77-32259806AB58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4FCEB08A-F7AD-41E1-9B77-32259806AB58}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FCEB08A-F7AD-41E1-9B77-32259806AB58}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4FCEB08A-F7AD-41E1-9B77-32259806AB58}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Olioviitteet", "Olioviitteet\Olioviitteet.csproj", "{58B3B602-33E5-470A-B67B-30A99D6A88D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Matriisit", "Matriisit\Matriisit.csproj", "{EE1FB694-64F7-4F2F-9087-870D228728C9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SuurinJaPienin", "SuurinJaPienin\SuurinJaPienin.csproj", "{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58B3B602-33E5-470A-B67B-30A99D6A88D1}.Release|Any CPU.Build.0 = Release|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE1FB694-64F7-4F2F-9087-870D228728C9}.Release|Any CPU.Build.0 = Release|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72C0ED96-17F6-407A-9DD9-B93189BAA7FE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/.idea.live12.iml
/projectSettingsUpdater.xml
/modules.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>
\ No newline at end of file
using System;
/// @author Vesa Lappalainen
/// @version 12.10.2012
/// <summary>
/// Esimerkkjä aliohjelmien kutsumisesta
/// </summary>
public class Kutsuminen
{
/// <summary>
/// Kutsutaan aliohjelmia
/// </summary>
/// <param name="args">ei käytössä</param>
public static void Main(string[] args)
{
int a = 4, b = 5;
var iso = Suurempi(a, b);
Console.WriteLine(iso);
iso = Suurempi(iso + 1, 7 / 3 + 5 / 2);
Console.WriteLine(iso);
int[] luvut = { 0, 6, 4, 9 };
int[] m = luvut;
luvut[2] = 4;
luvut[1] = 6;
m[3] = iso + 3;
VaihdaSuurin(luvut, 5);
Console.WriteLine(String.Join(" ", luvut));
}
/// <summary>
/// Palautetaan kahdesta luvusta suurempi
/// </summary>
/// <param name="luku1">eka luku</param>
/// <param name="luku2">toinen luku</param>
/// <returns>suurempi luvuista</returns>
/// <example>
/// <pre name="test">
/// Suurempi(3,4) === 4;
/// Suurempi(-3,4) === 4;
/// Suurempi(-3,-4) === -3;
/// Suurempi(2,2) === 2;
/// </pre>
/// </example>
public static int Suurempi(int luku1, int luku2)
{
if (luku1 >= luku2) return luku1;
return luku2;
}
/// <summary>
/// Vaihdetaan taulukon suurin alkio halutuksi.
/// </summary>
/// <param name="t">taulukko josta suurinta etsitään ja missä suurin vaihdetaan</param>
/// <param name="korvaavaArvo">suurimman alkion uusi arvo</param>
/// <example>
/// <pre name="test">
/// int[] luvut = {2,5,4,3};
/// VaihdaSuurin(luvut,1);
/// String.Join(" ",luvut) === "2 1 4 3";
/// VaihdaSuurin(luvut,1);
/// String.Join(" ",luvut) === "2 1 1 3";
/// VaihdaSuurin(luvut,9);
/// String.Join(" ",luvut) === "2 1 1 9";
/// VaihdaSuurin(luvut,1);
/// String.Join(" ",luvut) === "2 1 1 1";
/// VaihdaSuurin(luvut,-1);
/// String.Join(" ",luvut) === "-1 1 1 1";
/// luvut = new int[]{5};
/// VaihdaSuurin(luvut,2);
/// String.Join(" ",luvut) === "2";
/// luvut = new int[0];
/// VaihdaSuurin(luvut,2);
/// String.Join(" ",luvut) === "";
/// </pre>
/// </example>
public static void VaihdaSuurin(int[] t, int korvaavaArvo)
{
int paikka = SuurimmanPaikka(t);
if (paikka < 0) return;
t[paikka] = korvaavaArvo;
}
/// <summary>
/// Etsii taulukon suurimman luvun paikan. Mikäli monta
/// yhtäsuurta, palautetaan ensimmäisen paikka. Mikäli
/// suurinta ei löydy (tyhjä taulukko), palautetaan -1
/// </summary>
/// <param name="t">tutkittava taulukko</param>
/// <returns>suurimman alkion paikan indeksi tai -1</returns>
/// <example>
/// <pre name="test">
/// SuurimmanPaikka(new int[]{1,2,5,3}) === 2;
/// SuurimmanPaikka(new int[]{7,2,5,3}) === 0;
/// SuurimmanPaikka(new int[]{1,2,5,8}) === 3;
/// SuurimmanPaikka(new int[]{}) === -1;
/// </pre>
/// </example>
public static int SuurimmanPaikka(int[] t)
{
int paikka = -1;
int suurin = int.MinValue;
for (int i = 0; i < t.Length; i++)
{
int luku = t[i];
if (luku > suurin)
{
suurin = luku;
paikka = i;
}
}
return paikka;
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
// ReSharper disable all
using System;
using NUnit.Framework;
using static Kutsuminen;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestKutsuminen
{
[Test]
public void TestSuurempi44()
{
Assert.AreEqual( 4, Suurempi(3,4) , "in method Suurempi, line 45");
Assert.AreEqual( 4, Suurempi(-3,4) , "in method Suurempi, line 46");
Assert.AreEqual( -3, Suurempi(-3,-4) , "in method Suurempi, line 47");
Assert.AreEqual( 2, Suurempi(2,2) , "in method Suurempi, line 48");
}
[Test]
public void TestVaihdaSuurin64()
{
int[] luvut = {2,5,4,3};
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 4 3", String.Join(" ",luvut) , "in method VaihdaSuurin, line 67");
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 1 3", String.Join(" ",luvut) , "in method VaihdaSuurin, line 69");
VaihdaSuurin(luvut,9);
Assert.AreEqual( "2 1 1 9", String.Join(" ",luvut) , "in method VaihdaSuurin, line 71");
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 1 1", String.Join(" ",luvut) , "in method VaihdaSuurin, line 73");
VaihdaSuurin(luvut,-1);
Assert.AreEqual( "-1 1 1 1", String.Join(" ",luvut) , "in method VaihdaSuurin, line 75");
luvut = new int[]{5};
VaihdaSuurin(luvut,2);
Assert.AreEqual( "2", String.Join(" ",luvut) , "in method VaihdaSuurin, line 78");
luvut = new int[0];
VaihdaSuurin(luvut,2);
Assert.AreEqual( "", String.Join(" ",luvut) , "in method VaihdaSuurin, line 81");
}
[Test]
public void TestSuurimmanPaikka100()
{
Assert.AreEqual( 2, SuurimmanPaikka(new int[]{1,2,5,3}) , "in method SuurimmanPaikka, line 101");
Assert.AreEqual( 0, SuurimmanPaikka(new int[]{7,2,5,3}) , "in method SuurimmanPaikka, line 102");
Assert.AreEqual( 3, SuurimmanPaikka(new int[]{1,2,5,8}) , "in method SuurimmanPaikka, line 103");
Assert.AreEqual( -1, SuurimmanPaikka(new int[]{}) , "in method SuurimmanPaikka, line 104");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Kutsuminen\Kutsuminen.csproj"/>
</ItemGroup>
</Project>
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
/// @author Omanimi
/// @version 10.10.2023
/// <summary>
///
/// </summary>
public class Matriisit
{
/// <summary>
///
/// </summary>
public static void Main()
{
int[,] mat = {
{ 5, 6, 2, 7, 9},
{11,34,23, 0,42},
{99, 6, 4,23,23},
{19,11, 5,11,47},
{47, 9, 5,18,19},
{33,24,54,67,88}
};
int lkm = MonellakoRivilla(mat, 11);
Console.WriteLine(lkm);
}
/// <summary>
/// Lasketaan monellako rivillä taulukossa esiintyy etsittävä luku.
/// Jos luku on useasti samalla rivillä, rivi lasketaan yhden kerran.
/// </summary>
/// <param name="mat">matriisi, josta lukua etsitään</param>
/// <param name="etsittava">luku jota etsitään</param>
/// <returns>monellako rivillä etsittävä oli</returns>
/// <example>
/// <pre name="test">
/// int[,] t = {{2, 1, 2}, {3, 4, 2}, {1, 0, 1}, {1, 8, 9}};
/// MonellakoRivilla(t, 2) === 2;
/// MonellakoRivilla(t, 5) === 0;
/// MonellakoRivilla(t, 0) === 1;
/// MonellakoRivilla(t, 1) === 3;
/// MonellakoRivilla(new int[0, 0], 1) === 0;
/// </pre>
/// </example>
public static int MonellakoRivilla(int[,] mat, int etsittava)
{
int riveja = mat.GetLength(0);
int sarakkeita = mat.GetLength(1);
int lkm = 0;
for (int iy = 0; iy < riveja; iy++)
{
for (int ix = 0; ix < sarakkeita; ix++)
{
int luku = mat[iy, ix];
if (luku == etsittava)
{
lkm++;
break;
}
}
}
return lkm;
return 0;
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
// ReSharper disable all
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using NUnit.Framework;
using static Matriisit;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestMatriisit
{
[Test]
public void TestMonellakoRivilla40()
{
int[,] t = {{2, 1, 2}, {3, 4, 2}, {1, 0, 1}, {1, 8, 9}};
Assert.AreEqual( 2, MonellakoRivilla(t, 2) , "in method MonellakoRivilla, line 42");
Assert.AreEqual( 0, MonellakoRivilla(t, 5) , "in method MonellakoRivilla, line 43");
Assert.AreEqual( 1, MonellakoRivilla(t, 0) , "in method MonellakoRivilla, line 44");
Assert.AreEqual( 3, MonellakoRivilla(t, 1) , "in method MonellakoRivilla, line 45");
Assert.AreEqual( 0, MonellakoRivilla(new int[0, 0], 1) , "in method MonellakoRivilla, line 46");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Matriisit\Matriisit.csproj"/>
</ItemGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kutsuminen", "Kutsuminen\Kutsuminen.csproj", "{5635397F-1736-45C5-B505-2165D4D953A5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KutsuminenTest", "KutsuminenTest\KutsuminenTest.csproj", "{721E3A06-DA2D-4572-A815-BC11B5CBC6B1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Matriisit", "Matriisit\Matriisit.csproj", "{135140AB-BD3A-45F9-A901-E348DC387772}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MatriisitTest", "MatriisitTest\MatriisitTest.csproj", "{3A72F04C-1638-4AA8-9829-5CE45127ABAD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5635397F-1736-45C5-B505-2165D4D953A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5635397F-1736-45C5-B505-2165D4D953A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5635397F-1736-45C5-B505-2165D4D953A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5635397F-1736-45C5-B505-2165D4D953A5}.Release|Any CPU.Build.0 = Release|Any CPU
{721E3A06-DA2D-4572-A815-BC11B5CBC6B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{721E3A06-DA2D-4572-A815-BC11B5CBC6B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{721E3A06-DA2D-4572-A815-BC11B5CBC6B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{721E3A06-DA2D-4572-A815-BC11B5CBC6B1}.Release|Any CPU.Build.0 = Release|Any CPU
{135140AB-BD3A-45F9-A901-E348DC387772}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{135140AB-BD3A-45F9-A901-E348DC387772}.Debug|Any CPU.Build.0 = Debug|Any CPU
{135140AB-BD3A-45F9-A901-E348DC387772}.Release|Any CPU.ActiveCfg = Release|Any CPU
{135140AB-BD3A-45F9-A901-E348DC387772}.Release|Any CPU.Build.0 = Release|Any CPU
{3A72F04C-1638-4AA8-9829-5CE45127ABAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A72F04C-1638-4AA8-9829-5CE45127ABAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A72F04C-1638-4AA8-9829-5CE45127ABAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A72F04C-1638-4AA8-9829-5CE45127ABAD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
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