Cześć.
Napisałem sobie porównawczo ten sam algorytm w tych dwóch językach i chciałbym się zapytać czy w obu z nich kod źródłowy jest dobrze skonstruowany. Oto on:
C#:
using System;
namespace Euklides {
class Euklides {
int a, b, nw, nd;
Euklides(int _a, int _b) {
a = _a;
b = _b;
}
int nwd() {
int x=a, y=b;
while (x!=y) {
if(x>y)
x=x-y;
else
y=y-x;
}
nd=x;
return nd;
}
int nww() {
nw = Math.Abs(a*b)/nd;
return nw;
}
public static void Main(string[] args) {
int a,b;
Console.Write("a = ");
a = int.Parse(Console.ReadLine());
Console.Write("b = ");
b = int.Parse(Console.ReadLine());
Euklides wynik = new Euklides(a,b);
Console.WriteLine("NWD = " + wynik.nwd());
Console.WriteLine("NWW = " + wynik.nww());
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
Java:
package euklides;
import java.io.*;
public class Euklides {
int a, b, nwd, nww;
public Euklides(int _a, int _b) {
a = _a;
b = _b;
}
public void nwd() {
int x = a, y = b;
while (x != y) {
if (x > y) {
x = x - y;
} else {
y = y - x;
}
}
nwd = x;
System.out.println("NWD = " + nwd);
}
public void nww() {
nww = Math.abs(a * b) / nwd;
System.out.println("NWW = " + nww);
}
public static void main(String[] args) {
int a, b;
BufferedReader znak = new BufferedReader(new InputStreamReader(System.in));
System.out.print("a= ");
try {
a = Integer.parseInt(znak.readLine());
} catch (IOException ex) {
System.out.println("Błąd odczytu klawiatury.");
}
System.out.print("b= ");
try {
b = Integer.parseInt(znak.readLine());
} catch (IOException ex) {
System.out.println("Błąd odczytu klawiatury.");
}
Euklides wynik = new Euklides(a,b);
wynik.nwd();
wynik.nww();
}
}
Po prostu jeśli dobrze napisałem oba te programy to miałbym jakaś bazę porównawczą odnośnie obu języków.