§3.3 プログラミング 第10回 今日の目標 高級言語のプログラムを実行するまでの過程を示せる インタープリタの仕組みを説明できる

Slides:



Advertisements
Similar presentations
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
Advertisements

プログラミング演習( 2 組) 第 9 回
7/10 if 文課題 力作が多くて感心! 演習1:キーボードから2つの整数を入力し、小さい方の数字を 表示せよ。
インターネット技術特論 D:SSI,PHP,eRuby 山口 実靖
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
基礎プログラミングおよび演習 第9回
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
第2回ネットワークプログラミング 中村 修.
プログラミング序論演習.
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
Webコミュニケーショングループ ~PHPの基礎~ M1 宮崎 真.
§3.3 プログラミング 第10回 今日の目標 高級言語のプログラムを実行するまでの過程を示せる インタープリタの仕組みを説明できる
第9回 今日の目標 §3.2 アルゴリズム 問題解決の手順を示せる アルゴリズムの条件と処理要素を示せる
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
データベース設計 第9回 Webインタフェースの作成(1)
第7回 条件による繰り返し.
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
プログラミング演習 バージョン1 担当教員:綴木 馴.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
関数の定義.
プログラミング応用 printfと変数.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
プログラミング序論 2. n人のインディアン.
高度プログラミング演習 (03).
知能情報工学演習I 第12回(後半第6回) 課題の回答
今までの練習問題の復習.
前回の練習問題.
制作技術ー3 双方向通信 : CGIシステムと環境変数
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
高度プログラミング演習 (02).
高度プログラミング演習 (05).
高度プログラミング演習 (05).
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
疑似乱数, モンテカルロ法によるシミュレーション
C言語 はじめに 2016年 吉田研究室.
プログラミング言語入門 2013 (C言語 初級) 演習期間 担当 参考資料 採点 10/24 - 1/23 (全10回) 松澤,鈴木,児玉
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
プログラミング序論演習.
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
プログラミングⅡ 第2回.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語 1.
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
高度プログラミング演習 (11).
C言語講座 制御(選択) 2006年 計算技術研究会.
プログラミング基礎演習 第4回.
標準入出力、変数、演算子、エスケープシーケンス
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
プログラミング1 プログラミング演習I 第2回.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング序論演習.
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
知能情報工学演習I 第9回(後半第3回) 課題の回答
C言語講座 四則演算  if ,  switch 制御文.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
知能情報工学演習I 第10回( C言語第4回) 課題の回答
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

§3.3 プログラミング 第10回 今日の目標 高級言語のプログラムを実行するまでの過程を示せる インタープリタの仕組みを説明できる 第10回 今日の目標 §3.3 プログラミング 高級言語のプログラムを実行するまでの過程を示せる インタープリタの仕組みを説明できる HTMLとCGIプログラムの関係を説明できる 高級言語で定義されている構造を分類できる C言語で書かれたプログラムを解釈できる モンテカルロ法でπの値を求めるアルゴリズムをかける

コンパイラ(Compiler) ソースモジュール Source Module プログラム言語 C, Java,FORTRAN, COBOL, コンパイラ 機械語 オブジェクトモジュール Object Module リンケージエディタ ロードモジュール Load Module 実行ファイル ローダー 主記憶装置 CPU

インタプリタ 主記憶装置 Memory ソースプログラム インタプリタ ・・・・ CPU 実行 1ステップ こういう意味よ どういう意味? ああしなさい こうしなさい ・・・・ CPU 実行 1ステップ こういう意味よ どういう意味? 言語 BASIC LISP LOGO Perl HTML Python Ruby

HTML(Hyper Text Markup Language) と Perl(Practical Extraction and Report Language) HELLO03 <HTML><HEAD><TITLE>名前の問い合わせ</TITLE></HEAD> <BODY> <H3>あなたのお名前を教えて下さい。</H3> <FORM METHOD=POST ACTION=./cgi-bin/cgi-hello03.pl> 入力(ローマ字)=> <INPUT TYPE=TEXT NAME="yourname"> <INPUT TYPE="submit" VALUE="送信"> </FORM></BODY> </HTML>

#! /usr/local/bin/perl $| = 1; # 標準入力からデータ「yourname」の値を読みとる。 read (STDIN,$in,$ENV{‘CONTENT_LENGTH’}); # 文字列を分離 ($parameter,$name) = split /=/, $in; # 挨拶を表示 print "Content-type: text/html\n\n"; print "<HTML><BODY>"; print "こんにちは、$nameさん"; print "</BODY></HTML>"; __END__

環境変数 URL 通常Webページ WWW ブラウザ サーバ CGI(Common Gateway Interface) CGI WWW クライアントマシン サーバマシン ブラウザ URL WWW サーバ  HTML文書 通常Webページ CGI(Common Gateway Interface) ブラウザ CGIのURL +データ CGI出力 WWW サーバ CGI プログラム 標準入力 標準出力 環境変数 サーバマシン クライアントマシン

