文字列を表示

応用理工学情報処理
第1回(2015年10月 5日)
月曜日担当 前島展也
連絡先
E-mail: [email protected]
研究室: 3F棟634号室
Manaba
https://manaba.tsukuba.ac.jp
の応用理工学情報処理のページ
授業のHP
http://www.ims.tsukuba.ac.jp/~maeshima/joho
今回は最初にこちらを見てください。
1
コンピュータへのログインについて
ユーザ名(ID): s+学籍番号下7桁
パスワード: 統一認証パスワード
統一認証パスワードを変更していない場合は、
TWINSの初期パスワードと同じもの
2
コンパイラ
コンパイラ(Borland C++ & CPAD)
インストール
配布資料に従いインストールしてください
使い方
配布資料、又は、講義のHP
http://www.ims.tsukuba.ac.jp/~maeshima/joho
にある”使い方” 参照。
3
シラバス
授業内容
C言語を用いたプログラミングに関して、その基礎を講義と演習により学ぶ。
教科書
新・明解C言語 入門編 (柴田望洋著)ソフトバンククリエイティブ
試験日程予定
通常の試験期間に実施予定。
成績評価規準
全クラス共通試験(期末試験)と各学期の演習課題の成績及び出席状況から
判定する。共通試験30%、演習課題評価40%、出席30%の比率とする。
4
C言語について
• 1972年開発
– UNIX(OSの一つ)を記述する目的
• プログラミング言語でCの文法を引き継ぐもの多数
– C++, java, など
Cを理解すれば、それらの言語も(ある程度)
理解できる
• 現在、多くのOSで利用できる。
– UNIX (Linux など)には必ずプログラミング用ソフト付属。
– Windowsでも利用可能
5
プログラム作成から実行まで
プログラム作成
プログラム(教科書ではソースプログラム)
コンピュータに対する命令を記述したもの
ソースファイル
コンパイルエラー
(文法ミス)
hello.c
コンパイル
実行エラー
(考え方の誤りなど)
プログラムを格納したファイル
C言語では“なんとか”.cと名前を
つける。
コンパイル
ソースファイルを実行プログラムに
翻訳する作業
a.exe
実行
実行プログラム(又は実行ファイル)
ソースファイルに書かれたプログラ
ムを、コンピュータが理解できる形
式に翻訳(コンパイル)したもの
完成
6
まずは表示を行う(printf)
(教科書p.2)
/* 15+37の計算結果を表示 */
必須部分(必ず覚えましょう)
#include <stdio.h>
int main(void)
{
イ
ン
デ
ン
ト
基本的な命令群(printfなど)を記述
しているファイル(stdio.h)を読み込む
プログラムの主な(main)部分がここから始まる
ことを示す
printf(“%d\n“, 15+37);
return 0;
ここに実行したい作業や計算を記述
する
プログラムが正常に終了したことを示す
}
7
printf
文字列や数値を表示する命令文(関数)
• 文字列を表示
– printf(“Hello, world!”);
– 改行などの特殊な文字も利用可能(\n は改行)
printf(“Hello, world!\n”);
• 数値を表示
– printf(“%d\n”,15+37);
• %d は”ここに整数を10進法で表示します”の意味
• 数値と文字列を同時に表示
– printf(“result= %d\n”,15+37);
8
関数と引数
printf = 文字列や数値を表示する関数
プログラム中で関数を呼び出している箇所:関数呼び出し
printf( “%d\n” , 15 + 37 );
関数名
実引数
実引数
この場合、printfは2つの実引数を持っている。
前ページの
printf(“Hello, world!”);
の場合、printfは1つの実引数を持つ。
9
• 注釈(/* */)
その他
– プログラムを理解するために必要な情報を書き
込む
/* これはコメントです */
• セミコロン(;)
– 文の末尾に必ずつける
printf(“Hello!\n”);
• 半角英数文字で書く(入力モードに注意)。
• 基本的には小文字を用いて書く。
• インデント(字下げ)を行って見やすくする。
10
書式文字列と変換指定
(p.6)
#include <stdio.h>
int main(void)
{
書式文字列
printf( “15と37の和は%dです。\n“ , 15+37);
return 0;
}
%d : 変換指定
この箇所には、”続く実引数(15+37)の計算結果を
10進数で表示せよ” という意味
11
printfその他
(p.8, 9)
#include <stdio.h>
int main(void)
{
printf(“こんにちは。\n私の名前は〇〇です。\n”);
return 0;
}
書式文字列だけを実引数に
すると、そこ書かれた文字列
だけ表示。
putsと同じ
(後で説明します)
拡張表記
#include <stdio.h>
int main(void)
{
printf(“こんにちは。\a\a\a\a\n”);
return 0;
}
\n は改行
\aは警報音(実際に音が出るかどうか
は試してください)
文字列リテラル
“ABC”や”こんにちは。”のように一連の
文字を二重引用符””で囲んだもの
12
変数
数値を保存しておくために使う
• int
– 整数を保存
• double
– 実数を保存
int i;
i=10;
double pi;
pi=3.1415;
他にもいくつかの変数の型がありますが、また後日。
13
変数を使ったプログラム
(p.11)
#include <stdio.h>
int main(void)
{
int vx, vy;
二つの整数型変数(vx,vy)を宣言
vx = 57;
vy = vx + 10; 値を代入
printf(“vxの値は%dです。\n“, vx);
printf(“vyの値は%dです。\n“, vy);
値を出力
return 0;
}
14
初期化1
(p.12)
#include <stdio.h>
int main(void)
{
int vx, vy;
二つの整数型変数(vx,vy)を宣言
値を代入する箇所が無い
不定値が入れられる
printf(“vxの値は%dです。\n“, vx);
printf(“vyの値は%dです。\n“, vy);
どのような値が出力される
かはシステムに依存
return 0;
}
15
初期化2
(p.13)
#include <stdio.h>
int main(void)
{
int vx = 57;
int vy = vx+10;
変数を宣言するときに値を入れる(初期化)
printf(“vxの値は%dです。\n“, vx);
printf(“vyの値は%dです。\n“, vy);
return 0;
}
16
scanf
読み込みを行う関数
int no;
scanf(“%d”, &no);
キーボードから10進数を読
み込み、その値をnoに格納
注意:変数に & をつける必要がある
int i;
scanf(“%d”, &i);
&noの意味については後日学習する予定
17
scanf
(p.14)
#include <stdio.h>
int main(void)
{
int no;
printf(“整数を入力してください : “);
scanf(“%d“, &no);
整数値を読み込む
printf(“あなたは%dと入力しましたね。\n”, no);
return 0;
}
18
puts
• 文字列を表示する関数
– puts(“二つの整数を入力してください。“);
printf文を使うとほぼ同じことができる
printf(“二つの整数を入力してください。\n”);
printf文との違い
1. 文字列だけを出力
2. \nを入れなくても最後に改行してくれる。
19
puts
(p.16)
#include <stdio.h>
int main(void)
{
int n1, n2;
puts(“二つの整数を入力してください。“); 画面に出力
printf(“整数1 : “); scanf(“%d“, &n1);
(;)を二回使うと同じ行に
printf(“整数2 : “); scanf(“%d“, &n2);
二つの文を記述できる
printf(“それらの和は%dです。\n”, n1+n2);
return 0;
}
20
演習問題
1. scanfを使って読み込んだ3つの整数値の和を表示する
プログラムを作成せよ(教科書p.17 演習1-9)。
• プログラム(ソースファイル)への名前の付け方について
enX-Y.c
第 X回目講義で出された演習問題の Y問目のプログラム
例: 第 1回目講義の演習問題 1問目
•
en01-1.c
演習問題の提出・出席確認について
• 授業中にプログラムが完成した方は申し出てください。プログラ
ムの確認・出席の確認を同時に行います。完成が確認できた方
は退出しても構いません。
• 授業終了10分前(16:20)の時点でプログラムが未完成の方も、
申し出てください。出席の確認のみを行います。
• 授業終了までにプログラムを完成できなかった方は第2回目の
授業の際に確認を行いますので、それまでに完成させておいて
ください。
21