SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


計算機言語:lecture3

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
計算機言語:lecture3 [2022/08/25 11:23] kimi計算機言語:lecture3 [2022/08/25 11:45] (現在) – [c] kimi
行 1: 行 1:
 ====== 変数と定数 ====== ====== 変数と定数 ======
 +===== 例題 =====
 +円柱の半径($r$)と高さ($h$)を読み込んで、その体積($V$)と表面積($S$)を表示するプログラムを作成せよ
 +$$
 +V = \pi r^2 h
 +$$
 +
 +$$
 +S = 2\pi r^2 + 2\pi rh = 2\pi r(r + h)
 +$$
 +==== Pascal ====
 +<code pascal>
 +program cylind(input, output);
 +  const pi = 3.141592;
 +  var r, h, s, v: real;
 +  begin
 +     read(r, h);
 +      writeln(r, h);
 +      v := pi*r*r*h; 
 +      s := 2*pi*r*(r + h); 
 +      writeln(v, s); 
 +  end. 
 +</code>
 +==== FORTRAN ====
 +<code fortran>
 +      PROGRAM CYLIND 
 +      PARAMETER (PI = 3.141592) 
 +      DOUBLE PRECISION R, H, S, V 
 +      READ (5, *) R, H 
 +      WRITE (6, *) R, H 
 +      V = PI*R*R*H 
 +      S = 2.0*PI*R*(R + H) 
 +      WRITE (6, *) V, S 
 +      STOP 
 +      END 
 +</code>
 +==== c ====
 +<code c>
 +#include <stdio.h> 
 +#define PI 3.141592 
 +int main(void) { 
 +    double r, h, s, v; 
 +    scanf("%lf %lf", &r, &h); 
 +    printf("%lf %lf\n", r, h); 
 +    v = PI*r*r*h; 
 +    s = 2.0*PI*r*(r + h); 
 +    printf("%lf %lf\n", v, s); 
 +    return 0; 
 +
 +</code>
 +
 +
   ; 定数   ; 定数
   : プログラム実行中に変化することのない「値」を保持するユーザ定義名前付オブジェクト   : プログラム実行中に変化することのない「値」を保持するユーザ定義名前付オブジェクト
行 6: 行 57:
  
 <code pascal> <code pascal>
-const 定数名 = 定数値; program文の後、変数宣言文の前 +(* program文の後、変数宣言文の前 *) 
-複数の定数を定義する場合  +const 定数名 = 定数値;  
-const 定数名 = 定数値;定数名 = 定数;定数名 = 定数+const 定数名 = 定数値; 定数名 = 定数値; 定数名 = 定数値; {複数の定数を定義する場合} 
 +</code> 
 +<code fortran> 
 +program文の後、変数宣言文の前簡単な演算も可能 
 +      PARAMETER(定数名 = 定数値)  
 +複数の定数を定義する場合 
 +      PARAMETER(N = 10, M = 11)  
 +      PARAMETER(N = 10, M = N + 1)  
 +      PARAMETER(N = 10)  
 +      PARAMETER(M = N + 1)  
 + 
 +</code> 
 +<code c> 
 +/* 定数定義はマクロにより行う */ 
 +#define 定数名 定数値  
 +#ifdef __小学生__  
 +#define PI 3.14  
 +#else  
 +#define PI 3.141592  
 +#endif  
 +</code> 
 +<code > 
 +Pascal 
 + const PI=3.141592;  
 +FORTRAN 
 + PARAMETER (PI=3.141592) 
 + #define PI 3.141592  
 + 
 +</code> 
 + 
 +<code> 
 +円周率πを参照する定数 
 + 
 + 
 + 
 + 
 +箱(変数)の在りか(アドレス)を入れる箱がポインタ変数 
 +整数型 
 +符号付き、符号なし(c) 
 +実数型 
 +倍精度(c, FORTRAN), 4倍精度(FORTRAN) 
 +複素数型 
 +二つの実数の組(FORTRAN) 
 +文字型 
 +文字符号化方法に依存する 
 +整数型変数(定数)の表現 2進数のビット列(例8ビット)  
 + 
 +通常16ビットか32ビット 
 +全てのビットを使用  
 +0. 2n . 1 (符号なし整数)  
 + 
 +1の補数  
 + 
 +0の定義が一意的でない(1111=0000)  
 +2の補数  
 + 
 +-1 + 1 = 0 
 + 
 +減算を補数と加算で処理できる 
 +整数型変数(定数)の表現 nビット符号なし整数 0. 2n . 1  
 +nビット符号付整数(2の補数表現) .2n.1. 2n.1 . 1  
 +固定小数点実数  
 +24.5 
 +浮動小数点実数  
 +2.45× 101, 2450× 10.2 
 +正規化された浮動小数点実数仮数部 0.245× 102指数部 
 +b3b2b1b0 . c1c2c3 = b3× 23 + b2× 22 + b1× 21 + b0 
 + + c1× 2.1 + c2× 2.2 + c3 × 2.3 
 +例  
 +101.0112 = (4+1+1/4 +1/8 )10 = 5.37510  
 +先頭ビットで符号を表す指数部は2進整数仮数部は正規化された固定小数点  
 +32.128ビット 
 + 
 +符指数仮数号 
 +仮想的8ビット実数指数は10のべきを2の補数表現の整数仮数は正規化された2進小数 
 + 
 +64.256ビット 
 + 
 +実部虚部 
 +var 変数名: 変数の型;定数定義の後、begin endの前 
 +複数の変数を宣言する場合  
 +var 変数名, 変数名, 変数名: 変数の型;変数名: 変数の型;変数名, 変数名: 変数の型;  
 +integer 
 +符号付き整数 
 +多くの処理系が16ビットか32ビット real 
 +単精度実数多くの処理系は32ビット例 var height, radius: real; number: integer;  
 +変数の型変数名定数定義の後、最初の実行文の前暗黙の宣言も可能  
 +A-H, O-Z から始まる変数名は実数型 I, J, K, L, M, Nから始まる変数名は整数型 
 +複数の変数を宣言する場合変数の型変数名 , 変数名, 変数名 
 +符号付き整数、多くの処理系がか32ビット  
 +REAL 
 +単精度実数、多くの処理系は32ビット  
 +DOUBLE PRECISION (REAL*8) 
 +倍精度実数、多くの処理系で64ビット  
 +COMPLEX*16 
 +多くの処理系で128ビット複素数 
 +変数の型変数名 ;どこでも宣言と同時に初期化も可能変数の型変数名 = 変数の初期値; double radius = 0.25; 
 +複数の変数を宣言する場合変数の型変数名 , 変数名, 変数名;  
 +int 
 +符号付き整数、多くの処理系がか32ビット  
 +float 
 +単精度実数、多くの処理系は32ビット  
 +double 
 +倍精度実数、多くの処理系で64ビット 
 +Pascal 
 + var r, h: real;  
 +FORTRAN 
 + REAL*8 HS, V 
 + double v, s;  
 +和・差・積変数名 := 変数(定数)名 + 変数(定数)名変数名 :変数(定数)名 . 変数(定数)名変数名 := 変数(定数)名 * 変数(定数)名 
 +商変数名 := 変数(定数)名 / 変数(定数)名変数名 := 変数(定数)名 div 変数(定数)名和・差・積・商変数名 = 変数(定数)名 + 変数(定数)名変数名 = 変数(定数)名 . 変数(定数)名変数名 = 変数(定数)名 * 変数(定数)名変数名 = 変数(定数)名 / 変数(定数)名 
 +整数と実数の演算には型の変換を明示的に行うべし 
 +programプログラム名 (入出力)const定数名=定数; var変数名:変数の型; begin 
 +実行すべき処理  
 +end.  
 +PROGRAMプログラム名 PARAMETER(定数名=定数定義)変数の型変数名実行すべき処理  
 +STOP END  
 +#プリプロセッサ命令 #定数マクロ定義 int main(引き数) { 
 +変数の型変数名;実行すべき処理; return 0;  
 +}  
 +Pascal  
 +read(変数名, 変数名)  
 +FORTRAN  
 +READ (5, *) 変数名, 変数名  
 +c言語 
 +scanf("入力書式", &変数名, &変数名)  
 +Pascal  
 +writeln(変数名, 変数名)  
 +FORTRAN  
 +WRITE(6, 書式文番号) 変数名, 変数名  
 +c言語  
 +printf("出力書式", 変数名, 変数名)  
 + 
 </code> </code>
計算機言語/lecture3.1661394191.txt.gz · 最終更新: 2022/08/25 11:23 by kimi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki