「値をゼロサプレスして、配列に格納しなさい。」と指示された場合、代入したい値以外の各配列要素は、'0'で埋め尽くせば良いのでしょうか。それともスペースにすれば良いのでしょうか。
教えてください。

A 回答 (4件)

inoue64> 「ゼロサプレス」だから、ゼロで埋めると思います。



逆です。サプレス "suppress" … 抑制する ですから、ゼロの出力を
抑制する、です。

スペースで埋めてください。

因みに「配列」って、文字の配列なんですよね?
    • good
    • 0

ゼロサプレスは、先行するゼロをなくす。


ゼロフィルは、ゼロ埋めするものです。

例えば、5桁のエリアに数字を右詰で配置する場合

ゼロフィルなら
00100

ゼロサプレスなら
△△100
(△はスペースです。)

のようにします。
    • good
    • 0

No.1回答者より


そういえばそういうこと(No.2)だったかと思うので、
No.1の回答は間違いだと思います。
    • good
    • 0

「ゼロサプレス」だから、ゼロで埋めると思います。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフィルハンドルとはなんですか?

フィルハンドルとはオートフィルを使う時のハンドルの事ですか?

フィルハンドルをダブルクリックするのと、オートフィルを使うのは違うのですか?

教えて下さい。

Aベストアンサー

フィルハンドルは、選択されたセル(アクティブセル)の右下にある黒い四角のことです。(マウスカーソルのことではありません。)
オートフィルとフィルハンドルは、ほぼ同じですが、ダブルクリックでは、列方向にしかデータが作成されません。また、フィルハンドルを使わず、[編集]のフィルだと、連続データなど色々な設定が出来るところが少し違います。

参考URL:http://hamachan.fun.cx/excel/o-tof.html

Q配列Xの最大値、最小値を求めるサブルーチンmaxminの作り方

配列Xに入っているデータの最大値、最小値を求めるサブルーチンmaxminの作り方を教えてください。(n:データ数)

subroutine maxof(x,n,xmax,xmin)
implicit real*8(a-h,o-z)
real*8
C 最大値は変数xmaxに、最小値は変数xminに代入する
 !!この部分が分かりません!!
return
end

教えてください。
よろしくお願いします。

Aベストアンサー

!検証の都合上求められているサブルーチン以外の部分のプログラムも全て書いてます。
!個人的な信条の関係で質問文のソースコード自体を意図的に無視しているところもあります。
!(問題がmaxminを定義することなのにmaxofサブルーチンを定義するようなソースになっている地点で矛盾している)

!ヒストグラムはやらない

program test

!暗黙の型宣言など邪道だ(笑)
!こうして書いてみると
!構文が非常にVBA/VB6に似ていて,派生元派生先であることを強く実感する。

implicit none
integer::n
real*8::x
real*8::y

real*8,allocatable,dimension(:)::arr

allocate(arr(5))

arr(1) = 57d0
arr(2) = 24d0
arr(3) = 38d0
arr(4) = 92d0
arr(5) = 37d0

n = ubound(arr,1)

call maxmin(arr,n,x,y)
print *,x,y

contains
!fortranは参照渡しらしい。
!個人的には二つのことを同時にやるんじゃなくて,
!max関数とmin関数だけを定義したい。
subroutine maxmin(x,n,xmax,xmin) !
real*8,dimension(:)::x
real*8::xmax
real*8::xmin

integer::n
integer::i

xmin = x(1)
xmax = x(1)

do i = 2,n
if (xmax < x(i)) then
xmax = x(i)
end if
if (xmin > x(i)) then
xmin = x(i)
end if
end do
end subroutine

end program

!検証の都合上求められているサブルーチン以外の部分のプログラムも全て書いてます。
!個人的な信条の関係で質問文のソースコード自体を意図的に無視しているところもあります。
!(問題がmaxminを定義することなのにmaxofサブルーチンを定義するようなソースになっている地点で矛盾している)

!ヒストグラムはやらない

program test

!暗黙の型宣言など邪道だ(笑)
!こうして書いてみると
!構文が非常にVBA/VB6に似ていて,派生元派生先であることを強く実感する。

implicit none
integer::n
real*...続きを読む

Q【ダム】フィルダムのフィルっていっぱいにするという意味ですか? 水をいっぱいにするダムだからフィルダ

【ダム】フィルダムのフィルっていっぱいにするという意味ですか?

水をいっぱいにするダムだからフィルダム?

Aベストアンサー

