[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 20:08 / Filesize : 94 KB / Number-of Response : 422
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 30



1 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:38:08 ]
言語の入門者向け解説スレです。

教えて欲しいのではなく宿題を丸投げしたいならこちらへ。
 C/C++の宿題を片付けます 108代目
 pc11.2ch.net/test/read.cgi/tech/1211980711/

・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・開発環境や動作環境も晒すと答えが早いかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 29
pc11.2ch.net/test/read.cgi/tech/1212329099/
過去スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000

75 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:22:12 ]
>>71
char *p;
if(!p) { }
はOK. というか C++ では NULL よりは 0 の方が好まれているようです。
>>73
あ な た の 存 在 が 迷 惑 で す。

76 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:23:36 ]
正常な状態を検知するのに否定を使うのはセンスに欠けると思う。

77 名前:71 mailto:sage [2008/06/15(日) 18:27:21 ]
ちょっと調べてみた

NULLの値が0でなくても、
if(!p)
if(p != 0)
if(p != NULL)
は同じ結果になるようです。

サンクス

78 名前:デフォルトの名無しさん [2008/06/15(日) 18:28:52 ]
>>75
ド素人をド素人のままのさばらせておくお前もあいつと同じく迷惑な存在。
www.kouno.jp/home/c_faq/c5.html#3

79 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:31:32 ]
>>76
trueが正常とは限らないだろう。例えば、
if (!(p = malloc(n))) {
perror("malloc");
return 1;
}
正常だった場合の処理;

もっとも、この書き方は、コーディング規約で禁止しているところもあると聞くが。

それはともかく、
if (!strcmp(a, b)) ...
は頂けないかな。

80 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:38:05 ]
>>78
ド素人のスレなので、そこんとこよろしく

81 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:39:12 ]
if (!strcmp(a, b)) ... で等しい時に真なんだもんな。
直感に反するわ。

82 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:40:06 ]
>>69
んーまあ比較演算子のない条件式を「変」だと思えるピュアな心があればいいんじゃないかな。
ただし、識別子と意味が食い違って紛らわしくなるような場合はいかん。いかんよ。

83 名前:デフォルトの名無しさん [2008/06/15(日) 18:40:47 ]
>if(!p)
>if(p != 0)
>if(p != NULL)
>は同じ結果になるようです。

流石ド素人。
なかなか諧謔のセンスがある。
このような頭の悪い人間はプログラミングの世界から手を引いた方がよい。
疑似科学の学者になったほうがよいのではないか?



84 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:42:09 ]
>>71 >>77
まあ逝ってきなさい
www.kouno.jp/home/c_faq/c5.html

85 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:47:03 ]
このおばちゃんは元気でやってるの?
この画像がニュースで流れて以来、情報が無いのですが
ちゃんと避難できたでしょうか?
2chart.fc2web.com/2chart/obachannnigeteeeeeeeee.html

86 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:58:34 ]
>>83
うっかりミスだとわかるだろうに
天下を取ったようなその書き込み

もっと大きな気持ちで行こうよ

87 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:04:23 ]
いや、人には色々心の傷があるんだよ。触れないでおくも吉

88 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:04:47 ]
>>83のような口調でエラー/警告メッセージを吐くコンパイラがあったとしたら、
俺なら窓から投げ捨てる。

89 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:07:34 ]
いやちょっと欲しいかも

90 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:08:34 ]
>>82
if (isdigit(c)) ...
とかだと比較演算子が現れないけど、これを無理矢理
if (isdigit(c) != 0) ...
とか書く訳?

91 名前:デフォルトの名無しさん [2008/06/15(日) 19:11:41 ]
>>86
ごめんなさい、今日ちょっとイライラしているんです。
そもそも>>69を書いたのは私で論争を起こそうと考えたからなんです。
あー、ごめんなさいごめんなさい、CもしたことがないのにCのポインタがナントカとか言って
ごめんなさい。人間ド素人は私の方なんです。あぁ、こういうことを平然というから味の素並に
嫌われる元なんですね、ごめんなさいごめんなさい。

92 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:15:29 ]
いちいちageる奴にろくなのは居ない

93 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:41:48 ]
>>90
真偽を返す関数は逆に比較すべきじゃない。



94 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:06:42 ]
>>90
それは特殊だなって見ればわかるじゃん

95 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:10:25 ]
書いてもいいし書かなくてもいい
ただ、自分のやり方として首尾一貫するのが大事

96 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:55:51 ]
そそ if(p) と if(p != 0) では同じ実行結果となるけどコンパイラが展開したコードは微妙に違うのをだすよね(オプティマイズの指定にもよるけど)

てことは置いといてもっと気楽に行こうよ。
そう書いたらダメとか、それは間違ってる・・とかより >>74 や >> 95 に一票(もしかすると同一人?)

>>90 は頭を柔らかくね。何年かして、そのプログラム見たときに何か感じるものがあればいいんじゃない?

97 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:03:36 ]
pがポインタ型なら全く同じ意味だから、
まともなコンパイラなら同じコードを生成するよ。

98 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:45:51 ]
逆に、違うコードを吐いたところで9割9分くらいは目くじら立てることないと思う。

99 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:55:03 ]
GetRandom関数の意味を教えてください


100 名前:デフォルトの名無しさん [2008/06/15(日) 22:55:37 ]
>>99
スレ違い

101 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:02:35 ]
>>100
すいませn
どこいけばいいですか?

102 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:38:08 ]
>>97
あああ、ちがうよ〜。 or reg, reg とするか cmp reg,0 とかの話。


>>98
そりゃ目くじらどころかござにも引っかからないだしょ。

103 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 02:39:16 ]
>>78
ん、確かに。失礼しました。



104 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 04:33:31 ]
HWND型の比較はどうやってすればいいですか?

105 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 07:28:50 ]
==

106 名前:aaa mailto:sage [2008/06/16(月) 15:30:50 ]
scanfで入力させると
例えば
int a;
printf("数値:"); scanf("%d",&a)
実行結果  数値:●●

ってなって入力させると改行がはいるじゃないですか?
これを実行結果が 数値:●●センチ
のようにできますかね?

107 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:34:43 ]
一般的には無理
環境によっては可能かも知れないが、かなり特殊だと思う

108 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:36:31 ]
って言うかC言語の問題じゃなくてOSの入出力インタフェースの問題だな

109 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:41:22 ]
一回画面クリアして書き直すとか

110 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:01:11 ]
例えば3〜入力した数までの数をある法則で計算していく時、
その中から素数を計算から除外したい時はどのようにしたらいいんでしょうか?

111 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:03:13 ]
素数かどうかを判定して素数なら除外する

112 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:03:35 ]
>>110
素数判定して除外すればいい。
恐らくは、こんな要領。
for (int ic = 3; ic < inputedNumber; ++ic) {
if (isPrime(ic)) continue;
someFunction();
otherFunction();
}

113 名前:112 mailto:sage [2008/06/16(月) 17:04:10 ]
ちっ、細かく書き過ぎて先を越されたぜ



114 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 19:01:41 ]
物理シュミレーションをやりたいんだけど、いい入門書ない?

115 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 19:36:59 ]
セグメンテーションエラーをなおす方法としてなにがあります?

116 名前:デフォルトの名無しさん [2008/06/16(月) 19:39:41 ]
>>115
デバッガの使い方覚える

117 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 19:57:35 ]
どうやってつかうの?

118 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:00:57 ]
べんきょうする

119 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:09:40 ]
>>114
分野をはっきりさせないと答えられない。

120 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:15:55 ]
>>115
どこまで進んで落ちてるのか調べればいいんじゃ?
適当にprintfいれるとか。

121 名前:デフォルトの名無しさん [2008/06/16(月) 20:19:35 ]
以下のようなデータファイルをfgetsとsscanfを使って読み込みたいのですが、
どうすればよいでしょうか?

