2019-03-31 11:00:21 +00:00
|
|
|
|
---
|
|
|
|
|
title: アルゴリズム
|
|
|
|
|
author: kazu634
|
|
|
|
|
date: 2008-04-24
|
|
|
|
|
wordtwit_post_info:
|
|
|
|
|
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:3925;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
|
|
|
|
|
categories:
|
|
|
|
|
- つれづれ
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
<div class="section">
|
|
|
|
|
<p>
|
|
|
|
|
研修で簡単なアルゴリズムを勉強している。まだ前半なのでフローチャートを書いているだけ。これだとちょっとふぬけてしまうので、勉強したフローチャートをCで書いてみた。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
値の交換
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<pre class="syntax-highlight">
|
|
|
|
|
<span class="synPreProc">#include </span><span class="synConstant"><stdio.h></span>
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>);
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>)
|
|
|
|
|
{
|
|
|
|
|
<span class="synType">int</span> x, y, z;
|
|
|
|
|
x = <span class="synConstant">10</span>;
|
|
|
|
|
y = <span class="synConstant">15</span>;
|
|
|
|
|
printf (<span class="synConstant">"Before Swap:</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
|
|
|
|
printf (<span class="synConstant">"x: </span><span class="synSpecial">%2d</span><span class="synConstant"> </span><span class="synSpecial">\n</span><span class="synConstant">"</span>, x);
|
|
|
|
|
printf (<span class="synConstant">"y: </span><span class="synSpecial">%2d</span><span class="synConstant"> </span><span class="synSpecial">\n</span><span class="synConstant">"</span>, y);
|
|
|
|
|
z = x;
|
|
|
|
|
x = y;
|
|
|
|
|
y = z;
|
|
|
|
|
printf (<span class="synConstant">"</span><span class="synSpecial">\n</span><span class="synConstant">After Swap:</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
|
|
|
|
printf (<span class="synConstant">"x: </span><span class="synSpecial">%2d</span><span class="synConstant"> </span><span class="synSpecial">\n</span><span class="synConstant">"</span>, x);
|
|
|
|
|
printf (<span class="synConstant">"y: </span><span class="synSpecial">%2d</span><span class="synConstant"> </span><span class="synSpecial">\n</span><span class="synConstant">"</span>, y);
|
|
|
|
|
}
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
三つの値の中から大きな数値を取り出す
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<pre class="syntax-highlight">
|
|
|
|
|
<span class="synPreProc">#include </span><span class="synConstant"><stdio.h></span>
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>);
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>)
|
|
|
|
|
{
|
|
|
|
|
<span class="synType">int</span> x, y, z;
|
|
|
|
|
<span class="synType">int</span> max;
|
|
|
|
|
x = <span class="synConstant">13</span>;
|
|
|
|
|
y = <span class="synConstant">45</span>;
|
|
|
|
|
z = <span class="synConstant">30</span>;
|
|
|
|
|
max = x;
|
|
|
|
|
<span class="synStatement">if</span> (max <= y) {
|
|
|
|
|
max = y;
|
|
|
|
|
}
|
|
|
|
|
<span class="synStatement">if</span> (max <= z) {
|
|
|
|
|
max = z;
|
|
|
|
|
}
|
|
|
|
|
printf (<span class="synConstant">"max: </span><span class="synSpecial">%2d\n</span><span class="synConstant">"</span>, max);
|
|
|
|
|
}
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
1~3までの和を求める
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<pre class="syntax-highlight">
|
|
|
|
|
<span class="synPreProc">#include </span><span class="synConstant"><stdio.h></span>
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>);
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>)
|
|
|
|
|
{
|
|
|
|
|
<span class="synType">int</span> i, sum;
|
|
|
|
|
sum = <span class="synConstant"></span>;
|
|
|
|
|
<span class="synStatement">for</span> (i = <span class="synConstant"></span>;i <= <span class="synConstant">3</span>;i++) {
|
|
|
|
|
sum = sum + i;
|
|
|
|
|
}
|
|
|
|
|
printf (<span class="synConstant">"sum is: </span><span class="synSpecial">%2d\n</span><span class="synConstant">"</span>, sum);
|
|
|
|
|
}
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
配列の要素をすべて足す
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
冗長だ。配列の要素数を取得できる命令はこれから自習するから、その時にまた振り返ろう。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre class="syntax-highlight">
|
|
|
|
|
<span class="synPreProc">#include </span><span class="synConstant"><stdio.h></span>
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>);
|
|
|
|
|
<span class="synType">int</span> main(<span class="synType">void</span>)
|
|
|
|
|
{
|
|
|
|
|
<span class="synType">int</span> i[<span class="synConstant">5</span>], sum, j;
|
|
|
|
|
i[<span class="synConstant"></span>] = <span class="synConstant">10</span>;
|
|
|
|
|
i[<span class="synConstant">1</span>] = <span class="synConstant">20</span>;
|
|
|
|
|
i[<span class="synConstant">2</span>] = <span class="synConstant">30</span>;
|
|
|
|
|
i[<span class="synConstant">3</span>] = <span class="synConstant">40</span>;
|
|
|
|
|
i[<span class="synConstant">4</span>] = <span class="synConstant">50</span>;
|
|
|
|
|
sum = <span class="synConstant"></span>;
|
|
|
|
|
<span class="synStatement">for</span> (j = <span class="synConstant"></span>;j <= <span class="synConstant">4</span>; j++) {
|
|
|
|
|
sum = sum + i[j];
|
|
|
|
|
}
|
|
|
|
|
printf (<span class="synConstant">"</span><span class="synSpecial">%2d\n</span><span class="synConstant">"</span>, sum);
|
|
|
|
|
}
|
|
|
|
|
</pre>
|
2019-04-02 16:06:15 +00:00
|
|
|
|
</div>
|