ページ

2011-09-30

epoch@まつやま プログラミングコンテスト

「epoch@まつやま」というプログラミングコンテストの予選が終了しました。
このコンテストは、三つ問題が出され、そのプログラムが正しく動作しており、どれだけ速いかを競うコンテストです。
予選を突破するには、20位以内に入らないといけません。

始めは遅くてもちゃんと答えを出してくれるプログラムを作って、次に高速化に励みました。

高速化はどんだけでも速く出来る方法があるかもしれないですが、自分たちなりに高速化して、そのプログラムは参加した中でどれくらい速いかまったく分からないので不安に駆られます。

2問目と3問目はアルゴリズムを使っておらず、この問題にアルゴリズムを使ったら、n^2がnになるかもしれないと思ったり、でも、その問題を解決するアルゴリズムを見つけ出す事が出来ませんでした。

結果が待ち遠しいです。 本戦に行きたいですし、同じ年代のプログラミングをやっている人に会ってみたいですね。

最近は、毎日プログラムを書いているので、次のおもしろいことを見つけて、それをやっていきたいと思います。

2011-09-28

自作ラジオ

学校の課題で、トランジスタを使った回路を作れと言われたので、ラジオをつくりました。


作り終わって、いざ動作させたら動かないんです・・・・

2011-09-26

ビットベクトルによる集合

今日のプログラミングの授業は、テスト返しのみで暇だったので、教科書を読んでいました。

集合のデータ構造は、全く触れもしなかったので、少しだけ読んでいました。
集合の要素が、1~100など、少ない記憶領域のみの集合だった場合、ビットベクトルによって集合を表すことが出来るという考え方です。もし、集合の要素が0から31までの値であったなら、ビットベクトルはlong型を使います。long型を2進数で表し、第nビット目が1ならば、そのnの要素が集合に存在しており、0ならば、存在していないということになります。


勉強になったのは、そのビットベクトルのデータ構造です。集合に、要素を代入したり、要素から要素を引く時など、そのような場合には、AND演算子や、OR演算子を使っていました。andやorなどの条件式は、いつもプログラミング時に使いますが、演算はタイプした事がないと言っていいほど、使った事がありませんでした。
プログラミングをする際、1と0や、「ある」「ない」を扱う場合などは、ビットベクトルや、論理演算を使って動くプログラムを作っていきたいです。

2011-09-25

Oasis

1年前ぐらいから頻繁に聞いているOasis。

個人的には、すごくメロディーがツボにはまります。


有名な曲は、「Whatever」


どこかで聞いたことありますよね?

2011-09-23

Macのターミナル

普段はCファイルのコンパイルで、
// $gcc -o souce souce.c
としか使っていないターミナルですが、書籍を読んでいるうちに使えるようにして行かないと思ったので、いろいろなコマンドなどを調べました。

2011-09-17

メモリ領域のセグメンテーション

今日はメモリについて少しだけ知識を手に入れました。

それは、メモリの領域が使用目的によって区分されており、下の5つの区分がそれぞれの名前です。

・テキストセグメント
・データセグメント
・bssセグメント
・ヒープセグメント
・スタックセグメント
それぞれの説明は省略します。

手に入れた知識の中で、一番「ふぉぉ!」と思った内容は、ヒープセグメントとスタックセグメントの関わりです。

ヒープセグメントは動的に割り当てられる変数を格納するトコです。低アドレスから、高アドレスに順番にポンポンと格納してきます。

スタックセグメントは説明すると少しだけ長くなりますが、関数呼び出しの際に使われる、引数や、元の関数に戻るためのアドレスなどを格納します。高アドレスから低アドレスへ順番にポンポンと格納します。

言い忘れてましたが、テキストセグメント、データセグメント、bssセグメントと順番に低アドレスから格納されていきます。

 さて、ヒープセグメントとスタックセグメントの格納する方法は、逆になっている事が分かります。また、二つとも長さが可変長で、確保していきます。つまり、 互いに向かい合って確保する事により、記憶領域を有効活用することになるんです。


この知識はある本を読んで手に入れたんですが、やはり、プログラムの詳しいところまでを解き明かすためには、機械語の知識も必要だと言う事が分かりました。
今知っているのは、C言語での関数を呼び出す際に、機械語では関数callという関数を使う事や、機械語かはわかりませんが、EIP EBP ESPなどです。

2011-09-13

アルゴリズムについて

プログラミングコンテストの問題を解くためにはかかせない「アルゴリズム」。
(プログラミングコンテストだけではないです。)

友人はアルゴリズムについて書かれている書籍を買ってました。

