Microsoft Word - no01.doc

Similar documents
Microsoft Word - no01.docx

Microsoft Word - no01.docx

プログラミング基礎

Microsoft Word - CygwinでPython.docx

Microsoft PowerPoint pptx

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

Microsoft PowerPoint - prog03.ppt

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Microsoft Word - no11.docx

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

Microsoft PowerPoint - 計算機言語 第7回.ppt

第 1 回 C 言語講座 1. コンピュータって? だいたいは 演算装置 制御装置 記憶装置 入出力装置から構成されている 演算装置 CPU の一部で実際に計算を行う装置 制御装置 CPU の一部で演算装置や入出力装置 記憶装置の読み書きなどを制御する装置 記憶装置プログラムや情報 データを一時的

数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

プログラミング実習I

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

JavaプログラミングⅠ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

Microsoft Word - no103.docx

ic3_cf_p1-70_1018.indd

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

ガイダンス

memo

Microsoft PowerPoint - 07.ppt [互換モード]

Java言語 第1回

Microsoft PowerPoint - prog04.ppt

分割コンパイル (2018 年度 ) 担当 : 笹倉 佐藤 分割コンパイルとは 一つのプログラムのソースを複数のソースファイルに分けてコンパイルすること ある程度大きなプログラムの場合ソースファイルをいくつかに分割して開発するのが普通 1

C C UNIX C ( ) 4 1 HTML 1

PowerPoint プレゼンテーション

ポインタ変数

JavaプログラミングⅠ

C#の基本

Microsoft Word - no02.doc

プログラミング基礎

kantan_C_1_iro3.indd

文字列操作と正規表現