test.datの中身
1 2 3 4 5 6 7 8 9 10 11 ... 1000

char line[10000];
int a[1000];
FILE *fp;

fp=fopen("test.dat","r");
fgets(line, sizeof(line), fp);

とすると、lineにtest.datの内容が文字列として格納されます。
ここからsscanfを用いて、1〜1000をa[0]〜a[999]に格納したいです。
繰り返し構文を用いて何とかできませんでしょうか?

122 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:04:37 ]
ものすごい初歩的な質問ですが宜しくお願いします。
ためしにファイル名a.cとして文字列を表示させるだけのプログラムでコンパイルを試みたところ
Error E2209 a.c1: Unable to open include file 'stdio.h'
Warning W8065 a.c 4: Call to function'printf'with no prototype in function main

と表示されできません。
なにがいけなかったのでしょうか。

123 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:06:42 ]
標準インクルードパスがちゃんと設定できてないとか?



124 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:12:28 ]
>>123
レスありがとうございます。

確認してみましたができてました。

ちなみにプログラムは
#include <stdio.h>
int main(void){
printf("あああああ\n");
return 0;
}
ふつうのプログラムです。

125 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:14:37 ]
とりあえずプログラムに間違いは全く見受けられないから、
どっかの設定に問題があるとしか。

126 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:18:53 ]
>>124
できてないからおかしなことになっとるんじゃ

127 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:19:29 ]
確認させてください。

ボーランド社のコンパイラを使っております。ファイルをC:\Borlandに解凍して、

環境変数でPathの末尾に;C:\Borland\BCC55\Binを付け加える

二つのcfgファイルを作る

であっていますか?

128 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:30:22 ]
>>121
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6933.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6934.c

fgetsとsscanf 不使用
> char line[10000];
無理

129 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:35:32 ]
セミコロン有って98?


130 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:36:03 ]
>>120
それをやったのですけど
そのプログラムではfread,fseekを使ってるプログラムで
ひさしぶりにつかったらどうやって組み立ててたのかわからなくて。

宿題のスレにお願いしたのですけど。
ここにはるとマルチになるので


131 名前:130 mailto:sage [2008/06/16(月) 21:42:14 ]
これ
a-draw.com/uploader/src/up1643.zip.html
このファイルをダウンロードしてもらって解凍してもらいたいんです。
prog.cのファイルを実行してセグメンテーションエラーをとってほしいんです
けど。

132 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:42:25 ]
すでに現段階でマルチだよ

133 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:46:20 ]
>>127
cfg ファイルの中身が間違っている可能性が高い



134 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:49:36 ]
>>133
レスありがとうございます
bcc32.cfg内は
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
ですよね。
ilink32.cfg内は
-L"c:\Borland\Bcc55\lib"
ですよね・・・

とくにファイルの移動とかはしていません。デフォルトのままです

135 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:51:49 ]
中身は問題なさそうだな・・・。
んで、そのファイルはどこに置いてる?

136 名前:130 mailto:sage [2008/06/16(月) 21:54:14 ]
prog.cですけど
きちんと動けばtextフォルダ内にテキストファイルができます

137 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:54:27 ]
あいや、cfg ファイルね

138 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:55:16 ]
って、質問者からしてちゃうやんけw
>>135>>134 へのレス。

139 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:56:03 ]
ワロタ

140 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:56:32 ]
Binに入れています。

141 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:57:47 ]
だが断る

142 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:58:11 ]
cfg ファイルは非Unicodeのプレーンテキストファイル?

143 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:00:26 ]
はい



144 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:01:54 ]
C:\Borland\Bcc32\include\stdio.h はある?

145 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:02:12 ]
文字コードはANSIでした。
拡張子もtxtではなくcfgに書き換えています。

146 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:02:32 ]
環境変数かえてから再起動してないってオチでわ?

147 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:03:19 ]
コンパイラ走ってるからそのあたりは大丈夫そうに思える。

148 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:04:30 ]
自分のレス番名前に入れろ

149 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:04:32 ]
「登録された拡張子は表示しない」
設定になっているがために
本当は .cfg.txt になってるのが .cfg と表示されている・・・とかはない?

150 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:05:43 ]
>>144
ありました。

>>146
何回も再起動しました;;

>>147
コマンドプロンプト開いてbcc32でズラズラでてきます。

151 名前:122 mailto:sage [2008/06/16(月) 22:07:27 ]
>>149
拡張子は全て表示するようにしています.



152 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:11:37 ]
だが断る

153 名前:122 mailto:sage [2008/06/16(月) 22:15:42 ]
蛇足(?)ですが、JDKも導入しています。こちらはフツウに動作してくれます。



154 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:28:52 ]
見てみようと思ったがダウンロードできん。

155 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:43:34 ]
>>151
んじゃ、もう Borland は捨てよう。
インスコして即使える VC++ 2008 Express Edition にしよう。

156 名前:122 mailto:sage [2008/06/16(月) 22:51:29 ]
>>155
ですね・・・

Visual C++は初めて使う(学校ではUltra-C Proというソフトつかって勉強してました)のですが、まったく仕様がかわりますか?
基本画面を見ただけでごちゃごちゃしていてよくわからないのですが、、、

157 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:52:53 ]
コマンドプロンプトからコンパイルする時にインクルードパスを指定してみたら?

158 名前:122 mailto:sage [2008/06/16(月) 22:54:56 ]
>>157

コマンドプロンプトの使い方がまったくわかりません;;

159 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:55:52 ]
> bcc32.cfg内は
> -I"c:\Borland\Bcc55\include"

> C:\Borland\Bcc32\include\stdio.h はある?
→ありました

Bcc使ったこと無いんだが、Bcc55ってのとBcc32ってディレクトリできるん?

160 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:00:56 ]
>>159
御免。それ間違えただけ。

161 名前:122 mailto:sage [2008/06/16(月) 23:01:08 ]
>>159

>C:\Borland\Bcc32\include\stdio.h

これはBcc55の間違いでした。すみません。

162 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:01:28 ]
>>156
基本的な使い方はそこいらのサイトに載ってると思う。

163 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:03:23 ]
>>160-161
了解です。

bcc -ehoge.exe hoge.c
でいいのかな。

インクルードパスを明示的に指定するために
bcc -I"c:\Borland\Bcc55\include" -ehoge.exe hoge.c
とやってみるか、インクルードファイルをフルパス指定にするために
#include "c:\Borland\Bcc55\include\stdio.h"
に変えてみるとか。



164 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:04:36 ]
って\あやしくね?Windows分かりませんで逃げていい?(汗

165 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:05:15 ]
#include の中は \ 1つでいいよ

166 名前:122 mailto:sage [2008/06/16(月) 23:14:16 ]
>>162
ちょっとググってみます。

>>163

おぉぉおぉぉぉおお!できました!ありがとうございます!
しかし、もうVisualC++をインストールし終えてしまいました^^;
でもありがとうございます!

167 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:17:29 ]
>>166
お。できたんだ?
ってことはコンフィグファイルがうまく効いてないのかしら。
その辺はますます使ったこと無いのでわかりませんが、VCに移行するんですね^^;
がんばってねー

168 名前:122 mailto:sage [2008/06/16(月) 23:25:10 ]
>>167

VisualC++は使い慣れるのにけっこう時間が必要のようです^^;;;
当分、メモ帳+VisualC++の併用していこうとおもいます。
167さんのアドバイスで新しい書き方を覚えましたし、満足です^^
ありがとうございました。がんばりまうs!

169 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:29:44 ]
どうでもいいけどC言語以前の問題だと思う

170 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:31:33 ]
さらに入門以前の問題でもある

171 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:51:44 ]
>>168
メモ帳使う方が混乱すると思うぞw

