このような課題が出されました。
課題を丸投ではありませんが、どこをどう手をつけ始めればよいかわかりません。
お手数ですがよろしくお願いします。
次のような動作をするプログラムを作成する。
ファイルをShannon符号を用いて圧縮し,圧縮ファイルを作成する.また,Shannon符号で圧縮されたファイルを読み込み,解凍されたファイルを作成する.
圧縮対象のファイルはテキストファイルとし,出現する可能性のある文字は,a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p の16文字の内の何れかとする.ファイルの長さは4096文字以内で,一行に書かれている.
圧縮ファイルもテキストファイルとし,先頭の16行は,各文字に対する符号を文字の「0」,「1」を使って一行に一つずつ書く(符号を割り当てない場合は何も書かない).
17行目に符号化されたbit系列を文字の「0」,「1」を使って一行で書く.
(本来バイナリで書けば1/8のサイズになるが,簡単のため文字にする)
解凍されたファイルは,圧縮前の元のファイルと同じになるように作る.
「srcdata0~2.txt」及び「encoded0~2answer.txt」は,作成したプログラムが正しく動作するかどうかをチェックするためのサンプルファイルである.
「srcdata3.txt」を圧縮したファイルを「encoded3.txt」として,提出すること.
「encoded4.txt」を解凍したファイルを「decoded4.txt」として,提出すること.
ソースプログラムも提出すること.
プログラム言語はC言語,C++,java,C#の何れかで作成のこと.特にC,C++は標準ライブラリのみを用い,gcc,g++,又はVisual C++でコンパイル可能なこと.
C言語はファイル入出力関係が煩雑なので,サンプルプログラム「shannon.c」をベースに作成すること.
C言語では,文字列関数(#include <string.h>)を使わないこと.
改行コードはOS依存だが,特に気にする必要はない.必要があれば変換して良い.EOFコードは不要.
上級者は,浮動小数点型(double, floatなど)を用いずにプログラムすることを推奨.(分数や対数を正確に表せないため,僅かな誤差が切り上げの有無等に影響するため)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
まず質問主殿は、指定されている4つのプログラム言語の内、使いこなせるものがありますか?
使いこなせるものがあるなら、バブルソートで良いのでプログラムを書いてみてください。
それすら出来ないのなら、問題外ですのでサンプルプログラムをネットで探してお勉強しましょう。
自分でバブルソートぐらいのプログラムが書けるようになったら、次はフローチャートで処理の流れを記述します。
最初は、セネラルフローと呼ばれる大まかな処理の流れを記述するフローチャートを書き(ゼネラルフローは言語を意識せずアルゴリズムの記述を主に考慮して記述する)、それが書けたら次に言語レベルの処理単位に噛み砕いたディテールフローを記述します。
(完全に言語レベルに1:1で対応する必要はありません。言語レベルの処理単位に近い所にまで落とし込めば良い)
ディテールフローが書けたら、それをコーディングします。
コーディングが終わったら、次はデバックを行います。
大まかな流れはこんなもんでしょう。
質問の丸投げでないなら、後はご自身で頑張って下さい。
No.2
- 回答日時:
どこから手をつけていいかわからないとのことですが、
肝心要のシャノン符号の作り方はわかってますか?
何もわからないところにいきなりこんな問題が出されるとは思えないので、
ファイルの入出力や、簡単なプログラムは組めると考えていいのですよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#include <Windows.h>というヘ...
-
アクセス 壊れた? 「ファイ...
-
バッチ処理で追記コピーしたい
-
CSSを1ページに1枚作るのって変...
-
binファイルを解凍したいの...
-
iniファイル
-
Word VBA MSGBOX 内で降順表示
-
ファイルが開かれているかどう...
-
exeファイルをデータ転送サービ...
-
実行ファイル(.exeファイル)...
-
jarファイル
-
frm、frxファイル
-
COBOL
-
exeファイルの作り方
-
パイソンでpy ファイルと p...
-
Latexで図番号だけを「図1.1」...
-
コマンドプロンプトで作成日時...
-
VBSが起動しない
-
VBAでのicsファイル変換
-
Seasar2のdiconファイルの読み方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセス 壊れた? 「ファイ...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
binファイルを解凍したいの...
-
.NETアプリを作ったときの .man...
-
ファイル構造が破損しているフ...
-
2つのファイルのバイナリをコン...
-
CSSを1ページに1枚作るのって変...
-
Word VBA MSGBOX 内で降順表示
-
公文書のxmlファイルの開き方が...
-
jarファイル
-
バッチ処理で追記コピーしたい
-
自分で作成した重要ファイルを...
-
ファイルは何で構成されている...
-
exeファイルをデータ転送サービ...
-
リンクの張り付けかたを教えて...
-
exeファイルの中身を見る方法は...
-
参照するファイルをワイルドカ...
-
CRCが一致する確率
-
C言語---ファイルに出力したデ...
おすすめ情報