情報技術 Java の特徴 Java は現在 事務処理計算用プログラミング言語として開発された COBOL に取って代わり C 言語や C++ と並んで 現在最も使われているプログラミング言語の一つである Java は Write Once, Run Anywhere( プログラムを一度作成したらど

PowerPoint プレゼンテーション

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

プログラミングA

講習No.1

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

PowerPoint プレゼンテーション

フィルタとは

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

PowerPoint プレゼンテーション

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint - kougi2.ppt

V8.1新規機能紹介記事

Microsoft Word - no206.docx

Microsoft PowerPoint ppt

Sort-of-List-Map(A)

Javaプログラムの実行手順

Java講座

Microsoft Word - 商業-3

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

Prog2_9th

2006年10月5日(木)実施

プログラミング基礎I(再)

プログラミング入門1

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

情報処理 Ⅰ 前期 2 単位 年 コンピューター リテラシー 担当教員 飯田千代 ( いいだちよ ) 齋藤真弓 ( さいとうまゆみ ) 宮田雅智 ( みやたまさのり ) 授業の到達目標及びテーマ コンピューターは通信技術の進歩によって 私達の生活に大きな影響を与えている 本講座は 講義と

Prog1_6th

PowerPoint プレゼンテーション

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

第 19 回九工大わくわく科学教室 一番はじめのプログラミング 九州工業大学齊藤剛史 2019 年 3 月 16 日 人間とコンピュータの違い 2 人間 コンピュータ 計算 遅い すばやく計算 記憶 ちょっとしたことでも忘れる ぼう大な量でも忘れない 判断 時に悩む 正確にすばやく判断 動 ある 自

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

IronPython による柔軟なゲーム開発 筑波大学 AmusementCreators

Microsoft Word - no202.docx

メソッドのまとめ

演算増幅器

プログラミング入門1

Prog1_3rd

プログラミング入門1

PowerPoint プレゼンテーション

目次 研究目的 背景システム開発について実験および評価結論

演習課題No12

ポインタ変数

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

Fortran 勉強会 第 5 回 辻野智紀

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

第2回講義

Prog1_6th

教材ドットコムオリジナル教材 0から始めるiアプリ (4) 0 から始める i アプリ (4) i アプリをプログラミングする際に必要なのは Java というプログラミング言語の基礎知識です 独自の命令や駆使してプログラミングをするわけですが Java というベースになっている言語を知らないでプログ

Boost.Preprocessor でプログラミングしましょう DigitalGhost

計算機アーキテクチャ

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

言語プロセッサ2005

ex05_2012.pptx

プログラミングI 主に数理物理向け

今月の呼びかけ 添付資料 ファイル名に細工を施されたウイルスに注意! ~ 見た目でパソコン利用者をだます手口 ~ 2011 年 9 月 IPA に RLTrap というウイルスの大量の検出報告 ( 約 5 万件 ) が寄せられました このウイルスには パソコン利用者がファイルの見た目 ( 主に拡張子

PowerPoint Presentation

PowerPoint プレゼンテーション

5. アルゴリズムと計算量

Microsoft PowerPoint - C4(反復for).ppt

Transcription:

応用プログラミング I II 2009.4.7 1. プログラミングとは 1.1 ハードウエアとソフトウエアパソコンをはじめとするコンピュータは ハードウエア といわれます このハードウエアだけで何ができるかといえば単なる計算だけです もちろんそれを表示することもできませんし キーボードから文字を打つこともできません 計算ができるといっても 数字を入力できないのですから数値を与えることすらできないのです このハードウエアを制御したり 計算させたりするために必要なのが ソフトウエア です ソフトウエアがハードウエアをコントロールしているわけです 前期の文書処理で使ったワープロソフト MS-Word や表計算ソフト MS-Excel もそんなソフトウエアの一つです ソフトウエアがあるからこそ ハードウエアを使うことができるのです そのソフトウエアを プログラム とも呼びます このソフトウエアを作るために必要なのがプログラミング言語なのです 逆にいえば ソフトウエアがあるからこそパソコンというハードウエアが意味を持ってくるのです これはパソコンに限らず 携帯電話機や車 炊飯器といった最近のほとんどのコンピュータ制御のものにも当てはまります それらプログラムはすべて プログラミング言語によって書かれています 区別するために 人が作成するのを ソースプログラム と呼びます このソースプログラムをもとに 実行するプログラムが作られるのです 1.2 アルゴリズム日本語で 算法 といいます 問題を解決する手順をいいます このアルゴリズムは知らなければ使うことはできません 実際に バラバラになったトランプを順に並び替える方法を考えてみましょう 一つではなく いくつもあるはずです コンピュータの世界だけではなく このような実際に行うものもその手順をアルゴリズムということができます プログラムの例をあげます 整列の簡単なアルゴリズムとして バブルソートと選択ソートというがあります 初歩的なアルゴリズムですが これを知っているかどうかは大きな差になります このアルゴリズムは一般的な形で書かれています 特別な場合だけ使えるのではなく一般的な形で書くことができるのがアルゴリズムです もちろん 同じ問題の解決方法としても 複数のアルゴリズムがあることもあります そのアルゴリズムには優劣があります プログラムを見ればわかるように バブルソートは簡単です それに対し 選択ソートはプログラムが少し複雑です しかし 実行時間は選択ソートが半分以下の時間で終わらすことができます もっと早いアルゴリズムとして クイックソートとヒープソートといわれるものがあります どちらも個数が多くなればなるほど バブルソートより早くなりますが 20 個程度のデータでは逆に遅かったりします 一般的にはクイックソートの方が早いのですが 元のデータの並びが悪い場合は バブルソートと同じだけ時間がかかることがあることも知られています ヒープソートにはそのようなことはなく どんなデータであっても同じ時間だけかかることになります つまり アルゴリズムは知っているだけでは不十分で それらがどのような特徴を持ち どのようなときに性能を発揮できるかを知っておかなければなりません 1.3 データ構造コンピュータプログラムが扱うものは ほとんどの場合数値データです しかし 実際に CPU 内のメモリで扱うことができるものは 0,1 の並びでしかありません 従って 整数や実数を扱うときにも それらのデータは 0, 1 の並びで表される形に変換されます 1

実際のデータは 1つの数値を取るだけではなく 複数の数値が集まって1つのデータとなることも多いものです これも あくまでも1つ1つ扱うのも1つの方法ですが これらをある特殊なデータ構造であるリストという形で扱えば その分 取り扱いが良くなります そのリストにも 線形リストや連結リストがあります この2 種類のリストも取り扱いが楽なものと苦手なものがあります 線形リストは 追加は簡単ですが挿入には向いていません それに対して 連結リストは挿入には向いていますが 1つ1つデータをたどることしかできないのが短所です アルゴリズムのと同様にデータ構造も知っているだけでは不十分で それらがどのような特徴を持ち どのようなときに性能を発揮できるかを知っておかなければなりません 1.4 構造化プログラミングとオブジェクト指向プログラミング現在のプログラミングには 構造化プログラミング と呼ばれる構造を持った形で作られるのが一般的です これは コンピュータのプログラム上の手続きをいくつかの単位に分け それぞれを別の形で記述する方法である この細分化には順次 分岐 反復の3つの要素を使って表現して行くことが特徴である 現在では このプログラミング手法が一般的である 現在では オブジェクト指向プログラミング と言われる手法も一般的になっている この考え方では プログラムを細分化したものをまとめ それをクラスとまとめたものです クラスには データとその動作であるメソッドを含むことになります このクラスによって プログラムの再利用生を高め 生産性を高めるのが目的です この オブジェクト指向プログラミング も基本的な処理の流れは 構造化プログラミング によっています 1.5 プログラミング作法ソースプログラムを書く上で 絶対に守らなければならないは各プログラミング言語で文法 ( 規則 ) として決まっています これらを守った上で さらにソースプログラムを作成する上でのガイドラインを含めて プログラム作法と言います このガイドラインでは 括弧の使い方や 空白の開け方 ( インデント ) のような見た目のものも含まれています 規則には従わなければ プログラムは作成できませんが ガイドラインについては守らなくても プログラムの作成にはほとんど影響はありません しかし これに従えば ソースプログラムを作成する際の間違いを減らすことができるやソースプログラムを読む際に理解しやすくなるなどの利点があります 2

応用プログラミング I II 2009.4.7 2. プログラミング言語 2.1 プログラミング言語とはすでに習っていると思いますが コンピュータ ( 正確には CPU) が理解できるのは マシン語 ( 機械語 ) といわれるものだけです このマシン語は人には単なる数字の羅列にしか見えません 2 進数ですが ほとんどの場合 16 進数で表示することが多いのです しかし これでは人間にとっては何がなんだか分かりません そこで そのマシン語を人間の言葉に近いもの ( アメリカで生まれたのでもちろん英語をもとにしています ) で置き換えたものが アセンブラ言語 といわれるものです このアセンブラ言語をマシン語に変換するプログラムをアセンブラといいます 一応 人の言葉に近いものになっていますがわかりにくいものです アセンブラ言語を 低水準言語 ( 低級言語 ) といいます アセンブラ言語では開発効率が低い わかりにくいなどの問題点があります そこで もっと人間の言葉に近い 開発効率を考えた言語の開発が行われました アセンブラ言語に対して この言語を 高水準言語 ( 高級言語 ) といいます ここで扱う C 言語のほかにも BASIC や Fortran, Pascal, Java などが高水準言語です しかし どの言語も英語を元にしているので かなり似たものに見えます ですから プログラミング言語 特に高水準言語はひとつを知っていれば 二つ名以降の学習は割と楽になるこ mov add 24 5F BC 47 ax, bx bx : #include <stdio.h> int main(void) { printf("hello\n"); return(0); 10 print "Hello" public class Main { public static void main(string argv[]){ System.out.println("Hello"); とが多いものです プログラミング言語にはいくつかのタイプがあります C 言語は 構造化 関数型 などといわれることになります それに対し Java 言語の場合は オブジェクト指向 イベントドリブン型 などといわれます 2.2 コンパイラとインタプリタプログラミング言語で書かれたプログラムを ソースプログラム といいます しかし これはマシン語ではないので CPU は理解することができません ソースプログラムを CPU の理解できるマシン語に変換しなければなりません この方法には 2 通りあります 一つ目は コンパイラ といわれるプログラムを使って ソースプログラムをすべて一度にマシン語に直し それを実行する方法です ちょうど英語の本を日本語に翻訳してもらい その本を読むようなイメージです 最初の翻訳のときには時間がかかりますが 本になっているのですから 繰り返し何度でも ソースプログラム ソースプログラム 1 行ずつ コンパイラ マシン語 インタプリタ 実行 3

読むことができます もう一つは インタプリタ といわれるプログラムを使って ソースプログラムを 1 行ずつマシン語に直し 実行する方法です 英語の分かる人にその場で英語の本を日本語に訳して読んでもらうことのようなイメージです すぐに内容は分かりますが その場で訳してもらっているので 時間がかかります もう一度内容が知りたくなったら また 日本語に訳して読んでもらわなければなりません 2.3 連結コンパイラでコンパイルして得られるのはオブジェクトファイルといわれる マシン語 ではありますが そのままでは実行できません 書かれたプログラムをそのままマシン語に変更しただけで それを呼び出す仕組みや 実行開始時の準備 printf のような標準関数は含まれていないためです このため これらの部分を連結して実行形式に直さなければいけません そのために使われるのが連結エディタ ( リンカ ) と呼ばれるものです この連結を行うことで初めて実行できるのです そのため この連結をするためのソースプログラムは一つでなくてもよく 複数のソースプログラムをコンパイルして得られた複数のオブジェクトファイルを連結することもできます C 言語で使う printf のような標準関数はコンパイル済みで パソコンのハードディスクに ライブラリ とい形で保存されています ソース プログラム コンパイラ ライブラリ オブジェクト ファイル 連結エディタ ( リンカ ) 実行形式 2.4 いくつかのプログラミング言語 1950 年代に IBM で開発された最初の高水準プログラミング言語が Fortran でした この Fortran は数値計算の分野で現在も多く使われています この Fortran をもとに簡素化した BASIC も使われています 高校の範囲に含まれるのがこの BASIC です これらの言語はラベルによって好きな行に制御が映ることから プログラムの流れがつかみにくくなるという欠点も持ってました 科学技術計算用の言語である Fortran に対し 他に事務処理用の言語として COBOL も作られました この言語は 事務処理のためのツールを多く含んでいるのが特徴です 現在も 事務処理の分野で分野で使われています これに対し 1970 年頃 構造化プログラミング といわれる概念が提案されました これはプログラムを論理的にわかりやすく記述することを目的としています 現在では この構造化プログラミングがもはや常識となり Fortran や BASIC の現在のバージョンでも 構造化プログラミングの概念を取り入れるようになっています このような言語に ALGOL, C, PASCAL 等があります C 言語は UNIX と呼ばれる OS のために AT&T のベル研究所のリッチー カーニハンらによって開発されたシステム記述用の言語で 構造化プログラミングを基本とする言語です 当初 C 言語はベル研を中心とした一部愛好家だけが使っていた言語でしたが UNIX システムの成功により研究機関へ普及していきました 普及に伴い 当初のシステム記述言語としての役割のほか 現在では科学技術計算 4

用 事務処理 図形処理 各種ゲームなど幅広い分野で使われるようになりました オブジェクト指向プログラミング 用の言語として作られたのが SmallTalk です この言語ではすべてものが オブジェクト としてプログラミングしなければならず かなり面倒でした それに対して C 言語を発展させて オブジェクト指向プログラミング の考え方を導入したものが C++ 言語です よく使われている C 言語をもとにしたために一部の制約はありますが オブジェクト指向プログラミング言語として必要な機能を持っています さらに C++ 言語をもとに発展させて作られたプログラミング言語が Java です C++ 言語に比べ オブジェクト指向プログラミング によるプログラムが必須となります その他に スクリプト言語と呼ばれる Perl, Ruby, Python, PHP などもあります これらの言語では ほとんどの場合はインタプリタを使って実行します これらは 動的に Web ページを生成することに使われています 掲示板やチャットのシステムを作ったり データベースを利用する Web ページの開発に使われます 5