Surface GO に Ubuntu 24.04 をインストール
仕事で使っていた Surface Go だけど、最近は処理速度も「もっさり」で使う機会もほぼなく、Ubuntu 24.04 をインストールを試してみる。ブートメディアで Type-C USB を購入し Rufus で イメージファイルを書き込む。
BitLockerの解除から
ひとまず、Try モードで起動もできたし、本気のインストールを試そうとしたら、BitLocker で暗号化されているとの表示。暗号化解除をしようと再起動したら、BitLocker キーの催促画面。はて、なんだっけ。
学校のアカウントでデバイスを探したら普通に キーが見つかったので、解除。といっても時間かかるなぁ…


OneNoteの起動用アイコン
snap を使っていろいろな最新アプリも使うことができるが、Microsoft OneNote が起動できなかった。手作業で起動しようとすると、「うまく起動できない場合は –no-sabdbox のオプションをつけるといいかも」みたいな説明が出る。ということで、デスクトップに下記のファイルを置いて対応。
#!/usr/bin/env xdg-open [Desktop Entry] Terminal=false Type=Application Name=Microsoft OneNote Icon=/snap/onenote-desktop/current/meta/gui/icon.png Exec=/snap/onenote-desktop/current/onenote-desktop --no-sandbox
ひとまず設定完了
情報構造論のレポート課題
情報構造論の前期中間までのレポートとして、自分の理解力に応じて下記課題の1つを選んで回答せよ。ポインタや文字列操作の練習を目的とするため、言語はC言語,C++にて行うこと。
- 入力の中の特定文字列ABCを、別の文字列DEFGに変換して出力したい。ABCやDEFGの文字列は最初に与える。
最初の2行で、変換元ABCと変換後DEFGで与えられ、その後に複数行の入力が続くものとする。- 変換元,変換後の文字列は、空白を含まない50文字以内の文字。複数行の入力は10文字以内、1行は200文字以内とする。
- 入力例と変換例
orange (変換元) apple (変換後) I like an orange. He likes a pineapple.
⇒ I like an apple. He likes a pineapple.
- URLが複数行入力として与えられる。最初にすべての入力行を配列に格納した後、URLの中のドメイン名部分は大文字小文字の区別がないので、ドメイン名部分だけ小文字に修正し、その結果を表示せよ。
- URLは10行以内、URLの1行は200文字以内とする。
- 変換例
- http://HOGE.jp/FUGA.html → http://hoge.jp/FUGA.html
- https://www.Google.co.jp/search?q=FOO+BAR
→ https://www.google.co.jp/search?q=FOO+BAR
- プログラムのソースコードが入力として与えられる。最初にすべての入力行を配列に格納した後、プログラム中のキーワード(int, char, if, while, など)だけを大文字に変換して出力するプログラムを作成せよ。(難易度高いので注意)
- プログラムは10行以内。1行は200文字以内とする。
- 変換例
- int a = 123 ; → INT a = 123 ;
- for( int form = 0 ; form < 10 ; form++ ) printf( “int = %d\n” , form ) ; // if
→ FOR( INT form = 0 ; form < 10 ; form++ ) printf( “int = %d\n” , form ) ; // if- formはキーワードではない。
- “int…”は、C言語の文字列内なのでキーワードではない。(オプション)
- /*…*/ , // のコメント内の if はキーワードではない。(オプション)
レポートには、下記の点を記載してあること。
- プログラムリスト
- 説明(コメントや解説)
- 動作検証とその結果
- 考察(自分のプログラムの問題点)
C言語での文字列処理に便利な標準関数<string.h>
- strlen( str ) : 文字列の長さを数える。文字列末尾文字NUL ‘\0’ までの文字数
- strcpy( dest , src ) : 文字列をコピー。
- strcmp( s1 , s2 ) : 文字列を比較(辞書順で s1<s2 なら負の値, s1=s2 なら0, s1>s2 なら正の値を返す)
- strncmp( s1 , s2 , n ) : 文字列を指定した長さ n までで比較。
文字判定に便利な標準関数<ctype.h>
- isalpha( c ) : 文字 c が英字(A-Z or a-z)、isdigit( c ) : 文字 c が数字(0-9)