【Java編】 学校の宿題は俺にやらせろ 【Java編】
■ このスレッドは過去ログ倉庫に格納されています
0001糞すれクリエータ
NGNGただGUIかんけーはめんどクセーから、放置するぞ!
☆丸投げ歓迎 AGE進行☆
0247宿題アリ子
NGNGはっておく・・・
[JAVA]JAVAの宿題・課題は俺に任せろ
http://pc2.2ch.net/test/read.cgi/tech/1047538922/
何ともよろしゅうお願いします・・・
0248山崎渉
NGNG0249山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGをコンパイルできないのは俺だけ?
0252デフォルトの名無しさん
NGNGがっこの宿題でサーバー&クライアント(+PIPE)を使ってクライアント
がサーバにユーザーネームとパスワードでログオンし、メッセージを書
いたり受け取ったりすることができるプログラムを書けというのが出た
んですけど簡単な例とか載ってるHP知ってる人いませんかね。
0253デフォルトの名無しさん
NGNG#include <stdlib.h>
FILE *infile, *outfile;
int count[128];
int num;
char *str
void init(void){
int i;
for(i=127;i>=0;i--){
count[i]=0;
}
}
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG上のアナグラムのプログラムをJAVAに書き換える問題です。
#include <stdio.h>
#include <stdlib.h>
FILE *infile, *outfile;
int count[128];
int num;
char *str
void init(void){
int i;
for(i=127;i>=0;i--){
count[i]=0;
}
}
void go(const int n){
int i;
if(n>=num){
*(str+n)='\0';
fprintf(outfile,"%s\n",str);
return;
}
0256デフォルトの名無しさん
NGNGint c1,c2;
c1=i+'A';
c2=i+'a';
if(count[c1]>0){
*(str+n)=(char)c1;
count[c1]--;
go(n+1);
count[c2]++;
}
}
return;
}
int main(void){
int i,n;
#ifdef FILEIN
if(NULL==(infile=fopen("data.in","r"))){
fprintf(stderr,"nofile");
exit(1);
}
#endif
infile=stdin;
outfile=stdout;
fscanf(infile,"%d\n",&n);
for(i=0;i<n;i++){
int c;
init();
0257デフォルトの名無しさん
NGNGfprintf(stderr,"%d\n",n);
#endif
num=0;
while(c=fgetc(infile),c!='\n'){
#ifdef DEBUG
fprintf(stderr,"%d:%c\n",c,c);
#endif
count[c]++;
num++;
}
str=malloc(num+10);
go(0);
}
return0;
}
丸投げですがお願いします。
0258デフォルトの名無しさん
NGNGhttp://suned.sun.co.jp/JPN/certification/progsq.html#Java2_1.4
にあるSun Certified Programmer for the Java 2 Platform1.4 試験
の例題の中に、
以下のコードの実行結果を選択して下さい。
int i=3, j=0, result=1;
result += i-- * --j ;
System.out.println( result );
A. 0
B. -1
C. -2
D. -3
E. コンパイルエラー
F. 実行時の例外
というのがありまして、私はclass定義もないし、メソッド内に書か
れてもいないので、E"コンパイルエラー"と思ったのですが、
解答を見ると答えはCになっています。他の例題を見ると簡単な表記
ミスなどでもコンパイルエラーという解答になるみたいですので、
この問いも当然そうかと思ったのですが違うようです。
皆さんはどう判断されますか?
0259デフォルトの名無しさん
NGNG他の問題でもメソッド内に書かれていないものが
あるよね。そこでコンパイルエラーが選択される
ケースとして想定しているのは2行目のコードに
対してじゃないのかな?まぁ、実行時の例外って
いう選択もそこについて選択されると予想して
出題しているんだろうけど。
たぶんその2つを選択したら問題外ってなっちゃうよ。
で、その問題で問いたいのは
result += i-- * --j;
がどう実行されるのかってことだろうね。
で、どうなるかっていうと次の順に実行されるだろうね。
1.--j (jが-1になる)
2.i * j (-3)
3.result += i*j (resultが-2になる)
4.i-- (iが2になる)
で
3行目のSystem.out.println( result );
で-2が出力される。だから、答えはC。
・・・だとおいらは思うよ。
0260デフォルトの名無しさん
NGNG答えを知っていれば、あまり深く考えずに納得してしまうところなの
ですが、逆にこれをCの-2、と真剣に答えたところ、答えが"コンパイ
ルエラー"だったとしても、文句は言えないような気もするんです。
実際、この1.4の例題10つ中"以下のコード"と問題に書かれて
いるものでコンパイルできなかったものは、6(258に書いた問題)
と8の二つでした。8の方は、解説されている理由の他にclass定義
がされていない、という理由もありますが、答えの"コンパイルエラー"
には間違いありませんので問題ないと解釈しています。(選択問題
としても解答は一つに定まる。)
しかし、6だけは”以下のコード”を実行するにしても問題に書いて
あるコードだけではコンパイルエラーで実行するまで行き着かない
わけですから、あえて他の問題と同様に深読みせずに”コンパイル
エラー”としたのですがはずしてしまいました。
なお、"実行時の例外"という選択肢は、コンパイルできないので、
ありえないと考えました。
このテストを受けようかと思っているのですが、こんな問題がでたら
悩んでしまいそうです。半分ちょっと正解すれば通るみたいだから
気にしないように努力しないといけないんですね。
0261デフォルトの名無しさん
NGNGこんなコード書く奴は死刑にでもブタの餌にでもしちゃってください。
>>259
厳密には
1. i-- :: i は即座に 2 になる。 (i--) の式の値は 3.
2. --j :: j は即座に -1 になる。(--j) の式の値は -1.
3. result += (i--) の式の値 * (--j) の式の値 == 3 * -1
って感じですか。
まぁ、 >>259 のが受け入れやすいけど、
その理解だと i = i-- + i--; とかの答えが合わなくなる。
0262山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0263デフォルトの名無しさん
NGNGその描く線の色を黒か赤か選べ,なおかつ正方形と円の大きさを大小2種類に
できるようにしたいのですがわかりませんどなたかやってくれませんでしょうか?
ヨロシクお願いします
0264質問させて下さい。
NGNGimport java.text.*;
import java.util.*;
public class Test{
public static void main(String[] args) throws IOException, ParseException{
Date nowdate = new Date(System.currentTimeMillis());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("生年月日を入れて下さい。");
String str = br.readLine();
DateFormat df = DateFormat.getDateInstance();
Date borndate = df.parse(str);
int year = nowdate.getYear() - borndate.getYear();
if((nowdate.getMonth() < borndate.getMonth()) || (nowdate.getMonth() == borndate.getMonth() && nowdate.getDate() < borndate.getDate())){
year -= 1;
}
System.out.println(Integer.toString(year) + "歳です");
}
}
これを実行すると推奨されないAPIを使用、またはオーバーライドしてます。
って言われるんですが何処をどー直せばちゃんと動くでしょうか?
0265264
NGNG画面上に表示するプログラムです。
-deprecationをつけて実行してみましたがgetYear()とgetManth()とgetDate()が
おかしいようです。ググってみましたらCalendar.get(Calendar.YEAR)を使うようなんですが
どー入れれば動くのかということがサパーリです。
どうか修正宜しくお願い致します。
0266デフォルトの名無しさん
NGNG>146 :デフォルトの名無しさん :03/05/29 23:57
>JAVAの課題スレでも書いた内容なんですがこちらに書いたほうがよかったでしょうか?
>
>JAVAでの年齢計算プログラム教えて下さい。
>例えば私の誕生日を1970年5月1日とした時、
>今現在(今日の時点)の年齢はいくつになるか、といった感じのプログラムです。
>どうか宜しくお願いします。
>
>デシマルといったものを使うようなんですがサパーリなんです。
>ちなみにデシマルは使っても使わなくてもいいようです。
>ようは年齢計算さえ出来れば(・∀・)イイ!!感じです。
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGアルファベット大文字をランダムに9文字発生(同じ文字は重複させない)させるプログラムを教えてください。
0269デフォルトの名無しさん
NGNGfor(char c = 'A'; c <= 'Z'; c++)
list.add( new Character(c) );
String str = "";
for(int i = 0; i < 9; i++)
str = str + list.remove((int)(Math.random() * list.size()));
System.out.println( str );
とか。
0270デフォルトの名無しさん
NGNG>>269で十分だけど、もし効率的な方法がほしかったら
配列 シャッフル
で検索してみ
0271デフォルトの名無しさん
NGNGアプレットで。
0272デフォルトの名無しさん
NGNGSocket使え
0274デフォルトの名無しさん
NGNGと言う宿題がでたのですが、
さっぱりわかりません。
ヒントだけ教えてください。
フォーマットもしていされていて
03/04/05
というように
西暦の上2桁を切らないといけないそうです。
0275デフォルトの名無しさん
NGNGヒントだけ
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/text/DateFormat.html
0276デフォルトの名無しさん
NGNG>>268さんではありませんが、私も似たようなプログラムが宿題で出ていたので参考にさせていただいたのですが、
コンパイルできません。
Sample.java:3: シンボルを解釈処理できません。
シンボル: クラス ArrayList
位置 : Sample の クラス
ArrayList list = new ArrayList();
^
Sample.java:3: シンボルを解釈処理できません。
シンボル: クラス ArrayList
位置 : Sample の クラス
ArrayList list = new ArrayList();
とエラーが出てしまいました。
どうか教えていただけませんか?
0277デフォルトの名無しさん
NGNGimport java.text.*;
import java.util.*;
public class Test{
public static void main(String[] args) throws IOException, ParseException{
Date nowdate = new Date(System.currentTimeMillis());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("生年月日を入れて下さい。");
String str = br.readLine();
DateFormat df = DateFormat.getDateInstance();
Date borndate = df.parse(str);
int year = nowdate.getYear() - borndate.getYear();
if((nowdate.getMonth() < borndate.getMonth()) || (nowdate.getMonth() == borndate.getMonth() && nowdate.getDate() < borndate.getDate())){
year -= 1;
}
System.out.println(Integer.toString(year) + "歳です");
}
}
これを実行すると推奨されないAPIを使用、またはオーバーライドしてます。
って言われるんですが何処をどー直せばちゃんと動くでしょうか?
生年月日を入力して今、現在何歳かということを
画面上に表示するプログラムです。
-deprecationをつけて実行してみましたがgetYear()とgetManth()とgetDate()が
おかしいようです。ググってみましたらCalendar.get(Calendar.YEAR)を使うようなんですが
どー入れれば動くのかということがサパーリです。
どうか修正宜しくお願い致します。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNGできました。
でも、ライブラリを使ってはいけないそうです。
0280デフォルトの名無しさん
NGNGDateじゃなくてCalendar使え
0281デフォルトの名無しさん
NGNGライブラリ使わんでどーやって出力するつもりだ?
0282デフォルトの名無しさん
NGNGまだやってないんですが
try
↑臭い気するけど
0283デフォルトの名無しさん
NGNGライブラリつかわんで今日の日付をどうやって取得するんだ。
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGsocketでメッセージを相互に送るようにしたんですけど、
そのメッセージを変数に置き換えてプログラムできるんでしょうか?
アプレットです。
0286デフォルトの名無しさん
NGNGコンソールの入力も表示もライブラリ使わんと無理。
0287デフォルトの名無しさん
NGNG変数に「代入」ではないのか?
メッセージを変数に「置き換えた」結果ってのが
どういう状態を期待しているのか説明してみ。
0288デフォルトの名無しさん
NGNGそして代入した変数をスレッドの中で使いたいです。
0289デフォルトの名無しさん
NGNG>>269をしたいのですが、
public class Sample{
public static void main(String args[]){
arrayList list = new ArrayList();
for(char c = 'A'; c <= 'Z'; c++) {
list.add( new Character(c) );
}
String str = "";
for(int i = 0; i < 9; i++){
str = str + list.remove((int)(Math.random() * list.size()));
}
System.out.println( str );
}
}
でエラーが出ます。教えてください。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGまずimportしてない。
それと4行目、ArrayList list = new ArrayList(); だね 多分。
0292291
NGNG0293デフォルトの名無しさん
NGNGimportから書いてやれよ。
0294デフォルトの名無しさん
NGNGimport から書いても deprecated なメソッドの対処できない奴とか居るし。
0295デフォルトの名無しさん
NGNGpublic class Sample{
public static void main(String args[]){
ArrayList list = new ArrayList();
for(char c = 'A'; c <= 'Z'; c++) {
list.add( new Character(c) );
}
String str = "";
for(int i = 0; i < 9; i++){
str = str + list.remove((int)(Math.random() * list.size()));
}
System.out.println( str );
}
}
う〜ん、これでもコンパイルできません。
0296デフォルトの名無しさん
NGNGわざとやってるだろ。
0297デフォルトの名無しさん
NGNGコンパイルエラー見りゃ原因わかんだろ
0298デフォルトの名無しさん
NGNG1 から 2, 3, 4 と足していき、総和が1万を超えたら、
そのときの総和と最後に足した数を出力してください。
ヒントください(汗
0299デフォルトの名無しさん
NGNGwhile(total < 10000)
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG1 から 2, 3, 4 と足していき、総和が10を超えたら、
そのときの総和と最後に足した数を出力してください。
だとおもって、コンピュータ使わずに手で解いてみろ。
手で解けないならお前には無理
0302デフォルトの名無しさん
NGNGint total = 0;
int i = 1;
while ( total <= 10000 )
{
total += i++;
}
System.out.println("総和=" + total + " 最後=" + i);
0303デフォルトの名無しさん
NGNGSystem.out.println("総和=" + total + " 最後=" + (i - 1)); かな。
0304デフォルトの名無しさん
NGNGそれより、int i = 0 にして ++i にすればいいだろ
0305デフォルトの名無しさん
NGNGいいのでしょうか?ご教授お願します。
1
2 3
4 5 6
7 8 9 10
0306デフォルトの名無しさん
NGNGピラミッドになってない。。。
1が頂上のピラミッド型になってると思って下さい。
0307デフォルトの名無しさん
NGNGW大学ですか?
0308デフォルトの名無しさん
NGNGSystem.out.println(" 3 2");
System.out.println(".4 5 6");
System.out.println("7 8 9 10");
0309デフォルトの名無しさん
NGNGループ文使ってだから
String[] str = { " 1"," 2 3"," 4 5 6","7 8 9 10" };
for ( int i = 0 ; i < str.length() ; i++ ) {
System.out.println(str[i]);
}
(藁
0310デフォルトの名無しさん
NGNG(藁
(藁
(藁
(藁
0311デフォルトの名無しさん
NGNGstr.lengthの
.←の部分が解釈できないと出るのですが。。
0314デフォルトの名無しさん
NGNGいい加減にしろ(゚Д゚)ゴルァ!!
0315デフォルトの名無しさん
NGNGどうか助けて下さい。(;_;)
「HTMからタイトルを抽出するプログラム」をJSPで作って頂けますか?
javaのソースなら動作するものはできています。
0316デフォルトの名無しさん
NGNGしかし、具体的にどんなものが欲しいのか、
明示してないからな。しかたねーよ。
"1-10をピラミッド形に並べる"のなら、
>>309が最適なわけだし。
0317デフォルトの名無しさん
NGNGその、既に動作してるJavaのコードを、
JSPの<% %>の間に書け。
0318デフォルトの名無しさん
NGNG何気にむずい…
int last = 200;
int half = last / 2;
int i,j,k = 0;
for ( i = 1 ; i < last ; i++ ) {
for ( j = 0 ; j <= half ; j++ ) {
System.out.print(' ');
}
half--;
for ( j = 0 ; j < k ; j++, i++ ) {
if ( i > last ) break;
System.out.print(i + " ");
}
k++;
if ( i > last ) break;
System.out.println(i + "");
}
0319デフォルトの名無しさん
NGNG>javaのソースなら動作するものはできています
JSPからそれを呼べばいいだろ
0320デフォルトの名無しさん
NGNGclass Pyramid {
// 十進数での桁数算出関数
static int calcBeam(int n){
int beam = 1;
for(int d=1; n/d!=0; d*=10){beam++;}
return (beam-1);
}
//main
public static void main(String[] args){
int height; //ピラミッドの高さ
//ユーザー入力の取得
try{
height = Integer.parseInt(args[0]);
}catch(NumberFormatException e){
System.out.println("入力文字列は整数として解釈できません。");
return;
}catch(Exception e){
System.out.println("その他のエラー");
return;
}
(つづく)
0321デフォルトの名無しさん
NGNGint maxValue = height*(height+1)/2;//ピラミッドで一番大きな数
int maxBeam = calcBeam(maxValue); //ピラミッドで一番大きな買うの桁数
int curValue = 1 //カレント値
int curBeam = 1; //カレント桁数
String raw[] = new String[height]; //ピラミッドの格段
//ピラミッドの各段を作成
for(int y=0; y<height; y++){
raw[y] = "";
for(int x=0; x<=y; x++){
String tmp;
tmp += curValue;
//桁数を合わせるためにスペースでパディング
for(int j=0; j<maxBeam - curBeam +1; j++){
if(j%2==0){tmp=" "+tmp;}else{tmp+=" ";}
}
raw[y] += tmp;
curValue++;
curBeam = calcBeam(curValue);
}
}
//中央を合わせて出力
for(int y=0; y< height; y++){
for(int x=0; x< (raw[height-1].length()-raw[y].length()) / 2; x++){
System.out.print(" ");
}
System.out.println(raw[y]);
}
}
}
0322320,321
NGNGコマンドラインから出力するピラミッドの段数を引数に渡して起動。
微妙にイビツ。
0323321
NGNG>>321
4行目
(誤)int curValue = 1 //カレント値
(正)int curValue = 1; //カレント値
12行目
(誤)String tmp;
(正)String tmp="";
0324デフォルトの名無しさん
NGNGありがとうございます^^
0325デフォルトの名無しさん
NGNGpublic class NumberPyramid {
public static void main(String[] args) {
int maxHeight = Integer.parseInt(args[0]); // NumberFormatException は放置
StringBuffer[] row = new StringBuffer[maxHeight]; // 各行の内容を保持
int value = 0;
// 各行を作成
for (int curHeight = 0; curHeight < maxHeight; curHeight++) {
row[curHeight] = new StringBuffer();
for (int i = 0; i <= curHeight; i++) {
row[curHeight].append(" ");
row[curHeight].append(++value);
}
}
(つづく)
0326デフォルトの名無しさん
NGNG// インデント用空白(長さは最大行の長さの半分)作成
final int maxLength = row[maxHeight - 1].length();
StringBuffer space = new StringBuffer();
for (int i = 0; i < maxLength / 2; i++) {
space.append(" ");
}
// 表示
for (int curHeight = 0; curHeight < maxHeight; curHeight++) {
System.out.print(space.substring(row[curHeight].length() / 2));
System.out.println(row[curHeight]);
}
}
}
0327デフォルトの名無しさん
NGNGint maxHeight = Integer.parseInt(args[0]); // NumberFormatException は放置
この行でクラスファイル生成後実行したらエラーになるのですが。。
0328デフォルトの名無しさん
NGNGコマンドラインでピラミッドの高さを入力してる?
>>326
>row[curHeight].append(" ");
>row[curHeight].append(++value);
これだと、桁の違いが出てピラミッドが三角形にならないよ。
ま、上すぼみのピラミッドもあるには有るけどな。
0329デフォルトの名無しさん
NGNGありがとうございます。
実際にピラミッドが表示できる状態のプログラムをレスしてくれますか?^^;
0330デフォルトの名無しさん
NGNGいや、おれは320だが。動かなかった?
0331デフォルトの名無しさん
NGNGコンパイル後に"java Pyramid"と
実行するとその他のエラーと表示されるんですが。。
0332デフォルトの名無しさん
NGNGjava Pyramid 5
とか。
0333デフォルトの名無しさん
NGNGえーと、
私のプログラムも、>>325のも。
>java Pyramid 10
というように、ピラミッドの高さを指定してください。
0334デフォルトの名無しさん
NGNGちがうか。
>325-326
NumberPyramid.javaのファイル名で保存してjavac NumberPyramidでclass作って、
java NumberPyramid 5
だ。
0336デフォルトの名無しさん
NGNG数字の桁が増えてくると
絶対無理だよな
無理と言うか綺麗に並ばなくなる
0337デフォルトの名無しさん
NGNGDOS窓だと折り返されちゃうけど、xyxxyで実行したら100段とかでも綺麗に並んだよ。
0338デフォルトの名無しさん
NGNGちょいまち、おれは325のプログラム試したんだが
100超えたところからいきなり太くなったよ
なんでだ?
ちなみにDOS窓使ってないのでそのことではない
0339デフォルトの名無しさん
NGNGっていうか、ある程度並んでればOKなの?
0340デフォルトの名無しさん
NGNG>>325は>>328の理由でゆがみます。
>>320のプログラムは一応何段になっても三角形っぽくなるよ。
0342325-326
NGNG提示された仕様が曖昧なんだから、どっちが正解とも言い切れないんじゃないの?
0343デフォルトの名無しさん
NGNGサンカクジョーギニヒビイッテー
0344デフォルトの名無しさん
NGNGA〜Eの中から2文字を重複しないように文字列を作って、ユーザーが当てるというもの、
おながいします。
0345デフォルトの名無しさん
NGNGABCDEをランダムに並べ替えたものをユーザに当てさせるってことかな?
0346デフォルトの名無しさん
NGNGimport java.io.*;
public class Quiz {
public static void main(String[] args){
char[] table = {'A','B','C','D','E'};
int i = (int)(Math.random() * 4);
String ans = new String();
ans += table[i];
if(i!=4){table[i] = table[4];}
ans += table[(int)(Math.random() * 3)];
try {
BufferedReader br = new BufferedReader(new InputStreamReader( System.in ) );
while( true ) {
System.out.print( "Input Word >> " );
String input = br.readLine();
if(ans.equals(input)){
System.out.println("正解です => " + input);
break;
}else{
System.out.println("ハズレ => " + input);
}
}
}
catch( Exception e ) {
System.err.println("Error : " + e);
System.exit(-1);
}
}
}
■ このスレッドは過去ログ倉庫に格納されています