プログラミング ITパスポート対策テクノロジ系基礎理論編⑦
8 views
2023-10-242023-10-23
プログラミング言語
プログラミングとはコンピューターへの指示であるプログラムを書くことであり、それを書くための言語がプログラミング言語です。
プログラミング言語には以下のような区分があります。
高級言語 | 人間が理解しやすい言葉でできたプログラミング言語です。最終的には機械語に変換され使用されます。高水準言語とも。 |
---|---|
アセンブリ言語 | 機械語と1対1で対応する命令語で構成された言語です。 |
機械語 | コンピューターが直接実行することができる2進数で表される言語です。 |
現在、私たちが使用している言語の大部分は高級言語に分類されるものです。
高級言語の中で、プログラムを全て機械語に変換(コンパイル)してからでないと実行できないタイプの言語をコンパイラ方式、1命令ずつその場で変換して実行するタイプの言語をインタプリタ方式といいます。
主な高級言語
よく使われている高級言語には以下のようなものがあります。
C | OSや組込みソフトウェアの開発でも使用される古典的言語。 |
---|---|
C++ | C言語にオブジェクト指向の考え方を取り入れた言語。 |
Java | Webや業務システムの開発に幅広く利用されているオブジェクト指向プログラミング言語。 |
Fortran | 科学技術計算でよく使用されるプログラミング言語。 |
R | 統計分析によく使用されるプログラミング言語。 |
Python | ディープラーニングなどの機械学習でよく使用されるプログラミング言語。 |
JavaScript | Webブラウザで動作させることのできるプログラミング言語。 |
PythonやJavaScriptのように記述が容易で明示的に機械語へ変換(コンパイル)しなくても実行できる言語は、スクリプト言語とも呼ばれます。また、近年はツールを用いることで直接プログラミング言語を使わなくてもソフトウェアが開発できるローコード、ノーコードという手法も注目されています。
プログラミングの基本
ITパスポート試験では実際のプログラミング言語ではなく、これを模した疑似言語が使用されます。疑似言語の仕様は記載されているので、詳細を暗記する必要はありせん。
変数の宣言・代入
変数は数字、文字などを格納することができる入れ物です。変数名は自由に決めることができますが、命名規則を定めておかないと混乱の原因となります。
プログラミング言語によって変数に入れることのできるものの種類(型)を予め指定しなければいけないタイプと型を気にせず何でも入れることのできるタイプがあります。
例えば,Pythonには型がないので以下のように文字を入れていた変数に数字を入れてもエラーにはなりません。
moji = "ITパスポート"
suuji = 3
#printで変数の内容を出力
print(moji)
#ITパスポートと出力
print(suuji)
#3と出力
moji = 5
print(moji)
#5と出力
しかし、型付きの言語では、変数を宣言する時に、変数名 型といった形で型を定義する必要があり、この型以外のデータを入れようとするとエラーになります。以下はGoというプログラミング言語でのコードです。
var moji string
moji = "ITパスポート"
fmt.Println(moji)
moji = 3 //エラーが発生
「var moji string」の「string」の部分が型になります。
ITパスポートで使われる疑似言語では、 型名: 変数名で変数を定義し、変数名←××で代入を行います。
文字列型:moji
整数型:seisu
moji ← "ITパスポート"
seisu ← 3
整数型の配列:seiArray
seiArray[1] ← 3
なお、型名:変数1,変数2 とすることで複数の変数をまとめて定義することも可能です。
配列は、××型の配列:配列名で定義し、配列名[インデックス]で個々のの要素にアクセスできます。例えば、配列名[1]なら1番目の要素、配列名[3]なら3番目の要素といった具合にアクセスできます。
条件分岐
条件分岐は、if (条件式)で記述されるのが一般的です。さらに条件を続ける場合は、elseif(条件式)、どの条件にも当てはまらない場合の処理を記述するにはelse、などが使われます。
Pythonでは以下のように:と字下げ(インデント)でifの範囲が決定されます。
if a == 1:
print("アメ")
elif a == 2:
print("ガム")
else:
print("どちらでもない")
Go言語では{}を使ってif の範囲が決まります。
if (a == 1){
fmt.Println("アメ")
}else if(a == 2){
fmt.Println("ガム")
}else{
fmt.Println("どちらでもない")
}
疑似言語ではどちらでもなく endif で終了位置が指定されます。
if (a == 1)
"アメ"を出力する
elseif(a == 2)
"ガム"を出力する
else
"どちらでもない"を出力する
endif
繰り返し
繰り返し構文では、while(条件式)やfor(制御記述)が使われます。
例えば、Pythonのwhile文は以下のようになります。
num = 0
while num < 5:
print(num)
num += 1
またGo言語のfor分は以下のようになります。
for i := 0; i < 5; i++ {
fmt.Println(i)
}
疑似言語では、後判定方式のwhile文も使われます。
while(条件式)
処理
endwhile
do
処理
while(条件式)
for(制御記述)
処理
endfor
関数の宣言
関数とは一定の処理をひとまとめにしたもので自分で好きに定義することができ、プログラム中で呼び出して使用することができます。関数がなんらかの値を返すときは、return 変数名等と記述します。
例えばPythonでは以下のように書きます。
def myfunction(a):
return a +"試験"
result = myfunction("ITパスポート")
print(result)
#ITパスポート試験出力
疑似言語では、以下のようにして宣言、呼び出しします。
/*関数、手続きの宣言 */
〇関数名(引数の型:引数名)
/*関数、手続きの使用 */
関数名(引数)
プログラムのメインの流れはメインルーチンと呼ばれ、その中で使用される関数はサブルーチンとも呼ばれます。
コメント
プログラム中に書かれている、
- //……………
- /*……… */
は処理内容などを説明するコメントであり、処理自体には影響しません。
ライブラリとAPI
ライブラリとはプログラムで使用する一定の処理をファイル化したもので、必要に応じて読み込んで使用します。予めプログラミング言語に付属しているライブラリもあれば、第三者が公開しているライブラリをダウンロードして使用する場合もあります。
また、外部のソフトウェアの機能をプログラムから呼び出せるようにした窓口のようなものをAPI (Application Programming Interface)といいます。OSの機能をアプリケーションから利用するなどがこれに該当しますが、インターネットを通じて利用されるAPIはWeb APIとも呼ばれます。
その他の言語
画面の構成やデータの表現のために使用される言語には以下のようなものがあります。
HTML | Webページを記述するためのマークアップ言語。 |
---|---|
XML | ユーザーが自由にタグを定義できるマークアップ言語。 |
SGML | 文章のマークアップに利用される言語。 |
CSS | Webページのデザインを記述するための言語。 |
JSON | 様々なデータを記述するための記述言語。異なるプログラム言語で書かれたプログラム間でのデータのやり取りをする際などによく利用される。 |
確認問題(過去問)
平成29年春問70
機械語に関する記述のうち, 適切なものはどれか。
ITパスポート試験令和4年問96
関数 calcX と関数 calcY は,引数 inData を用いて計算を行い,その結果を戻り値とする。関数 calcX を calcX(1)として呼び出すと,関数 calcX の変数 num の値が,1→3→7→13 と変化し、戻り値は 13 となった。関数 calcY を calcY(1)として呼び出す と,関数 calcy の変数 num の値が,1→5→13→25 と変化し、戻り値は 25 となった。 プログラム中の a, bに入れる字句の適切な組合せはどれか。
ITパスポート試験令和5年問64
関数 sigma は,正の整数を引数 max で受け取り, 1から max までの整数の総和を戻り値とする。プログラム中のaに入れる字句として、 適切なものはどれか。
疑似言語サンプル問題問1
関数 calcMean は,要素数が 1 以上の配列 dataArray を引数として受け取り,要素の値の平均を戻り値として返す。プログラム中の a,b に入れる字句の適切な組合せはどれか。ここで,配列の要素番号は 1 から始まる。
疑似言語サンプル問題問2
手続 printStars は,“☆”と“★”を交互に,引数 num で指定された数だけ出力する。プログラム中の a,b に入れる字句の適切な組合せはどれか。ここで,引数 num の値が 0 以下のときは,何も出力しない。
これだけで受かるITパスポート
https://ja.mondder.com