![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
Bu ödevi pazartesine kadar yapmam gerekiyor, yardim edebilecek olursa sevinirim ![]() Class´in ismi addiere ve bu sinifla naturel (türkcede umarim böyledir ) iki rakamin toplamini elde etmek gerekiyor(0 da dahil). Basis su rakamlarla {0,1,...b-1} temsil ediliyor.ödevde static method la calisilmasi isteniyor ve parameter su sekilde : long addiere(long, long, int) ilk 2 parameter rakam1(Zahldarstellung1) ve rakam2(zahldarstellung2) yi temsil ediyor ücüncü parameter(basis) ise rakamlarin hangi temele göre temsil edildigini bildiriyor.Sollergebnis Summe ise toplam sonuc oluyor. Main methode araciligi ile class Zahldarstellung´u, method addiere´yi ekteki rakamlari vererek System.out.println(...) talimati ile cagiriniz diyor. Örnek: System.out.println(addiere(1001, 11, 2)); Verilen metodlarin disinda yardimci metodlarlada calisilabilinirmis Tabi bundan önce return üde kullanarak formül vermek gerekiyor. ben orada takildim iste. Yani en olmayacak yerde. Bana biraz yardim edebilen olursa sevinirim. |
| | |
| | #2 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
| http://www.cs.princeton.edu/introcs/51data/ adresinde kısa bi araştımayla bu ödevi yapabilirsin! BinaryConverter.java dosyası en çok yardım eden olur. iki yöntem izleyebilirsin.. 1- binary görünümdeki sayıları int'e çevirip, toplama yapıp sonucu tekrar binary'e çevirirsin.(ben bu versiyonu yaptım 10 dk'da : ))2- biraz kasıp önce nasıl çalıştığını anlar daha sonra bit-bit toplama olayını halledersin. Ama bence bu kadar kasmaya gerek yok... |
| | |
| | #3 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
sadece binary(2 lik tabanda denedim ama sanırım geri kalan içinde çalışır) public class Addiere { // converts integer n into a base b string static String toString(int n, int base) { // special case if (n == 0) return "0"; String digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String s = ""; while (n > 0) { int d = n % base; s = digits.charAt(d) + s; n = n / base; } return s; } // convert a String representing a base b integer into an int static int fromString(String s, int b) { int result = 0; int digit = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= '0' && c <= '9') digit = c - '0'; else if (c >= 'A' && c <= 'Z') digit = 10 + c - 'A'; else return 0; if (digit < b) result = b * result + digit; else return 0; } return result; } public static long addiere(long binary_1, long binary_2, int basis) { int int_total = fromString(binary_1+"",basis) + fromString(binary_2+"", basis) ; long retVal = 0; try{ retVal = Long.parseLong(toString( int_total , basis ) ); }catch(Exception exc){} return retVal; } public static void main(String[] args) { long s1 = 101111; long s2 = 101111; System.out.println("a: " +s1+ " - " + fromString(""+s1,2)); System.out.println("b: " +s2+ " - " + fromString(""+s2,2)); System.out.println("+"); System.out.println("-------------"); System.out.println("c: " + addiere(s1,s2,2) +" - "+fromString(""+addiere(s1,s2,2),2)); System.exit(0); } } |
| | |
| | #4 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
cok tesekkür ederim. Sagolun. Dogrusu cevap beklemiyordum. Ya birde 10 dk bitirmissin tebrik ediyorum. Ben hic anlamiyorumda. Uni ye yeni basladim ve ilk kez programlama yapiyorum malumunuz. BIrde benim her hafta ödevim oluyor eger anlamazsam yine yazarim Konuyla ilgili sorum olursa sizi rahatsiz ederim. |
| | |
| | #5 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
Dün vaktim yoktu tam olarak bakamamistim yazdiginiz sonuca. Ama simdi baktimda cikan sonuclarin, ekteki kagidin ücücüncü sütunundaki(Sollergebnis Summe) sonuclarla ayni olmasi gerekiyor. ![]() Yani ödevin sonuclari zaten verilmis ama buna uygun formülü yapamiyorum. Tekrar tesekkürler zaman ayirdiginiz icin |
| | |
| | #6 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
Zahldarstellung 1 ve Zahldarstellung 2 kısımlarında yazan sayıları long s1 = 101111; long s2 = 101111; deki sayılarla yer değiştirirsen olur... ![]() yani; s1 toplanacak birinci sayı, s2'de ikinci sayı. yeni halini gönderiyorum.. /************************************************** *********************** * Compilation: javac BinaryConverter.java * Execution: java BinaryConverter * * Converts an integer to and from its binary representation. * ************************************************** ***********************/ public class Addiere { // converts integer n into a base b string static String toString(int n, int base) { // special case if (n == 0) return "0"; String digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String s = ""; while (n > 0) { int d = n % base; s = digits.charAt(d) + s; n = n / base; } return s; } // convert a String representing a base b integer into an int static int fromString(String s, int b) { int result = 0; int digit = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= '0' && c <= '9') digit = c - '0'; else if (c >= 'A' && c <= 'Z') digit = 10 + c - 'A'; else return -1; if (digit < b) result = b * result + digit; else return -1; } return result; } public static long addiere(long binary_1, long binary_2, int basis) { int number1 = fromString(binary_1+"",basis); int number2 = fromString(binary_2+"", basis); if(number1==-1 || number2==-1) return -1; long retVal = -1; try{ retVal = Long.parseLong(toString( number1+number2 , basis ) ); }catch(Exception exc){} return retVal; } public static void printResult(long number1, long number2, int basis) { System.out.println("a: " +number1+ " - " + fromString(""+number1,basis)); System.out.println("b: " +number2+ " - " + fromString(""+number2,basis)); System.out.println("+"); System.out.println("-------------"); System.out.println("c: " + addiere(number1,number2,basis) +" - "+fromString(""+addiere(number1,number2,basis),bas is)); System.out.println("\n----------------------------------------------------\n"); } public static void main(String[] args) { long s1 = 1001; long s2 = 11; int basis = 2; printResult(s1,s2,basis); s1 = 11011; s2 = 1110; printResult(s1,s2,basis); s1 = 210; s2 = 11; basis = 2; printResult(s1,s2,basis); s1 = 0; s2 = 773; basis = 8; printResult(s1,s2,basis); s1 = 0; s2 = 107; printResult(s1,s2,basis); s1 = 773; s2 = 107; printResult(s1,s2,basis); s1 = 773; s2 = 1239; printResult(s1,s2,basis); s1 = 950; s2 = 192; printResult(s1,s2,basis); s1 = 9145; s2 = 882; basis = 10; printResult(s1,s2,basis); s1 = 11111111111L; s2 = 1; basis = 2; printResult(s1,s2,basis); s1 = 323; s2 = 133; basis = 4; printResult(s1,s2,basis); System.exit(0); } } çalışıyor test ettim ama senin anlayıp, düzenlemen lazım |
| | |
| | #7 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
Anlarsam düzenlerim tabi Ama derste kullanmadigimiz terimlerle calisamiyoruz maalesef. Mesela digit, base, reteval ve result gibi. Bunlarin ne oldugunu bile bilmiyorum Degistirmek mümkün mü?Birde method stringle calismissin onuda degistirebilirmiyim. Bundan bir önceki ödevim, hemen hemen sistem ayni olacak ama simdiki ödevde bazi degisiklikler var. (kusura bakma seninde basini agritiyorum ama ben simdiye kadar java nin birtek adini duymustum )public class Rekursion { /** * Berechnet die Summe von Quadratzahlen von 1 bis einschließlich der * angegebenen Zahl n. * * @param n Zahl, die bestimmt welche Quadratzahlen berechnet werden. * @return Summe der Quadratzahlen bis einschließlich n */ public static long berechneSummeQuadrate(int n) { /* rekursive Realisierung (von n bis 1) */ return (n > 0) ? n * n + berechneSummeQuadrate(n - 1) : 0; } /** * Hilfsmethode zur Berechnung der Stellenanzahl von einer Zahl. * * @param n Zahl, deren Stellenanzahl ermittelt wird. * @return Stellenzahl von n */ public static long berechneStellen(long n){ /* rekursive Realisierung (Stellen bis 0) */ return (n / 10) <= 0 ? 1 : (10 * berechneStellen(n / 10)); } /** * Realisiert die ziffernweise Umkehrung der Dezimaldarstellung einer Zahl. * Da die Stellenanzahl der umzukehrenden Zahl variabel ist, wird die Anzahl * der Stellen mit Hilfe der Methode berechneStellen ermittelt. * * @param zahl Zahl, die umgekehrt wird. * @return umgekehrte Ziffernfolge von zahl */ public static long kehreZahlUm(long zahl){ /* rekursive Realisierung */ return (zahl / 10) <= 0 ? zahl : (zahl % 10 * berechneStellen(zahl) + kehreZahlUm(zahl / 10)); } /** * Führt beispielhafte Berechnungen aus und gibt die * Ergebnisse auf dem Bildschirm aus. */ public static void main(String[] args){ System.out.println(berechneSummeQuadrate(5)); System.out.println(berechneSummeQuadrate(10)); System.out.println(berechneSummeQuadrate(0)); System.out.println(berechneSummeQuadrate(-2)); System.out.println(kehreZahlUm(123456789012L)); System.out.println(kehreZahlUm(700)); System.out.println(kehreZahlUm(0)); System.out.println(kehreZahlUm(120034)); } } |
| | |
| | #8 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
Ödevimin en son hali bu, buraya kadar gelmesini saglayan based etesekkürler . Dogru sonuclar cikmasina ragmen, String metodunu derste islemedigimiz icin kullanamiyoruz. String kullanmadan nasil yapabilirim. Yardim edebilecek olan varsa acele cevap bekliyorum. Tskler.public class Zahldarstellung { /** *Berechnet der Summe von zwei natürliche Zahlen(einschließlich 0). * *@param ... *@return... */ public static String toString(int n, int base) { if (n == 0) return "0"; String digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String s = ""; while (n > 0) { int d = n % base; s = digits.charAt(d) + s; n = n / base; } return s; } // convert a String representing a base b integer into an int static int fromString(String s, int b) { int result = 0; int digit = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= '0' && c <= '9') digit = c - '0'; else if (c >= 'A' && c <= 'Z') digit = 10 + c - 'A'; else return -1; if (digit < b) result = b * result + digit; else return -1; } return result; } public static long addiere(long Zahldarstellung1, long Zahldarstellung2, int Basis) { int number1 = fromString(Zahldarstellung1 + "",Basis); int number2 = fromString(Zahldarstellung2 + "", Basis); if(number1==-1 || number2==-1) return -1; long retVal = -1; try{ retVal = Long.parseLong(toString( number1+number2 , Basis ) ); } catch(Exception exc){} return retVal; } /** * @param args the command line arguments */ public static void Zahldarstellung(long number1, long number2, int basis) { System.out.println( addiere(number1,number2,basis) ); } public static void main(String[] args) { long s1 = 1001; long s2 = 11; int basis = 2; Zahldarstellung(s1,s2,basis); s1 = 11011; s2 = 1110; Zahldarstellung(s1,s2,basis); s1 = 210; s2 = 11; basis = 2; Zahldarstellung(s1,s2,basis); s1 = 0; s2 = 773; basis = 8; Zahldarstellung(s1,s2,basis); s1 = 0; s2 = 107; Zahldarstellung(s1,s2,basis); s1 = 773; s2 = 107; Zahldarstellung(s1,s2,basis); s1 = 773; s2 = 1239; Zahldarstellung(s1,s2,basis); s1 = 950; s2 = 192; Zahldarstellung(s1,s2,basis); s1 = 9145; s2 = 882; basis = 10; Zahldarstellung(s1,s2,basis); s1 = 11111111111L; s2 = 1; basis = 2; Zahldarstellung(s1,s2,basis); s1 = 323; s2 = 133; basis = 4; Zahldarstellung(s1,s2,basis); System.exit(0); } } |
| | |
| | #9 (permalink) |
| Üye Üyelik Tarihi: 11/2004
Mesaj: 6
|
Benim yapmam gereken böyleymis Arkadasim yolladi sagolsun. Ama ilgilenen arkadaslarinda cok faydasi oldu. Allah razi olsun. Bu ödevlerin sürümü gelecektir. Yardimlarinizin devamini bekliyorum. public class Zahldarstellung { /* * In dieser Methode wird kontrolliert, ob die Zahlendarstellungen * überhaupt erst gültig sind. Dazu wird hier das "x < 1" verwendet, * damit diese Methode, wenn diese 0 ist aufhört zu rechnen. Aber * solange dies nicht der Fall ist wird kontrolliert, ob die Zahlen, die * die Zahlendarstellung beinhaltet gültig sind, d.h. sie müssen kleiner * gleich die Basis sein. Ist die Zahlendarstellung ungültig so wird die * -1 gegeben. * @param long x fuer Zahlendarstellung * @param int b fuer Basis * @return prueft, ob die Zahl gueltig ist oder nicht. */ public static long pruefe(long x, int b) { return (x < 1) ? 0 : (x % 10) >= b ? -1 : pruefe(x / 10, b); } /* * In dieser Methode wird die Zahlendarstellung in Dezimalzahlen umgerechnet. * Dies geschieht wiederum indem vorerst kontrolliert wird, ob die Zahlen - * darstellung < 1 ist, denn wenn dies der Fall ist kann man direkt die 0 * herausgeben. Ist die nicht der Fall, so wird hier der modulo 10 genommen, * damit die letzte Zahl quasi "abgeschnitten" wird, um damit im naechsten * Schritt rechnen zu können. Zusaetzlich wird im naechsten Schritt das "b" * mit "b" weiter multipliziert. * Also im 1. Durchgang werden die Zahlen nur zugewiesen, d.h es kommt immer * der modulo 10 raus und erst im 2. Schritt kommt es zu einer Umrechnung. * @param long x fuer Zahlendarstellung * @param in b fuer Basis * @return gibt die Zahlendarstellung in Dezimalzahl an */ public static long rechneUm(long x, int b) { return (x < 1) ? 0 : (x % 10) + (rechneUm(x / 10, b) * b); } /* * In dieser Methode wird die Dezimalzahl wieder in ihrer Ursprungs- * zahlendarstellung umgerechnet. Zuerst wird kontrolliert, die Zahl * wirklich gleich null ist. Erst wenn dies der Fall ist, endet das * Rechnen. Ist die jedoch nicht der Fall, so werden im ersten * Schritt alle Werte erstmal zu gewiesen. Dabei wird nur der modulo * der Basis herausgegeben und erst im naechsten Schritt wird mit den * Werten "gerechnet". * @param long x fuer Zahlendarstellung * @param int b fuer Basis * @return die zuvor in Dezimalzahlen umgewandelte Zahlen werden * wieder in Zahlendarstellungen zu den jeweiligen Basen gerechnet. */ public static long rechneZurueck(long x, int b) { return (x == 0) ? 0 : (x % b) + (rechneZurueck (x / b, b) * 10); } /* In dieser Methode wird alles quasi zusammengefuegt. Hier wird als * erstes ueberprueft, ob die Ergebnisse von "Pruefe" bereits -1 * (also false) ergeben haben. Ist dies nicht der Fall so werden die * Ergenisse von "rechneUm" addiert und dies wiederum in die Funktion * "rechneZurueck" eingesetzt. Hier kommt noch der "y" - Wert hinzu, * das dann das "x" ersetzt, um den 2. Wert durch die ganzen Rechnungen * zu fuehren. * @param long x fuer Zahlendarstellung * @param long y fuer 2. gegebene Zahlendarstellung * @param int b fuer Basis * @return addition der Dzimalzahlen und wieder umrechenen in die Zahlen- * darstellungen, die die Zahlen vorher hatten. */ public static long addiere(long x,long y, int b) { return pruefe(x, b) == - 1 || pruefe(y, b) == -1 ? -1 : rechneZurueck(rechneUm(x,b) + rechneUm(y,b),b); } /** * Gibt Ergebnisse der Auswertung aus. */ public static void main(String[] args) { System.out.println(addiere(1001, 11, 2)); System.out.println(addiere(11011, 1110, 2)); System.out.println(addiere(210, 11, 2)); System.out.println(addiere(773, 0, 8)); System.out.println(addiere(0, 107, 8)); System.out.println(addiere(773, 107, 8)); System.out.println(addiere(773, 1239, 8)); System.out.println(addiere(950, 192, 8)); System.out.println(addiere(9145, 882, 10)); System.out.println(addiere(11111111111L, 1, 2)); System.out.println(addiere(323, 133, 4)); } } |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| acil java ödevi yardımı | doeegoo | Java / JSP | 3 | 12/03/2007 12:35 |
| C ödevi (XOR la ilgili) | TheX | C / C++ | 8 | 07/12/2006 20:03 |
| Soru : Java ile Network Programlama | dubrovski | Java / JSP | 4 | 30/11/2004 11:01 |
| linux ödevi var yardım | zakkeyboorock | GNU / Linux / UNIX / BSD / Pardus | 1 | 29/11/2003 00:19 |
| c ödevi | stevenseagal | C / C++ | 3 | 13/12/2002 00:38 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |