Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プログラム解説
Search
Yokoyama
September 20, 2021
0
76
プログラム解説
Yokoyama
September 20, 2021
Tweet
Share
More Decks by Yokoyama
See All by Yokoyama
C言語LT
2110
0
81
Featured
See All Featured
Design by the Numbers
sachag
274
18k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Making Projects Easy
brettharned
108
5.5k
Designing for humans not robots
tammielis
248
25k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Ruby is Unlike a Banana
tanoku
96
10k
Bash Introduction
62gerente
604
210k
How to train your dragon (web standard)
notwaldorf
73
5.2k
Building Adaptive Systems
keathley
31
1.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
187
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
322
20k
Transcript
プログラムを記述するにあたって 高級言語 低級言語 (高水準言語) (低水準言語) VS VS ダークライ
低級言語 ・機械語(2進数),アセンブリ言語 ・コンピュータが理解しやすい言語。 CPUに依存したプログラムを作る必要がある ・プログラムの実行速度は早い ・「低級」とは「より低い次元での」という意味 →メモリ管理やI/O制御など、コンピューターの細かい動作まで記述する必要がある
高級言語 ・C言語,Java,Pythonなど ・人間が理解しやすい言語。互換性、移植性があり、開発の現場でよく利用される ・機械語に翻訳(コンパイル)する必要があるので低級言語よりも実行は遅い ・実行する際の細かな処理は省かれる →メモリ管理、IO制御などの操作は無視できる
そして我らがC言語 ・高級言語の仲間 ・OSの一つであるUNIXを記述する目的で開発された ・ほとんどの機能がC言語で記述されたライブラリによって提供される ・メモリ管理やビット毎の論理演算などの機能を持つ →移植性が高い →低級言語……?
そして我らがC言語 ・OS開発のために作られた ⇒ 低級言語と似たことができる高級言語 ・機械語チックな記述 ⇒ 記述量が多く面倒 →しかし、この仕様のおかげで汎用性が高い →プログラミングをしながらコンピューターの仕様も知ることができて一石二鳥
“Hello, World!” ・Python ・Java Script print("hello, world!") console.log("Hello, world!"); ・PHP
<?php print("Hello, world!"); ?>
“Hello, World!” ・C言語 #include <stdio.h> int main(void) { printf("Hello, World!\n");
return 0; }
文字を出力する int main(void) { return 0; } <メイン関数> ・一番最初に読み込まれる関数。こいつがいないと何も始まらない ・(void)
は「無」という意味 →引数の指定をしていないので戻り値が型なし ・『return』はプログラム終了の合図。 0を返せば正常終了、1を返すと異常終了
文字を出力する #include <stdio.h> <疑似命令> ・#include <ファイル名> プリプロセッサという。 ・指定したヘッダファイルの中身をコピペする役割 →このファイルの中に関数の定義などが書いてある ・今回の #include
の他にも、値に名前をつけられる #define など、いろいろな種類がある 「おまじない」なんて言わせない ・<stdio.h>(これで「スタンダードIO」と読む)には基本的な関数の定義が書かれている
文字を出力する printf("Hello, World!\n"); <printf関数> ・printf(“ 出力したい文字 ”); ・\n(もしくは ¥n )は改行を意味する
→エスケープシーケンス(特殊な文字の入力) ~エスケープシーケンス~ ・\n → 改行 ・\t → 頭揃え(水平タブ) ・\¥ → 文字としての¥ ・\! , \? → 文字としての!,? ・\’ , \” → 文字としての ’ ,”
数字を扱う printf("12345"); <文字列リテラル> ・printf内の ″ ″ で囲まれたものは、数字であっても文字扱いになる ・計算させるためには「数値」が必要 →「文字」扱いの数字では不可能 ⇒そうだ、指定子を使おう
数字を扱う printf("%d", 100); <出力変換指定子> ・外部のデータを文字列に変換したいときに使う ・%d は整数値を文字列に変換する →複数個を同時に使うこともできる printf("%d+%d=%d", 1,
1, 2);