プログラミングⅠ・講義メモ

・p.23「第2章 演算と型」から

提出フォロー:p.19 演習1-9 ex0109.cpp

・p.18 List 1-13 または、演習1-8をもとにすると早い
・宣言する変数にn3を加える
・putsする文字列を「三つの整数」に変更
・変数n3用のprintfとscanfを追加
・n1 + n2 + n3を表示するように変更

作成例

/*
    p.19 演習1-9 ex0109.cpp
*/
#include <stdio.h>
int main(void)
{
    int n1, n2, n3; //int型の3変数を宣言
    puts("三つの整数を入力してください。"); //文字列を表示(自動改行)
    printf("整数n1:"); scanf("%d", &n1); //入力案内を表示しキーボードから整数値を入力
    printf("整数n2:"); scanf("%d", &n2); //入力案内を表示しキーボードから整数値を入力
    printf("整数n3:"); scanf("%d", &n3); //入力案内を表示しキーボードから整数値を入力
    printf("それらの和は%dです。\n", n1 + n2 + n3); //計算値を埋め込んで表示(改行)
    return 0;
}

p.24 演算子とオペランド

・printfの変換指定では「%」「"」などは特別な意味を持つので、そのまま用いるとエラーになる
・よって「%」と表示したい場合は「%%」とすること
・なお、putsの場合、変換指定ではないので「%」のままで良い

p.25 乗除演算子と加減演算子

・除算(割り算)の「/」演算子は整数どうしの場合は結果も整数(小数点以下切り捨て)になる。どちらかが実数の場合の結果は実数。
・剰余算(余りを求める)の「%」演算子は整数どうしのみ可能

p.26 最下位桁の値を求める

・10進数を10で割った余りは元の値の最下位桁の値になる

アレンジ演習:p.26 list2-2

・西暦4桁を入力したら、下2桁を表示しよう
実行例:
西暦を入力せよ:2023 ←入力
下2桁は23

作成例

/*
    アレンジ演習:p.26 list0202.cpp
*/
#include <stdio.h>
int main(void)
{
    int year; //int型の変数(西暦)を宣言
    printf("西暦を入力せよ:"); scanf("%d", &year); //入力案内を表示しキーボードから整数値を入力
    printf("下2桁は%d\n", year % 100); //計算値を埋め込んで表示(改行)
    return 0;
}

p.26 演習2-1

・自由参加課題とします

p.27 複数の変換指定

・printf関数は引数(カッコ内で指定するデータ)の数が可変であり、変換指定に埋め込んだ「%●」の数だけ追加指定できる。
・scanf関数も同様で変換指定にある「%●」の数だけ追加指定できる。この場合、実行時に「値」「スペースまたはTabまたはEnter」「値」… のように入力する

アレンジ演習:p.27 list0203.cpp

・p.27下部にあるとおり、書き換えた結果の動作を確認しよう
・また、「aをbで割ると」が意味不明になるので、a、bの位置に値を埋め込もう
実行例:
2つの整数を入力せよ。
10 3 ←入力
10を3で割ると3あまり1です。

作成例

/*
    アレンジ演習:p.27 list0203.cpp
*/
#include <stdio.h>
int main(void)
{
    int a, b; //int型の2変数を宣言
    puts("2つの整数を入力せよ。");
    scanf("%d%d", &a, &b); //キーボードから2整数値を連続入力
    printf("%dを%dで割ると%dあまり%dです。\n", a, b, a / b, a % b); //値を埋め込んで表示(改行)
    return 0;
}

p.28 単項の算術演算子

・「● + ■」の「+」は2項+演算子ともいい、加算を意味する
・項(演算の対象)が片側しかない演算子を単項演算子という
・単項-演算子:書式「-●」●の符号を反転した結果を返す
 例: int a = -5, b = -a; //aは-5、bは5になる

p.29 代入演算子

・代入に用いている「=」も演算子であり、2項=演算子という
・演算子なので優先順位や動作方式が決まっているので注意(後述)

p.30 整数型と浮動小数点型

・乗除演算子は加減演算子より優先度が高いので、平均を得る場合などでは、カッコを用いて優先度を調整する
 例: aとbの小数点以下切り捨ての平均値は (a + b) / 2
・小数点を持つ数を実数といい、C言語では浮動小数点型であつかう
・浮動小数点型の標準的な型がdouble(倍精度浮動小数点型の「倍」)
・よって、intと同様にdoubleを用いることで実数を扱える
・printfでdouble型の値を表示するには「%d」の代わりに「%f」を用いる
・printfでdouble型の値を表示すると、自動的に小数点以下は6桁になる(調整可能:後述)

アレンジ演習:p.30 list0205.cpp

・整数値を実数で割れば実数になるので、2値の平均は2で割らずに2.0で割ると小数点以下も得られる
・小数点以下6桁が表示されるようにしよう

作成例

/*
    アレンジ演習:p.30 list0205.cpp
*/
#include <stdio.h>
int main(void)
{
    int a, b; //int型の2変数を宣言
    puts("2つの整数を入力せよ。");
    scanf("%d%d", &a, &b); //キーボードから2整数値を連続入力
    printf("それらの平均は%fです。\n", (a + b) / 2.0); //値を埋め込んで表示(改行)
    return 0;
}

p.32 型とオブジェクト

・C言語の「オブジェクト」は変数などの構造のことで、C#/C++/Javaなどのオブジェクト指向言語の「オブジェクト」とは異なる

p.32 型と定数

・0~9の数字のみ(先頭のみ「-」も可)の数字列が整数定数でint型扱いになる
・整数定数の中に1個だけ「.」があるものが浮動小数点定数でdouble型扱いになる
・よって、通常、int型の変数の初期化には整数定数を、double型の変数の初期化には浮動小数点定数を用いる
 例: int i = -3; double d = -3.14;

p.33 double型の演算

・scanfで実数(double型)を受け取る場合「%d」や「%f」ではなく「%lf」を用いる
 ※ Long Float(長い浮動小数点数)の意味

アレンジ演習:p.30 list0205.cpp その2

・2つの実数を入力して平均値を表示するように改造しよう

作成例

/*
    アレンジ演習:p.30 list0205.cpp その2
*/
#include <stdio.h>
int main(void)
{
    double a, b; //double型の2変数を宣言
    puts("2つの実数を入力せよ。");
    scanf("%lf%lf", &a, &b); //キーボードから2実数値を連続入力
    printf("それらの平均は%fです。\n", (a + b) / 2); //値を埋め込んで表示(改行)
    return 0;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です