SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


計算機言語:lecture3

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
計算機言語:lecture3 [2022/08/25 11:27] 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>
 +
 +
   ; 定数   ; 定数
   : プログラム実行中に変化することのない「値」を保持するユーザ定義名前付オブジェクト   : プログラム実行中に変化することのない「値」を保持するユーザ定義名前付オブジェクト
行 11: 行 62:
 </code> </code>
 <code fortran> <code fortran>
-     C program文の後、変数宣言文の前簡単な演算も可能+C program文の後、変数宣言文の前簡単な演算も可能
       PARAMETER(定数名 = 定数値)        PARAMETER(定数名 = 定数値) 
-     C 複数の定数を定義する場合+C 複数の定数を定義する場合
       PARAMETER(N = 10, M = 11)        PARAMETER(N = 10, M = 11) 
       PARAMETER(N = 10, M = N + 1)        PARAMETER(N = 10, M = N + 1) 
       PARAMETER(N = 10)        PARAMETER(N = 10) 
       PARAMETER(M = N + 1)        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.1661394445.txt.gz · 最終更新: 2022/08/25 11:27 by kimi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki