Taro-ポインタ変数Ⅰ(公開版).j
|
|
|
- あいり はしかわ
- 6 years ago
- Views:
Transcription
1 0. 目次 1. ポインタ変数と変数 2. ポインタ変数と配列 3. ポインタ変数と構造体 4. ポインタ変数と線形リスト 5. 問題 問題 1 問題 2-1 -
2 1. ポインタ変数と変数 ポインタ変数には 記憶領域の番地が格納されている 通常の変数にはデータが格納されている 宣言 int *a; float *b; char *c; 意味ポインタ変数 aは 整数型データが保存されている番地を格納している ポインタ変数 bは 実数型データが保存されている番地を格納している ポインタ変数 cは 文字型データが保存されている番地を格納している プログラム ( ptr111.c) 1 /* << ptr111.c>> */ 2 #include <stdio.h> 3 int main () { 4 int a; /* 変数 aを整数型とする */ 5 int *p; /* ポインタ変数 pが指すデータは整数である */ 6 a = ; 7 *p = 456; 8 *p = *p*2; 9 printf(" 通常変数 aの記憶場所 = %x\n",&a); 10 printf(" 通常変数 aの値 = %d\n",a); 11 printf(" ポインタ変数 pの記憶場所 = %x\n",&p); 12 printf(" ポインタ変数 pの値 = %x\n",p); 13 printf(" ポインタ変数 pの指す値 = %d\n",*p); 14 } % cc ptr111.c %./a.out 通常変数 aの記憶場所 = 9ceb074c 通常変数 aの値 = ポインタ変数 pの記憶場所 = 9ceb0740 ポインタ変数 pの値 = 9ceb0830 ポインタ変数 pの指す値 = 912 番地は 実行の都度変わる - 2 -
3 番地 記憶領域 9ceb0740 9ceb0830 ポインタ変数 p が割り当てられている場所 9ceb074c 通常変数 a が割り当てられている場所 9ceb ポインタ変数 p が指す場所 & は変数に割り当てられた番地を求める演算子である * はホ インタ変数が保持する番地の内容を求める演算子である 変数名 左図は 変数名とその内容を意味する 内容 青色は通常の変数 赤色はポインタ変数を意味する ポインタ変数に保存されている番地は 矢印で表す a p - 3 -
4 2. ポインタ変数と配列 配列の実体はポインタである 配列名がポインタ変数となる x[0] と *(x+0) x[1] と *(x+1) x[2] と *(x+2) は同等である プログラム ( ptr211.c) 1 /* << ptr211.c>> */ 2 #include <stdio.h> 3 int main () { 4 int x[3]; /* 配列 x を整数型とする */ 5 x[0] = ; 6 x[1] = 456; 7 x[2] = 789; 8 /* 配列的記述 */ 9 printf("x[0] = %d\n",x[0]); 10 printf("x[1] = %d\n",x[1]); 11 printf("x[2] = %d\n",x[2]); 12 /* ポインタ的記述 */ 13 printf("*(x+0) = %d\n",*(x+0)); 14 printf("*(x+1) = %d\n",*(x+1)); 15 printf("*(x+2) = %d\n",*(x+2)); 16 } % cc ptr211.c % a.out x[0] = x[1] = 456 x[2] = 789 *(x+0) = *(x+1) = 456 *(x+2) =
5 配列名を他のポインタ変数に代入することができる プログラム ( ptr221.c) 1 /* << ptr221.c>> */ 2 #include <stdio.h> 3 int main () { 4 int x[3]; /* 配列 x を整数型とする */ 5 int *y; 6 x[0] = ; 7 x[1] = 456; 8 x[2] = 789; 9 y = x; 10 /* 配列的記述 */ 11 printf("y[0] = %d\n",y[0]); 12 printf("y[1] = %d\n",y[1]); 13 printf("y[2] = %d\n",y[2]); 14 /* ポインタ的記述 */ 15 printf("*(y+0) = %d\n",*(y+0)); 16 printf("*(y+1) = %d\n",*(y+1)); 17 printf("*(y+2) = %d\n",*(y+2)); 18 } % cc ptr221.c % a.out y[0] = y[1] = 456 y[2] = 789 *(y+0) = *(y+1) = 456 *(y+2) = 789 配列名 x はポインタ変数であるが他のポインタ変数から代入はできない プログラム ( ptr231.c) 1 /* << ptr231.c >> */ 2 #include <stdio.h> 3 int main() { 4 int x[3],*y; 5 y = x; /* OK */ 6 x = y; /* エラー */ 7 } % cc ptr231.c pointer23.c: In function main : pointer23.c:6: error: incompatible types when assigning to type int[3] from type int * - 5 -
6 3. ポインタ変数と構造体 構造体は 複数のデータをまとめて扱う 構造体の定義は次のように行う struct 構造体名 { メンバー 1 ; メンバー 2 ; メンバー n ; }; struct 構造体名変数名 ; 新たなデータ型を定義したと考えられる 構造体を変数で宣言した場合 宣言時に記憶領域が確保される メンバーを指定するのに 演算子. を使う プログラム ( ptr311.c) /* << ptr311.c >> */ #include <stdio.h> int main () { struct complex { int rpart; int ipart; }; 1 struct complex z; 2 z.rpart = ; 3 z.ipart = 456; printf("rpart:%d ipart:%d\n",z.rpart,z.ipart); } rpart: ipart:456 z 456 動作 1 struct complex z; z 記憶領域が確保される 2 z.rpart = ; z 3 z.ipart = 456; z
7 構造体をポインタ変数で宣言した場合 記憶領域は確保されないので 自分で確保する必要がある メンバ指定には 演算子 -> を使う プログラム ( ptr321.c) /* << ptr321.c >> */ #include <stdio.h> #include <stdlib.h> int main () { struct complex { int rpart; int ipart; }; struct complex *p; 1 p = (struct complex *)malloc(sizeof(struct complex)); 2 p->rpart = ; 3 p->ipart = 456; 4 printf("rpart:%d ipart:%d\n",p->rpart,p->ipart); free(p); 5 printf("rpart:%d ipart:%d\n",p->rpart,p->ipart); } rpart: ipart:456 rpart:0 ipart:0 456 p 意味 sizeof( 型名 ) 指定した型名に必要なバイト数を返す malloc( サイズ ) サイズで指定された大きさの記憶領域が確保され先頭番地が返される ( 注意 1 ) sizeof は演算子で malloc は関数である ( 注意 2 ) (struct complex *) をキャストという ( 注意 3 ) 確保した記憶領域を開放するのに free 関数を使う ( 注意 4 ) malloc 関数 free 関数を使うときは 標準ヘッダファイル stdlib.h をインクルードしておく必要がある - 7 -
8 動作 1 struct complex *p; p 構造体のデータを格納する記憶領域は確保されていない 2 p = (struct complex *)malloc(sizeof(struct complex)); 構造体のデータを格納する記憶領域が確保された p sizeof(struct complex) で構造体 complex の大きさが求められ malloc でその大きさの記憶領域が確保され 先頭番地が返されてくる (struct complex *) で 返されてきた先頭番地が構造体 complex の境界に合うように変換される 3 p->rpart = ; p 4 p->ipart = 456; 456 p 5 free(p); p - 8 -
9 4. ポインタ変数と線形リスト 一連のデータをポインタでつなぎ合わせたものを線形リストという NULL 4. 1 線形リストの作成と表示 プログラム ( ptr411.c) 1 /* << ptr411.c >> */ #include <stdio.h> #include <stdlib.h> int main () { /* 構造体の定義 */ struct NODE { int info; struct NODE *next; /* nextは ポインタ変数 */ }; /* 構造体の宣言 */ struct NODE *p,*q,*r,*s; 2 p = (struct NODE *) malloc(sizeof(struct NODE)); 3 p->info = ; 4 q = (struct NODE *) malloc(sizeof(struct NODE)); 5 q->info = 456; p->next = q; 6 r = (struct NODE *) malloc(sizeof(struct NODE)); 7 r->info = 789; q->next = r; 8 r->next = NULL; /* 線形リストをたどる */ s = p; while( s!= NULL ) { printf("%d\n",s->info); s = s->next; } 9 free(p); free(q); free(r); } NULL - 9 -
10 動作 1 struct NODE *p,*q,*r,*s; s 2 p = (struct NODE *) malloc(sizeof(struct NODE)); sizeof(struct NODE) で構造体 NODE の大きさが求められ malloc でその大きさの記憶領域が確保され 先頭番地が返されてくる (struct NODE *) で 返されてきた先頭番地が構造体 NODE の境界に合うように変換される 3 p->info = ; 4 q = (struct NODE *) malloc(sizeof(struct NODE)); 5 q->info = 456; p->next = q; r = (struct NODE *) malloc(sizeof(struct NODE));
11 7 r->info = 789; q->next = r; r->next = NULL; NULL 9 free(p); free(q); free(r);
12 5. 問題 問題 1 1 人の学生について 3 科目の成績 ( 国語 数学 英語 ) をもつとき つぎの構造体で表現する 1 struct student { 2 int kokugo; 3 int suugaku; 4 int eigo; 5 } 1 人分の成績データを読み込んだ後 平均値を出力するプログラムを作成せよ ただし 構造体とポインタ変数を使うこと 1 /* << ptr511.c >> */ 2 #include <stdio.h> 3 #include <stdlib.h> 4 int main () { 5 int sum; 6 struct student { 7 int kokugo; 8 int suugaku; 9 int eigo; 10 }; 11 struct student *p; 12 p = (struct student *)malloc(sizeof(struct student)); 13 scanf("%d%d%d",&p->kokugo, 14 &p->suugaku, 15 1 ); 16 sum = p->kokugo + p->suugaku + 2 ; 17 printf("%f\n",sum/3.0); 18 } % cc ptr511.c % a.out
13 問題 2 学生数 n( 最大 100 名 ) を読み込んだ後 国語 数学 英語の平均値を出力するプログラムを作成せよ ただし 構造体とポインタ変数を使うこと 1 /* << ptr521.c >> */ 2 #include <stdio.h> 3 #include <stdlib.h> 4 int main () { 5 int i,n,sum1,sum2,sum3; 6 struct student { 7 int kokugo; 8 int suugaku; 9 int eigo; 10 }; 11 struct student *p[100]; 12 scanf("%d",&n); 13 for( i=0; i<n; i++ ) { 14 p[i] = (struct student *)malloc(sizeof(struct student)); 15 scanf("%d%d%d",&p[i]->kokugo,&p[i]->suugaku, 16 3 ); 17 } 18 sum1 = 0; sum2 = 0; sum3 = 0; 19 for( i=0; i<n; i++ ) { 20 sum1 = sum1 + p[i]->kokugo; 21 sum2 = sum2 + p[i]->suugaku; 22 sum3 = sum3 + 4 ; 23 } 24 printf(" 国語の平均 : %f\n",sum1/(float)n); 25 printf(" 数学の平均 : %f\n",sum2/(float)n); 26 printf(" 英語の平均 : %f\n",sum3/(float)n); 27 } % cc ptr521.c % a.out 国語の平均 : 数学の平均 : 英語の平均 : p[0] p[1] p[2] p[99]
バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科
バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (
Taro-スタック(公開版).jtd
0. 目次 1. 1. 1 配列によるの実現 1. 2 再帰的なデータ構造によるの実現 1. 3 地図情報処理 1. 4 問題 問題 1 グラフ探索問題 - 1 - 1. は データの出し入れが一カ所で行われ 操作は追加と削除ができるデータ構造をいう 出入口 追加 削除 操作 最初 111 追加 111 222 追加 111 222 333 追加 111 222 333 444 追加 111 222
プログラミングI第10回
プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造
PowerPoint プレゼンテーション
講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる
PowerPoint プレゼンテーション
プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体
Taro-2分探索木Ⅰ(公開版).jtd
2 分探索木 Ⅰ 0. 目次 1. 2 分探索木とは 2. 2 分探索木の作成 3. 2 分探索木の走査 3. 1 前走査 3. 2 中走査 3. 3 問題 問題 1 問題 2 後走査 4. 2 分探索木の表示 - 1 - 1. 2 分探索木とは 木はいくつかの節点と節点同士を結ぶ辺から構成される 2 つの節点 u,v が直接辺で結ばれているとき 一方を親節点 他方を子節点という ある節点の親節点は高々
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =
問 1 配列の宣言整数型配列 data1 にデータが初期設定されている この配列 data1 のデータを下図のように 整数型配列 data2 に代入しなさい また data2 の内容を printf( "data2[0] = %d\n", data2[0] ); printf( "data2[5] = %d\n", data2[5] ); を用いて出力しなさい 実行結果 data2[0] = 76
Microsoft Word - Cプログラミング演習(11)
第 11 回 (7/2) 4. いくつかのトピック (1) ビットごとの演算子 C 言語には, 次のようなビット単位で演算を行う特別な演算子が用意されている & ビットごとの AND ビットごとの OR ^ ビットごとの XOR( 排他的論理和 ) ~ 1 の補数これらの演算子は文字型と整数型で機能し, 浮動小数点数型では使用できない AND, OR, XOR は, それぞれのオペランドの対応するビットを比較して結果を返す
第1回 プログラミング演習3 センサーアプリケーション
C プログラミング - ポインタなんて恐くない! - 藤田悟 [email protected] 目標 C 言語プログラムとメモリ ポインタの関係を深く理解する C 言語プログラムは メモリを素のまま利用できます これが原因のエラーが多く発生します メモリマップをよく頭にいれて ポインタの動きを理解できれば C 言語もこわくありません 1. ポインタ入門編 ディレクトリの作成と移動 mkdir
Microsoft PowerPoint - lec10.ppt
今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ
Microsoft Word - Cプログラミング演習(12)
第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char
プログラミング及び演習 第1回 講義概容・実行制御
プログラミング及び演習 第 7 回ポインタ ( 教科書第 10 章 ) (2014/05/23) 講義担当情報連携統轄本部情報戦略室大学院情報科学研究科メディア科学専攻教授森健策 本日の講義 演習の内容 ポインタ ポインタ第 10 章 講義 演習ホームページ http://www.newves.org/~mori/14programming ところで, さあ いよいよポインタです コツさえわかれば難しくないので安心してください
プログラミング実習I
プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 [email protected] 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
PowerPoint プレゼンテーション
プログラミング応用演習 第 3 回構造体, ファイル入出力 先週の出席確認へのコメント 暗号を破りたいが 平文の候補が多すぎる 人間の目で確認する代わりに どんなプログラムがあればよいか? 辞書を挙げた人が多かった 正しい着眼です 何億個もの平文候補が想定されるので 形態素解析や品詞判別を挙げた人もいます 辞書に近い回答で悪くはないのですが 平文候補ごとにあまり高機能なものを呼び出すと時間がかかる
02: 変数と標準入出力
C プログラミング入門 基幹 2 ( 月 4) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ
PowerPoint Presentation
工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない
02: 変数と標準入出力
C プログラミング入門 基幹 7 ( 水 5) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 1 p 1 T 0 S = i=0 p 0 T i = i=0 2
02: 変数と標準入出力
C プログラミング入門 総機 1 ( 月 1) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ
Microsoft Word - Cプログラミング演習(7)
第 7 回 (6/4) 2. 構造体 構造体とは, 同じ型に限定されない複数の関連するデータメンバの集合である 構造体の宣言構造体指定子 struct を用いて struct 構造体タグ名 { メンバ 1 の宣言 ; メンバ 2 の宣言 ; メンバ n の宣言 ; }; 注 ) 構造体タグ名は構造体の型名で, 内容を定義するものでオブジェクトではなく, 論理的なテンプレートである 構造体の変数の宣言実際の記憶領域を占める物理的実体を確保する
RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用
RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用体型のローカル変数を文字列操作関数で操作する場合の注意事項 (RXC#013) 配列型構造体または共用体の配列型メンバから読み出した値を動的初期化に用いる場合の注意事項
Taro-ファイル処理(公開版).jtd
ファイル処理 0. 目次 1. はじめに 2. ファイル内容の表示 3. ファイル内容の複写 3. 1 文字単位 3. 2 行単位 4. 書式付き入出力 5. 文字配列への入出力 6. 課題 6. 1 課題 1 ( ファイル圧縮 復元 ) - 1 - 1. はじめに ファイル処理プログラムの形は次のようになる #include main() { FILE *fp1,*fp2; ファイルポインタの宣言
PowerPoint Template
プログラミング演習 Ⅲ Linked List P. Ravindra S. De Silva e-mail: [email protected], Room F-413 URL: www.icd.cs.tut.ac.jp/~ravi/prog3/index_j.html 連結リストとは? 一つひとつの要素がその前後の要素との参照関係をもつデータ構造 A B C D 連結リストを使用する利点 - 通常の配列はサイズが固定されている
プログラミング実習I
プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,
Microsoft Word - Cプログラミング演習(10)
第 10 回 (6/25) 3. ファイルとその応用 (3) ファイルの更新 シーケンシャルファイルの更新 シーケンシャルファイルでは, 各レコードが可変長で連続して格納されており, その中の特定のレコードを変更することができない そこで一般的には, マスタファイルからデータを取り出し, 更新処理を行ったあとに新マスタファイルに書き込む 注 ) マスタファイル : 主ファイル, 基本ファイルと呼ばれるファイルで内容は比較的固定的であり,
char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く
変数 入出力 演算子ここまでに C 言語プログラミングの様子を知ってもらうため printf 文 変数 scanf 文 if 文を使った簡単なプログラムを紹介した 今回は変数の詳細について習い それに併せて使い方が増える入出力処理の方法を習う また 演算子についての復習と供に新しい演算子を紹介する 変数の宣言プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを
PowerPoint プレゼンテーション
プログラミング応用演習 第 5 回演習 前回までのお話 ポインタ ポインタを用いた文字列処理 構造体 ファイル 再帰的構造体 リスト構造 動的メモリ管理 今日のお題 ポインタやファイルなど これまでの内容の練習 教材 以前 以下に単語を収録したファイルがあることを紹介した : /usr/share/dict/words この中からランダムに単語を取り出したファイルを用意した http://sun.ac.jp/prof/yamagu/2019app/
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき
Microsoft Word - 第5回 基本データ構造2(連結リスト).doc
第 5 回基本データ構造 2 連結リストとその操作 第 5 回 Page 1 5-1. リスト構造 データ部 と ポインタ部 で構成され ポインタをたどることによりデータを扱うことができる構造 5-2. 単方向リストとその操作 5-2-1. 単方向リスト 次のデータへのポインタを 1 つだけ持っているデータ構造 ( データ部は 複数のデータを持っている場合もある ) データ部 ポインタ部 ノード リストを構成する要素のことを
情報処理演習 B8クラス
予定スケジュール ( 全 15 回 ) 1 1. 終了 プログラミング言語の基礎 2. 終了 演算と型 3. 終了 プログラムの流れの分岐 (if 文,switch 文など ) 4. 終了 プログラムの流れの繰返し (do, while, for 文など ) 5. 終了 中間レポート1 6. 終了 配列 7. 終了 関数 8. 終了 文字列 ( 文字列の配列, 文字列の操作 ) 9. 終了 ポインタ
<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>
C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う
PowerPoint Presentation
プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include
1. 入力した正の整数を降順に並べ換えて出力するプログラムを作成せよ プログラムは個別にコンパイルし make コマンドで実行すること 入力データは 50 以下とし 以下の数が混在しているとする 16 進数 : 先頭 1 文字が x または X( エックスの小文字か大文字 ) 8 進数 : 先頭 1
1. 入力した正の整数を降順に並べ換えて出力するプログラムを作成せよ プログラムは個別にコンパイルし make コマンドで実行すること 入力データは 50 以下とし 以下の数が混在しているとする 16 進数 : 先頭 1 文字が x または X( エックスの小文字か大文字 ) 8 進数 : 先頭 1 文字が 0( 零 ) 10 進数 : 先頭 1 文字が 0( 零 ) 以外の数字 1.1 プログラム
Taro-再帰関数Ⅲ(公開版).jtd
0. 目次 1 1. ソート 1 1. 1 挿入ソート 1 1. 2 クイックソート 1 1. 3 マージソート - 1 - 1 1. ソート 1 1. 1 挿入ソート 挿入ソートを再帰関数 isort を用いて書く 整列しているデータ (a[1] から a[n-1] まで ) に a[n] を挿入する操作を繰り返す 再帰的定義 isort(a[1],,a[n]) = insert(isort(a[1],,a[n-1]),a[n])
PowerPoint プレゼンテーション
2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd
PowerPoint プレゼンテーション
講座を行う前に 自己紹介 僕と上回生について 1 年生同士で少しお話しよう! オリエンテーションの宿題 アルゴロジック http://home.jeita.or.jp/is/highschool/algo/index3.html どこまでできましたか? あまりできなかった人はこれから全部クリアしよう! 2016 年度 C 言語講座 第一回目 2016/6/11 fumi 今回の目標 プログラムを書いて実行するやり方を覚える
コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol
コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include 2. #include /*troupper,islower,isupper,tolowerを使うため宣言*/ 3. 4. int get_n(char *); 5. void replace(char
Microsoft PowerPoint ppt
基礎演習 3 C 言語の基礎 (5) 第 05 回 (20 年 07 月 07 日 ) メモリとポインタの概念 ビットとバイト 計算機内部では データは2 進数で保存している 計算機は メモリにデータを蓄えている bit 1bit 0 もしくは 1 のどちらかを保存 byte 1byte 1bitが8つ集まっている byte が メモリの基本単位として使用される メモリとアドレス メモリは 1byte
Microsoft PowerPoint - 5Chap15.ppt
第 15 章文字列処理 今日のポイント 15.1 文字列処理の基本 strcpy strcat strlen strchr などの使い方をマスターする strcpy はなんて読むの? 普通はストリングコピー C のキーワードの読み方に悩んだら下記サイトを参考 ( 前回紹介とは別サイト ) http://www.okakogi.go.jp/people/miwa/program/c_lang/c_furoku.html
