Miten tällaisen voi tehdä?
Tee ohjelma, joka tulostaa annetun kokoisen kirjainneliön seuraavien esimerkkien mukaisesti. Voit olettaa, että kirjainneliön koko (kerrosten määrä) on 1–26.
Esimerkki 1
Anna koko: 3
AAAAA
ABBBA
ABCBA
ABBBA
AAAAA
Esimerkki 2
Anna koko: 4
AAAAAAA
ABBBBBA
ABCCCBA
ABCDCBA
ABCCCBA
ABBBBBA
AAAAAAA
Emme tajua tätä millään...
Tee ohjelma, joka tulostaa annetun kokoisen kirjainneliön seuraavien esimerkkien mukaisesti. Voit olettaa, että kirjainneliön koko (kerrosten määrä) on 1–26.
Esimerkki 1
Anna koko: 3
AAAAA
ABBBA
ABCBA
ABBBA
AAAAA
Esimerkki 2
Anna koko: 4
AAAAAAA
ABBBBBA
ABCCCBA
ABCDCBA
ABCCCBA
ABBBBBA
AAAAAAA
Emme tajua tätä millään...
Vastaukset 5
Vanhimmat
auttaako jos kerron et jos koko olis 5, niin rivi olis tällänen:
aaaaaaaaa
abbbbbbaa
abcccccba
abcdddcba
abcdedcba
abcdddcba
abcccccba
abbbbbbba
aaaaaaaaa
Meni vähän aikaan ennen ku ite tajusin mut eihän yliopiston tehtävät koskaan helppoja ole. Suositteln myös käymään niissä ohjelmointipajoissa;)
Mä voisin tehdä tuon. Paljonko maksatte?
läksyt on tapana tehdä ihan itse....
Käydään vain for-silmukalla läpi x ja y, ja merkin ascii-arvo ratkaistaan jotenkin:
ascii=64 min(TAULUKONKOKO/2-abs(TAULUKONKOKO/2-x), (TAULUKONKOKO/2-abs(TAULUKONKOKO/2-x));
Jossa TAULUKONKOKO on x:n ja y:n maksimiarvo.
Voit kokeilla lähestyä ongelmaa tällä tavalla. Kun olet saanut käyttäjältä syötteen taulukon koosta, luo väliaikainen taulukko[ ] muuttuja johon alat täyttämään kirjaimia. Taulukon alkioiden lukumäärä on aina *2-1.
Tässä mallisilmukka kaksiulotteisen taulukon käsittelyyn.
int koko=3;
char[][] taulukko = new char[koko*2-1][koko*2-1];
System.out.println("width =" taulukko.length);
System.out.println("height=" taulukko[0].length);
for(int y=0; y < taulukko[0].length; y ) {
for(int x=0; x < taulukko.length; x ) {
taulukko[x][y] = Character.forDigit(y x, 10);
}
}
for(int y=0; y < taulukko[0].length; y ) {
for(int x=0; x < taulukko.length; x ) {
System.out.print(taulukko[x][y]);
}
System.out.println("");
}