専門学校62日目(情報工学)7月9日(火)

1~3時限
情報リテラシー実習 情報利活用 表計算Excel2021対応

先週からExcelの授業に入りました。
また先日のWordのテストの結果も返されました。
セクション区切り(区切って最後のページだけ用紙サイズを変える)、段落を改めない改行(箇条書き中の改行で使う)、タブとリーダ(タブの設定で先頭を揃える)の3点が誤答が多かったようです。
Wordは知識がなくてもそれなりの見た目で作ることができるが、編集の仕方を知っておいたほうがいいでしょう。またタイピングの速度で作業時間に大きな差が出たようです。

授業ではWordはもうやりませんが、2年生になるとAIの授業でWordを触るらしいです。

今日はテキストLesson3を学びます。
相対参照と絶対参照
相対参照は前回学んだ参照で、一つのセルに入れた数式をオートフィルでコピーすると、コピー先のセルが参照するセルを自動で変えて上手く計算を表示できるものでした。
エラーインジケーター、エラー値
#VALUEといった表示のこと。エクセルがエラーと版出している状態。エラーを解除することもできる。エラー値にはいろいろあり、
#####はオーバーフロー、#VALUEは参照や引数が正しくない、など。
2.72E+09などはオーバーフローの一種でセルの大きさよりもずっと長い桁の数字になっていることを表す。

固定して参照したいセルがあるときは絶対参照を使って参照を正しくすることができる。
絶対参照は、固定したいセルにカーソルがある状態でF4キーを押すと絶対参照になる。さらにF4を押すと復号参照になる。

構成比を求める際は、ある項目/全体の数、で求める。全体の数がない場合はSUM関数で求めてから参照する。

ROUND関数、ROUNDUP関数、ROUNDDOWN関数は書式は同じで、使い分けること。練習問題やテストでも出ます。

何でもROUND関数を使う人が出てくるが、小数点以下の表示を増やす、減らすボタンでも四捨五入している。関数でやるか、ボタンでやるかで計算したときの結果が異なってくる。ボタンで四捨五入していると見えていないだけで保持されている情報に計算を適用し、関数で四捨五入するほうは四捨五入でそれ以下の値が切り捨てられている。

IF関数とIFS関数
IF関数は条件が一つの時に使います。論理式と値が真の場合、値が偽の場合の3つの引数が必要です。
あるセルの値が50以上だった時に〇を、50未満の時に×を表示したいとする。
それで表示したいセルをクリックしてから数式タブの論理グループにあるIF関数を選びます。
論理式にはセル参照することができるので、セルをクリックして参照すると、B5とかA3とかのセル番号が出ます。それに続いて>=50と打ち込み、50以上を表します。値が真の場合の時に、"〇"と入力します。ダブルクォーテーションはタブキーを押すと自動で入力されます。文字列の場合に必要なだけで、数値の場合は必要ありません。そして偽の場合の時にも"×"を入力する。

IFS関数は条件が複数ある場合に使います。
論理式1と真の場合の処理、論理式2と真の場合の処理、を続けて書いていく。

関数を複数組み合わせることを関数のネストという。
ROUND関数にAVERAGE関数を組み合わせたりできる。ダイアログボックスが表示されたら、関数ボックスから関数を選び入れ子にしていく。AVERAGEを使うとダイアログボックスがAVERAGE関数用のに変わるが、数式バーのROUNDをクリックすると、切り替わります。このような操作で複数の関数を扱います。


4時限~6時限
国家試験対策 アルゴリズムとデータ構造

今日は7章からです。
データの格納された配列から目的のデータを探すことを探索処理という。探索には以下のような手法がある。
線形探索法、2分探索法、ハッシュ探索法

線形探索は目的データと同じ値の要素を配列の先頭または末尾から順に探す。
添え字のiで配列の要素を指定して、探したいデータと、配列の各要素を比較し、比較結果が等しければデータが見つかったことになる。見つからない場合は繰り返し処理を終え、データエラーを出力する。
線形探索の応用で番兵法というのがある。

探す対称の配列の末尾に探したい値を入れて、繰り返し処理で探していく。探したいデータが配列内になくても最後は探索したい値と一致する。添え字の値により、見つかったかデータがなかったかがわかる。

ブロック探索法
昇順か降順で整列されている配列では、線形探索法よりも少ない比較で探索することができる。
12個の連続した要素があるとして、4個ずつの要素からなる3つのブロックに分ける。
各ブロックの最後の要素を代表値とし、ブロック内の最大値(ブロックの最後の要素)と探したいデータ値を線形探索する。それでどのブロックにありそうかのあたりを付け、それから対象のブロックを線形探索する方法。


線形探索の比較回数
先頭で見つかるか、末尾で見つかるかで、大きく変わる。その平均をとった値が平均比較回数となる。
n個の要素を持つ配列からデータが見つからないと確定するまでの比較回数はn回。


2分探索法
これは配列内の要素が昇順か降順に整列している必要があるが、効率よく探索できる方法。
下限low、上限high、中間midの3つの添え字を算出する。
midは(low+high)/2で求めるが小数点以下は切り捨てる。
配列Aがあるとして、A[mid]と目的のデータ値とを比較して、大きいか小さいかを判定する。
もし等しければ見つかったことになる。
大きければmid+1をlowに代入して再度midを計算する。小さければhigh-1をhighに代入して再度midを計算する。
これを繰り返し、A[mid]が探したいデータと等しくなるまで探索する。
探索範囲を狭めていくと、どこかでlowとhighの示す添え字が一致する。この状態になると、狭めていった範囲がこれ以上狭められないことになり、探索範囲がなくなると見つからなかったこととなる。

2分探索の比較回数
比較のたびに探索範囲が約半分ずつになっていくので、logn(底は2)回程度で探索できる。
1000件のデータがある配列だと、
log1000 = log10^3 = 3log10 = 3/log2(底は10)≒3/0.301=9.96=9回となる。
logを使うのもいいが、n=1000は2^9と2^10の間にあり、平均比較回数は9回、最大で10回となる。

ハッシュ探索法
データの格納はハッシュ関数という計算式で求まったハッシュ値を格納場所とする。
演算結果が配列の要素数以下になることなどが求められる。modを使って求めたりする。
複数のデータが同じ格納場所になるシノニムが発生したらチェイン法などで解決する。

7章練習問題を解きました。
問題は載せませんが、内容は平均・最大比較回数を求める問題や番兵法、2分探索、ハッシュ法の擬似言語に穴埋めしていく形式の問題です。

8章整列のアルゴリズム

整列とは複数のデータを並べ替えることをいう。一般に昇順か降順に並び替える。
データの交換は整列処理で必要となるアルゴリズムです。2つのデータを入れ替えるとき、別な退避用変数を用意し、これに交換するデータの片方を入れて実現する。
a、b、wがあれば、
b→w
a→b
w→a
といったように入れ替える。

基本選択法
これは例題を二つ解きました。

この記事が気に入ったらサポートをしてみませんか?