水をせき止める堤(つつみ)の作り方でダムは2種類
コンクリートダム:堤をコンクリートを主体として作ったダム
フィルダム:堤を天然の土砂や岩石を盛り立てて作ったダム

フィルダム=filldam or rock-fill dam

Q値を返り値に返すのと参照渡しした引数に格納することの違い

プログラミングをしていて、次のような2種類の形式の関数をみることがあります。

void sum(int a, int b, int& c); //aとbの和をcに格納する
int sum(int a, int b); //aとbの和を返す

上の例のint &cは参照渡しされる引数という意味で、CやC++、PHPなどで同様です。

この、計算結果を参照渡しした引数に格納するのと、返り値に返すことの違いがよく分かりません。計算結果が複数ある場合は、前者の方が便利でしょう。しかし計算結果が1つだけなのに前者の方法を採っている関数も多く見かけます。個人的には、計算結果を返り値として返す後者の方法の方が感覚的に自然だと思うのですが、なぜ前者のような関数が存在するのか、教えていただきたく存じます。

Aベストアンサー

・複数の値を返したい

・↑の応用) 値とエラー等の情報を返したい
if ( MySqrt(a,b) ) { printf( "ERROR" ); } // a>0ならb=√a,戻り値0, a<=0ならbは無効で戻り値1

・戻り値として返すとパフォーマンスが悪い(C/C++の構造体等)
あるいは、関数内で変数に代入→戻ってきて呼出し側の変数に代入、というわずかな処理でも速くしたい。

・↑と関係して、同様の関数と引数の形を揃えた
構造体用が MyFunc1(a,b) / 数値用が b = MyFunc2(a) と見た目が変わらないように。

・戻り値の型を厳密に指定したい
double c = sum(a,b) ;等と暗黙の型変換をしないようにしたい。

・戻り値を返すサブルーチンが書けなかった言語からのなごり

以上、思いついたものを書いてみました。

Qデイズとミライース

新車で購入したミラに10年乗っています。
特にトラブルもありませんが、車は11年が限度だと思っています。
来年の9月で車検が切れるので、それまでに買換えをしなければなりません。

買換えのポイントは、燃費がいいこと。

ずっと買換えもミラでいいと思っていました。でも、今のミラといえばミライースですが、
後ろのライトのデザインがどうしても好きになれません。

で、デイズも視野に入れています。職場にセールスマンが来るので買ってあげたいのです。
実際に走っているデイズを見かけましたが、デザインはとても素敵だと思いました。

ただ、UVカットガラスとか、アラウンドビューモニターとか、タッチパネルエアコンとか、
走りに関係ないとこばっか売りにしているようで、それであの値段の高さがちょっと・・・
(ちなみに、通勤用で長距離走ったりはしないんですが。)

一番のネックは、ミライースには追突防止機能がついたのに、デイズにはない。

そうは言っても、ミライースの後ろ姿を見る度に、ダサッと思うんです。
その他にイヤなところはないんだけど・・・ ここを妥協すると後悔するかなあと心配です。

どっちを買うべきなんでしょうか。ギリギリまで待つべきでしょうか。
来年まで待てばデイズに追突防止機能がつくなんてあり得ますか?

ミライースとデイズ、それぞれのいいとこ悪いとこなど、是非、アドバイスをお願いします。

新車で購入したミラに10年乗っています。
特にトラブルもありませんが、車は11年が限度だと思っています。
来年の9月で車検が切れるので、それまでに買換えをしなければなりません。

買換えのポイントは、燃費がいいこと。

ずっと買換えもミラでいいと思っていました。でも、今のミラといえばミライースですが、
後ろのライトのデザインがどうしても好きになれません。

で、デイズも視野に入れています。職場にセールスマンが来るので買ってあげたいのです。
実際に走っているデイズを見かけましたが、デ...続きを読む

Aベストアンサー

ミライースはMCで少しデザインが好きになりました。
まぁリアのデザインなんて、走りに関係ないですから。

パーキングブレーキがサイドにあるとか、シフトレバーが使いやすそうな位置だとか、その辺りが案外好きです。

QMATLABで行列を配列に格納する方法

MATLAB初心者で大変申し訳ありませんが、行列の格納の仕方がわからないので、投稿させていただきました。

for k = 1:1:10
k=k;
t(:,:)=load(sprintf('test%5.5i.txt',k));
end
具体的に言いますと、上記のプログラムで、test00001~test00010.txtというファイルを任意の行列t(:,:)で読み込んでいるのですが、このt(:,:)をkと対応させて、例えばk=1の場合のtをt[1]、k=2の場合のtをt[2]などの配列に格納し、それを自由に呼び出し、計算を行いたいと考えております。
基礎がわかっていないためにどうしていいかわかりません。
宜しく御願いします。

Aベストアンサー

構造体を使うのが一番スマートでしょうか。

for k = 1:10
 FILE_DATA(k).t(:, :) = load(sprintf('test%5.5i.txt', k));
end

これで、FILE_DATA(1)~FILE_DATA(10)それぞれに行列tが格納されます。

Q数式のオートフィルは可能ですか?【Excel 2003】

数値のオートフィルはできるようですが、数式のオートフィルはできませんか?
たとえば A1に数式 =E5 が入っているとして、オートフィルでA2を =E6 にできませんか?

Aベストアンサー

TRANSEPOSE関数を使うのはどうでしょう?行列を入れ替える関数です。
詳しくは↓をご覧ください。

エクセル技道場-行列の入れ替え
http://www2.odn.ne.jp/excel/waza/edit.html#SEC18

あるいは、セルA1に #B1 と入力してから、フィルハンドルをドラッグ。それから、編集の置換で#と=を置き換える、というのはいかがでしょう。
数式のコピーはセル参照を調整します。数式を文字列にしておくことでこれを回避しているわけです。詳しくは↓をご覧ください。

エクセル技道場-計算式(関数の複写)
http://www2.odn.ne.jp/excel/waza/edit.html#SEC33

参考URL:http://www2.odn.ne.jp/excel/waza/edit.html#SEC18,http://www2.odn.ne.jp/excel/waza/edit.html#SEC33

QMATLAB 256列以上の配列格納について

こんにちわ。
現在、matlabで行971、列971程度の配列を用いて画像化したいと考えています。

しかし、列が256を超えるとエラーが出てしまい、処理できません。
ソースは下記の通りです。

971×971の正方形の画面にするので、1列(971×971)行などのように分割に全部入れて処理もするわけには行かないと思います。
よってなんとか256以上の列を使っていかなければならないです。

どうか、わかる方がいればお願いいたします。
////////////////////////////////////////////////////////////////
clear all;
j=971;
jj=5;
test=[1:j,1:j];
for k=0:jj
test=load(sprintf('APW%04d.csv',k)');%kの値を%04dに上書き
end
for i=1:j
test(:,i) = abs(test(:,i)/j);%データを0~1に補正
end
///////////////////////////////////////////////////////////////
エラー内容は下記の通りです。

////////////////////////////////////////////////////////////////
??? Attempted to access test(:,257); index out of bounds because size(test)=[971,256].

エラー ==> Copy_of_Gzousyori at 14
test(:,i) = abs(test(:,i)/j);データを0~1に補正
////////////////////////////////////////////////////////////////

こんにちわ。
現在、matlabで行971、列971程度の配列を用いて画像化したいと考えています。

しかし、列が256を超えるとエラーが出てしまい、処理できません。
ソースは下記の通りです。

971×971の正方形の画面にするので、1列(971×971)行などのように分割に全部入れて処理もするわけには行かないと思います。
よってなんとか256以上の列を使っていかなければならないです。

どうか、わかる方がいればお願いいたします。
////////////////////////////////////////////////////////////////
clear ...続きを読む

Aベストアンサー

読み込んでいる csv ファイル
APW%04d.csv
が 256 列しかない(excel ならこのくらいが限度?)ので,

test=load(sprintf('APW%04d.csv',k)');%kの値を%04dに上書き

した配列 test のサイズが ???*256 で,
257 列目を読みに行っているからエラーだと思います.

もっと,列数のある csv を作るか,
配列の要素に 一個一個代入するかです.

QExcelオートフィルとコピーについて

改めて質問させていただきます。

左図のような表で、B2セル(B2とC2一緒の場合も)からオートフィルを使って右図にしたいのですが、

1.オートフィルを使うと連続データになってしまってCtrlを押しながらオートフィルを使い、罫線も種類が違うのでオプションで書式なしコピーを選ぶと連続データに戻ってしまいます。
  この場合、オートフィルは使えないのですか??

2.セルの結合が原因なのでしょうか??

3.他にも方法はあるのですがオートフィルを使った方法が知りたいです。 

よろしくお願いいたします。

Aベストアンサー

B4セルにも「1」を入力しておいて
B2セルとB4セルの2つを選択してオートフィルとか?

Q効率の良い配列格納方法

excelvbaで配列を勉強しています。
配列を使うと効率よく簡単に書けると聞きましたので、
過去に書いたプログラムを配列を使い直そうと思っています。
そこで質問ですが、

先着20名様、というプログラムですが、
この20名を作るのに、配列を作ろうと思います。
(実プログラムは20人なので、あっという間に終わってしまいますが勉強のためです。)

シートに応募者のデータが、1行を使って入ってきます。
その中からある条件に合致する行(応募者)を取り出してゆくというモノです。
応募者の順は当然にして、到着順です。
応募者データの中身は、応募者氏名、住所、生年月日、、、、と項目が多いです。

やりたいことは、
この応募者データの全ての項目ではなく、在る特定の項目のみを配列に20人分取り込むということです。
一つずつ取り込めばよいのですが、(今は1個ずつ取り込んでいます。)
取り込む項目も10個と多いので、
何とか効率の良い取り込み方を教えて欲しいのです。

具体的には、
データはaから始まり、以下の通りです。
a応募者氏名
b応募者現住所
c応募者生年月日
d現住所の在住期間
e出身大学
f一番長く居住した都道府県
g引っ越し回数
h質問への応え1
i質問への応え2
j質問への応え3
k質問への応え4
l質問への応え5
m質問への応え6
nXXX氏名
oxxx住所
pXXX生年月日
q応募者とXXXの続柄
rアピールしたい内容

上記項目の中から、配列に格納する項目は、
a~c,h~m,r
です。

説明が分からない部分は聞いていただけると助かります。
宜しくお願いします。

excelvbaで配列を勉強しています。
配列を使うと効率よく簡単に書けると聞きましたので、
過去に書いたプログラムを配列を使い直そうと思っています。
そこで質問ですが、

先着20名様、というプログラムですが、
この20名を作るのに、配列を作ろうと思います。
(実プログラムは20人なので、あっという間に終わってしまいますが勉強のためです。)

シートに応募者のデータが、1行を使って入ってきます。
その中からある条件に合致する行(応募者)を取り出してゆくというモノです。
応募者の順は当然にし...続きを読む

Aベストアンサー

>配列bbbのように1個に格納したいのです。

 残念ながら、私は「連続していない」複数のセル範囲のデータを、For~Nextも使わずに、1個の配列変数に"直接的に"格納する術を存じ上げません。(方法が無いと断言している訳では御座いません)
 そこで、一時的に新しいワークシートを作成して、そこに「セル範囲が連続する様に」データのコピーを取り、そのコピーしたデータを配列変数に取り込むという方法では如何でしょうか?


Sub Macro ()

Dim シート枚数 As Integer
Dim 最終行 As Long
最終行 = Application.WorksheetFunction.Match(9E+99, Sheets("Sheet1").Columns("C:C"))
Dim 配列A() As Variant
ReDim 配列A(1 To 最終行 - 1, 1 To 10)

Sheets.Add After:=Sheets(Sheets.Count)

Sheets(Sheets.Count).Range("A2:C" & 最終行).Value = Sheets("Sheet1").Range("A2:C" & 最終行).Value
Sheets(Sheets.Count).Range("D2:I" & 最終行).Value = Sheets("Sheet1").Range("H2:M" & 最終行).Value
Sheets(Sheets.Count).Range("J2:J" & 最終行).Value = Sheets("Sheet1").Range("R2:R" & 最終行).Value
配列A() = Sheets(Sheets.Count).Range("A2:J" & 最終行).Value

Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True

End Sub


 因みに、上記のマクロは元データがSheet1に存在していて、Sheet1の1行目に「応募者氏名」~「アピールしたい内容」といった項目名が入力されている場合を想定したものです。
 Sheet1の1行目の項目名は、配列変数に格納する必要がないものとしているため、配列変数に格納する事できる行数の限界の設定を

1 To 最終行 - 1

としております。
 もし、Sheet1の項目名が、例えば3行目に入力されている場合には、配列変数に格納する事できる行数の限界の設定は

1 To 最終行 - 3

となります。

>配列bbbのように1個に格納したいのです。

 残念ながら、私は「連続していない」複数のセル範囲のデータを、For~Nextも使わずに、1個の配列変数に"直接的に"格納する術を存じ上げません。(方法が無いと断言している訳では御座いません)
 そこで、一時的に新しいワークシートを作成して、そこに「セル範囲が連続する様に」データのコピーを取り、そのコピーしたデータを配列変数に取り込むという方法では如何でしょうか?


Sub Macro ()

Dim シート枚数 As Integer
Dim 最終行 As Long
最終行...続きを読む


人気Q&Aランキング