プログラミング実習I

Similar documents
プログラミング基礎

言語プロセッサ2005

プログラミング実習I

01-introduction.ppt

Microsoft Word - Cプログラミング演習(1)_2012

Microsoft Word - no01.docx

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

Cプログラミング1(再) 第2回

PowerPoint プレゼンテーション

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

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

Microsoft Word - no01.doc

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

memo

PowerPoint プレゼンテーション

計算機アーキテクチャ

Microsoft Word - Training10_プリプロセッサ.docx

GEC-Java

Microsoft PowerPoint - kougi2.ppt

Microsoft Word - no01.docx

1.ppt

プログラミング 1 プログラミング演習 I プログラミングの重要性 プログラミング言語をなぜ勉強するのか? 世界的に有名な日本のある IT 企業の社長が求める人材に 必要なスキル 1. プログラミング (C 言語 ) 2. 数学 3. 英語 #-1 #-2 プログラミングはどこで使えるのか? 1.

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

Javaの作成の前に

ALC NetAcademy2利用手順書

DVIOUT

GEC-Java

PowerPoint Presentation

Microsoft PowerPoint - 10Com2.ppt

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

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

slide5.pptx

PowerPoint プレゼンテーション

デバッグの工夫

memo

C C UNIX C ( ) 4 1 HTML 1

プログラミング基礎

Microsoft Word - macマニュアル【 】.doc

ユーザーズマニュアル 神戸親和女子大学情報処理教育センター 年 4 月版

2006年10月5日(木)実施

学生へのメッセージ パソコンを今まで操作したことがない学生にも対応できるベルから学習しますが 徐々にレベルを上げていきます 油断せずに 遅刻は厳禁です 講義開始前にコンピュータを使える状態にしておいてください

目次はじめに... 2 Office365ProPlus のインストール 複数の Office 製品の共存インストールについて ソフトウェア使用許諾契約の確認 Office365 ProPlus のダウンロードとインストール

Prog1_6th

目次 1. ログイン ログアウト デスクトップ ( 例 :Word Excel 起動中 ) Dock( 例 :Word Excel 起動中 ) Finder ウィンドウ メニューバー ( 例 :Word 起動中 )...

Microsoft PowerPoint - bp02.ppt

02: 変数と標準入出力

プログラミング基礎

メソッドのまとめ

Microsoft Word - 3new.doc

gengo1-12

Microsoft PowerPoint - guidance.ppt

C 言語固有の命令で全部で32 個 の関数C 言語第 1 回 C 言語って?( シラバス 1 2 回目 ) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている 関数がプロ グラム

情報処理入門

プログラミングA

gengo1-12

ポインタ変数

C言語入門

PowerPoint プレゼンテーション

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

プログラミング実習I

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

スライド 1

プログラミングA

高経大生ポータルサイトの使い方

プログラミング及び演習 第1回 講義概容・実行制御

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

01: 講義概要

LiveCampus 教務システムマニュアル 学生用機能 LiveCampus 学生ツール URL: *URL が http ではなく https であることに御注意ください ユーザ ID( アカウント ): 別紙に

Microsoft PowerPoint - lecture2_PPT.pptx

<4D F736F F D E8C7C8F7089C88A7791E58A DFC F83588BB388F D836A B5F E646F6378>

日本大学 文理学部

PowerPoint Presentation

Microsoft PowerPoint - 第3回目.ppt [互換モード]

C言語入門

PowerPoint プレゼンテーション - 物理学情報処理演習

はじめに 動作環境について 教職員ポータルシステム ( 教職員用 Web システム ) は インターネットに接続しているパソコンを 利用して操作することができます 動作保障されている環境は以下のとおりです (1) クライアント構成 (Windows PC) 1OS Windows 10 Window

Microsoft PowerPoint - C_Programming(3).pptx

8 / 0 1 i++ i 1 i-- i C !!! C 2

物質工学科 田中晋

プログラミングA

Microsoft Word - no02.doc

NEC Express5800 シリーズ COBOL Enterprise Edition クライアントライセンス V1 COBOL Enterprise Edition クライアントライセンス V1 (1 年間保守付き ) COBOL Enterprise Edition クライアントライセンス

講習No.12

Microsoft PowerPoint pptx

Microsoft PowerPoint - 4.pptx

Microsoft PowerPoint - kougi11.ppt

演算増幅器

Super Visual Formade Print

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

Microsoft Word - C.....u.K...doc

Microsoft PowerPoint ppt

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

02: 変数と標準入出力

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

次 Ⅰ WEB シラバスシステムへのアクセス... 1 Ⅱ 教員 WEB サービス へのログイン... 2 Ⅲ パスワードの変更... 3 Ⅳ 受持講義の確認... 4 Ⅴ シラバスの... 5 Ⅵ シラバス 完了処理... 8 Ⅶ 作業中のデータの 時保存... 9 Ⅷ 既作成シラバスの引...

Prog1_15th

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

