Submit Search
Upload
第五回
•
Download as PPTX, PDF
•
0 likes
•
230 views
E
evesanta1224
Follow
第五回のプログラミング演習のヒントです
Read less
Read more
Software
Report
Share
Report
Share
1 of 43
Download now
Recommended
ResumeEducator
ResumeEducator
Louis Martinez
Innovative web design in delhi
Innovative web design in delhi
Jatin Arora
Evaluation Question 1
Evaluation Question 1
harrymediaproject
The Third Man
The Third Man
harrymediaproject
第6回
第6回
evesanta1224
Evaluation Question 6
Evaluation Question 6
harrymediaproject
Question 5
Question 5
harrymediaproject
Passion cheval
Passion cheval
Reveuse Zen
Recommended
ResumeEducator
ResumeEducator
Louis Martinez
Innovative web design in delhi
Innovative web design in delhi
Jatin Arora
Evaluation Question 1
Evaluation Question 1
harrymediaproject
The Third Man
The Third Man
harrymediaproject
第6回
第6回
evesanta1224
Evaluation Question 6
Evaluation Question 6
harrymediaproject
Question 5
Question 5
harrymediaproject
Passion cheval
Passion cheval
Reveuse Zen
プロエン4回
プロエン4回
evesanta1224
Preliminary evaluation
Preliminary evaluation
harrymediaproject
Essex boys case study
Essex boys case study
harrymediaproject
Innovative web design in Delhi
Innovative web design in Delhi
Jatin Arora
SOLIDWORKS Solution
SOLIDWORKS Solution
Ihdal Husnayain
Kill Bill Opening Scene
Kill Bill Opening Scene
harrymediaproject
Ppt tekpend
Ppt tekpend
vikain
m1a sophie jochems
m1a sophie jochems
120007444
IPA Menggolongkan Hewan
IPA Menggolongkan Hewan
vikain
O pedagogo na educação do autista
O pedagogo na educação do autista
SimoneHelenDrumond
Industria digitala
Industria digitala
Grupo Ate
Epic research malaysia daily klse report for 23rd november 2015
Epic research malaysia daily klse report for 23rd november 2015
Epic Research Pte. Ltd.
критерии школа
критерии школа
Екатерина Мухина
Wk7AAssgnAromokeyeN
Wk7AAssgnAromokeyeN
Niyi Aromokeye
Dhcp server dan dns server
Dhcp server dan dns server
muhlih
More Related Content
Viewers also liked
プロエン4回
プロエン4回
evesanta1224
Preliminary evaluation
Preliminary evaluation
harrymediaproject
Essex boys case study
Essex boys case study
harrymediaproject
Innovative web design in Delhi
Innovative web design in Delhi
Jatin Arora
SOLIDWORKS Solution
SOLIDWORKS Solution
Ihdal Husnayain
Kill Bill Opening Scene
Kill Bill Opening Scene
harrymediaproject
Ppt tekpend
Ppt tekpend
vikain
m1a sophie jochems
m1a sophie jochems
120007444
IPA Menggolongkan Hewan
IPA Menggolongkan Hewan
vikain
O pedagogo na educação do autista
O pedagogo na educação do autista
SimoneHelenDrumond
Industria digitala
Industria digitala
Grupo Ate
Epic research malaysia daily klse report for 23rd november 2015
Epic research malaysia daily klse report for 23rd november 2015
Epic Research Pte. Ltd.
критерии школа
критерии школа
Екатерина Мухина
Wk7AAssgnAromokeyeN
Wk7AAssgnAromokeyeN
Niyi Aromokeye
Dhcp server dan dns server
Dhcp server dan dns server
muhlih
Viewers also liked
(15)
プロエン4回
プロエン4回
Preliminary evaluation
Preliminary evaluation
Essex boys case study
Essex boys case study
Innovative web design in Delhi
Innovative web design in Delhi
SOLIDWORKS Solution
SOLIDWORKS Solution
Kill Bill Opening Scene
Kill Bill Opening Scene
Ppt tekpend
Ppt tekpend
m1a sophie jochems
m1a sophie jochems
IPA Menggolongkan Hewan
IPA Menggolongkan Hewan
O pedagogo na educação do autista
O pedagogo na educação do autista
Industria digitala
Industria digitala
Epic research malaysia daily klse report for 23rd november 2015
Epic research malaysia daily klse report for 23rd november 2015
критерии школа
критерии школа
Wk7AAssgnAromokeyeN
Wk7AAssgnAromokeyeN
Dhcp server dan dns server
Dhcp server dan dns server
第五回
1.
プログラミング演習 5回
2.
5−1
3.
5−1概要 • htmlを作る • 簡単 •
説明なし • 終了
4.
5−2
5.
5−2概要 • 文字列を入力 • シフト数を入力 •
文字列をそれぞれシフト数分ずらす • できた文字列をファイル出力
6.
5−2考察 • 文字列を入力するということはchar型の変数が必要 • char型は配列で管理すれば一文字ずつ確認すること ができる •
文字というのはASCII codeの中では数字でしかない • 数字なら足し算ができる!
7.
5−2ヒント • ‘b’というものを考えてみる • ‘b’は’a’から数えて1番目の数である •
なので’a’ + 1は’b’のことだね • このプラする値をshift(シフト)する値に変えてあ げればある値分アルファベットをずらすことができ る
8.
5−2ヒント続き • しかし、’z’ +
2 などというアルファベットの領域 をはみ出してしまうものはどうしようか? • はみ出したら’a’から数え直したらいいね • →26を引く
9.
5−2別解 • 文字列を’a’からの距離に変換しておく • そして変換した数字にシフトする値を足す •
それを26で割ってそのあまりを出力する! • するとif文を使わずに実装することができる
10.
5−3
11.
5−3概要 • 5−2の反対をする(復元する) • シフトする値を0から25まで試行してそれをファ イルに出力
12.
5−3考察 • 5−2の反対じゃん! • でも次考えるべきなのは’a’よりも下になった時だ •
26を足せばいいね
13.
5−3ヒント • 5−2のプログラムをの一部をfor文で囲む • そしてプラスしていた処理をマイナスにする •
飛び出したらその分補完してあげればいい
14.
5−4
15.
5−4概要 • 生徒の成績を構造体で管理し • 4教科の合計を計算する •
そのあと点数の高い順に並び替えてファイル出力
16.
5−4考察 • 構造体で管理しなければいけないので授業をきちん と聞いておくかpdfを見て理解を深めなければいけ ません • 構造体の配列を使うことになりそうですなので、ア ロー演算子ではなくドット演算子を使いそうだ •
データの入力は構造体をメイン関数で宣言した時に 初期化した方が良いでしょう
17.
5−4考察続き • 並び替え(ソート)をしなければいけません • でも学籍番号も管理しなければいけないので標準関数であ るqsortを使うことはできなさそうです •
じゃどうするか?自分で作ればいいですね • バブルソートや選択ソートくらいなら簡単に作れそうです • ソート時に値を入れ替える時に学籍番号も一緒に入れ替え てあげることで学籍番号も一緒にソートできます
18.
選択ソート • 選択ソートとはピポットとなる数字を選択してそれ よりも大きいかを順番に比較して、並び替えるソー トのこと • 次の例は昇順に並べるソートです
19.
選択ソート 3 4 7
2 1 9 この配列を並び替えようと思います!
20.
選択ソート 3 4 7
2 1 9 ピポット 比較! まず3をピポットとして考えてみる 右のほうが大きいのでおk!
21.
選択ソート 3 4 7
2 1 9 ピポット 比較! まず3をピポットとして考えてみる 右のほうが大きいのでおk!
22.
選択ソート 3 4 7
2 1 9 ピポット 比較! 右のほうが小さくなっちゃった
23.
選択ソート 2 4 7
3 1 9 ピポット 入れ替える! 右のほうが小さくなっちゃった 2がピポットとして再開
24.
選択ソート 2 4 7
3 1 9 ピポット 比較! 右のほうが小さい
25.
選択ソート 1 4 7
3 2 9 ピポット 入れ替える 1をピポットとして再開
26.
選択ソート 1 4 7
3 2 9 ピポット 比較! 右のほうが大きいのでおK
27.
選択ソート 1 4 7
3 2 9 ピポット 比較! 右のほうが大きいのでおK なので次は4をピポットとする 1は確定しました!
28.
選択ソート 1 4 7
3 2 9 ピポット 比較! 右のほうが小さくなっちゃった なので次は4をピポットとする 1は確定しました!
29.
選択ソート 1 3 7
4 2 9 ピポット 入れ替える 右のほうが小さくなっちゃった なので次は4をピポットとする 1は確定しました!
30.
選択ソート 1 3 7
4 2 9 ピポット これを続けていけば全て並び替えることができる c言語で実装する場合は for文を2回ネストすればできるはず!
31.
5−4ヒント • 点数の合計は構造体から値を取り出して4教科を足 せばいいのでできるはず • 合計を管理する配列を作っておきましょう •
合計を入れた配列と学籍番号を入れる配列を別に宣 言するか、合計の配列を2次元配列にして学籍番号 を入れておくと後々便利です
32.
5−4ヒント続き • ソートの時、変数を入れ替えるのはどうしよう? • hako
= a; • a = b; • b = hako; • のようにすれば2つの変数を入れ替えることができ ます • この処理をするときに学籍番号も入れ替えておきま しょう(次)
33.
続き • hako =
a; • a = b; • b = hako; • bangou_hako = banngou_a; • bangou_a = bangou_b; • bangou_b = bangou_hako; • このようにすれば値と学籍番号を一緒に入れ替える ことができます(変数名は知らん!!!)
34.
5−4ラスト • ソートした値と学籍番号をファイルに出力すれば完 成!
35.
5−A1
36.
5-A1概要 • 5−4のプログラムを2学期目も対応できるように せよ
37.
5−A1考察 • 5−4のプログラムの構造体を拡張して、8個の値 を管理できるようにすれば良い • そして、合計するところでも少しプログラムをいじ れば完成
38.
5−A2
39.
5−A2概要 • 5−4のプログラムを100人まで対応する • データ入力は最初の初期化でするのではなく乱数で 決める
40.
5−A2考察 • 構造体のメンバの初期化で代入が禁止されてしまっ た。 • forを100回、回してデータを入力しなければいけな い •
その中で乱数を使う必要がある • 乱数で算出した値を構造体内のメンバに代入する
41.
5−A2 • 乱数を使うときはrand()関数を使えば実装できる! • でもこの関数から生成される数字は馬鹿でかい •
じゃどうするか!!?? • 101で割ったあまりを計算すれば良い! • 変数 = rand() % 101;//これで実装できた!
42.
5-A2 • だがしかし!!まだ足りない! • 乱数の関数を使ったけどこのままだと何回やっても同じ値 になってしまう •
なので#include <time.h>//これをインクルードする • srand((unsigned)time(NULL));//これをメイン関数の変数宣 言の後につけましょう • そうすればきちんと乱数が生成されます
43.
5-A2 • あとは5−4のようにファイル出力すれば完成です !
Download now