生半可な ど素人の パソコン資格 :)

趣味で、資格学修を しています。 自分に 出来ることを 増やしていきたいです ^^

Category: 問題


こんにちは、

fuku です。

みなさん、いかが お過ごしでしょうか。


さて、今回は、

極選分析、
p578
トレーニング 2、
システム化 計画の 策定

より、

お伝えします。


この問題。

いい問題でした。;)


まず、気になったこと。


 ( シチュエーション )

製造業の M社。

基幹システムの 再構築。

⒈ 情報システム部員の 削減。

⒉ 情報システム コストダウン。


が、テーマに なっています。

システムの 再構築を かけるのに、

なんで 人を減らすのかな?

と、素人考えで、思いました。;)


問題文によると、

中心事業となる 部署に、充てて いく とのこと。


( 不景気のせい? 儲かる 商品販売に、

注力していくのかも。

これが、選択と集中 ということか。:)


設問1。

これは、計算問題でした。

設問2 も、なかなか 面白い。

が、

設問3。

 ( 案1… 自社開発、
案2… ERPの 利用
案3… SaaS の 利用 )


 ( メモ
 案3では、導入に当たって、初期費用は 特に発生しない。
サービス利用料は、定額である。
なお、万が一 追加要件が発生した場合、
案1 や 案2 では、わずかではあるものの、
追加費用が 発生しうるが、
案3では、
定額サービスの中で、吸収できる。
また、
案1 や、案2 に比べて、
情報システム部の 人員を、
かなり少なく することが出来る。
 ( … これで、キマリですな ;)


M社の お偉いさんの 見解。

システム使用年数… 8年。
経済合理性、つまり、安く済ませるなら、
 f
選択肢。… 案2 又は、案3 ( ERP, or SaaS )

が、

M社の 方針及び、諸事情を 考慮すると、( つまり、上の メモ・シチュエーション )

g, h,
( 選択肢 )

ということから、

選択すべき案は、

案3… SaaS ( Software as a Service ) の 利用

となる。



g, h に 関する 解答群

ア これまでの 情報システムは、
自社内の情報システム部員によって、
開発されてきた。

イ 初期費用が 発生しない。

ウ 情報システム戦略に 合致する。

エ 年次費用が 定額である。

オ 年次費用が 発生しない。

カ 万が一、追加要件が発生した場合に、
追加費用が かからない。


正解は、ウ、カ。

メモより、
カ は、ok.
後は、お金以外のことなので、
人員削減… 情報システム戦略。
なので、ウ。


ではないかと 思いました。

 ( 間違いがあれば、ご指摘下さい )

こんにちは、

fuku です。みなさん

いかが お過ごしですか。


熊本の地震が 早く落ち着きます ように

 全ての人が、よりうまくいきます ように

亡くなられた方の、ご冥福をお祈りします。


極選分析 基本情報技術者
 予想問題集

より、
p666
ラン レングス法

以下、参考 コードです。




#include <stdio.h>
#include <string.h>

int runLength(const char *, char *, int *);

int main(){

const char srcStr[15] = {'A','A','A','A','B','B','B','C','C','D','D','D','D','D','\0'};
char dstData[15];
int dstData_n[15];
printf("%s\n", srcStr);
runLength(srcStr, dstData, dstData_n);

}

int runLength(const char *srcStr, char *dstData, int *dstData_n){
   int i;
   int j;
   int k;
   int size;
   char count;
   char moji;

   i=0;
   j=0;
   size = strlen(srcStr);
   count = '0';
   moji = srcStr[0];

   while(i <= size){
     if(moji != srcStr[i]){
        dstData[j] = moji;
        dstData[j+1] = count;
        j += 2;
       count = '0';
       moji = srcStr[i];}
else{
   i++;
   count++;}

  }
   dstData[j] = '\0';
printf("%s\n", dstData);

}



2015年 秋 FE 問9、
 設問2
f, g。


Level  %d  --> %d

この、%d に、何が 入るかという とい。


印字結果を 見ると、

○Level  1  --> 2

Level  3  --> 2

と ありました。


○レベル 1 の 部屋から、

レベル2の 部屋に 入る データが

ありませんよ、という 表示。


普通なら、

before  -->  after

ですが、ちょっと 込み入って まして、

level  -->  beforeLevel

が、正解でした。


さすがに、

after  -->  before

では、おかしい。

なので、

最初の after ではなく、

他のもの。

doorLevel 

は、固有名詞なので、

変数の

level  …  現在の部屋レベル  (注記より)

が、妥当かなと。


アバウトですが、

そういう 解答群の 読み方も

あるのかな、と思いました。;)

 追伸 1

level  -->  beforeLevel

後ろが before に なるのは、

論理で。ここは 丁寧に 見ていきます。


サンプル プログラム

#include <stdio.h>
#include <string.h>

FILE *logFile;
int logEOF = 0;
char cardID[5] = "----", date1[9] = "--------", time1[7] = "------",door[3] = "--",
dir[2] = "-", act[2] = "-", name[11] = "----------";
char lastID[5] = "----";
int level = 0;

void getRecord();
void putRecord();
void checkLevel();
void clearLevel();


int main()
{

logFile = fopen("Access.Log", "r");
getRecord();
while (logEOF != EOF){
     putRecord();
     getRecord();
     clearLevel();

}
fclose(logFile);

}

void getRecord(){
 if (fscanf(logFile, "%4c %8c %6c %2c %1c %1c %10c\n",cardID, date1, time1, door,
dir, act, name) == EOF)
{logEOF = EOF;}
}

void putRecord(){
     int putSpace;

     if (strcmp(cardID, lastID) == 0)
         {printf("%18s", " ");}
     else {
         printf("%4s   %10s   ", cardID, name);
         strcpy(lastID, cardID);}
         checkLevel();

putSpace = door[0] - '0' - 1;
while (0< putSpace--){
     printf("%20s", " ");
}
printf("%.2s-%.2s  %.2s:%.2s %2s ",date1+4, date1+6, time1, time1+2, door);
if (strcmp(act, "R") == 0){ printf("%s",    "(R)");}
if (strcmp(dir, "I") == 0){ printf("%s\n",   "IN");}
else { printf("%s\n",    "OUT");}

}

void checkLevel(){
 int afterLevel, beforeLevel, doorLevel;

 doorLevel = door[0] - '0';
 beforeLevel = doorLevel;
 afterLevel = doorLevel;
if ( strcmp( dir, "I" ) == 0)
{ beforeLevel = doorLevel - 1; }
else
{ afterLevel = doorLevel - 1;}
if ( strcmp( act, "R" ) == 0 )
{ afterLevel = beforeLevel; }
if ( level != beforeLevel )
{ printf("***** Level %d-->%d\n%18s", level, beforeLevel, " "); }
level = afterLevel;
}


void clearLevel(){
 if ( logEOF == EOF || ( strcmp( cardID, lastID ) != 0 ))
{ if ( level > 0 ) { printf("%18s***** Level %d-->0\n", " ", level);
level = 0;}
}
}


データ ファイル ( C言語 )
 Access.Log

T001 20151018 100024 11 I A Test Use 1
T001 20151018 102028 31 I A Test Use 1
T001 20151018 104032 21 O A Test Use 1
 





皆さん こんにちは、

 fuku です。

本年も どうぞよろしくお願いします。


ところで、今回の

話題なのですが、

 みなさん ご存知かも 知れませんが。


極選分析
基本情報技術者
予想問題集
 アイテック


の、良問を ご紹介したいと 思います。

P451
第2章
ソフトウェア
トレーニング 1
 優先順位付き 待ち行列 処理

・(4)
優先順位、到着順位は 数値であり、
 優先順位は 小さい方が 優先される。

優先順位が 同じ場合は、
到着時刻の 小さい方が
 優先される。