kiso2-09.key

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

kantan_C_1_iro3.indd

Transcription:

プログラミング実習 I 01 イントロダクション 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp

担当教員 TA の紹介 担当教員 井村誠孝 m.imura@kwansei.ac.jp TA ( ティーチングアシスタント ) 共通メールアドレス class4-2017-ta@imura-lab.org M2 田中勇祐 ( 井村研 ) dvp62987@kwansei.ac.jp M2 藤井豪 ( 長田研 ) ehq67093@kwansei.ac.jp M2 佐藤瞳 ( 岡留研 ) fzo65982@kwansei.ac.jp M2 花家朋宏 ( 河野研 ) dpo68091@kwansei.ac.jp M1 太田小百合 ( 石浦研 ) dzn86186@kwansei.ac.jp サポート ( 準備室スタッフ ) 黒澤隆之 tkuro@kwansei.ac.jp 池淵隆 ikebuchi@kwansei.ac.jp 福森聡 fukumori.s@kwansei.ac.jp

重要!! 実習ウェブサイト レポートの提出 講義資料の配布は以下のウェブサイトで行います. http://ist.ksc.kwansei.ac.jp/prog1 ポータルページからも行けます. 関学プロ 1 で検索 http://ist.ksc.kwansei.ac.jp/portal/ アクセスするための ID とパスワードは, 学科教務ページへのアクセスと同じです. まずこのページを開いてください. アカウントやパスワードが不明の人は手を挙げる.

本演習の概要 目的 C 言語によるプログラミングの基礎の習得 講義案内で内容を確認

重要事項の再確認 教科書に沿って学習し, 各回レポートを提出する. 教科書の購入は必須です. 教科書は講義で説明した部分以外も, 各自がしっかり読んでいることを前提としています. レポートには当日レポートと宿題レポートがある. コピー & ペーストしない. 自分の手で入力することが学習の近道. プログラミングの学習は外国語の学習と同じです. 他人のプログラムのコピーが見つかった場合, コピー元 コピー先とも成績評価は 0 点になります. 本実習の単位は,3 回生配当の実習を履修するために必須です.1 回生のうちに修得するようにしましょう.

授業中のマナー 部屋は飲食禁止です. 各回の最初に私が簡単に説明をします. その間は手を止めて話を聞いてください. トイレには適宜立ってもらってよいですが, 長時間離席している場合は欠席とみなします. 実習と関係ない話 ( いわゆる私語 ) はしないでください.

実習時間について チャペルアワーを挟んでいますが, 木曜はチャペルが原則無い ( はず ) なので, その分を前倒しします. 開始 : 9:00 - 終了 : 12:00 ただし合同チャペルがある日は, その分を休みとし, 12:40まで行います. 中間試験の日は別途連絡します. 私が授業を開始した時点で到着していない場合, 遅刻となります.

教科書以外の参考書 教科書はややクセがあります. 必要以上に細部にこだわりすぎていると思う. 定番 柴田望洋 : 新 明解 C 言語入門編, ソフトバンククリエイティブ, 2014 やさしい 村山公保 : 基礎講座 C, 毎日コミュニケーションズ, 2010 アンク : C の絵本, 翔泳社, 2002 原点 カーニハン, リッチー : プログラミング言語 C, 第 2 版, 共立出版, 1989

プログラミング その意図は?

本節の内容 コンピュータは賢いのか? プログラムはコンピュータにとってどれほど重要か? コンピュータはどのようにプログラムを実行するのか?

映画の中のコンピュータ = 万能 The Matrix 人間に敵対するコンピュータ スタートレック万能な召使としてのコンピュータ コンピュータはそんなに賢いのか?

これもコンピュータ?

実際のコンピュータは いちいち全ての仕事のやり方を教えてあげないといけない召使 ただし仕事はめちゃくちゃ速い 仕事をさせる手順書 = プログラム プログラムを作成すること = プログラミング

ハードウェアとソフトウェア コンピュータの構成 ハードウェア 硬いもの = 手で触れられるもの = 実体のあるもの ソフトウェア 軟らかいもの = 手で触れられないもの = 実体のないもの プログラムはソフトウェア ソフトウェアの例 システムソフトウェア : OS (Windows, Linux, etc.) アプリケーションソフトウェア : Word, Excel, ブラウザ, ゲーム, etc.

コンピュータにできること 情報を入力する 例 : キーボードから数値を入力する 情報を演算する 例 : 数値どうしを加算する 情報を出力する 例 : 計算結果を出力する 入力 演算 出力の巧みな組み合わせでプログラムは構成される

知性とは何だろうか チェスの世界チャンピオンに勝利 IBM Deep Blue (1997) 顔認識 AlphaGo が世界最強囲碁棋士柯潔に勝利 (2017) 自動運転カー 全て, プログラムに従っているだけだが...

