teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

2017/11/08 04:07

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Linux 拡張子の名前を変更する
1
+ ..........
body CHANGED
@@ -1,3 +1,1 @@
1
- Linuxで、あるディレクトリAがあって、その中にファイルがあったりさらにディレクトリがあったりする状況で、そのディレクトリAに存在するファイルのうち拡張子が.jpgであるものを全て.jpegにしたいです。(ディレクトリ名に拡張子.jpgがあってもそれは変更してはいけない)
2
-
3
- ディレクトリ名を変えずにファイル名だけ変更する方法が分かりません。for構文とmvコマンドを使って拡張子の名前を変える方法はおそらく分かるのですが、ディレクトリ名を変えずにとなると難しいです。dirnameコマンドを使えばいいのでしょうか...?うまく使えませんが...
1
+ ..........................................

1

2017/11/08 04:07

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Cプログラミング 反射軌跡
1
+ Linux 拡張子名前を変更する
body CHANGED
@@ -1,65 +1,3 @@
1
- Cプログラミング完全初心者です。質問させていただきます。
2
- 以下ような課題ですが、まず何から始めいのかよくわかりません
1
+ Linuxで、あるディレクトリAがあって、そ中にファイルあっりさらにディレクトリがあったりする状況、そのディレクトリAに存在るファイルのうち拡張子.jpgであるものを全て.jpegにしたいです(ディレクトリ名に拡張子.jpgがあってもそれは変更してはいけない)
3
- どのようなソースプログラムを作ればよいのでしょうか....
4
- どなたかお願いします。
5
2
 
6
-
7
- <課題>
8
- 床面が縦500×横500の正方形をした部屋があり、 4面が床面と鉛直な平らな壁で囲まれている。 壁4面のうち3面の壁の内側は鏡張りとなっている。 (便宜上、4面の壁はそれぞれ東西南北を向いており、 南面を除く3面が鏡張りになっているものとする。) また、天井は床と鉛直な何本かの円柱で支えられており これらの円柱の表面はすべて鏡張りとなっている。
9
-
10
- いま、この部屋の南西角から部屋の内側に向かって 床面と並行にレーザー光を照射するとき、 レーザー光が鏡に何回か反射して南面の壁に到達するまでの軌跡を 計算する次のようなCプログラムを作成せよ。
11
- • 南西角をXY平面の原点(0,0)、 南東角を(500,0)、北西角を(0,500)、北東角を(500,500)とする。
12
- •プログラムへの入力として ◦ 原点(南西角)から照射するレーザー光の (レーザー光と南面とのなす角度)
13
- ◦円柱の数
14
- ◦各円柱の底面の円の中心座標と円の半径
15
- が与えられる。すなわち、 照射角
16
- 円柱の数
17
- 円柱1のX座標
18
- 円柱1のY座標
19
- 円柱1の半径
20
-   …
21
- 円柱nのX座標
22
- 円柱nのY座標
23
- 円柱nの半径
24
-
25
- の順に数値が入力される。
26
- •プログラムは、すべての円柱の位置と半径に続いて、 原点からスタートして南面の壁に到達するまでの軌跡を結ぶ 線分の座標のリストを到達順に出力すること。 ただし、レーザー光の軌跡が座標(X0,Y0)から始まって (X1,Y1), (X2,Y2), … のように続き、最後に(Xm,Ym) で南面の壁に到達するとき、 円柱の情報と線分の座標のリストはそれぞれ次のように1行ずつ出力すること。 (各行の数値の間はスペース(空白)で区切ること。) 円柱1のX座標 円柱1のY座標 円柱1の半径
27
-   …
28
- 円柱nのX座標 円柱nのY座標 円柱nの半径
29
- X0 Y0 0.0
30
- X1 Y1 0.0
31
-
32
- Xm Ym 0.0
33
-
34
- もちろんプログラムが正しければ、X0=Y0=0.0, Ym=0.0 となるはずである。
35
- なお、レーザー光の座標の後ろにある数値0.0は円柱データと区別するために 後で必要になるので必ず付加すること。
36
-
37
- •プログラムの出力結果は、グラフ作成ツールgnuplotを使って 画像ファイルに変換して可視化します。変換に先立って、gnuplotのスクリプトtracer.gpを こちらからダウンロードしておきます。 以下、作成したプログラムのコンパイル結果はa.outとします。 1. プログラムへ入力する数値データを適当なテキストファイル名(例えば input1.txt) で作っておきます。
38
- 2.数値データを標準入力をリダイレクトしてプログラムへの入力とし、 その結果を標準出力をリダイレクトしてlaser.datというファイル名で作成します。 具体的には次のようなコマンドを入力します。 ./a.out < input1.txt > laser.dat
39
-
40
-
41
- 3.次のようにコマンドを入力して、gnuplotでデータを可視化した結果を 適当な画像ファイル名(ただし、ファイルの拡張子はjpgとすること。例えば、output1.jpg) で保存します。 gnuplot tracer.gp > output1.jpg
42
-
43
-
44
- 4.生成された画像ファイルを表示して内容を確かめます。
45
-
46
-
47
- なお、簡単のため次のように仮定する。
48
- • レーザー光の照射角は1度以上89度以下である。
49
- •円柱の数は100以下である。各円柱の半径は1以上である。
50
- •各円柱は他のどの円柱や壁面とも交差しておらず、少なくとも 長さ1以上の距離がある。
51
- •レーザー光の減衰は考慮しない。レーザー光はいつか必ず南壁面に到達する と仮定してよい。また、レーザー光がふたつの壁面のちょうど交差する点を照射することも ないと仮定してよい。
52
-
53
- プログラムのソースコードと、各入力に対する計算結果(laser.dat)および それを可視化した画像ファイルを提出すること。 計算結果および画像ファイルは、 次の2種類の入力およびもうひとつ別の入力に対するもの (ただし2本以上の円柱を含み、レーザー光が3回以上反射するもの)を提出すること。
54
- 入力1照射角=57.2
55
-
56
-    X座標 Y座標 半径
57
- 円柱1 268.5 170 82.1
58
- 円柱2 472.5 160.2 18.0
59
- 円柱3 100.0 100.0 35.0
60
- 入力2照射角=40.2
61
-
62
-    X座標 Y座標 半径
63
- 円柱1 80.5 89.3 10.0
64
- 円柱2 202.1 215.0 58.4
65
- 円柱3 360.8 348.7 135.4
3
+ ディレクトリ名を変えずにファイル名だけ変更する方法が分かりません。for構文とmvコマンドを使って拡張子の名前を変える方法はおそらく分かるのですが、ディレクトリ名を変えずにとなると難しいです。dirnameコマンドを使えばいいのでしょうか...?うまく使えませんが...。