とはいっても、前から常識として知っていたことをおさらいします。
基本、PC機器やネットワーク等のことはほとんど知っていることばかりなので良いのですが、経済学的なことが絡んでくるとややこしく理解が難しいです。前回受けた時はそれでやられました。

§復習事項§

*マスクROMとPROM*

・マスクROM・・・製造時にデータ書き込んだ後、ユーザは書き込みが不可能なROM。

・PROM・・・ユーザが書き込むことができるROM。

PROMの種類にはEPROM(紫外線によってデータを消去・書き込み可能)、EEPROM・フラッシュメモリ(電気的にデータを消去・書き込み可能)がある。

*RAMとROM*

・RAM(Ramdom Access Memory) : 読み書きできるメモリ。電源が消えると記憶内容も消えてしまう(揮発性)

・ROM(Read Only Memory) : 読出し専用のメモリ。電源が消えても記憶内容が消えない(不揮発性)

*DRAMとSRAM*

・DRAM : 回路が簡単で大容量化が容易。安価。リフレッシュが必要でメモリに使用。

・SRAM : 回路が複雑で大容量化が困難。高価。リフレッシュ不要でキャッシュメモリに使用。

こんなところで今回の復習終了。
今回は今日試行してみた二次元配列のプログラムを載せます。
このプログラムは1101~1105までの番号の点数を配列するプログラムです。

出力は
1101 90 80 70 240
1102 40 30 30 100
1103 80 75 80 235
1104 65 80 70 215
1105 100 90 90 280
平均点 75 71 68 214

となります。若干Terminal/CommandPromptで出力する際にずれることがあります。

#include<stdio.h>
main()
{
int i, j;
int s[6][5]={
{1101,90,80,70,0},{1102,40,30,30,0},
{1103,80,75,80,0},{1104,65,80,70,0},
{1105,100,90,90,0},{0,0,0,0,0}
};
/*個別合計点の計算*/
for(i=0; i<=4; i++){
for(j=1; j<=3; j++)
s[i][4] += s[i][j];
}
/*各科目と合計点の平均の計算*/
for(j=1; j<=4; j++){
for(i=0; i<=4; i++)
s[5][j] += s[i][j];
s[5][j] /=5;
}
/*処理結果の表示*/
for(i=0; i<=4; i++){
for(j=0; j<=4; j++)
printf("%6d", s[i][j]);
printf("\n");
}
printf("平均点");
for(j=1; j<=4; j++)
printf("%6d",s[5][j]);
return(0);
}

今回はif文から外れてswitch文による分岐処理を行います。

ある数値を入力してその数値についての処理4パターンを設定してその結果を表示します。
その4パターンは2乗、3乗、4乗の計算です。

#include<stdio.h>
#include<math.h>
main()
{
float a;
int n;
printf("実数a ==> ");
scanf("%f", &a);
printf("計算の種別n==> ");
scanf("%d",&n);

switch(n)
{
case 2:
printf("2乗の計算= %f\n", a*a);
break;
case 3:
printf("3乗の計算= %f\n", a*a*a);
break;
case 4:
printf("平方根の計算= %f\n", sqrt(a));
break;
default:
printf("計算しない= %f\n", a);
break;
}
return(0);
}

今回のプログラムは少し長めです。
計算の種別というのは、その項目に2を入力した場合、実数aについての2乗の計算を行うことを選択するものです。
defaultは一致する式が無い場合に実行されるプログラムです。

breakはそのcaseから抜けるための指令です。
内側のループか抜けるための文ということになります。


今回はif による分岐処理の論理演算子を用いるプログラムです。
三辺の長さを入力してそれは正三角形かどうかを確かめます。

#include<stdio.h>
main()
{
float a, b, c;
printf("三角形の3辺a , b, c ==> ");
scanf("%f %f %f", &a, &b, &c);
if(a == b && b == c)
printf("%f %f %f 正三角形である\n", a, b, c);
else
printf("%f %f %f 正三角形でない\n" ,a, b, c);
return(0);
}

if文とelse文の{}は付けても付けなくてもコンパイルは正常にできました。(gcc・Macintosh)

if(a==b && b==c)

はa=bかつb=cかどうかという処理を行っています。

%f %f %f は入力したa,b,cに関しての数値の計算です。%fはfloat型のデータを表示します。

ここで論理演算子の種類を説明します。今回も表で表示しませんので見にくいかと思いますがご了承ください。

論理演算子 意味
&& かつ

|| または

! 否定(条件が成立しないとき)

※ 優先順位がありますが、また複雑に絡んでくるときに説明します。
どうやら、去年の春の初級シスアドと現在の初級シスアドの内容が変わっているようなので、改めて買うことにしました。

買った本は『栢木先生の初級シスアド教室』です。
イラストや写真が豊富で分かりやすかったので、この本を買ってみました。

Mac&Program Hacks-admin

これからしっかり勉強していきたいと思います。
(勿論、受験勉強のほうを最優先にしますが・・)