🏠
令和7年4月20日 (日)
情報処理概論 戻る 進む 講義スライド

テキストファイルを変換しよう~表計算とBASIC~

山形大学  理工学研究科(工学系)  化学・バイオ工学科 
🔋 C1 伊藤智博(ITO Tomohiro)

置数のための キーボード、表示のためのディスプレイがあり、 加算、減算、乗算、除算などの演算機能を備えています。 テンキーで数字であらわしたひとつの数値データを置数し、演算キーを使って、デジタル計算ができます。 量の計算をするときは、あらかじめ量を単位で割って、数値データとして入力します。


アプリの種類

  4 アプリの種類
種類説明
文書作成 ワープロ deepl

論文報告書、あるいはそれらの 要旨などの 文書を作成、印刷するアプリです。 3 )

表計算 数値を計算し、 グラフなどの図表を作成するアプリです。 平均標準偏差などの統計量も計算できます。 データ の件数は 30件程度までが適切です。 それ以上の件数の場合、データベースアプリと連携して 抽出した データ を使う方が効率的です。
👨‍🏫 プレゼンテーション

講演スライドや ポスターを作成できます。 4 )

グラフィックス 図形地図写真などの 画像の作成や編集をします。
CAD Solid works * 図面
Autodesk AutoCAD Web 図面
生成AI Chat GPT Gemini 文章や 画像の生成をします。
Webページ作成 HTML editor
データベース Microsoft Access Microsoft SQL Server
動画編集
👨‍🏫 プログラミング google colab
ビジネス ・グループウェア
  • メール
  • チャット
    • Slack
  • 会議 Zoom, Teams, Meet
  • カレンダー、連絡先、名刺交換
  • SNS

アプリ には、 オペレーティングシステム (OS) 上で動く、インストールアプリと、 Webブラウザ 上で動く Webアプリがあります 5 )

アカウント を有効化して、 サービスアプリ を利用する(ログイン、ログオン、サインイン)には、 認証が必要です。

人気 プログラミング言語 は、java script、そしてpyton*と続きます。 *


表計算ソフト

  5 表計算ソフト
A B C D E
1 test test test test test
2
3
4
5

計算ソフトは、 データ計算グラフ化 に使います 6 ) 。 Microsoft®Excel®に代表される表計算ソフトはもっともよくつかわれる アプリ でしょう。 ほかにも kingsoftのSpreadsheetsや、 GoogleのGoogle スプレッドシートなどがあります。 中にはVBAまで動作する互換性の高いものも。でも インピーダンス の計算に使う複素数アドオンなどはやはりExcel®かも。 最近は クラウド で動作するオンラインが増えていますが、測定器などはまだまだオフライン。


送電線の損失計算

  4 送電線の損失計算
© K.Tachibana * , C1 Lab.

google sheetは、インストール不要のwebアプリなので、 データクラウドに保存されます。

6.02×1023のような 浮動小数点数値は、 は、6.02E23と入力します。

記号、量名、数値、単位をカラムに並べると便利です。 計算には、接頭辞のつかない単位で表現した数値を使い、 報告には、数値が0.01~100程度になるよう接頭辞のつく単位を使うのが良いでしょう。


ワイブル分布の形

  5 ワイブル分布の形
© K.Tachibana * , C1 Lab.
sheet

寿命時間の 確率分布として ワイブル分布が知られています 7 )

散布図を描くには、値域と定義域のそれぞれの集合を準備します。 表計算ソフトで、たとえば、{t|0<t<3}の定義域のそれぞれの値tiをセルに入力するには、 漸化式を使います。

tn+1=tn+k

ここでkは、等差数列の公差です。

=A13+B$5

表計算ソフトでは、A14セルに、このように入力します。 PCでは、マウスをドラッグして連続入力できますが、集合の要素数が多くなると大変なので、セルの数は10程度までとして、 それ以上は、 python などのプログラミング言語を使う方が便利です。

確率分布

回帰分析

  6 回帰分析
© K.Tachibana * , C1 Lab.