172 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:00:15 ]
しかし、Visual C++コマンドプロンプトの存在は
bcc32.cfgを用意するなどといった手間がない分、Borland C++より優位。
インストーラの力は偉大だ。

173 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:07:07 ]
>>168
今までのレス見てて原因分かったぞ
bcc32.cfgのincludeを指定してるパスが間違ってるんじゃないのか



174 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:08:15 ]
>>134 で特に間違いはないように見えるけど

175 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:09:39 ]
見逃してたwww

176 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:31:05 ]
コマンドプロンプトがわかりませんとか言ってる時点で・・・
まずいくべきはPC初心者板だな。

177 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:38:14 ]
研修を受けて2週間めですが、さっぱりわかりません、助けてください。
変数ってprintfで表示できるしデバッガーでも表示出来るのはわかるのですが
計算して新しいものを入れるのにクリアしないのですか?


178 名前:デフォルトの名無しさん [2008/06/17(火) 00:40:54 ]
>>177
なにをいってるのかさっぱりわかりません、助けてください

179 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:42:42 ]
日本語の研修ですか?

180 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:43:46 ]
変数は初期化か上書きしかない、自分がこうしたらクリアだな
と思う値で初期化するなり上書きすればクリアじゃないかな

181 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:43:50 ]
>>178
ごめんなさい、講師の人には失礼なので聞けないので、一緒に研修受けている
人に聞いてもわかりません。
変数ってクリアしないで計算出来るんですか?

182 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:44:35 ]
いや、講師に聞いてくださいよ…

183 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:46:15 ]
>>180
ありがとうございます。
思う値でクリアするのがわかりません。
初期化か上書きって命令があるんでしょうか。素人ですみません。



184 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:47:10 ]
なんかよくわからんけど
自分で値いれるんならクリアしなくてもいいよ

185 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:47:26 ]
>講師の人には失礼なので聞けない
なんというゆとり

186 名前:デフォルトの名無しさん [2008/06/17(火) 00:48:09 ]
理解できずに終わる事のほうが失礼だから聞けよクズ

187 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:48:20 ]
>>182
講師の人の言ってることは日本語が難しいので聞いても無駄だと思って。。。


188 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:49:07 ]
なら分かりやすく教えてくださいって聞けばいいだろ…

189 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:50:16 ]
int a = 0; int型変数aを0で初期化
a = 1;   変数aに1を代入(上書き)

190 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:52:52 ]
この質問者の日本語が一番難しい。

191 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:53:11 ]
本とか買って予習したほうがいいと思うよ
そうすれば講義も理解しやすいかと

192 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:54:08 ]
ここんとこC言語以前の質問ばっかりじゃねぇか

193 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:54:55 ]
丁寧に図解して説明してくれて他の受講生は他の学校で習ったよりわかりやすい
っていっているので、聞けません。

a = 1って構文は理解したけど、なんでaが1になるのかわかりません。
型が同じだから代入できるということですか?



194 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:57:22 ]
悪いことは言わないからまず電子計算機のなんたるかを勉強しろ

195 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:57:40 ]
なんだ他の学校って。
職業訓練学校か?

>a = 1って構文は理解したけど、なんでaが1になるのかわかりません。
そういう決まりだからだ。

196 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:58:42 ]
大学の授業なんだろう?
授業料払ってるんだろう?
聞け

言っとくが俺らはおまえからもおまえの親からも何ももらってないんだからな

197 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:59:06 ]
もしかしてりんごの絵とかで解説してあげないと駄目なレベルなのかな

198 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:00:08 ]
はっきり言ってしまうと
単におまえが分不相応な講座取っただけだろ

199 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:01:08 ]
講師の人には他の人とは差があって当然だから、基礎的な事をまずは勉強
しようねといって、コンピュータの歴史の本みたいなのを読まされています。
わたしはプログラムしたいけれども、多分、もう見捨てられているんですね。
わかりました。

200 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:01:16 ]
コンピュータ内部の事象をイメージできない人間がプログラミングできるわけがない

201 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:01:34 ]
ああ、新入社員の研修じゃなかったのか。よかったよかった

202 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:02:48 ]
うーむ・・・正直相当不向きと見える


203 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:03:41 ]
学校じゃないから真剣なんです。社会人の研修です。

なんでみんなこんなのでわかるのか泣きたいです。



204 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:02 ]
a = 1って構文は理解したけど、
↑↑激しく矛盾 ↓↓
なんでaが1になるのかわかりません。

205 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:05 ]
おすすめ図書 猫でも分かるc言語プログラミング
   

206 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:13 ]
ごめんなさい、明日も早いから寝ます。いろいろありがとうございました。

207 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:33 ]
逆に質問したいんだがなんでaが1になるのが変だと思ったんだ?
そういうところをはっきり書いてくれないと誰もあなたが望む答えが出来ないと思うよ

208 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:41 ]
プログラマはプロ・アマ問わず本買うなりネットで調べるなりして自学自習が基本だ。
与えられた本に文句つけてる暇があったら、入門本を片っ端から読み漁れ。
講師だの学校だのにプログラム教えてもらおうなんて思ってるなら、転職・進路変更を勧める。

209 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:06:51 ]
なんでこんなのをプログラミングの研修に回すんだ…
どこの会社かしらんがおかしいだろ

210 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:08:07 ]
たぶん変数とか代入とかの概念がないんだろう

211 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:08:43 ]
まわりが経験者ばっかりで焦ってたんだろね

212 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:08:49 ]
1+1はなんで2になるの?くらいのレベルの質問

213 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:09:02 ]
>>207
a = 1 って書くのはわかるけど、aは変数じゃないんですか???
ごめんなさい、たぶんわたしがまるでわかってないんですね。



214 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:09:05 ]
あーそうか
つまり a=1 を数学の数式として見てるのか・・・

215 名前:デフォルトの名無しさん [2008/06/17(火) 01:09:20 ]
a = 1の構文に違和感を覚えるのなんてよくあること

216 名前:デフォルトの名無しさん [2008/06/17(火) 01:09:55 ]
と思ったけど>>213を見た限りそういうわけじゃないみたいだなwwwww

217 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:09:57 ]
a=1;

これの意味を本当に理解してる?
説明してみて

218 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:10:52 ]
>>213
意味わかんねえよ。
「(変数) = (値);」と書いて「(変数)に(値)を代入する」って読むんだよ。
何が分からんのか言うてみろ。

219 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:11:23 ]
たぶん「代入」が理解できてない

220 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:12:04 ]
131だけどどなたかわかりましたか?

221 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:13:05 ]
一番いいのは
自分で
int a;
a=1;
してからprintfでaを表示しろ

222 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:14:11 ]
zipファイルが落とせないの俺だけ?
出会い系のバナーしかリンクがねーんだけど。


223 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:14:19 ]
よく言われるのは、変数は箱の名前

まず最初に
int a;
などのように書いてint型の変数としてaと言う箱を用意します

その箱の中身に 1 と言う値を入れる(代入)にはどうすればいいか
a = 1;
と書くのです、これはC言語の決まりごとです



224 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:14:24 ]
代入演算子で1を代入してるんですよね。理解しています。
でも、どうしてaが1なんですか?
取り出すところがわかりません。どうやってクリアするのですか?

225 名前:デフォルトの名無しさん [2008/06/17(火) 01:14:36 ]
2つの数の最大公約数を出すプログラミングを書いていたのですが、どうしてもうまくいきません
どこが悪いか教えてもらえませんか?
どんな値を入れても18000みたいな数字が出てきてしまいます。。。
お願いします

#include<stdio.h>
int gcd(int m,int n) /*二つの自然数の最大公約数を返す*/
{ int i;
if(m > n)
{for(i =m; i==1; i--)
{if( (m%i)==0 && (n%i)==0 )
return i;
}}
else
if (m < n) {for(i =n; i==1; i--)
{if( (m%i)==0 && (n%i)==0 ) return(i); } } }
int main(void) { int x, y;
puts("二つの自然数を入力してください。");
printf("自然数1:"); scanf("%d", &x);
printf("自然数2:"); scanf("%d", &y);
printf("二つの自然数の最大公約数は%dです。 \n", gcd(x ,y));
return(0); }





226 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:15:22 ]
決まりごとになぜっていわれるのが一番こまるよなー。
なんで止まれは止まらないといけないのかとか

227 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:15:26 ]
>>220
そんなところにソース上げられても誰も見ようとはしないよ
自分でリンク叩いてみろ

228 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:16:03 ]
>>224
「代入」の意味を説明してみろ

229 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:16:17 ]
>>224
クリアってなんだよ。
勝手に変な概念を作るな。

230 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:16:42 ]
どこにうpすれば。。。

231 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:17:01 ]
おまいら釣られすぎwww

232 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:17:49 ]
131
単品だとエラー確認できないんすよー。

233 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:17:54 ]
>>225
i==1



234 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:18:37 ]
あーもー、
おまえら何がしてーんだよっww

235 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:19:10 ]
いったいこいつの頭の中がどうなってるのかを確かめたいと言う知的好奇心

236 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:21:23 ]
131
ddofile29050.zip pass errorです
みてもらえたらうれしいです

237 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:16 ]
>>131
1643.zipがねーぞ?
2chなんかでリンク張るから消されたんじゃねーのw

238 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:23 ]
ここは半角板じゃねぇぇ。

239 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:25 ]
やぱりからかれてるんだ。


240 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:41 ]
>>236
しねばいいよ

241 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:44 ]
明日ゼミあるのに全くゼミ資料も裏付けもやってねー

242 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:25:45 ]
いくらなんでもa = 1がわからないやつを2週間も放置する会社は無いだろ

243 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:26:28 ]
a = 1; において、a という箱にはなにかしらデータが入っているから
そのままではそのデータが邪魔で 1 を代入することはできない
だから a からデータを取り出すなり消去する(「クリア」する)必要がある

とでも考えているんじゃなかろうか



244 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:26:35 ]
なぜreturn aで返るんですか?

245 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:28:44 ]
>>243
そうです。
どうしてクリアしなくていいんですか?

246 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:29:30 ]
上書きしてるから

247 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:30:08 ]
自分でC言語のコーナーいって
自分が一番わかるであろう本をかいなよ。
そしてプログラムを自分が理解してうつ。
それがベストだろ。

248 名前:デフォルトの名無しさん [2008/06/17(火) 01:30:50 ]
>>245
箱と説明されてるのがまずかったのかな?

ホワイトボードみたいなもんだを思ってくれ

a = 1;はaって言う名前のホワイトボード書き換える行為だと

249 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:09 ]
+=とか|=なら、245的クリアしない代入と言えるのだろうか?

250 名前:131 [2008/06/17(火) 01:31:17 ]
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define MAX 5000
#define M 25
#define STR_MAX 256
void binary_file_process(char *fname)
{ float sample1; float sample2; float sample3[5]; float s1[MAX]={0};
float input_data[150][M]; char buff[100]="text/"; FILE *fin1=fopen(fname,"rb");
strcat(buff,fname); strcat(buff,".txt");
FILE *fp =fopen(buff,"w"); int i = 0,j = 0,k = 0,l = 0,m = 0,y = 0,z = 0,max=0;
int count=0; fseek(fin1, 0, SEEK_SET);
fread(sample3, sizeof(float), 6, fin1);
fseek(fin1, 12, SEEK_SET); while(fread(&sample1, sizeof(float), 1, fin1) == 1) {
s1[k] = sample1; k++; }
count=k/M; max=k; for(i=0;i<max;i++){ printf("{%.1f}",s1[i]); if((i+1) % M ==0){
printf("\n"); } }
printf("\n\n"); printf("k:%d count:%d max:%d \n",k,count,max);
k=0; for(i=0 ; i < count ; i++){ for(j=0;j<M;j++){
printf("\t"); input_data[i][j]=s1[k];
fprintf(fp,"%f ",input_data[i][j]);
if((k+1) % M ==0){ fputs("\n",fp); } k++; } } fclose(fin1); fclose(fp);}
int main(){ char buf[100][STR_MAX]={'\0'}; FILE *fp; int i,j,k=0,count=0; system("dir power/*.data >memo.txt");
fp=fopen("memo.txt","r"); if(fp==NULL){ printf("prog001.c:file can't open memo.txt\n");
exit(-1); } printf("読み込み開始\n");
i=0; while(fscanf(fp,"%s",buf[i]) != EOF){
i++; } count=i; fclose(fp); printf("count:%d buf[0]=%s\n",count,buf[0]);
binary_file_process(buf[0]);
}

なんとかまとめてみました
お願いします

251 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:29 ]
>>255
5行目と11行目のfor文を
i == 1 → i != 1 にかえるとおk

252 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:31 ]
変数の初期化
その変数に代入すると,初期化した変数にいれられる。

253 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:45 ]
>>246
そこが言ってることがわかりません?上書きってクリアとは違うんですか?



254 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:49 ]
>>245
ホワイトボードじゃ、一回クリアしないと書けないぞw

MDでもカセットテープでもなんでもいいが、
繰り返し録音できるメディアはいちいちクリアしなくても
新しく録音できるだろ。
それと一緒だ。上書きだよ上書き。

255 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:32:07 ]
間違った >>225

256 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:32:21 ]
>>150
単品じゃうごかねえつったろw

257 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:32:58 ]
>>245
C言語は、プログラマのコードが全て
つまりプログラマの責任において操作する
a = 1;
の後に、aに何を代入して上書きしようがプログラマの勝手
で、その変数aの値を使用するのは、プログラマの責任で使えってこった

258 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:33:42 ]
データがねーから

nt main(){ char buf[100][STR_MAX]={'\0'}; FILE *fp; int i,j,k=0,count=0; system("dir power/*.data >memo.txt");
でエラー

259 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:35:43 ]
まさにカオス

260 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:37:03 ]
何を代入してもいいのに1を代入するとかもうわけがわからないのは
やっぱりむいてないんでしょうね。
書いている言葉は理解できるのにさっぱり意味がわかりません。
長々とありがとうございました。明日相談してみます。

261 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:38:52 ]
何を代入してもいい箱には
何が代入できるのだろう。

そもさん、せっぱ

262 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:39:12 ]
書いている言葉は理解できるのに
↑↑何か脳の病気なのか…↓↓
さっぱり意味がわかりません。

263 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:40:02 ]
1は例えであって別に何しようが勝手だって
型なのどの規則を守ってたら
あとは>>257の言うとおり

何も代入してない状態の変数にも中身が勝手に入ってる
ただ、それは何が入ってるか分からないから自分が分かるように
分かる値を入れるだけ



264 名前:デフォルトの名無しさん [2008/06/17(火) 01:40:50 ]
>>255
ありがとうございます!
明日トライしてみますね!
助かりました。。

265 名前:255 mailto:sage [2008/06/17(火) 01:50:52 ]
>>264
あと公約数がない場合もつけたしておいたほうがいいよ

266 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:53:41 ]
公約数がないなんてありうるの?

267 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:54:06 ]
ねぇよwww

268 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:56:34 ]
素数って1とそれ自身以外の約数がないんじゃなかったっけ?
2つの素数の公約数って1でいいの?

269 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:56:44 ]
aが1かなんでもいいを入れられるのにどうして1を入れる必要が
あるのかどうしてもわからないんですよ。
1じゃなくても入れられるのはわかっています。
なんで1があるのにそれを入れるのか、どういう時に入れれば
いいのかわからないんです。