余談 : 機械が知性を持つかテストする Turing Test ( チューリングテスト ) 人間と機械がそれぞれ, 判定者と対話を行う. 対話は文字情報のみによる. 判定者はいずれが人間で, いずれが機械であるか, 判別する. 判定者が機械と人間の区別ができなければ, 機械に知性があるとする. 行動に基づく知性の判定

どうやって仕事のやり方を教えるか コンピュータはコンピュータ専用の言葉 機械語 しかわからない. あいまいさのある自然言語 ( 日本語や英語など ) は直接理解できない. 人間が機械語を理解することは非常に困難 人間にとって比較的わかりやすい 言語 を使って仕事のやり方 (=プログラム) を記述 それを 機械語 に翻訳してコンピュータに実行させる

C 言語は コンパイラ言語 どのような言語も, 最終的には, 機械語 に置き換わって実行される C 言語は コンパイル 実行 = 翻訳者 全命令解読翻訳実行 実行速度が高速 コンパイラ言語の逆は インタプリタ = 同時通訳者 1 命令解読翻訳実行 即座に実行

C 言語から機械語へ C 言語アセンブリ言語機械語 #include <stdio.h> int main(int argc, char **argv) { printf("hello, world n"); } return 0;.file "helloworld.c".def main;.scl 2;.type 32;.endef.text LC0:.ascii "hello, world 12 0".align 2.globl _main.def _main;.scl 2;.type 32;.endef _main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax movl %eax, -4(%ebp) movl -4(%ebp), %eax call alloca call main movl $LC0, (%esp) call _printf movl $0, %eax leave ret.def _printf;.scl 2;.type 32;.endef 014c 0003 0000 0000 00f4 0000 000d 0000 0000 0004 742e 7865 0074 0000 0000 0000 0000 0000 0040 0000 008c 0000 00cc 0000 0000 0000 0004 0000 0020 6000 642e 7461 0061 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0040 c000 622e 7373 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0080 c000 6568 6c6c 2c6f 7720 726f 646c 000a 8955 83e5 08ec e483 b8f0 0000 0000 4589 8bfc fc45 00e8 0000 e800 0000 0000 04c7 0024 0000 e800 0000 0000 00b8 0000 c900 90c3 0023 0000 000b 0000 0014 0028 0000 0009 0000 0014 002f 0000 0003 0000 0006 0034 0000 000c 0000 0014 662e 6c69 0065 0000 0000 0000 fffe 0000 0167 6568 6c6c 776f 726f 646c 632e 0000 0000 0000 6d5f 6961 006e 0000 000e 0000 0001 0020 0002 742e 7865 0074 0000 0000 0000 0001 0000 0103 003f 0000 0004 0000 0000 0000 0000 0000 0000 642e 7461 0061 0000 0000 0000 0002 0000 0103 0000 0000 0000 0000 0000 0000 0000 0000 :

C プログラムの実行までの手順 ソースファイル 1 #include <stdio.h> int main(int argc, char **argv) { printf("hello, world n"); } return 0; ソースファイル 2 // SurfaceShape.h #ifndef SURFACE_SHAPE_H_ #define SURFACE_SHAPE_H_ #include <vector> class SurfaceShape { コンパイラ コンパイラ 014c 0003 0000 0000 00f4 0000 000d 0000 0000 0004 742e 7865 0074 0000 0000 0000 0000 0000 0040 0000 008c 0000 00cc 0000 0000 0000 0004 0000 0020 6000 642e 7461 0061 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0040 c000 622e 7373 0000 0000 0000 0000 014c 0003 0000 0000 00f4 0000 000d 0000 0000 0004 742e 7865 0074 0000 0000 0000 0000 0000 0040 0000 008c 0000 00cc 0000 0000 0000 0004 0000 0020 6000 642e 7461 0061 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0040 c000 622e 7373 0000 0000 0000 0000 オブジェクトファイル 1 オブジェクトファイル 2 ライブラリ リンカ 実行可能プログラム

C 言語の特徴 コンピュータの細部の動作まで制御することができる. コンピュータがどのように動作しているのかを意識する必要がある場合がある. 標準的な仕様が定められているために, 移植性が高い. ただし,C 言語の標準的な機能 ( ライブラリと呼ぶ ) だけを使用している場合に限る. たいへん広く普及している. 他の言語を習得する場合の基礎となる.

余談 : 世界中のプログラミング言語 正確な数は不明だが,1000 種類以上はある模様. 目的 分野 使用者によってニーズが異なるため. プログラミング言語間の関係の可視化 http://exploringdata.github.io/vis/programming-languagesinfluence-network/ http://www.levenez.com/lang/

本節のまとめ コンピュータはプログラムがないと何もできない. プログラムは実行してほしい処理の手順書. 処理を入力 演算 出力に分けて考える. 比較的人間にわかりやすい言語で書かれたプログ ラムが, コンピュータにとってわかりやすい言語 に翻訳されて処理される. プログラムの作成はコンピュータに所望の処理をさせる最も自由度の高い手段 教科書の 1 章を読んでおいてください.