散布図 は、 データ (実験結果)をグラフ化するのに、よく使います。 変化させた値と、測定結果の値の関係がわかりやすく、 相関を調べることができます 8 )


アプリ はお互いのファイル形式を相互に読み取る機能がありますが、 測定器やその ほかの機械が必ずしも、上記ソフトの ネイティブ形式 をエクスポートできるとは限りません。 テキスト形式 の一種である CSV形式 は最も互換性の高い形式です。 ここではCSV形式を加工するテクニックを学びます。

  6 表現のためのファイル形式の例
表現
バイナリ形式

任意のビット列

テキスト形式

文字コードのみ

ネイティブ 圧縮テキスト テキスト XML
文書 doc docx html,html5 xhtml
表計算 xls xlsx csv
図形 MWF,EMF vml svg
チャート UML
地図 G-XML,GML
数式 マセマティカ TEX MathML
化学式 SMILES CML
楽譜 MIDI MML MusicXML
3D VRML X3D
画像 (image) jpg,png
音楽 (audio) wav,mp3,wma
ビデオ (video) mp4,mov
アプリ exe,dll vb,js,asp

ファイル変換

組電池の放電曲線(負荷抵抗 5Ω、電流5.5A)

  7 組電池の放電曲線(負荷抵抗 5Ω、電流5.5A)
© T.Ito , C1 Lab.

データロガーによるバッテリーの電圧の記録は以下のリンクから CSV形式でダウロードできる.

SOC_OCV

データロガーによるバッテリーの電圧の記録は以下のリンクから CSV形式でダウロードできる.

データベースソフトの上にあるデータをメールソフトに移すにはどうしたらいいか? アクセスからCSV形式でエクスポートし、エクセルでインポートする。 次にエクセルからXML形式でエクスポートし、アクティブメールにインポートする。

ファイル変換とインポート・エクスポート
プログラム言語

データ/情報の再利用

ファイル変換

インポート/エクスポート

ファイルとオブジェクトストレージ

CSVファイル(カンマ-セパレーテッド-バリュー)

プログラミング言語と開発キット

情報を処理するための手順をコンピュータに与えないとコンピュータは動作しない。 手順を示した指示書のことをプログラムという。プログラムはプログラミング言語によって記述する。


プログラミング言語

  7 プログラミング言語の種類
種類 分類 言語 特徴
インタプリタ Webアプリ JavaScript Webブラウザ上で動作(クライアントサイド)
vb script(vbs,vba,asp) 9 ) 1964 開発 キーボードとディスプレイが必要
AI Webアプリ python パイソン 10 ) * matplotlibで、 論文や プレゼンテーションのグラフ作成に。 ビッグデータ データサイエンス * 、 マテリアルズインフォマティクス *、AI
教育 Scratch ビジュアルプログラミング
コンパイル OS C 11 ) ポインタ、構造体
汎用 VB.NET オブジェクト指向(多重継承なし)
汎用 Kotlin アンドロイドアプリ向け
OS C++ オブジェクト指向
colab jupyter

ファイルベースのシステムでは、コンパイラ言語は実行可能なファイルを生成し、 インタプリタ言語はそれを生成しないという違いがありました。 しかし、クラウドベースになって、実行ファイルそのものをクライアントにダウンロードしなくなり、 ジャストインコンパイルで実行結果だけを利用するようになると コンパイラ言語とインタプリタ言語の違いは、あまり本質的でなくなりました。

科学技術用の伝統的な言語としては、FORTRANがあります。 FORTRAN系列の言語としては、BASIC、pythonがあります。 統計用言語としてRがあります。

アルゴリズム重視の伝統的な言語としてALGOLがあります。 ALGOLは、Pascal, C, C++, C#,java, javascript, typescript, Kotlinと進化してきました。 juliaはCに迫る計算速度を誇ります。

サーバーサイドで使われてきたPerlや Ruby もクラウドで利用できるようになってきました。

人工知能で伝統的な言語Lispは、F#Schemeもクラウドで利用できるようになってきました。

人気 プログラミング言語 は、java script、そしてpython*と続きます。 *

