プログラムを作るための道具は極端に単純化すると(データを表現する)変数と(アルゴリズムを表現する)関数である.道具には名前をつけて区別するが,きれいなプログラムを作るためには適切な名前をつけたい.
ターミネータがそれぞれ-1と0である二つの配列aとbの内容をそれぞれ集計するプログラムである.)
main() { int a[] = {1,2,3,-1}; int b[] = {10,20,30,40,0}; int i1,i2; int sum1, sum2; /* 配列aの集計 */ i1 = 0; sum1=0; while(a[i1] != -1) { sum1 = sum1 + a[i1]; i1++; } printf("sum = %d, num = %d\n", sum1, i1); /* 配列bの集計 */ i2 = 0; sum2=0; while(b[i2] != 0) { sum2 = sum2 + b[i2]; i2++; } printf("sum = %d, num = %d\n", sum2, i2); }
void sum1(int*); void sum2(int*); main() { int a[] = {1,2,3,-1}; int b[] = {10,20,30,40,0}; /* 配列aの集計 */ sum1(a); /* 配列bの集計 */ sum2(b); } void sum1(int* a) { int i = 0; int sum = 0; while(a[i] != -1) { sum = sum + a[i]; i++; } printf("sum = %d, num = %d\n", sum, i); } void sum2(int* a) { int i = 0; int sum = 0; while(a[i] != 0) { sum = sum + a[i]; i++; } printf("sum = %d, num = %d\n", sum, i); }
public class sample3 { public static void main(String args[]) { arrayA a = new arrayA(); arrayB b = new arrayB(); /* 配列aの集計 */ a.sum(); /* 配列bの集計 */ b.sum(); } } class arrayA { int[] array = {1,2,3,-1}; void sum() { int i = 0; int sum = 0; while(array[i] != -1) { sum = sum + array[i]; i++; } System.out.print("sum = "); System.out.print(sum); System.out.print(", num = "); System.out.println(i); } } class arrayB { int[] array = {10, 20, 30, 40, 0}; void sum() { int i = 0; int sum = 0; while(array[i] != 0) { sum = sum + array[i]; i++; } System.out.print("sum = "); System.out.print(sum); System.out.print(", num = "); System.out.println(i); } }
import java.applet.Applet; import java.awt.*; import java.awt.geom.*; public class bezier extends Applet { public void paint(Graphics g) { Graphics2D g2=(Graphics2D)g; GeneralPath p = new GeneralPath(); p.moveTo(10,10); p.lineTo(200,200); p.moveTo(10,10); p.quadTo(10,200,200,200); p.moveTo(10,10); p.curveTo(10,200,200,10,200,200); p.closePath(); g2.setColor(Color.blue); g2.fill(p); g2.setColor(Color.yellow); g2.setStroke(new BasicStroke(2.0f)); g2.draw(p); g.setColor(Color.black); g.fillOval(10,200,5,5); g.fillOval(200,10,5,5); } }
import java.applet.Applet; import java.awt.*; public class sqrt extends Applet { public void paint(Graphics g) { double d; d = Math.sqrt(2.0); g.drawString(Double.toString(d),10,10); g.drawString(Integer.toString((int)d),10,30); } }
import java.applet.*; import java.awt.Graphics; public class equation2 extends Applet { public void paint(Graphics g) { int a = 1; int b = 0; int c = 0; int x,y,x1,y1; for(x=-500;x<500;x++) { y=a*x*x+b*x+c; x1=x+1; y1=a*x1*x1+b*x1+c; g.drawLine(500+x*3,500-y,500+x1*3,500-y1); } g.drawLine(0,500,1000,500); g.drawLine(500,0,500,1000); } }
import java.applet.*; import java.awt.Graphics; public class equation21 extends Applet { int left,right,top,bottom; public void paint(Graphics g) { int a = -3; int b = 10; int c = 50; int x,y,x1,y1; double xp, yp; xp = -b/(2*a); yp = a*xp*xp+b*xp+c; left = Math.min(0,(int)xp)-10; right = Math.max(0,(int)xp)+10 ; top = Math.max(0,(int)yp)+10; bottom = Math.min(0,(int)yp)-10; for(x=left;x<right;x++) { y=a*x*x+b*x+c; x1=x+1; y1=a*x1*x1+b*x1+c; g.drawLine(conx(x),cony(y),conx(x1),cony(y1)); } g.drawLine(conx(left),cony(0),conx(right),cony(0)); g.drawLine(conx(0),cony(bottom),conx(0),cony(top)); } int conx(int x) { return 1000*(x-left)/(right-left); } int cony(int y) { return 1000-1000*(y-bottom)/(top-bottom); } }
import java.applet.*; import java.awt.*; public class decimal extends Applet { public void paint(Graphics g) { String s = Double.toString(1.0/3.0); g.drawString(s, 10, 10); g.drawString(s.substring(0,s.indexOf(".")+3), 10, 20); } }