プログラムを作るための道具は極端に単純化すると(データを表現する)変数と(アルゴリズムを表現する)関数である.道具には名前をつけて区別するが,きれいなプログラムを作るためには適切な名前をつけたい.
ターミネータがそれぞれ-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);
}
}