入れたいときにっ言うけどそれがわかりません。

フローチャートも演習でやったのは書けたけど、プログラムを見て
フローチャートに出来ません。
やっぱり無理ですね。よくわかりました。

270 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:57:16 ]
約数って素数じゃなきゃいけないんだっけ?

271 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:58:05 ]
>>269
もう寝ろ。

272 名前:255 mailto:sage [2008/06/17(火) 01:59:11 ]
あのプログラムだとループの i が1になった瞬間終了だから
8 7 とか入力したらバグる

273 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:59:14 ]
>>268
全ての整数は1と(負の約数を考えるなら-1)を約数にもつ。
だから、どんな二つの整数も1を公約数に持つし、
二つの素数の最大公約数は1



274 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:00:25 ]
変数の存在自体に疑問を持ってるということかいね
つまり、全部数値を直打ちしてプログラム書けということかいね
死ぬわ

275 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:01:01 ]
>>272
そういう意味だったか、すまん
確かに返り値返してないな

276 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:05:42 ]
変数の意義とは何ぞや。
すなわち、テンポラリである。

277 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:09:15 ]
女がピーかなんでもいいを入れられるのにどうしてピーを入れる必要が
あるのかどうしてもわからないんですよ。
ピーじゃなくても入れられるのはわかっています。
なんでピーがあるのにそれを入れるのか、どういう時に入れれば
いいのかわからないんです。

入れたいときにっ言うけどそれがわかりません。


ごめんもう寝る

278 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:10:02 ]
いや、別に入れたくないなら入れなくていいよ。

279 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:11:10 ]
根本的に無理だな
問題解決能力そのものがない

280 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:18:01 ]
>>277
応用をやるために基礎があるってことでおk?

281 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:23:06 ]
釣りだと思う人挙手



282 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:10:52 ]
>>269
つまり、プログラムで何をするか決めてない、理解してないのに
プログラムの構文を習った所で、そんな状態になるわな
まず、これから先に何かをする為に、そうルールでプログラムは動くって覚るしかない

変数は、プログラムを組むなら絶対使うからw
例えば、条件分岐(習ったかどうか知らんが)

int value;

// 何らかの処理でvalueに何らかの数値が入る
...

if ( value == 0 ) {
// 0の時だけにしたい処理
...
}
こんな感じで使う

a = 1; なんて、構文を教えてるだけだ、それに意味なんか求めるな

283 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:16:01 ]
つまりみなさんよくわかないけど使ってるんですね
わたしもそうすることにします



284 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:21:11 ]
>>283
それがいい
やってるうちに分かってくる b

285 名前:デフォルトの名無しさん [2008/06/17(火) 03:49:54 ]
c言語でbmpファイルを読み込んで、それを表示させるプログラムを作るには、
ウインドウ作成プログラムも作らないといけないのですか

286 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:54:58 ]
Cとウィンドウ作成の関係について詳しく

287 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:59:01 ]
おいちゃんの作ったプロ、グラマーなクソースなら
HTMLのTBL形式に出力しちゃうわよぉ〜ん

288 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 04:32:13 ]
これは ひどい

289 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:23:47 ]
スレ違うかもしれません。だが教えて欲しい!
昨年プログラムとして
とあるソフト入社したんだが、C言語でやってる。
しかし!入社して一年たっても全くと言って良い程
C言語がわからす、プログラムなんて持っての他。
テストばかり。テストばかりなのが嫌ではないのだが、
将来首切られる事ってあり得るのかな?
ちなみに勤務態度や
勤務状態(遅刻や早退)は良い。
やっぱプログラマ出来ないとリストラされるのでしょうか?

290 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:28:04 ]
時や場所をわきまえない奴は首

291 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:29:13 ]
入社したのが新卒なのか、中途で他業種からなのかとか
背景がさっぱりわからんし、同じようにテストを受けてるのが
一人だけとか他にも同期で何人かいるとかでも違うしなあ。

体力ある企業で新卒でそれをさせてるなら育成の可能性が
あるから首ってことはないだろうけどなあ。
それに体力無いところは適当な案件見つけてすぐにでも
経歴偽装してデスマな現場に放り込まれそうだけどなw

292 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:44:28 ]
289ですが、専門卒で新卒でソフト会社入って
一年でやめて、違う業種で一年やって
三年程のブランクを経て今ある会社に入りました。
形としては中採かな。1ヶ月程たった。
自分づもプログラムに向いてないのは
分かってるけど、違う業界でやっていくか、
とりあえず分からないなりに
努力していくか悩んでいるのです。
スレ違う失礼しました。
ただ、このスレ野中にはプログラムの人もいるかなと思い、
参考程度に聞いてみた。
結局は自分だけど、皆さんならどうしますか?

293 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:54:07 ]
プログラムの人ってなんだよw
プログラマだろ



294 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:12:42 ]
とりあえずちゃんとした文章を書こうよ

295 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:15:02 ]
まーまだ20代なんだからやる気次第かもね〜


296 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:53:17 ]
質問です。char変数に代入する方法がわかりません。次のようなプログラムなんですが、

char fruits;
int kind;
printf("どれが好き?\n1.リンゴ\n2.みかん\n3.バナナ\n");
scanf("%*d,%d",kind);
switch(kind){
case 1:
fruits = "リンゴ";
break;
case 2:
(中略)

printf("あなたは%sが好きです",fruits);

fruitsに文字を代入するところでエラーが出てしまいます。どう変えれば動くようになりますか?

297 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:58:51 ]
#include <string.h>
(省略)
char fruits[64];
int kind;
printf("どれが好き?\n1.リンゴ\n2.みかん\n3.バナナ\n");
scanf("%*d,%d",kind);
switch(kind){
case 1:
strcpy(fruits, "リンゴ");
break;
case 2:
(中略)

printf("あなたは%sが好きです",fruits);

298 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:03:26 ]
別に
fruits[0] = "リンゴ"[0];
〜〜
fruits[6] = "リンゴ"[6];
fruits[7] = "リンゴ"[7];
break;
でもいいけど。

299 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:22:29 ]
大きさを宣言するんですね!
うっかり忘れてました。thxです。

300 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:23:51 ]
>>289
>>292
1年なのか1ヶ月なのかはっきりしろよ

301 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:41:06 ]
>>299
うっかり…なのか?
何だかchar型に文字列のポインタ入れようとしたり、基本的なことが分かってないように思えるんだが

302 名前:デフォルトの名無しさん [2008/06/17(火) 09:33:14 ]
>>286
BMPファイルを読み込んだ後にそのBMP画像を画面に出力すること
と言われて、BMPファイルをメモリに読み込ませることはできたんですけど
出力するプログラムがわかりません

303 名前:デフォルトの名無しさん [2008/06/17(火) 09:37:10 ]
>>286
BMP画像を読み込んで、その読み込んだBMP画像を画面に出力する
というプログラムを作成するのに、そのまま出力することができるんですか
BMP画像を読み込ませることはできたんですが、それを画面に表示
させる方法がわかりません



304 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:38:57 ]
スレ違い

305 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:28:58 ]
つまり「日本語なら俺に聞け(入門篇)」のスレへ行け、ということですね。わかりますた

306 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:43:36 ]
問04(最終問題)
テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。
これってCじゃなくC++ですか?

307 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:49:47 ]
>>303
つ ttp://www.db.is.kyushu-u.ac.jp/rinkou/c/kougi7/Slide29.html

308 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:41:57 ]
質問だけですが、分かる方お願いします。
cは拡張キーワードというのがありますが、
どういった場合に使用するのでしょうか?
具体的な使い方とか乗っているサイトありませんか?

309 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:08:19 ]
>>308
拡張キーワードって __asm __stdcall などのこと?
それぞれが必要なときに使うんだよ。
使い方は処理系のマニュアルを読む。


