2018年04月21日
《その367》2行2列の行列計算アプリ
2行2列の行列計算
入力された文字列を数値に変換する手順が、あまりキレイではありませんが・・・。
int::Parse を使おうとするとエラーになってしまうので、まわりくどいコードになってしまいました。
MainPage.xaml の コントロール配置図です。
以下は、MainPage.xaml のコードです。
自動で作成されるコードなので、小さいフォントにしました (^^;)
確認が必要な場合は、コピペしてください m(_ _ )m
<Page
x:Class="App4.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App4"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="White" Margin="-10,10,10,-10">
<TextBox x:Name="a11" HorizontalAlignment="Left" Margin="200,150,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="a21" HorizontalAlignment="Left" Margin="200,200,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="a12" HorizontalAlignment="Left" Margin="300,150,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="a22" HorizontalAlignment="Left" Margin="300,200,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="b11" HorizontalAlignment="Left" Margin="450,150,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="b21" HorizontalAlignment="Left" Margin="450,200,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="b12" HorizontalAlignment="Left" Margin="550,150,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="b22" HorizontalAlignment="Left" Margin="550,200,0,0" Text="" VerticalAlignment="Top" PlaceholderText="整数値"/>
<TextBox x:Name="c11" HorizontalAlignment="Left" Margin="740,150,0,0" Text="" VerticalAlignment="Top" IsReadOnly="True" Background="#33ECE559"/>
<TextBox x:Name="c21" HorizontalAlignment="Left" Margin="740,200,0,0" Text="" VerticalAlignment="Top" IsReadOnly="True" Background="#33ECE559"/>
<TextBox x:Name="c12" HorizontalAlignment="Left" Margin="840,150,0,0" Text="" VerticalAlignment="Top" IsReadOnly="True" Background="#33ECE559"/>
<TextBox x:Name="c22" HorizontalAlignment="Left" Margin="840,200,0,0" Text="" VerticalAlignment="Top" IsReadOnly="True" Background="#33ECE559"/>
<TextBlock HorizontalAlignment="Left" Margin="165,136,0,0" Text="(" TextWrapping="Wrap" VerticalAlignment="Top" Height="108" Width="32" FontSize="72"/>
<TextBlock HorizontalAlignment="Left" Margin="415,136,0,0" Text="(" TextWrapping="Wrap" VerticalAlignment="Top" Height="108" Width="32" FontSize="72"/>
<TextBlock HorizontalAlignment="Left" Margin="705,136,0,0" Text="(" TextWrapping="Wrap" VerticalAlignment="Top" Height="108" Width="32" FontSize="72"/>
<TextBlock HorizontalAlignment="Left" Margin="920,136,0,0" Text=")" TextWrapping="Wrap" VerticalAlignment="Top" Height="108" Width="32" FontSize="72"/>
<TextBlock HorizontalAlignment="Left" Margin="630,136,0,0" Text=")=" TextWrapping="Wrap" VerticalAlignment="Top" Height="108" Width="87" FontSize="72"/>
<TextBlock HorizontalAlignment="Left" Margin="380,136,0,0" Text=")" TextWrapping="Wrap" VerticalAlignment="Top" Height="108" Width="32" FontSize="72"/>
<Button Content="計算" HorizontalAlignment="Left" Margin="740,72,0,0" VerticalAlignment="Top" Width="89" FontSize="24" Click="Button_Click"/>
</Grid>
</Page>
以下は、ボタンクリック時に作動するプログラム Button_Click関数です。
//
// MainPage.xaml.cpp
// MainPage クラスの実装。
//
#include "pch.h"
#include "MainPage.xaml.h"
using namespace App4;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
MainPage::MainPage()
{
InitializeComponent();
}
void App4::MainPage::
Button_Click(Platform::Object^ sender,
Windows::UI::Xaml::RoutedEventArgs^ e)
{
String^ s11 = a11->Text; std::wstring p11(s11->Data());
const wchar_t* v11 = p11.c_str(); int x11 = _wtoi(v11);
String^ s12 = a12->Text; std::wstring p12(s12->Data());
const wchar_t* v12 = p12.c_str(); int x12 = _wtoi(v12);
String^ s21 = a21->Text; std::wstring p21(s21->Data());
const wchar_t* v21 = p21.c_str(); int x21 = _wtoi(v21);
String^ s22 = a22->Text; std::wstring p22(s22->Data());
const wchar_t* v22 = p22.c_str(); int x22 = _wtoi(v22);
String^ t11 = b11->Text; std::wstring q11(t11->Data());
const wchar_t* w11 = q11.c_str(); int y11 = _wtoi(w11);
String^ t12 = b12->Text; std::wstring q12(t12->Data());
const wchar_t* w12 = q12.c_str(); int y12 = _wtoi(w12);
String^ t21 = b21->Text; std::wstring q21(t21->Data());
const wchar_t* w21 = q21.c_str(); int y21 = _wtoi(w21);
String^ t22 = b22->Text; std::wstring q22(t22->Data());
const wchar_t* w22 = q22.c_str(); int y22 = _wtoi(w22);
int z11 = x11 * y11 + x12 * y21;
int z12 = x11 * y12 + x12 * y22;
int z21 = x21 * y11 + x22 * y21;
int z22 = x21 * y12 + x22 * y22;
c11->Text = z11.ToString();
c12->Text = z12.ToString();
c21->Text = z21.ToString();
c22->Text = z22.ToString();
}
アプリをスタートして、数値を入力した状態です。
計算ボタンを押して、結果が表示されました。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7575472
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック