C exercises (16-2) stdio

前期の予定

  • 8−5 入出力と文字(P228)
  • 第9章 文字列の基本
  • 第10章 ポインタ
  • 第11章 文字列とポインタ

後期の予定

  • 第12章 構造体
  • 第13章 ファイル処理
  • C言語3級検定問題演習
  • C言語2級検定問題演習

標準ライブラリ関数 : 標準入出力関数

標準入出力関数には(C言語プログラミング)で説明した printf() や scanf() の他にも 下のように 1文字専用の入出力関数と 1行専用の入出力関数が用意されている。

標準入力から文字入力 getchar 関数
標準出力から文字出力 putchar 関数
標準入力から文字列入力 gets 関数
標準出力から文字列出力 puts 関数
標準入力から書式付き入力 scanf 関数
標準出力から書式付き出力 printf 関数

標準入力関数(参考)

getchar() int getchar(void); 標準入力(キーボード)からの入力値を「EOF」まで1文字づつ取得します。エラー時は「EOF」を返します。
gets() char *gets(char *str); 標準入力(キーボード)からの入力値を「EOF」※1まで1行づつ取得して、その文字列の先頭アドレスを引数のchar型ポインタ(*str)に渡すと共に戻り値としても返します。エラー時は「EOF」を返します。
但し現在では読み込む長さを指定できる「fgets()」の使用が推奨されています。
fgets() char *fgets(const char *str, int n, FILE *stream); 「*stream」で示されるストリーム※2から「n-1」文字を取得し「\0」を付加して、その文字列の先頭アドレスを引数のchar型ポインタ(*str)に渡すと共に戻り値としても返します。
scanf() int scanf(char *format,…) ; 標準入力(キーボード)からの入力値を書式指定した文字列として取得します。
第2引数以降は書式指定文字列※3の変換指定子の数だけ変数を指定します。
戻り値は成功時には入力データの数を返し、失敗時はEOFを返します。

標準出力関数(参考)

fputc() int fputc(int c, FILE *stream); キャラクタ(ASCIIコード)c をストリーム※2に出力します。
putc() int putc(int c, FILE *stream); 「fputc」と同機能のマクロです。
putchar() int putchar(int c); キャラクタ(ASCIIコード)c を標準出力(画面出力)します。
fputs() int fputs(const char *str, FILE *stream); 文字列 s をストリーム※1に出力します。
puts() int puts(const char *str); 文字列 s を標準出力(画面出力)します。
fprintf() int fprintf(FILE *stream, const char *format,…); 書式指定文字列※2をストリームに出力します。
第2引数以降は出力元となる変数を変換指定子の数だけ指定します。
printf() int printf(const char *format,…); 書式指定文字列を標準出力(画面出力)します。
第2引数以降は出力元となる変数を変換指定子の数だけ指定します。

例題

List 8-10 を解説

演習

  1. 演習8-10 List 8-10 をもとにして、数字文字の出現回数を*グラフで表示するプログラムを作成せよ。
    List5-12(P122)や演習5-9(P123)と同じ表示を行う。

 

C exercises (17-3) Hello World

Atom Editor 入門

  • 第3章 環境設定

Cプログラムの作成

C プログラムの作成手順

文字の並びとして作成したソースプログラムを、コンピュータが理解できる形式に変換する

compile

C プログラミングを書くための約束事

  1. 基本は半角英数字で書く
  2. 大文字と小文字は別の文字
  3. 文はセミコロンで区切る
  4. 余計なことは書かない
  5. 余計なことは「コメント」で

ATOM お試し

  • Hello World 表示するプログラムhello.cを作成
  • 保存場所は Documents¥C とする
  • cmdを開く
  • cd Documents¥C  —- パス変更
  • bcc32 hello.c  ————-コンパイル
  • hello  ——————–実行する

https://classroom.google.com/

課題

  1. hello.c を提出する
  2. hello.exe 実行する画面を提出する

Mail and Messenger