科学技術計算(FORTRAN, BASIC,python(パイソン))

人工知能(Lisp, F#)

事務処理(COBOL)

システム(C,C++,Rust)

オブジェクト指向言語(C++, C#, Java,python),python(パイソン)はAIや機械学習でもよく使われます.

スクリプト言語(VBAなどマクロ言語,Perl, Java Script, TypeScript

マークアップ言語(Web用のHTML, SGML, XML, TeX)

開発環境
Visual Studio, Android SDK, Android Studio, Monaca, Eclipse

クロスプラットフォームの開発環境
Monaca, Visual Studio 2015,2017がある.Visual Studio 2017は,あらゆるアプリを "Visual Studio" ひとつで開発できます.


コッホ曲線(Koch curve)

  8 コッホ曲線
©K. Tachibana

コッホ曲線(Koch curve)のパイソン(Python)コード

# ■■■  コッホ曲線 Koch curve ■■■
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import math
import sys
from google.colab import files

sys.setrecursionlimit(100)

#関数定義
def func(xy,p1,p2,i):
  if i < 0:
    xy.append(p1)
    xy.append(p2)
    return
  else:
    x1 = p1[0];             y1 = p1[1]
    x2 = p2[0];             y2 = p2[1]
    x3 = (x1 * 2 + x2) / 3; y3 = (y1 * 2 + y2) / 3
    x4 = (x1 + x2 * 2) / 3; y4 = (y1 + y2 * 2) / 3
    xx1 = x4 - x3
    yy1 = y4 - y3
    xx2 = 0.5*xx1 + math.sqrt(3)/2* yy1
    yy2 = -math.sqrt(3)/2*xx1 + 1/2* yy1
    x5 = xx2 + x3;          y5 = yy2 + y3
    xy.append(p1)
    func(xy, p1, [x3,y3], i - 1)
    func(xy,[x3,y3], [x5, y5], i - 1)
    func(xy,[x5,y5], [x4, y4], i - 1)
    func(xy,[x4,y4], p2, i - 1)
    xy.append(p2)
    return

xy = []

n=4
func(xy,[0,0],[1,0],n)
func(xy,[1,0],[0.5,math.sqrt(3)/2],n)
func(xy,[0.5,math.sqrt(3)/2],[0,0],n)

fig, ax = plt.subplots(figsize=(5.8, 4.2)) 
plt.axis("off") 
ax.set_aspect('equal');ax.set_xlim([0,1]);ax.set_ylim([-0.5,1])
ax.add_patch(patches.Polygon(xy, closed=True,facecolor="c",edgecolor="b",lw=0.1))

plt.savefig('Koch.SVG');files.download("Koch.SVG")
plt.savefig('Koch.PNG');files.download("Koch.PNG")
plt.show()

# ■■■  コッホ曲線 Koch curve ■■■

演習:CSVファイルの入手とVBAによるHTML生成アプリ開発

1.ファイルエクスプローラーで,\\yzdn\dfs\share6\www\Public\52210\(受講年) を開く(新型コロナウィルスのため削除)

1.FTPクライアント(WinSCP)を使って,FTP接続をしてください.次に,/Public/52210/adgmp/のディレクトリを開いてください.

2._KadaiEntry52210_2021.csvファイルをデスクトップにコピーする

Excelで開発環境の準備

1. [ファイル]タブ → [オプション] → [リボンのユーザー設定]

2. 右側のウィンドウの[開発]のチェックボックスをチェック

3. [OK]をクリック

4.[開発]タブが表示された準備完了

Visual Basicでマクロを書いてみよう

1. [開発]タブ → [Visual Basic] をクリック

2. プロジェクトエクスプローラーの[VBAProject] → [Microsoft Excel Object]→[Sheet1(_KadaiEntry52210_2021.csv)]

3. プロジェクトエクスプローラーの[Sheet1(_KadaiEntry.csv)]を右クリック → [コードの表示]を左クリック

4. 下記のようなコードを記述

動作確認

1.►ボタン(Sub/ユーザーフォーム)の実行を左クリック

2.プログラムが正常に終了すると デスクトップに,EveryOne.htmlファイルが作成されます.

3.EveryOne.htmlファイルをブラウザーで開いてリンクをクリックしてみよう


数式とプログラミング言語

  8 式の要素
要素 数式 プログラミング言語
C python
変数 x
public double x;
関数 f
double f(double x);
関数と従属変数 y = f ( x )
double f(double x) {
	return y;
}
定義域 x=0: y = f ( x )
x>0: y = g ( x )
C では、VBのselect構文のように switch構文では、定義域を指定することはできません。 結局if構文をネストさせることになります。 python では、switch構文はありませんが、 elif構文でネストさせずに定義域を指定できます。
if x == 0:
	print('0')
elif x < 0:
	print('負')
elif x > 1:
	print('正')
else:
	print('発散') 
S = i = 1 n k i
for ( i = 1; i < n; i ++ ) {
	s += k[i];
}
for i in range(1, n):
	s = s + k[i]
*

Phthon (パイソン)は、多様なデータ構造が組み込まれているので、データ処理しやすい言語仕様です。 Anaconda(アナコンダ)や、Google Colaboratoyなどの開発環境があります。 Phthonには、数値計算ライブラリNumPyがあります。 NumPyは、CやふFORTRANで、実装されていて、高速で実行できます。 ほかにも、Matplotlib(グラフ描画ライブラリ) pandas(データ分析ライブラリ) TensorFlow(機械学習ライブラリ) OpenCV(画像処理ライブラリ) など便利なライブラリが多数あります。


BASICを使ったSVGによるグラフ表現

西暦 y / 年消費電力 P / kW1990200020102020203010.08.06.04.02.00.0 L 555.555555555556 122.819022466918 L 416.666666666666 162.316256027897 L 555.555555555556 122.819022466918 L 416.666666666666 162.316256027897米沢キャンパス全域基幹スイッチ
.山形大学の 基幹通信機器 と 建物までの通信機器 の消費電力の年代別推移
02.情報処理概論より
©2025 Kazuhiro Tachibana ,Tomohiro Ito 12 )

正しく記述すること

プログラムとは手順を正しく記述すること!音楽の楽譜と同じ

下記のパッヘルベルのカノンは,間違いだらけ,詳しい人,直してちょうだい.カノンは,繰り返しのコードが隠れている楽譜

Sound[{{SoundNote["D3", 1, "Contrabass",SoundVolume ->0.5]},{SoundNote["A2", 1, "Contrabass",SoundVolume ->0.6]},{SoundNote["B2",1,"Contrabass",SoundVolume ->0.7]},{SoundNote["F2", 1, "Contrabass", SoundVolume -> 0.5]},{SoundNote["G2",1, "Contrabass",SoundVolume->0.9]},{SoundNote["D2", 1, "Contrabass",SoundVolume -> 0.7]},{SoundNote["G2",1, "Contrabass",SoundVolume -> 0.6] },{SoundNote["a2",1, "Contrabass",SoundVolume -> 0.5]},{SoundNote["D3", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["F#5", 1, "Violin"]},{SoundNote["A2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["E5", 1, "Violin"]},{SoundNote["B2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["D5", 1, "Violin"]},{SoundNote["F2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["C#5", 1, "Violin"]},{SoundNote["g2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["B4",1, "Violin"]},{SoundNote["D2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["A4", 1, "Violin"]},{SoundNote["G2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["B4", 1, "Violin"]},{SoundNote["a2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["C#5", 1, "Violin"]},{SoundNote["D3",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["D5",{0, 1}, "Violin"],SoundNote["F#5", 1, "Violin"]},{SoundNote["A2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["C#5", {0,1}, "Violin"],SoundNote["E5", 1, "Violin"]},{SoundNote["B2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["D5", {0,1}, "Violin"],SoundNote["B4", 1, "Violin"]},{SoundNote["F2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["C#5", {0,1}, "Violin"],SoundNote["A4", 1, "Violin"]},{SoundNote["g2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["B4",{0,1}, "Violin"],SoundNote["G4",1, "Violin", SoundVolume -> 0.5]},{SoundNote["D2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["A4", {0,1}, "Violin"],SoundNote["F4", 1, "Violin",SoundVolume -> 0.3]},{SoundNote["G2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["B4", {0,1}, "Violin"],SoundNote["G4", 1, "Violin",SoundVolume -> 0.2]},{SoundNote["a2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["C#5", {0,1}, "Violin"],SoundNote["E4", 1,"Violin", SoundVolume -> 0.1]},{SoundNote["D3",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["D5",{0, 1}, "Violin",SoundVolume -> 1],SoundNote["F#5",{0,1}, "Violin",SoundVolume -> 1],SoundNote["D4", 0.5, "Violin"],SoundNote["F#4", {0.5,1}, "Violin"]},{SoundNote["A2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["C#5", {0,1}, "Violin",SoundVolume -> 1],SoundNote["E5",{0, 1}, "Violin",SoundVolume -> 1],SoundNote["A4",0.5, "Violin"],SoundNote["G4",{ 0.5,1}, "Violin"]},{SoundNote["B2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["D5", {0,1}, "Violin",SoundVolume -> 1],SoundNote["B4", {0,1}, "Violin",SoundVolume -> 1],SoundNote["F#4", 0.5, "Violin"],SoundNote["D4", {0.5,1}, "Violin"]},{SoundNote["F2", {0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote[{"C#5","A4"}, {0,1}, "Violin",SoundVolume -> 1],SoundNote["F#4", 0.5, "Violin"],SoundNote["E4", {0.5,1}, "Violin"]},{SoundNote["g2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["B4",{0,1}, "Violin"],SoundNote["G4",{0,1}, "Violin"],SoundNote["D4",0.5, "Violin", SoundVolume ->0.5],SoundNote["B3",{0.5,1}, "Violin"]},{SoundNote["D2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["A4", {0,1}, "Violin",SoundVolume -> 1],SoundNote["F4", {0,1}, "Violin",SoundVolume -> 0.3],SoundNote["D4", 0.5, "Violin"],SoundNote["A4", {0.5,1}, "Violin"]},{SoundNote["G2",{0,1}, "Contrabass", SoundVolume -> 1],SoundNote["B4", {0,1}, "Violin",SoundVolume -> 1],SoundNote["G4",{0, 1}, "Violin",SoundVolume -> 0.2],SoundNote["G4", 0.5, "Violin"],SoundNote["B4", {0.5,1},"Violin"]},{SoundNote["a2",{0,1}, "Contrabass", SoundVolume -> 0.5],SoundNote["C#5", {0,1}, "Violin",SoundVolume -> 0.6],SoundNote["E4", {0,1}, "Violin",SoundVolume -> 0.1],SoundNote["A4", {0,0.5}, "Violin"],SoundNote["G4", {0.5,1}, "Violin"]}}]

楽譜の縦軸と横軸

  9 317
楽譜の縦軸と横軸
©M.Sekiguchi,C1

参考文献

このマークは本説明資料に掲載している引用箇所以外の著作物について付けられたものです。


山形大学 准教授

伊藤智博

山形大学 大学院 理工学研究科
C1ラボラトリー
992-8510 山形県 米沢市
城南4丁目3-16
3号館(物質化学工学科棟) 3-3301
Tel: 0238-26-3753
URL: http://c1.yz.yamagata-u.ac.jp/

QRコード
https://edu.yz.yamagata-u.ac.jp/Public/52210/52210_07.asp
名称: 教育用公開ウェブサービス
URL: 🔗 https://edu.yz.yamagata-u.ac.jp/
管理運用 山形大学 学術情報基盤センター

🎄🎂🌃🕯🎉
名称: サイバーキャンパス「鷹山」
URL: 🔗 http://amenity.yz.yamagata-u.ac.jp/
管理運用 山形大学 データベースアメニティ研究会
〒992-8510 山形県米沢市城南4丁目3-16

Copyright ©1996- 2025 Databese Amenity Laboratory of Virtual Research Institute,  Yamagata University All Rights Reserved.