310 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:08:52 ]
>>306
サウンドのあたりがしんどいね

311 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:57:06 ]
>テキストサウンドノベル
これはひどい

312 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:14:08 ]
>>269
亀レスだが、その疑問はコンピュータサイエンスのプログラム意味論や
計算とは何かの範囲になるので、ここではスレ違い。

313 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:59:38 ]
エレガントなコードを書くのに参考になるような本って何かありますか?
Short coding以外で



314 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 14:21:01 ]
>>177
> 変数ってprintfで表示できるしデバッガーでも表示出来るのはわかるのですが
> 計算して新しいものを入れるのにクリアしないのですか?

そうだよね、変数は値(を書いた札)を入れる箱だから、元の値が邪魔になるよね。
っていうアレではないか。

315 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 15:01:50 ]
>>314>>243-245で既出だった

316 名前:デフォルトの名無しさん [2008/06/17(火) 19:01:20 ]
1つのスイッチと4個のLEDを使ってプログラムを作ろうと思っています。
スイッチを押すとLED1が点灯→もう一度押すとLED1に続いてLED2が点灯、さらに1回押すとLED3も点灯
というように押すたびに点灯するLEDが増えてくというものを作ろうとしているのですが、
まったくできません。
プログラムをどのように書くと1つのボタンでLEDが点灯する数を増やしていくことができるのでしょうか?

こういう風に

317 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:03:54 ]
どういう接続かしらんけど
ポートに出力するデータに対して
最初は0
左シフトして1インクリメント
を繰り返せばOKなんじゃない?

318 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:17:41 ]
>>317
今は

while(1){
if (P2.DR.BIT.B0==0){
P1.DR.BYTE=0x01;
}
}

これでボタン押すとLED1が点灯する状態です。
>>ポートに出力するデータに対して
>>最初は0
>>左シフトして1インクリメント

この辺はどんな命令文で指示すればいいのでしょうか?

319 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:21:25 ]
char outdata = 0;
while(1){
if (P2.DR.BIT.B0==0){
P1.DR.BYTE=outdata<<1;
outdata++:
if (outdata > 4) outdata = 0;
}
}

320 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:30:39 ]
>>319
詳しくありがとうございますw

char outdate=0;
の行でエラーが出るのですが、乱数使うときの#include<studlb>みたいな前置きみたいの必要なんですかね?

321 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:32:28 ]
組み込みスレで聞いたほうがよくないか?

322 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:35:50 ]
エラーの内容くらい読め

323 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:36:39 ]
釣りだろ



324 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:38:06 ]
>>321
まーIOポートも変数みたいに使えるようになってるからいいんでね?

>>320
char outdata = 0;

BYTE outdata = 0;

かな?

char型じゃないのかね?

それか

chara outdata;
outdata = 0;

のように行を分けないといけないとか

325 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:38:41 ]
char outdata;
outdata = 0;
こうだorz

326 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:48:31 ]
釣りじゃないですが

2500(E) ILLEGAL TOKEN: "char"
2225(E) UNDECLARED NAME: "outdata"

っていうエラーが出てしまいます。
>>324さんのも試してみたのですが、BYTEでも同じエラーでした。

327 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:53:39 ]
変数を定義できる場所とできない場所がある。

328 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:00:06 ]
面倒だからこうするか
P1.DR.BYTE = 0;
while(1){
if (P2.DR.BIT.B0==0){
P1.DR.BYTE=P1.DR.BYTE<<1;
P1.DR.BYTE++:
if (P1.DR.BYTE > 4) P1.DR.BYTE = 0;
}
}

でもP1.DR.BYTEって読み込みできるのかな?

329 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:13:44 ]
{
char outdata = 0;
while(1){
if (P2.DR.BIT.B0==0){
P1.DR.BYTE=outdata<<1;
outdata++:
if (outdata > 4) outdata = 0;
}
}
}

さらに面倒だからこうしちゃえば?

330 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:22:00 ]
日立のSHCか?

331 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:26:31 ]
H8/3664で遊んだときにどこかの会社の
無料の統合環境もこんな感じで組めたな。

332 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:29:58 ]
たぶん制御系スレが一番詳しいはずってか初心者が組み込みに手出すのは無謀じゃないのか

333 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:41:17 ]
>>328-329
>>P1.DR.BYTE++:
>>outdata++:
最後の点々はセミコロンじゃないとエラーでるけど:じゃないと意味ないんですかね?
ちなみにセミコロンに変えて実行するとLEDは点灯するけど点灯の仕方がランダムみたいになってます;;

>>330
日立のH8/3052Fです



334 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:47:22 ]
>>333
あ、ごめんコロンになってたかな?
セミコロンに直してください。

ランダムというかウェイトいれないといくらマイコンって言ってもその程度の
ロジックならかなり早い点等を繰り返すはず。
なので変な点等になる。

335 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:47:50 ]
点等orz
点灯ね

336 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:50:26 ]
スイッチ押してる間ずっとP2.DR.BIT.B0が0だったりして。
制御系って適当に作りまくってると火を吹きそうなイメージなんだけど大丈夫なんだろか

337 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:51:34 ]
>>336
多分タクトスイッチが押されるとアースしてるんじゃね?

338 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:51:36 ]
あんまりよく読んでないけどP2.DR.BIT.B0はスイッチの入力か?
上のレスのソースだと、スイッチが0の状態ままだと、
ひたすらインクリメントなりシフトなりするだろうから
一回押すたびに点灯という動作にはならないんじゃないか?
おそらく、スイッチがどちらかの状態になったらパパパパとつくだけかね。

339 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:52:08 ]
よくわかんないけど、ボタンを放すまで待つとか、そういう処理はいらないのかな

340 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:53:38 ]
{
char outdata = 0;
char count = 0;
while(1){
if (count == 0) {
if (P2.DR.BIT.B0==0){
P1.DR.BYTE=outdata<<1;
outdata++;
if (outdata > 4) outdata = 0;
count = 255;
}
}
count--;
}
}

341 名前:340 mailto:sage [2008/06/17(火) 20:54:13 ]
応急策ね


342 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:55:02 ]
あ、ごめん>>340だめだわ


343 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:56:56 ]
{
char outdata = 0;
char count = 0;
while(1){
if (count == 0) {
if (P2.DR.BIT.B0==0){
P1.DR.BYTE=outdata<<1;
outdata++;
if (outdata > 4) outdata = 0;
count = 255;
}
} else {
count--;
}
}
}




344 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:58:38 ]
本当はマイコンが持ってるタイマーとか使えばいいんだろうけど
いきなりそれだと敷居があがるので、ベタなカウンターでやってみた。

345 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:00:52 ]
突然ごめんなさい。


              合計
  50 49 48 47 46 ***
  45 44 43 42 41 ***
  40 39 38 37 36 ***
   35 34 33 32 31 :
  30 29 28 27 26 :
   25 24 23 22 21 :
  20 19 18 17 16 :
   15 14 13 12 11 :
   10 9 8 7 6 :
   5 4 3 2 1
合計 *** *** *** *** ***

を表示するプログラムって一次元配列を使ってどの様に書けますか?
おねがいします

346 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:01:25 ]
>>1 >>1
>>1 >>1

347 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:01:42 ]
ずれた・・・すみません;;

348 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:19:43 ]
>>345
できたよ

int main()
{
char s[] = "              合計\n  50 49 48 47 46 ***\n  45 44 43 42 41\
 ***\n  40 39 38 37 36 ***\n   35 34 33 32 31 :\n  30 29 28 27 26 :\n   25 24 23 22 21 :\n\
  20 19 18 17 16 :\n   15 14 13 12 11 :\n   10 9 8 7 6 :\n   5 4 3 2 1\n合計 *** *** *** *** ***";
printf("%s", s);
return 0;
}

349 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:22:25 ]
>>348
ちょっwwww カルーアミルクを噴出しちまったじゃねーかYO!

350 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:27:53 ]
>>338
スイッチの入力です。

>>343さん
試してみました。
スイッチを押す回数     LED
1回           ○●○○
2回           ○●●○
3回           ○●○○
4回           ●○○○

リセットしてやり直すと、また点き方が変わったりしてしまいます。
マイコンがダメなんですかね。
理想は
スイッチを押す回数     LED
1回           ○○○●
2回           ○○●●
3回           ○●●●
4回           ●●●●
なんですけど

351 名前:343 mailto:sage [2008/06/17(火) 21:30:04 ]
あーLEDってP1.DR.BYTEのどのビットに接続されてるかわかる?
それ確認してなかったよ

352 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:36:31 ]
>>348
ああ驚いた


>>348 の前がどこかわからんけど
const char table[] = {0x00, 0x01, 0x03, 0x07, 0x0f}:

count = 0;

count = (++count % 5);
P1.DR.BYTES = outtable[count];

テーブルがシンプルだったりして・・・

353 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:43:23 ]
>>351
○○○● P1.DR.BYTE=0x01;
○○●● P1.DR.BYTE=0x03;
○●●● P1.DR.BYTE=0x07;
●●●● P1.DR.BYTE=0xf;

こういうことですか?



354 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:45:36 ]
>>353
あー
まあそれでOKです。

シフト演算が思惑通りに動いてない気がする(私の勘違いの可能性大)
ので>>352のような配列で持ってたほうがいいかも

355 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:47:13 ]
<<345
できたお
#include <stdio.h>
int main(){
int a,b,z,i,d;
int c=50;
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
d += i;
}
//11行目
printf("合計");
for(a=0; a<5; a++){
for(b=1; b<11; b++){
c += 5*b;
}
printf("\t%d",c);
}
printf("\t%d",d);
scanf("%d",z);
}

356 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:48:48 ]
間違った>>345

357 名前:355 mailto:sage [2008/06/17(火) 22:21:10 ]
配列使ってないうえに合計がめちゃくちゃだった
スマソ


358 名前:355 mailto:sage [2008/06/17(火) 22:28:05 ]
書き込むスレ間違えた
>>355-358 はスルーしてくれ

359 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:59:31 ]
>>354
{
char outdata = 0;
int sw_cur = 1;
int sw_prev = 1;

while(1){
sw_cur = P2.DR.BIT.B0;
if( !(sw_cur ^ sw_prev) ) continue;
sw_prev = sw_cur;

if( sw_cur == 0 ){
P1.DR.BYTE = outdata << 1;
outdata++;
if(outdata > 4) outdata = 0;
}
}
}


360 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:16:21 ]
>>359
ああ、すまん。こうだな。
if( sw_cur == 0 ){
P1.DR.BYTE = (1 << outdata);
outdata++;
if(outdata > 4) outdata = 0;
}

>>353のようにしたいなら、たしかH8はI/Oにバッファが
あったような気がするから

P1.DR.BYTE |= (1 << outdata);

すりゃいいんないかな?
できなったら、もうひとつ変数用意すりゃいい。

361 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:32:25 ]
>>345
#include <stdio.h>
#define TOTAL_NUM 50
#define COL 5

int main(void){
int i, c=TOTAL_NUM, tmpsum=0, colsum[COL]={0};

for(i=0; i<COL; i++){printf("\t");}
printf("\t合計\n");
for(; c>0; c--){
printf("\t%4d", c);
colsum[(TOTAL_NUM - c) % COL] += c;
tmpsum += c;
if((c % COL) == 1){
printf("\t%4d\n", tmpsum);
tmpsum = 0;
}
}
/*最終行*/
printf("合計");
tmpsum = 0;
for(i=0; i<COL; i++){
printf("\t%4d", colsum[i]);
tmpsum += colsum[i];
}
printf("\t%4d\n", tmpsum);

return 0;
}

362 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:15:45 ]
昨日相談したものですが、今日会社からほかのメンバーは皆開発に
行くけどわたしだけテスト要員として来月から配属されることに
決まったそうです。

多分、辞めろっていうことなんでしょうね。

なんで自分だけわかんないのか悔しいけど、頭の構造が違うんで
しょうね、こういうのがわかる人は。


363 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:17:58 ]
>>362
おめでとう、死ねばいい富もうよ



364 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:20:35 ]
お前を採用したのは会社なんだからお前を活用する責任も会社にある
黙って居座ってればいいのだ

365 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:21:40 ]
給料くれるなら別に良いよ
気にスンナ

366 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:22:14 ]
自信がないっていってたんだし、そのままいきなり開発に
放りこまれるよりは親切なほうだと思うけどなあ。

テストの間に勉強すればいい。


367 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:26:02 ]
テストってデバッグ要員のことだったのか
資格試験でも受けてるのかと思った

テスト要員でも雇ってもらえるならいいじゃないか
辞めろって言われるまで居座ってやれ

368 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:26:08 ]
>>362
>>312

369 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:33:55 ]
会社に行ったらテスト要員になった 辞めろってか

370 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:38:53 ]
辞めろよ

371 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:39:20 ]
多分、若干おかしくなりかけていたから講師から人事に相談されてたっぽい
ですね。スレ違いなのでもう終わります。

教えてくれた人、ありがとうございます。
プログラムがちゃんと書ける人って自分のやってることを説明できて親切で
すね。ほうんとうにありがとうございました。

372 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:46:01 ]
しかし開発要員に採っておいて使えないのにクビ宣告しないなんて
世の中良心的な会社もあったもんだね
つまり当たりを引いたわけだ

373 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:10:48 ]
ワシは単にコネでねじこまれたという説を推すよ



374 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:28:24 ]
俺が新人の頃は同期に全然できない奴がいて、そのうちのひとりは研修中に辞めたよ

375 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:32:03 ]
まあ開発部隊に入りたいならゆっくりでもいいから勉強することだねー

376 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:32:40 ]
入らないほうが幸せにはなれるかもな

377 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:55:38 ]
ゆっくりしていってね(AA略)

378 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:38:52 ]
公務員はプログラミングできるのか?
医者はプログラミングできるのか?
弁護士はプログラミングできるのか?


379 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:42:39 ]
趣味でプログラムできる人もいるんじゃね?

380 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:47:56 ]
仕事でそういう二足のわらじを履いてる人は結構いるよ
有名どころだとLZHの作者はお医者さんだったっけ

381 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:09:26 ]
森田将棋の人も医学部だったね
医師免許はとってないのかな

382 名前:デフォルトの名無しさん [2008/06/18(水) 20:40:56 ]
文字列の入力を促し、入力。
その文字列の先頭の文字と同じ文字が文字列の中にいくつふくまれるかを求めるプログラム。
先頭の文字も数のうちに入れる。
(ポインタを用いる)

お願いします

383 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:41:56 ]
>>382
>>1を100回読め



384 名前:デフォルトの名無しさん [2008/06/18(水) 20:43:33 ]
>>381
時間がないのです。



385 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:45:16 ]
ここはC言語を学ぼうとしている人のためのスレです
情報処理の単位が欲しいだけの人はお帰りください

386 名前:デフォルトの名無しさん [2008/06/18(水) 20:46:55 ]
>>382
答えてあげてくださいな



387 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:48:35 ]
ばればれの自演は逆効果w

388 名前:デフォルトの名無しさん [2008/06/18(水) 20:49:45 ]
文字列の入力を促し、入力。
その文字列の先頭の文字と同じ文字が文字列の中にいくつふくまれるかを求めるプログラム。
先頭の文字も数のうちに入れる。
(ポインタを用いる)