スマホや携帯電話は、通話だけでなく、キャリアメール、Eメール、メッセンジャーなどのコミュニケーションができる。

沢山のコミュニケーション方法が増えたことで、便利な反面、使い分けに迷うことも増えた。

Eメール

  • Yahoo メール
  • Google メール
  • Outlook メール (Office 365 メール)
  • キャリアーメール(Docomo,  au, SoftBank)
  • QQ

メッセンジャー

  • Skype
  • Hangouts
  • LINE
  • whatsapp
  • Facebookメッセンジャー)
  • Viber
  • Kakao talk
  • Wechat

C exercises (16-1) guidance

学校メールの設定

– Office 360

教科書

Google Classroomの登録

– Google Classroom (Classroom, Gmail, Hangouts App)

C言語演習用ソフトウェア

勉強用パソコン購入について

Amazon

MacBookAir 11Inch おすすめ!

関連情報:

Cプログラムの作成

C プログラムの作成手順

文字の並びとして作成したソースプログラムを、コンピュータが理解できる形式に変換する

compile

C プログラミングを書くための約束事

  1. 基本は半角英数字で書く
  2. 大文字と小文字は別の文字
  3. 文はセミコロンで区切る
  4. 余計なことは書かない
  5. 余計なことは「コメント」で

ATOM お試し

  • Hello World 表示するプログラムhello.cを作成
  • 保存場所は Documents¥C とする
  • cmdを開く
  • cd Documents¥C  —- パス変更
  • bcc32 hello.c  ————-コンパイル
  • hello  ——————–実行する

 

C programming (17-1) Guidance

学習目的

  • プログラミングは楽しい
  • 資格取得
  • 就職

情報工学系科目のC言語の位置づけ

  • カリキュラム(必修科目、選択科目)
  • C言語プログラミング能力認定試験(C言語検定)
  • 基本情報技術者試験

教科書

プログラミング言語の歴史

  • アセンブラ→C→C++→Java→C#

どのプログラミング言語が話題になっているか? 順位
TIOBE Programming Community Index

TIOBE Programming Community Index , PCI値は、複数の検索エンジンの検索結果から対象とするプログラミング 言語がどれだけ話題になっているかをインデックス化したの。TIOBE Softwareでは毎月中旬に分析結果を公開し ている。 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

C言語検定試験について

試験名

C言語プログラミング能力認定試験
(C-Language Programming Skills Qualification Test)

試験目的

C言語を駆使して応用プログラム(言語処理系、ユーティリティなど)を作成する能力を認定します。

認定基準

一級 C言語を駆使し、応用プログラム(言語処理系、ユーティリティなど)が作成できる能力を有する。また使用しているOSについて理解をしている。
二級 小規模のプログラム(500行程度)が適切に(理路整然、簡潔、正しく、速く)書ける。また各種基本アルゴリズムを理解している。
三級 C言語の概念を理解し、簡単なプログラムが書ける。

 

C言語について

プログラミング関連の資格

  1. Oracle Certified Java Programmer
  2. C言語プログラミング能力認定試験
  3. Ruby技術者認定試験制度
  4. ORACLE MASTER Silver Oracle PL/SQL Developer
  5. IPA基本情報処理技術者試験
  6. IPA応用情報処理技術者試験
  7. マイクロソフト認定ソリューション デベロッパー (MCSD)
  8. CIW Web Development Professional Certification
  9. 情報検定(J検)
  10. JSTQBテスト技術者資格認定

参考サイト:

  • http://techacademy.jp/magazine/894

2015年の人気プログラム言語比較

言語の特徴を表にまとめてみました。

用途 学習難易度 年収 求人数 将来性
C 制御系、組込み系 ★★★★★ 普通 少ない
Java 汎用的だがWeb系
の開発が多い
★★★ 普通 多い ★★
PHP Web系 ★★ 普通 多い ★★
Ruby 汎用的だがWeb系
の開発が多い
★★★ 少ない ★★★
Python 汎用的 ★★★ 少ない ★★★★
Swift iPhoneアプリ ★★★★ 多い ★★★★★