・設問1
(1)
Que[i] の エントリの 方が Que[j] の エントリより
 処理の 取出し順位が 高いことを
表す 条件式は、次のようになる。

[  a  ]  又は  ( [  b  ] )  である。

 → a に関する 解答
 Que[i].Pri < Que[j].Pri

 → b に 関する 解答
Que[i].Pri = Que[j].Pri  かつ  Que[i].Time < Que[j].Time

でした。


ここで、

待ち行列は、キュー ( Que )

として、表されています。

 →  [    a    ]  →

 先入れ 先出し法 ですね。


Que[i] 

これは、配列です。

この場合は、C言語で 言う所の

構造体配列では、と思いました。

複要素の データを 保持している 配列だからです。

 (→ Pri(プライオリティー ; 優先順位), Time(到着時刻), JobNo(ジョブ番号))


データに アクセスする場合には、

 Que[i].Pri

の ように、

.  (ドット)

を 使って アクセスします。

 余談ですが、

データベースの sql や、

VB でも、

同様だったと 思いました。


ご参考になれば、幸いです。^^


追伸 : サンプル コード

 わかりやすく する為、
データを 2つに しています。

#include <stdio.h>

struct data{
int Pri;
char JobNo[3];
int Time_h;
int Time_m1;
int Time_m2;
}Que[2];

int main()
{
struct data Que[2] = {

{10, "J1", 10, 0, 0},

{5, "J2", 10, 0, 5}

};

printf("%d, %s, %d:%d%d\n", Que[0].Pri,Que[0].JobNo,Que[0].Time_h,Que[0].Time_m1,Que[0].Time_m2);

printf("%d, %s, %d:%d%d\n", Que[1].Pri,Que[1].JobNo,Que[1].Time_h,Que[1].Time_m1,Que[1].Time_m2);

}


追伸2 :
こちらの コードの方が、エレガントですね。:) 

 #include <stdio.h>

struct data{
int Pri;
char JobNo[3];
int Time_h;
int Time_m;
}Que[2];

int main()
{
struct data Que[2] = {

{10, "J1", 9, 10},

{5, "J2", 10, 5}

};

printf("%d, %s, %02d:%02d\n", Que[0].Pri,Que[0].JobNo,Que[0].Time_h,Que[0].Time_m);

printf("%d, %s, %02d:%02d\n", Que[1].Pri,Que[1].JobNo,Que[1].Time_h,Que[1].Time_m);

}


 


こんばんわ。

fuku です。

みなさんいかが お過ごしですか。

明日から、3連休に なりますね?

どこか お出かけの予定など、おありなんでしょうか。:)


ところで、

今回 お伝えしたいと 思いましたのは、

今さっき、

FE の 問題を 解いていたのですが、

その時に 感じたことです。


表題の通り、

問題を 解きながら、

プログラミング
( 設定 )

が できるように なっていくのでは。

と思った 次第です。


例えば、

この 問題を 見てみて下さい。


平成25年度 秋季 午後問題
問3 より。

( 下の方です )


面白いなと 思ったのは、

( 少し 細かいですが、お付き合い下さい ;)

設問2


の 解答についてです。


最初、エ

の、2001:0db8:0:0:cd30::

かな、と おもったのですが、

正しくは

ク の、

2001:db8:0:0:cd30::

でした。


0db8

ではなく、

db8

でした。


問題文の中に、

"先行する 0 を 省略する"

とありました。

IPv6 アドレスの 圧縮形

というのが

テーマです。


少し 細かい部分が

基本情報の テストには

ありますが、

これを クリアできたら、

実際の ネットワーク設定も

すごく らくなのでは、

と思いました。


何かの ご参考になれば
幸いです。

fuku でした :)


追伸 :

最近、心がけているのは、

テキスト ( 合格教本を 使っています )

で、学ぶだけでなく、

実際の お仕事などで

使われている 例を 見てみることです。

先ほどの例だと、


こちらも、ご参考になれば うれしいです。

↑このページのトップヘ