高級言語の構造 (C言語を例として) 1.定義文 配列;文字列、整数、実数、倍精度 1.定義文  配列;文字列、整数、実数、倍精度          char c; char str[10]; int i, j, s; float a; double x, y; 2.代入文  変数←値 c = ‘A’; i = 123; a = 12.3; x = 3.14159266; 3.演算   四則演算、論理演算 i = i + 1; x = x * y; i = j & 0x0f; 4.分岐 if ( i == 5) { switch ( i ) { j = 0; case 1: j = 0; break; } else { case 2: j = 1; break; j = 1; default: j = 9; } } 5.繰り返し 例) 1~10までの合計を求める i = 0; s = 0; s = 0; while ( i < 10) { for ( i=0; i < 10; i++) { i = i + 1; s = s + i + 1; s = s + i; } } 6.関数   平方根、三角関数、対数関数、指数関数、外部関数 7.副プログラム(Subroutine/Function) 8.入力・出力  read()、scanf() / write()、printf() 

ソースファイル(C言語) ex1.c ソースファイル コンパイルとリンクの実行 ロードモジュール ロードと実行 結果 #include<stdio.h> main(){ int i; /* 整数を入れる箱を確保して,iと名付けた */ i = 1 + 2 + 3 + 4 + 5; /* i に1+2+3+4+5を代入 */ printf("Kekka: %2d\n",i); /* %2dは整数を2桁で表示してくださいの意味*/ } ex1.c ソースファイル コンパイルとリンクの実行 ロードモジュール ロードと実行 結果

問題:1から任意の数までの和を求める start C言語プログラムソース nの入力 s=0,i=0 i=i+1 s=s+i no i=n? end no yes #include<stdio.h> main(){ int i,s,n; printf("幾つまでの和を計算しますか?"); scanf("%d",&n); i=0; s=0; do{ i++; s+=i; } while(i<n); printf("%d までの和は %dです。\n",n,s); } C言語プログラムソース アルゴリズム 1.任意の数nを決める 2.nまでの和をsとする 3.i=1のときs=1 4.i=2のときs=s+2 : 5. i=nのときs=s+n 6.結果sを印刷する i,s,nを整数として定義 キーボードからの入力 i,sに初期値を代入 iがNになるまで和を 繰り返す バブルソート(順次法) Cプログラム例

ソースファイル コンパイル ロードモジュール ロードして実行 #include<stdio.h> main(){ int i,s,n; printf("幾つまでの和を計算しますか?"); scanf("%d",&n); i = 0; s = 0; do { i++; s += i; } while(i < n); printf("%d までの和は %dです。\n",n,s); }

ソースファイル(BASIC) 10 REM SUM 1 TO N 20 ‘ 30 INPUT ”幾つまでの和を計算しますか”,N 40 S=0: I=0 50 I=I+1 60 S=S+1 70 IF I=N THEN GOTO 80 ELSE GOTO 50 80 PRINT USING “@### @#####@”;”1から”,N, ”までの和は”,S,”です。” 90 END BASIC画面 OK RUN 幾つまでの和を計算しますか 20 1 から 20までの和は 210です。 実行 キーボードから入力

モンテカルロ法 例:πを乱数で求める ① 1辺が1の正方形の面積は1 ② 正方形内に無作為に点をばらまく ③ ばらまいた数をN,斜線部分の数をi ④ 斜線部分の面積=i/N   =半径1の円の面積/4=π/4 ⑤ π=半径1の円の面積    = 4×i/N 1 アルゴリズム 1.0から1の範囲の数値xとyを一組乱数で求める 2.x2+y2≦1を満たす場合の数を数え、iとする 3.N回繰り返す 4. π =4×i/Nを計算する

C言語ソースプログラム #include<stdio.h> #include<math.h> #define NUM 10000 double rnd(void); void main(void) { double x,y,pai; int i,in=0; for (i=0;i < NUM;i++){ x = rnd(); y = rnd(); if (x*x+y*y <= 1.0) in++; } printf("in=%d\n",in); pai=(double)4*in/NUM; printf("πの値=%f\n",pai); double rnd(void){ return((double)rand()/RAND_MAX); C言語ソースプログラム

JAVAプログラム

演習 1.ブラウザで使われる言語がインタプリタである理由を   考えなさい。 2.C言語で作られたプログラムをOSの違うコンピュータで   実行するにはコンピュータ環境にどんな条件が必要か   またどんな手順で行うか述べなさい。 3.任意の数nを与えて、12+22+・・・+n2を求めるプログラムを   作りなさい 情報科学概論のトップへ 明治薬科大学のホームへ