参考サイト:

  • https://toiroha.jp/article/detail/32380
  • https://blog.codecamp.jp/programming_language_2015

C言語とJava言語の比較

C言語:マニュアル車?

C言語は構造化言語というものです。
関数と呼ばれる、機能を多数組み合わせる事で、プログラムを作成していく形になります。
シンプルな上に高速なプログラムを作成可能ですが、その分少々敷居が高いかもしれません。
特にポインタ、構造体で相当数が挫折するので、それなりの覚悟で学習が必要です。
習得すれば分野を問わずほとんどのソフトウェアを作る事ができ、OSさえ作成可能です。
上手く使えば非常に有用な反面、ミスをすると簡単にデータを破壊する危険性を兼ね備えた言語です。

OS, Game, iPhone App, …

Java言語:オートマ車?

Javaはオブジェクト指向言語です。
データと機能をまとめた、オブジェクトを利用する事でプログラムを作成していきます。
C言語よりも後発で、標準で多数の機能が提供されているのは良いのですが、そもそもオブジェクト指向の考え方が全く理解できない人も非常に多く、これもまた書籍等での学習が必要です。

Webシステム, Android App,…

C言語とJavaのどちらか一方をマスターしても、もう片方は基本的な部分以外は最初から学習しなおしだと思います。
ちなみにC言語経験者が初めてJavaに触れると、C言語なら単純明快にできる事が、Javaでは面倒に感じます。
逆にJava経験者が初めてC言語に触れると、用意されている機能が少なすぎて何もできないように感じます。

IoT, 組み込み開発を中心にしている会社なら、C言語はほぼ必須、しかも入門レベルではついていけません。
Webシステム開発が多い会社なら、Javaを知っていると喜ばれる可能性が高いでしょう。

WEBシステムの開発会社でもC言語が見直されている!?

OSやメモリを強く意識したC言語は高速、省資源。

ある程度の規模までのWEBシステムの場合は、
もちろんPHPやJavaといった言語が使用されますが、
大人数が同時に使用する、巨大なデータベースの場合、
核となる部分はC言語の方が適している場合もあるそうなのです。

なぜ、JavaではなくC言語なのでしょうか。

Javaの特徴でもあるガーベジコレクション(自動でメモリを開放してくれる機能)が原因で不具合が発生したことがあるそうです。

メモリを潤沢に使い、使用後も特に意識することを必要としないJavaという言語。
それに対してC言語は、メモリの管理は自分で行うことが前提の言語なのでメモリの取得と解放の手順は自分で記述しなければなりませんが、自分で記述した通りに動作させることができます。

授業要旨(前期)

1 ガイダンス 学習目的 情報工学系科目のC言語の位置づけ
プログラマ記述時の約束
2 基本的なプログラム Cプログラムの作成  文字列の表示
printf関数:書式化して表示を行う関数
3 基本的なプログラム 変数と宣言 代入 初期化
4 基本的なプログラム 文字型と文字列
5 演算子 計算演算子
6 演算子 論理演算子
7 演算子 型の変換、演算子の優先度
8 中間まとめ 1回~7回までのまとめ
9 制御文 if ~else~if~ else~ 文
if文の ネスト 条件演算子
10 制御文 switch文  break 文
11 制御文 while文  for文とwhile文
12 配列とポインタ 配列と多次元配列
13 配列とポインタ ポインタ
14 配列とポインタ ポインタと配列
15 前期のまとめ まとめと総括。小テストの実施

 

参考:


目次

C言語をはじめる前に

第1章 基本的なプログラム

Hello World!
printf()と定数
変数
数値型
文字型
文字列
printf()の書式設定
コラム~日本語について~

第2章 演算子

計算の演算子(1)
計算の演算子(2)
比較演算子
論理演算し
n進数
ビットとバイト
型の変換
演算の優先度
コラム~複雑な論理演算~

第3章 制御文

