Skip to content
Snippets Groups Projects
Commit fbb36751 authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files

live11 alku

parent 0757a83b
No related branches found
No related tags found
No related merge requests found
using System;
using System.Text;
/// @author Vesa Lappalainen
/// @version 10.10.2011
///
/// <summary>
/// Esimerkkejä matriisista
/// </summary>
public class Matriisit
{
/// <summary>
/// Esimerkkejä matriiseista
/// </summary>
/// <param name="args">ei käytössä</param>
public static void Main(string[] args)
{
// int[] luvut = int[3];
int[] luvut = { 3, 5, 1, 9 };
int[,] matriisi1 = new int[4, 5];
int[,] matriisi = {
{1,2,3},
{4,5,6},
{7,8,9},
{10,11,12}
};
Tulosta(matriisi);
Console.WriteLine("Dimensio: " + matriisi.Rank);
Console.WriteLine("Rivejä: " + matriisi.GetLength(0));
Console.WriteLine("Sarakkeita: " + matriisi.GetLength(1));
Console.WriteLine("Paikassa 2,1: " + matriisi[2, 1]);
int rivi = MiltaRiviltaLoytyy(matriisi, 8);
matriisi1[3, 2] = 99;
Tulosta(matriisi1);
}
// TÄYDENNÄ
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
using System;
/// @author Vesa Lappalainen
/// @version 14.10.2012
/// <summary>
/// Ohjelmassa harjoitellaan taulukko funktioiden käyttöä.
/// </summary>
public class SuurinJaPienin
{
/// <summary>
/// Kysytään käyttäjältä lukuja ja tulostetaan
/// niistä suurin ja pienin.
/// </summary>
/// <param name="args"></param>
public static void Main(string[] args)
{
const int KOKO = 3;
int[] luvut = new int[KOKO];
/*
Console.Write("Anna 1. kokonaisluku >");
luvut[0] = int.Parse(Console.ReadLine());
Console.Write("Anna 2. kokonaisluku >");
luvut[1] = int.Parse(Console.ReadLine());
Console.Write("Anna 3. kokonaisluku >");
luvut[2] = int.Parse(Console.ReadLine());
*/
for (int i = 0; i < luvut.Length; i++)
{
Console.Write($"Anna {i+1}. kokonaisluku >");
luvut[i] = int.Parse(Console.ReadLine());
}
int suurin = Suurin3(luvut);
int pienin = Pienin3(luvut);
Console.WriteLine("Suurin luku on " + suurin);
Console.WriteLine("Pienin luku on " + pienin);
}
/// <summary>
/// Aliohjelma tutkii, mikä annetuista
/// kokonaisluvuista on pienin,
/// ja palauttaa sen.
/// </summary>
/// <param name="luvut">taulukko jossa on luvut</param>
/// <returns>Pienin luku</returns>
/// <example>
/// <pre name="test">
/// Pienin(new int[]{1, 2 ,3}) === 1;
/// Pienin(new int[]{1, 3 ,2}) === 1;
/// Pienin(new int[]{2, 1, 3}) === 1;
/// Pienin(new int[]{2, 3, 1}) === 1;
/// Pienin(new int[]{3, 1 ,2}) === 1;
/// Pienin(new int[]{3, 2 ,1}) === 1;
/// Pienin(new int[]{3, 3, 2}) === 2;
/// Pienin(new int[]{3, 3, 3}) === 3;
/// Pienin(new int[]{1, 2}) === 1;
/// Pienin(new int[]{2}) === 2;
/// Pienin(new int[]{}) === int.MaxValue;
/// </pre>
/// </example>
public static int Pienin(int[] luvut)
{
int pienin = int.MaxValue;
foreach (int luku in luvut) // voi tehdä millä silmukalla vaan
if (luku < pienin) pienin = luku;
return pienin;
}
/// <summary>
/// Aliohjelma tutkii, mikä annetuista
/// kokonaisluvuista on suurin,
/// ja palauttaa sen.
/// </summary>
/// <param name="luvut">taulukko jossa on luvut</param>
/// <returns>Suurin luku</returns>
/// <example>
/// <pre name="test">
/// Suurin(new int[]{1, 2 ,3}) === 3;
/// Suurin(new int[]{1, 3 ,2}) === 3;
/// Suurin(new int[]{2, 1, 3}) === 3;
/// Suurin(new int[]{2, 3, 1}) === 3;
/// Suurin(new int[]{3, 1 ,2}) === 3;
/// Suurin(new int[]{3, 2 ,1}) === 3;
/// Suurin(new int[]{4, 2, 4}) === 4;
/// Suurin(new int[]{1, 1, 1}) === 1;
/// Suurin(new int[]{1, 2 }) === 2;
/// Suurin(new int[]{1 }) === 1;
/// Suurin(new int[]{ }) === 0;
/// </pre>
/// </example>
public static int Suurin(int[] luvut)
{
if (luvut.Length == 0) return 0;
int suurin = luvut[0];
for (int i = 1; i < luvut.Length; i++) // voisi olla foreach
{
if (luvut[i] > suurin) suurin = luvut[i];
}
return suurin;
}
/// <summary>
/// Aliohjelma tutkii, mikä annetuista
/// kolmesta kokonaisluvuista on pienin,
/// ja palauttaa sen.
/// </summary>
/// <param name="luvut">3 paikkainen taulukko jossa on luvut</param>
/// <returns>Pienin luku kolmesta</returns>
/// <example>
/// <pre name="test">
/// Pienin3(new int[]{1, 2 ,3}) === 1;
/// Pienin3(new int[]{1, 3 ,2}) === 1;
/// Pienin3(new int[]{2, 1, 3}) === 1;
/// Pienin3(new int[]{2, 3, 1}) === 1;
/// Pienin3(new int[]{3, 1 ,2}) === 1;
/// Pienin3(new int[]{3, 2 ,1}) === 1;
/// Pienin3(new int[]{3, 3, 2}) === 2;
/// Pienin3(new int[]{3, 3, 3}) === 3;
/// </pre>
/// </example>
public static int Pienin3(int[] luvut)
{
int pienin = int.MaxValue; // saadaan "symmetrinen" kaikkien indeksien suhteen.
if (luvut[0] < pienin) pienin = luvut[0];
if (luvut[1] < pienin) pienin = luvut[1];
if (luvut[2] < pienin) pienin = luvut[2];
return pienin;
}
/// <summary>
/// Aliohjelma tutkii, mikä annetuista
/// kolmesta kokonaisluvuista on suurin,
/// ja palauttaa sen.
/// </summary>
/// <param name="luvut">3 paikkainen taulukko jossa on luvut</param>
/// <returns>Suurin luku kolmesta</returns>
/// <example>
/// <pre name="test">
/// Suurin3(new int[]{1, 2 ,3}) === 3;
/// Suurin3(new int[]{1, 3 ,2}) === 3;
/// Suurin3(new int[]{2, 1, 3}) === 3;
/// Suurin3(new int[]{2, 3, 1}) === 3;
/// Suurin3(new int[]{3, 1 ,2}) === 3;
/// Suurin3(new int[]{3, 2 ,1}) === 3;
/// Suurin3(new int[]{4, 2, 4}) === 4;
/// Suurin3(new int[]{1, 1, 1}) === 1;
/// Suurin3(new int[]{1, 1 }) === 1; #THROWS IndexOutOfRangeException
/// "ABC" =R= "A.C";
/// </pre>
/// </example>
public static int Suurin3(int[] luvut)
{
int suurin = luvut[0];
if (luvut[1] > suurin) suurin = luvut[1];
if (luvut[2] > suurin) suurin = luvut[2];
return suurin;
}
/// <summary>
/// Etsitään taulukon suurimman luvun paikka.
/// </summary>
/// <param name="t">taulukko josta suurinta etsitään</param>
/// <returns>suurimman paikka. -1 jos ei löydy</returns>
/// <example>
/// <pre name="test">
/// int[] luvut = {2,5,4,3};
/// SuurimmanPaikka(luvut) === 1;
/// SuurimmanPaikka(new int[]{3,2,1}) === 0;
/// SuurimmanPaikka(new int[]{3,4,1}) === 1;
/// SuurimmanPaikka(new int[]{3,2,5}) === 2;
/// SuurimmanPaikka(new int[]{3}) === 0;
/// 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++) // ei voi tehdä foreach
{
int luku = t[i];
if (luku > suurin)
{
suurin = luku;
paikka = i;
}
}
return paikka;
}
/// <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>
/// Täyttää taulukun valitulla luvulla
/// </summary>
/// <param name="luvut">taulukko joka täytetään</param>
/// <param name="milla">millä luvulla täytetään</param>
/// @example
/// <pre name="test">
/// int[] luvut = {1,2,3,4};
/// Tayta(luvut,5);
/// String.Join(" ",luvut) === "5 5 5 5";
/// </pre>
/// @endexample
public static void Tayta(int[] luvut, int milla)
{
for (int i = 0; i < luvut.Length; i++) // ei voi tehdä foreach
{
luvut[i] = milla;
}
}
/// <summary>
/// Etsitään taulukosta mistä kohti pyydetty luku löytyy
/// </summary>
/// <param name="luvut">taulukko josta etsitään</param>
/// <param name="etsittava">etsittävä luku</param>
/// <returns>paikan jossa luku oli, jos monta niin palautetaan
/// ekan paikka. Jos ei löydy niin palautetaan -1
/// </returns>
///<example>
/// <pre name="test">
/// int[] luvut = {1,2,3,4,3,2,0};
/// Etsi(luvut,5) === -1;
/// Etsi(luvut,4) === 3;
/// Etsi(luvut,1) === 0;
/// Etsi(luvut,0) === 6;
/// Etsi(luvut,2) === 1;
/// Etsi(new int[]{},1) === -1;
/// </pre>
/// </example>
public static int Etsi(int[] luvut, int etsittava)
{
for (int i = 0; i < luvut.Length; i++)
{
int luku = luvut[i];
if (luku == etsittava)
return i;
}
return -1;
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
......@@ -2,6 +2,10 @@
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
......@@ -12,5 +16,13 @@ Global
{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
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