389 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:54:20 ]
大学で資格の関係でどうしてもC言語をやらなければなりません
どうしてもわからない問題があるのでどなたか教えてください

問題1
三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると
*****
***
*
となる。

2
下記のように横と縦の累計を計算して表示する。
配列は使わないこと。

3
10個以下の任意のn個(データ数は入力)のデータを入力し、逆順に出力する。
実行結果は奇数と偶数個の例を示すこと。

4
下記のように横と縦の累計を計算して表示する。
ただし、1次元配列を使うこと。

どの問題でもかまいません
本当に困っているので教えてください




390 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:55:57 ]
>>382

#include <stdio.h>
int main(void)
{
  /* 入力された文字列を収めるためのcharの配列を宣言 */
  /* その他の必要な変数を宣言 */

  fputs("please input a string : ", stdout);

  /* fgets()を使ってcharの配列に入力された文字列を格納 */

  /* 文字の数を数えるint変数を0に初期化する */

  /* charへのポインタにcharの配列の先頭の文字を指させ、
    chraへのポインタが指している先の文字が'\0'でない間、
    charへのポインタを1ずつ文字列の先へずらしながら、
    以下の処理を繰り返す */;
    /* もしchraへのポインタが指している先の文字が
       charの配列の先頭の文字と等しければ */
      /* 文字の数を数えるint変数を1増やす */

  /* printf()を使って文字の数を数えたint変数の値を表示する */

  return 0;
}

391 名前:デフォルトの名無しさん [2008/06/18(水) 20:55:59 ]
C言語始めて2ヶ月でこんなもんだいだされました。
文字列の入力を促し、入力。
その文字列の先頭の文字と同じ文字が文字列の中にいくつふくまれるかを求めるプログラム。
先頭の文字も数のうちに入れる。
(ポインタを用いる)



392 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:58:04 ]
>>1を読んでください
それでわからないようならあなたの日本語力と知性は壊滅的なのでおとなしく退学することを勧めます

393 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:58:10 ]
>>389
自分でできないなら資格はありません



394 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:58:13 ]
ああそうですか。
マルチ視ね

395 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:06:28 ]
>>382
#include<stdio.h>
#include <stdlib.h>
int main()
{
 int *c, count = 1, i;
 c = (char *)malloc(1);
 puts("入力どうぞ");
 if ((i = getchar()) == EOF) {
  printf("ちゃんと入力しろ\n");
  exit(1);
 }
 while ((*c = getchar()) != EOF) {
  if (i == *c) count++;
 }
 printf("%d\n", count);
 return 0;
}
できました

396 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:08:14 ]
これはひどい(笑

397 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:10:26 ]
>>382
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
int *c, count = 1, i;
c = (int *)malloc(1);
puts("入力どうぞ");
if ((i = getchar()) == EOF) {
printf("ちゃんと入力しろ\n");
exit(1);
}
while ((*c = getchar()) != EOF) {
if (i == *c) count++;
}
printf("%d こです\n", count);
return 0;
}
すいませんこっちでした

398 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:11:32 ]
どっちも微妙にまちがってんじゃねえか

399 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:14:07 ]
だめだこりゃ

400 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:28:26 ]
故意だろ

401 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:33:36 ]
>>382
有限長の文字列を総当りで生成して、それをコンパイルしていくプログラムを作れば
そのうち自分が作りたかったプログラムが自動生成されるんじゃね?

402 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:35:19 ]
>>401
すっげぇ頭いいなおまえw

403 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:36:59 ]
そして自分が作りたかったプログラムかどうかを
判定するプログラムが要るという話になるんですね分かります



404 名前:デフォルトの名無しさん [2008/06/18(水) 21:44:13 ]
故意はかんべん

405 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:44:54 ]
なんだこのviper的なノリはwww

406 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:28:54 ]
>>389
どうしても分からないなら資格取れるわけないじゃん
なんかおかしくね?

407 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:30:56 ]
またこの流れかよw
>>60へどうぞww

408 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:31:54 ]
恋はかんべん

409 名前:デフォルトの名無しさん [2008/06/18(水) 23:28:46 ]

関数を呼び出す時って他の文字に置き換えてから使えたほうがいいんですか?

例えばadd関数を呼び出してif文に入れるときの場合
x=add(n);
if(x==1)
みたいな感じか
if(add(n)==1)
どちらがいいんでしょうか?
下のほうでやっていたら友達にそのやり方は見にくくてありえないしプロがそんなことやったら確実に怒られるといわれたんですがどうなんでしょうか?

410 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:31:17 ]
場面にもよるが、ステップによるデバッグがしづらいかもしれない。>後者

411 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:31:44 ]
いや好きにすればいいと思うよ
ただ、関数の結果を他にも使う予定があるなら上の方が良いんじゃない?

412 名前:デフォルトの名無しさん [2008/06/18(水) 23:36:20 ]
できる限り前者でやったほうがいいんですか?
習ってる途中で後者の方がわかりやすいと思ったのですがプログラムできる友達に言われたので…


413 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:39:07 ]
>>409
その関数が非常に高コストで、その判定部がループの中にあるなら
よくないなあとは思うけど、そうでないなら別に気にしない。

その友達がプロで怒られた経験があるのであれば、もう少し細かい
理由を教えてもらえばいいんでない?



414 名前:デフォルトの名無しさん [2008/06/18(水) 23:40:21 ]
ほかにも使うというのは
x=add(n);
if(x==1)
if(x==2)
みたいな感じですか?
あとプログラマーみたいな人たちの間ではどちらが主流なんでしょうか?


415 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:40:54 ]
ちなみに、プロになれば周りのコードにあわせるということのほうが大事。
優劣をつけられない記法の差において、俺はこうすべき!って一人で
走ってるなら怒る。

416 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:40:58 ]
>>409
その友達がどの程度のプロなのかはこの際置いておくとして、どちらがいいとか悪いとか言うことはない。
明確なことは、前者は変数を一つ使用し、後者は使用しないということである。
add() の返す値をただ一回しか評価しないのなら、後者のように書いて何の問題もない。
値を何度も評価するのなら、前者のように一時変数に格納する必要があるか、なくても効率がいいかもしれない。
後は単なる好みの問題である。

417 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:41:32 ]
文脈によるがこの場合はどちらでもいい。
ところでこのお題はホントはこうじゃなかった?
x = add(n) ; if (x == 1) 

if ((x = add(n)) == 1) 
の比較。

418 名前:デフォルトの名無しさん [2008/06/18(水) 23:42:40 ]
>>413
友達はプロではありません 
普通に大学生なので…
多分趣味でやってる程度だと思います。
どこで習ったかはわかりませんが

419 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:43:35 ]
値を使い回したい場合に変数に入れるのは当然として、
そうでない場合はメリットとデメリットがあるので好きにすればいいと思うよ。

○ メリット
・ 関数呼び出しが長い場合、読みやすくなる
・ デバッグ時に戻り値が何だったか分かりやすい

○ デメリット
・ その場でしか使わないような無駄な変数が広いスコープ上に現れてしまう場合もある

420 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:44:20 ]
慣用句的なもの
 if ((fp = fopen(〜)) == NULL)
Is系のメソッドに代表される真偽返却メソッド
 if (isalnum(〜))

これ以外は大抵分けて書くようにしてるね。
多少冗長に思えても、他の人が読みやすいか、また、
誤解を与えにくい書き方になっているか、それを重視してる。

421 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:55:16 ]
誤解を与えにくいように、というのはあまりメジャーではない二項演算子を
使う時などに、冗長ではあるが、括弧をつけて明示するようなことね。

ちゃんと知ってればその括弧が無くても正しく動作する事は理解できるが、
うろ覚えの人でも勘違いを起こさない。

もしかしたら研修明けの新人がメンテするかもしれないし。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<94KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef