今僕は、『if else』『while』『for』『switch』『配列(t[])』を知っているのですが、それで何かプログラムを作りたいのですが・・・思いつきません。
それを使ってできるプログラムが載っているサイトを教えてください。

それか、これらを使ってできる問題を言ってくれるだけでもけっこうです(それらだけでですよ!)

回答おねがいします。

このQ&Aに関連する最新のQ&A

A 回答 (17件中11~17件)

プログラミングの練習でしたらソートを書いてみたらいかがでしょうか。



「配列に入っている文字列の文字を降順および昇順にならべかえよ。」

どういった順番で作るか分からなければトランプを並べ替えて、手順を考えるとよいと思います。

多分そのうち、ソートも習うと思いますが・・・
ソートといっても「バブルソート、シェルソート、バイナリ(2分樹)ソート」など色々な方法があります。

どのようにしたらプログラムが上手に作れるようになるかというのは、設計に近い内容なので、もっと専門的に詳しく勉強してみたいならば「Cによるらくらく構造化設計國友義久 著 1992年2月20日 CQ出版 ISBN 4-7898-3308-9」(絶版または重版未定なので復刊どっとコムで投票を受け付けています)を図書館で捜して読んでみるよよいと思います。

まぁ、先をあせらず今の課題をじっくりと学習していってください。
毎日の積み重ねがあってこそ日の目を見る日がやってくることでしょう。
    • good
    • 0
この回答へのお礼

1992年ってけっこう昔ですよね。
けど、それでも紹介するということは、とってもいい本なんですね。
ぜひ、調べてみます。

回答ありがとうございました。

お礼日時:2007/07/14 22:55

> それらだけでですよ!



main関数は作れるとしても、配列以外の変数も、演算子も、標準関数も一切使えないのですよね。int型とリテラルは使えるのでしょうか?

むしろ、
「if文、while文、for文、switch文、および配列だけで、コンパイル、実行&終了可能なプログラムを書け。プログラムが何らかの役に立つかどうかは問わない」
という問題でも結構難度が高いと思います。
    • good
    • 0
この回答へのお礼

リテラルって何ですか?

いや何か問題とかないだろうかと思ったんですが・・・。それだけじゃ難しいんですね。
じゃあ、もっと覚えてからリベンジします。

回答ありがとうございました。

お礼日時:2007/07/12 06:57

あっ、分かりづらかったですか。


じゃあ、ちょっと変えて、
static char moji[13] = {
'0','2','1','0','3','1','0','4','0','9','4','0','2','3' };
int count[10];
の配列を用意してもらって。
moji配列中に'0'~'9'の文字の各々登場する回数をカウントしてcount配列に格納してください。'0'が5回とかカウントします。
ルール。
・charは習ってますよね?
・if文とswitch文は使用禁止です。
・for文かwhile文は使用可能。
以上です。
    • good
    • 0

No.1です。



プログラムには、ランダム関数という乱数(バラバラ数)を
導き出す関数があります。
それを使わないと、数字がばらばらに出ないので、ロト6を
占うには面白さが欠けます。
(RPGゲームの「何ポイントのダメージ!」とかはランダム
 関数です。)

よって、ランダム関数を利用するわけですが。
関数を書くと判りますが、コンピュータのランダム関数は、
毎回バラバラなりに同じ数字が返ってきます。
例えば、1回目に、「1,26,43,15,24,11」と返ってきたとき、
そのソフトを終了し再度実行するとまったく同じ「1,26,43,15,24,11」
という文字列が返ってきてしまいます。

そこで、現在の時刻、例えば「2007/07/12 0:25:43」のような
常に変わりゆく数字を利用し、上記のランダム関数に味付けとして
加えてやると、同じ数字が二度と出ません。
例えば、簡単な例では秒数を44で割った余りを足すだけでも
「1,26,43,15,24,11」それぞれに+幾つを足すのでバラけて見えます。
そういう意味で、日時を利用すると面白い数字が返ってくると
いうわけです。

なお、例に書いてあるように、数字の順番はバラバラで取れる
はずです。
ただ、ロト6を買うには1からの順番が書きやすいですよね?
ということは結果を並び変えたいですよね?
という意味で、1から43は配列を利用。
ゆとりがあれば、ソート関数で並び変えられるようにするわけです。

そのほか。
複雑なものになると、
・トランプのポーカー役、麻雀役
・自販機の釣銭計算
・曜日計算、週計算、時間計算
…ふと思いつくだけでも仰る構文を利用するアルゴリズムは
超大量にあります。
普段何気ないものでも結構難しいものですよ。
お試しください。
    • good
    • 0
この回答へのお礼

このプログラムは乱数を覚えないと組めませんよね・・・。というわけで、乱数を理解して、このプログラムを組んでみます。

回答ありがとうございました。

お礼日時:2007/07/12 01:07

> ”0103405067020”で登場する数字の数とはいったいどういうことなのでしょう?


コレは 0がいくつ 1がいくつ といった具合にこの文字列中の数字の種類を数えてくださいといった趣旨だと思います
    • good
    • 0
この回答へのお礼

あぁ、そうか!

そういう風に問題を理解できるようになりたい(頑

回答ありがとうございました。

お礼日時:2007/07/12 00:35

えーと、じゃあ問題を。


『if else』の問題。
変数aが1なら変数bを3に、変数aが2なら変数bを1にしてください。

『while』の問題。
入力された数値が、1~5以外だったら警告して、もう一度入力させるプログラムを作ってください。

『for』の問題。
1,3,5,7,9,11,・・・・変数nまでの数列をforを使って足してください。

『switch』の問題。
変数aが1,4,8,9なら変数bを2に、変数aが2,3,7なら変数bを1にしてください。それ以外は変数bを0にしてください。種類を分類します。

『配列(t[])』の問題。
文字列"0103405067020"でそれぞれ登場する数字の数を数えなさい。

この回答への補足

すいません。

配列の問題なんですが・・・

”0103405067020”で登場する数字の数とはいったいどういうことなのでしょう?

補足日時:2007/07/12 00:19
    • good
    • 0

分岐とループと配列を使いたいということであれば。



ロト6のあたりを占うソフトでも作れば如何でしょうか(笑)
1~43の数字を配列に入れ。
6個決まるまでループ。
時間の概念+ランダムでチョイスし、重複した数字をチョイスした
場合は再取得をします。

ソフトができれば、その番号のクジを買ってみて。
当たったら儲けもんですよね。(笑)

この回答への補足

すいません。
時間の概念ってどういう意味ですか?
ランダムは習っていないのですが・・・。

補足日時:2007/07/12 00:08
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLNK2019: 未解決の外部シンボルのエラーが出る

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自キャラのデータ
Point2D g_jikipos = {40, 400};//自キャラの座標

//画像ハンドル
int g_jikiimage[11];

//色々なファイルの読み込み
int LoadFiles(){
//画像ファイル読み込み
if(LoadDivGraph("media\\player01.bmp",
11,11,1,64,64,g_jikiimage) == -1) return -1;

return 1;
}


 mymain.h
//他から呼び出させるMyMainの関数
void MyMain();
int LoadFiles();


 myhelper.h(サンプルなので打ちミスはない)
#include "DxLib.h"
#include <limits.h>
#include <math.h>

//構造体宣言
//座標またはベクトルを記録する構造体
struct Vector{
float x,y;
};
typedef Vector Point2D;
//線を記録する構造体
struct Line2D{
Point2D startpos, endpos;
float katamuki;//傾きをラジアン値で記録
Vector speed;//移動している場合は速度をセット
};
//球体を記録する構造体
struct Ball2D{
Point2D position;
float hankei;//半径
};
//四角形を記録する構造体
struct Rect2D{
Point2D lefttop;
Point2D rightbottom;
float width;
float height;
};


//ライブラリ関数
Point2D PosInView(Point2D in);
int XInView(float inx);
int YInView(float iny);
void ScrollToLeft(float jikiposx);
void ScrollToRight(float jikiposx);
void ScrollToUp(float jikiposy);
void ScrollToDown(float jikiposy);
void DrawLineInView(float x1, float y1, float x2, float y2, int Color, int Thickness);
void DrawCircleInView(float x, float y, float r, int Color, int FillFlag);
void DrawAnimation(float x, float y, double ExtRate, double Angle,int TurnFlag,
int *imgarray, int allframe, float fps);
//ベクトル関数
Vector CreateVector(Vector in, float veclen);
Vector AddVector(Vector v1, Vector v2);
Vector SubVector(Vector v1, Vector v2);
Vector AddVectorInFrameTime(Vector pos, Vector speed);
Vector AddVectorInFrameTime2(Vector pos, Vector speed, Vector accel);
Vector Normalize(Vector in);
Vector RotateVector(Vector in, float radian);
float VectorLengthSquare(Vector in);
float DotProduct(Vector v1, Vector v2);
float CrossProduct(Vector v1, Vector v2);
void SetLine2DKatamuki(Line2D *in);
void DrawLine2D(Line2D in, int Color, int Thickness);
void DrawBall2D(Ball2D in, int Color, int Fill);
//当たり判定関数
bool HitTestLineAndBall(Line2D linein, Ball2D ballin);
bool IsPointAtLineFace(Line2D linein, Point2D ptin);
bool HitTestLineAndLine(Line2D line1, Line2D line2);
bool HitTestBallAndBall(Ball2D a, Ball2D b);
bool HitTestPointAndBox(Rect2D rect, Point2D pt);
//タイマー関数
void SetSimpleTimer(int idx, int time);
int GetPassedTime(int idx);


//グローバル変数
extern float g_frametime;
extern Rect2D g_framerect;//画面領域(当たり判定)
extern Point2D g_current_field_pos;//現在の左上座標
extern Rect2D g_stagesize;//ステージサイズ

//定数宣言
const float ZEROVALUE = 1e-10f;
const float PIE = 3.1415926f;
const int SCROLL_LIMIT = 200;
----------------------------------------------------------------
 エラー内容
1>myhelper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl MyMain(void)" (?MyMain@@YAXXZ) が関数 _WinMain@16 で参照されました
1>C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\my\Debug\my.exe : fatal error LNK1120: 外部参照 1 が未解決です
1>my - エラー 2、警告 0
ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ
----------------------------------------------------------------
画像を貼り付けときます
(見えにくい場合→http://www.dotup.org/uploda/www.dotup.org154142.jpg.html)
初心者なのでわかりやすくお願いします

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自...続きを読む

Aベストアンサー

ファイル構成から推測するに
mymain.cpp というファイルに
void MyMain(void) {
// ここに処理を書く
}
という関数が必要なようです。

Qバッファとは何ですか

C言語を使用してるとバッファという言葉がよく出てきますがバッファとは何ですか
メモリとは違うものですか
訳をみても緩衝材とか一時的に蓄える場所という意味でよく分かりません
一時的でない使い方も多い気がしますが実際はどういうものですか

Aベストアンサー

#1です

寝ぼけて適当に書いたので修正。

すぐ見つけることができたもので正確なものは英語版ですがこちらくらいかも。
Data buffer - Wikipedia (en.)
http://en.wikipedia.org/wiki/Data_buffer

一応簡単なものはこちらです。
バッファとは - e-Wrods
http://e-words.jp/w/E38390E38383E38395E382A1.html

「複数の機器やソフトウェアの間でデータをやり取りするときに、処理速度や転送速度の差を補うためにデータを一時的に保存しておく記憶装置や記憶領域のこと。」
が現在の基本定義です。処理速度・転送速度の差のための緩衝材的な意味です。

昔はソフトウェアとハードウェア間に使うデータでソフトウェア側がデータを受け取るか、整形して送信するときに使うメモリ領域が基本的にバッファでした。
マルチプロセッサ・マルチタスクの時代になってくると、ソフトウェア間の処理速度の違いを吸収するために使うメモリ領域にもバッファという言葉が使われるようになりました。ソフトウェア間で逐次(FIFO)処理されるデータのためのメモリ領域がこちらの使われ方の主戦場といったところでしょうか。

ソフトウェア間でただ一括転送されるデータならバッファという言葉は誤用ということになるのですが、よく誤用されます。

#1です

寝ぼけて適当に書いたので修正。

すぐ見つけることができたもので正確なものは英語版ですがこちらくらいかも。
Data buffer - Wikipedia (en.)
http://en.wikipedia.org/wiki/Data_buffer

一応簡単なものはこちらです。
バッファとは - e-Wrods
http://e-words.jp/w/E38390E38383E38395E382A1.html

「複数の機器やソフトウェアの間でデータをやり取りするときに、処理速度や転送速度の差を補うためにデータを一時的に保存しておく記憶装置や記憶領域のこと。」
が現在の基本定義です。処理速度・転送速...続きを読む

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む


人気Q&Aランキング

おすすめ情報