ホーム » 2012 (ページ 6)
年別アーカイブ: 2012
構造体を使ったプログラム演習
前回までの構造体の説明が終わったので、今日は演習。 基本的に構造体にデータを読み込んで、何らかの処理を加えて出力するプログラムを 作成するというのが課題。
ただし、構造体のポインタ渡しは、プログラム上よく利用される概念であり、 構造体への入力関数・出力関数などを別途使う課題であることが望ましい。 すでにこれらの概念に慣れている学生は、オブジェクト指向のスタイルなどを 紹介したので、オブジェクト指向を利用して課題に取り組んでもよい。
ライブラリとOSの基礎
前回の説明で未消化であった部分のライブラリの説明を行った後、 OSの機能について説明する。
ライブラリ
動く機械語プログラムが出来上がるまでの流れとして、 高級言語が、コンパイラによって中間コード(機械語+未完成の組込関数呼出し)が作られる。 中間コードは、組込み関数などのライブラリと、リンカー(リンケージエディタ)によって、 組合せられ、最終的な機械語が生成される。
ただし、マルチタスクなOSでは、主記憶上でプログラムが動くと、 だれもが使うようなprintf,scanf,sin,cos,…,GUIな処理といったライブラリ処理は、 メモリ上に複数存在するとメモリを効率よく利用できない。 古いOSでは、ライブラリの機械語は、静的リンクによりそのまま機械語の中に 埋め込まれていた。 しかし、最近のOSでは、動的リンク機能により、共通のライブラリを 利用するようになってきた。 動的リンクを使えば、ライブラリ内の処理に間違いが見つかった場合に、 動的リンクライブラリを修正するだけで良いため、OSの不具合修正でも便利となる。
OSの基本
OSは、一般的に基本プログラムなどと呼ばれ、ハードウェアの違うコンピュータでも、 共通となるOSを利用すれば、OS上で動くソフトウェアの共通化ができる。
OSは、制御システム(プロセス制御,メモリ制御,入出力制御,ファイルシステム制御)と呼ばれる、 処理の根幹(kernelなどと呼ばれる)の部分が、最も重要な機能である。 これに、開発環境(コンパイラ、リンケージエディタ、デバッガ)と、 ユーティリティプログラム(コマンドラインインタプリタ/CUI と、グラフィック操作/GUI ) から構成される。
OSを利用すれば、制御システムによりコンピュータ操作の基本的部分で、 プログラムの起動・メモリ管理・周辺装置の利用などの共通化が可能となる。 これらの周辺装置などの物理的なハードウェアや、メモリの使用、CPU処理時間などは、 一般的に資源と呼ばれる。 最近のOSでは、資源の使い方の共通化だけでなく、 資源を適切に扱うための保護機能も重要となってきている。
プログラムが動くとは
プログラムが動くときには、その処理単位としてプロセスがあり、 プロセスでは利用するメモリ領域が決められ他から触れないようになっている。 ユーザに対して一連のサービスを、複数のプロセスで提供している場合、 この処理単位はジョブと呼ばれる。 また、最近のOSでは、並列処理を行う際に、複数の並列処理プログラムが 1つのメモリを共有したほうが便利である。この複数のメモリを共有した処理の個々は、 スレッドと呼ばれる。
また、プログラムで複数の処理をする場合には、バッチ処理(一連の処理をどの順番で処理するか記載し、1プロセス終了後に次のプロセスを起動させる方式)と、 タイムシェアリングシステム(時分割多重処理とも呼ばれ、短い処理単位時間毎に、 複数の処理を切り替え、複数の処理が見かけ上同時に動いているようにみせる方式)がある。
2012年10月14日(第290回)
- 高専祭について
ゲスト:福井高専高専祭実行委員長 前田君、露店長 宮川君、補佐 平君
担当:田中(5E)、松島(1C)、山野(1C)
データベースとSQL
データベースの説明で、最も中心的なSQLについて説明を行う。
SQLの基礎
データベースでは、記録されているデータの読み書きは、SQLという言語を用いる。 SQLでは、射影・結合・選択を表す処理で構成される。
SELECT S.業者番号 -- 必要とされるデータを抽出する射影 -- FROM S -- 複数のテーブルを組合せる結合 -- WHERE S.優良度 >= 20 ; -- 対象となるデータを選び出す選択 --
Sは、テーブル名であり、文脈上対象テーブルが明らかな場合、フィールド名の前の テーブルは省略可能である。
教科書ではいきなりSELECT文から説明が始まるけど、その前にテーブルってなに? といった疑問もあるだろうから、あらかじめ CREATE TABLE 文、DROP TABLE文、 INSERT VALUES文などを紹介する。
CREATE TABLE S ( -- Sはテーブル名 -- 業者番号 CHAR(5) , -- フィールド名の後ろに型を記載 -- 業者名 CHAR(20) , 優良度 INTEGER , 所在地 CHAR(20) ) ; INSERT TABLE S (業者番号,業者名,優良度,所在地) VALUES('S1' , 'ABC社' , 20 , '福井' ) ; DROP TABLE S ; -- テーブルSのデータを消す --
演習として、実験するために、 Web上でSQLを走らせる環境の使い方の説明を行う。 来週は、SQLのもう少し発展させた、集約関数や副クエリ文などを説明し、演習へ…
iOSプログラミング講習会(10/23)
福井高専では、企業技術者活用プログラムの一環として、 企業にお勤めの福井高専OBの方に講師になっていただいて、 最新の技術に触れるための講習会などを企画しています。
この中で電子情報では、OBの中西孝之(ignote.jp)氏・福野泰介(jig.jp)氏をお招きし、 携帯端末などのプログラミングを中心とした講習会を開催します。 つきましては第一回の講習会として、iOSプログラミング講習会を 2回にわけて下記のように開催します。 興味のある方は、参加連絡を斉藤もしくはIT研顧問の西先生に連絡ください。
日時: 10月23日(火) 17:00〜20:00 iOS講習会2回目は、参加者で後日調整します。 場所: 電子情報棟4F 創造工学演習室 講師: 中西孝之(ignote.jp)氏・福野泰介(jig.jp)氏 参加資格: プログラミングに興味のある方
なお、この講習会は、以下の様なテーマなどで引き続き開催を予定しています。 これらの予定は参加者の希望などを踏まえて、何回か実施しますので、 今回は参加しないけれども…次は参加したいという方も積極的に連絡を下さい。
- Android / Unity / Ajaxなどの最新プログラミングの講習会
- アイデア創出のための企画の進め方講習会
- ハッカソン(参加者がアイデアを出しあい実際に動くものを作る)
明日プロコン部隊出動
高専プロコンが今週末に近づいてきた。 本校からは電子情報4年の玉木君、渡辺君と、機械学生の3名が 競技部門で1チームの参加です。
その中で、プロコン事務局から、プロコンの試合のUstream中継の連絡が入ってきた。 興味のある方は、Ustreamの生中継でお楽しみください。
さて、今週末の10/13(土)-14(日)に「大牟田文化会館」で開 催されます「全国高等専門学校第23回プログラミングコンテ スト」においても、インターネットを用いたLive中継を行う ことになりました。 今年度も、昨年度の一関/舞鶴大会と同様にUstreamにより、 配信を行います。 なお、Live配信は下のようなスケジュールを予定しておりま す。 詳細は、プロコン公式サイト http://www.procon.gr.jp/ 是非各行内にもご案内いただきますようお願いいたします。 10/13(土)放送予定: 9:30頃〜 開会式(大ホール) 10:10頃〜 競技部門予行演習(大ホール) 10:40頃〜 課題部門プレゼンテーション(課題プレゼン会場) 10:40頃〜 自由部門プレゼンテーション(自由プレゼン会場) 14:00頃〜 競技部門1回戦(大ホール) 10/14(日)放送予定: 8:30頃〜 競技部門敗者復活戦・準々決勝・準決勝・決勝(大ホール) 8:40頃〜 課題部門デモンストレーション(小ホール) 8:40頃〜 自由部門デモンストレーション(小ホール) 14:30頃〜 ミニ講演会(大ホール) 15:00頃〜 閉会式(大ホール) ※ Ustreamにより、最大3チャンネルのLive中継を行います。 ※ また、生中継PR用のTwitter http://twitter.com/KosenProcon もご参照下さい。(#procon2012のハッシュタグを使用する予定です) どうぞよろしくお願いいたします。 失礼いたします。
2分木の演習
先週までの2分木の説明から、今日は演習。 数値データを「名前と誕生日」とか一般的なデータで演習するか、 2分木を視覚的にわかりやすく表示するかのどちらかとする。
一般的なデータは、「名前と誕生日」や「名前と住所」、「名前と電話番号」とか、 自由に考えてもらえばいい。データを入力し出力するプログラムを基本とし、 何らかの検索処理などを実装すること。
でも、プログラミングに自信のある人は、木構造を視覚的にわかりやすく表示する課題でもよい。 テキストで表示してもいいし、グラフィックスを使ってもよい。
例 53 / \ 27 77 /\ /\ 11 33 65 84 -53-+-27-+-11 | +-33 +-77-+-65 +-84
中学校の新学習指導要領でロボコンピンチ
中学校の新学習指導要領で、指導時間が激減のため、 ロボコン参加者が激減らしい。 (参照記事) ゆとりに伴う学力低下も寂しいけど、技術者を育てるための 自由度の高い時間が削減されてしまうのは、良いのやら悪いのやら….
技術担当教員のOverworkも一因なら、 地域技術者や地域の高専に頼むって道も検討してほしいな…(^_^;
最近、つぶやき系の記事は、Facebookに書き込みしてばかりで、 仕事のBLOGが、授業ネタとか記録系ネタばかりになって、 つぶやき系が減って面白みがないな…。ということで、Facebook記事とかぶるけどBLOGにも掲載。
(卒業研究中間発表3日目…(10/09)
- 10/09 (卒業研究中間発表3日目) #fnct_sotsu
- 10/09 処理遅延が入った時に、音切れが発生させないためのテクニックなどは、どうなる? 音データ化けでの異常音対応とかは、どうするのが目標? その辺は優秀なライブラリ任せ? #fnct_sotsu
- 10/09 MP3 Player for VC++: MP3データの構成や知識を深め、MP3プレーヤーを作成し….VBMP3を使用。 #fnct_sotsu
- 10/09 MPPT制御での、PWM制御が必要とされる点の説明がレジメに記載されていないので部外者には??? #fnct_sotsu
- 10/09 MPPT制御による太陽光での充電器作成:最大電力点追従制御で発電効率の向上をめざす。 #fnct_sotsu
- 10/09 磁性体の種類の周波数応答は影響ないの? #fnct_sotsu
- 10/09 実験ベース?シミュレーションベース?実験主体だけどどの程度の伝送を想定しているのか? #fnct_sotsu
- 10/09 磁界共鳴方式に無線電力伝送における伝送効率向上に関する研究:送受電コイル間に磁性体を置くことで効率向上を図る。 #fnct_sotsu
- 10/09 電磁透明マントの設計に関する研究:覆っても電磁波が反射せずに裏側に迂回し、物質がないように… Split-ring-resolatorを並べてメタマテリアルを実現?2次元で実現しているので3次元に!?!? #fnct_sotsu
- 10/09 周波数選択板によるマイクロストリップアンテナのりとくこうじょうこうかに関する研究:板上のマイクロストリップアンテナは、周波数帯域は非常に狭いけど、他の周波数帯と干渉しない。格子型、ループスロット型、パッチ型、ループ型で電磁界をシミュレート #fnct_sotsu
- 10/09 卒業研究中間発表3日目 #fnct_sotsu
この記事は、 の @TohruSaitohに掲載した #fnct タグ付き記事を、まとめたものです。