通路の最短距離を求めるワーシャルフロイド法・ダイクストラ法
データの探索をする線形探索・2分探索
データの整列をするバブルソート・シェルソートなどなど...........
たくさんあります。

それをどうやって問題に対してくみ上げるかがまだまだ経験値が足りてないので、分かっていない状況です。

問題を解いていくのが経験値がたまる方法だと思っております。


アルゴリズムとデータ構造について、大まかなリストが載っているサイトを見つけました。
http://vipprog.net/wiki/algo_and_data_const.html

ボゴソートとかは初めて知りました!

説明してない項目もあるので、キーワードとしてこのサイトを使っていきます。

2011-09-10

期末テスト

来週から期末テストです。

今回は、夏休み明けにあるので、今まで勉強してた事がすっかり忘れてしまいました。

非常に危ない状態です。

まだ、勉強モードに入っていないので、ちょっとずつノートを見ていきたいと思います。

プログラミングのテストは、
C言語での、データ構造を問われる問題で、
キュー・スタック・二分サーチ・線形サーチが出題されます。
それぞれの考え方は分かりますが、詳しく問われると分からない事が出てくるかもしれませんので、
いつもは、テスト前は勉強してないのですが、今回は、ちょっと見ておきたいですね。

一番危ないのは、興味が全くない政治経済で、しかも、記述が大半と、一番やり難い出題形式です。
 いやですねえ……

2011-09-09

観葉植物が次々と増えていく

以前にも書いたように、観葉植物にハマっています。

集めた観葉植物の名前を羅列すると、

1. ポトス
2. コーヒーの木
3. シルクジャスミン
4. クロトン
5. ハイビスカス
6. サボテン
7. パキラ
8. カジュマル

パキラとカジュマルはホームセンターで購入し、他はダイソーで購入しました。

この中でも、ポトスの成長がものすごく、生き生きとしているので、
大切に育てていきたいです。

シルクジャスミンは逆に、もうすぐ死んでしまうような枯れ方をしてます。
やはり、植物によって育て方を変えなければならないんですね。

これからは、冬の季節が近づいてくるので、どのように育てていくか、ちゃんと調べていきたいと思います。


学校で、情報の先生の研究室にお邪魔したんですが、
その 先生の部屋に、ポトスが置いてあったんです。
5メートル以上つるをのばしていて、
水をやっていないのか、日光に当てていないのか分からないですが、
それに関わらず、ツルをのばしていたポトスの成長のすごさを目の当たりにしました。

2011-09-08

パソコン甲子園

先週、友人とパソコン甲子園の予選に出場しました。

結果は、14点。
相当低い点数を取りました・・・・
自分のレベルの低さが目立ちました。

コンピュータは2人で一個なので、
友人にタイプを任せていました。

問題を選んで、ダイクストラ法を使って解く問題を
自分は分かんないからと言い、友人一人に任せて、
足を引っ張ってしまいました。

反省点として、
中間くらいの問題を解いている際、
私が、後の方の問題を解いた方がいいかも。
と、途中で次の問いに移ってしまったのが2回ほどあり、相当時間の無駄になりました。
また、普段から新しいプログラムを積極的に作っていないことも、
この14点と言う低い点数になってしまった原因となったと思います。

今はテスト期間ですが、
時間があれば、プログラミング能力の向上に努めていきます。

パソコン甲子園の当日に起こったトラブルなんですが、
なんと、問題の閲覧、解答の提出のためにネット環境が必要なんですが、
サーバに問題があり、10分も問題を解く時間が消え去りました・・・・

今は、テスト勉強を程々に頑張るぞ!

トランジスタラジオ

学校の課題で、今月中にトランジスタを使ったラジオを作らなきゃならない!

来週には期末テストがあるし何かと大変なときに 先生は課題を出す・・・

まあ、キットを買いましたし、説明書通りに作れば良いんですけどね。

実験のときに、ブレッドボードに刺したICが爆発しそうになったことも・・・

慎重に半田の熱で壊さないようにやっていきたいですね。


久しぶりに工作をするので、手がなまっていそう・・・

ラジオは信号の振幅の大きさによってLEDを光らす数をかえるようにするために、
このキットを選びました。通販会社はエレテックさんです。
URL : http://eleshop.jp/shop/g/g7AD111/

主役のラジオはこのシャンテック電子さんの3石トランジスタラジオを選びました。セットでアンプも頼みました。
URL : http://www.shamtecdenshi.jp/catalog/index.html#K-105

うまく接続できれば、いいんですけどね。
スピーカーにLED回路を並列接続でいいですかね?
そこが疑問点です。