if文(1)
if文(2)
for文
while文
ループの中断
switch文
サンプルプログラム
コラム~goto文~

第4章 配列とポインタ

配列
配列と文字列
文字列自由自在
多次元配列
アドレス
ポインタ
NULLポインタ
ポインタと配列
メモリの確保(1)
メモリの確保(2)
サンプルプログラム
コラム~ポインタ配列~

第5章 関数

関数の定義
関数の呼び出し
変数のスコープ
プロトタイプ
引数の受け渡し
main()関数
サンプルプログラム
コラム~再帰呼び出し~

第6章 ファイルの出力

ファイル
ファイルの読み込み
ファイルの書き出し
バイナリの読み書き(1)
バイナリの読み書き(2)
一般的な入出力
キーボード入力
サンプルプログラム
コラム~fseek()関数~

第7章 構造体

構造体
構造体の活用
構造体とポインタ
構造体と配列
型の再定義
サンプルプログラム
コラム~データをまとめる~

第8章 プログラムの構成

ヘッダファイル
コンパイルとリンク
ファイルの組み立て
いろいろな宣言
マクロ(1)
マクロ(2)
サンプルプログラム
コラム~プログラムの最適化~

付録
さくいん

—-

Office 365

ppt : Office 365の使用方法

Office365のログイン方法

ユーザーIDと一時パスワード: 別途配布します。

アクセスページ: https://portal.office.com

  • ログインユーザー名: △△△@ueno.daiichi-koudai.ac.jp
  • 一時パスワード: ××××××

注意事項:上記のユーザー名と一時パスワードでログインし画面の指示にしたがって、ご自分の新しいパスワードを作成してください。

新しいパスワードを設定します。

※ アルファベットの大文字、小文字、数字、記号(! @ # $ % ^ & – _ + = [ ] { }| : . ? ~ ;)のうち3種類以上を組み合わせて8~16文字で設定します。パスワード強度が「高」以上になるように設定してください。

次回からは新しいパスワードを使ってのサインインとなります。

システムのうまい使い方!

スマホ(iPhone/Android) でOffice365メールを読む

アカウント追加で、Exchange をタップし登録してください。

Office365 アプリをインストール

(学内カレンダー等も利用できます)

【学校メールのパスワードリセットについて

Office365のメールのパスワードを忘れてしまい、アカウントにアクセスできなくなった場合、パスワードをリセットする必要があります。

リセットの方法は2つあります。

①1号館事務室に備付けの「メールパスワードリセット申込書」でリセットを依頼する。(従来どおり)

②パソコンやスマホから「管理者に連絡してパスワードをリセット」してもらうよう、メールを自動送信する。

リセットの依頼があれば、通常1・2日でパスワードをリセットし、一時パスワードを発行します。

「申込書」に記入した場合も、メールの自動送信による場合も、新しい一時パスワードを短冊(スリップ)にして本人に渡します。

(本人確認のため学生証の提示が必要)

パスワードのリセットを申し込んだ学生は、必ず1号館事務室にスリップを取りに来てください。

一時パスワードの有効期限は90日間ですので、なるべく早めに取りに来てください。

※注意

一時パスワードではスマホやタブレットへのメール設定はできません。必ずOffice365のサインインページで自分のパスワードに変更してから、スマホなどのメール設定を行ってください。

※お願い

あなたの周りにパスワードを忘れて、学校メールが使えなくなっている人がいたら、パスワードのリセットを申し込むよう声を掛けてください。

C exercises (17-1) guidance

学校メールの設定

– Office 360

17TExxx@ueno.daiichi-koudai.ac.jp メールの設定です

教科書

Google Classroomの登録

– Google Classroom (Classroom, Gmail, Hangouts App)

17TExxx@daiichi-koudai.com アカウントの設定です

C言語演習用ソフトウェア

勉強用パソコン購入について

Amazon

MacBookAir 11Inch おすすめ!

関連情報:

ユビキタスクラブについて

Android, iPhoneアプリの開発、IoTアプリの開発が行う

関連情報: