IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> [Java] Окружения элемента в массиве
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Утро Доброе!
Помогите Пожалуйста переписать программу с Pascal на Java:
function Min(a,b: integer): integer;
begin
if a<b then Min:= a else Min:= b
end;

function Max(a,b: integer): integer;
begin
if a>b then Max:= a else Max:= b
end;


const
n= 30;
m= 20;

var
a: array [1..n,1..m] of integer;
i,j,k,l,p,q: integer;
Ok: boolean;

begin
Randomize;
for i:=1 to n do for j:=1 to m do a[i,j]:= Random(100);
for i:=1 to n do begin
for j:=1 to m do Write(a[i,j]:3);
WriteLn
end;

l:=0;
for i:=3 to n-2 do for j:=3 to m-2 do begin
Ok:= true;
k:= 1;
for p:= Max(i-k,1) to Min(i+k,n) do
for q:= Max(j-k,1) to Min(j+k,m) do
if (Abs(i-p)=k) or (Abs(j-q)=k) then Ok:= Ok and (a[i,j]>a[p,q]);
k:= 2;
for p:= Max(i-k,1) to Min(i+k,n) do
for q:= Max(j-k,1) to Min(j+k,m) do
if (Abs(i-p)=k) or (Abs(j-q)=k) then Ok:= Ok and (a[i,j]<a[p,q]);
if Ok then Inc(l)
end;

WriteLn('found ',l,' of wanted elements');
ReadLn
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Ну вот, ошибок не выдается, работает:


import java.io.IOException;
import java.util.Random;

public class Matrix01 {
public static void main(String[] args) throws Exception {
Matrix mx = new Matrix();
mx.printMatrix();
System.out.println("found " + mx.Action() + " of wanted elements");
}
}

class Matrix {
int [][] a;
int n;
int m;

public Matrix() throws IOException {

n = 30;
m = 20;
a = new int[n][m];

Random rnd = new Random ();

for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = rnd.nextInt(100);
} // for j
} // for i
} // constructor

int Action() {
int l = 0;
for(int i = 3; i <= n-2; i++)
for(int j = 3; j <= m - 2; j++) {
Boolean Ok = true;
int k = 1;
for(int p = Math.max(i-k, 1); p <= Math.min(i+k, n); p++)
for(int q = Math.max(j-k,1); q <= Math.min(j+k, m); q++)
if( (Math.abs(i-p)==k) || (Math.abs(j-q)==k) ) {
Ok = (Ok ? (a[i-1][j-1] > a[p-1][q-1]) : Ok);
}
k = 2;
for(int p = Math.max(i-k, 1); p <= Math.min(i+k, n); p++)
for(int q = Math.max(j-k, 1); q <= Math.min(j+k, m); q++)
if( (Math.abs(i-p)==k) || (Math.abs(j-q)==k) ) {
Ok = (Ok ? (a[i-1][j-1] > a[p-1][q-1]) : Ok);
}
if(Ok) l += 1;
}
return l;
}


void printMatrix() throws IOException {

for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(" " + a[i][j]);
} //for j
System.out.println();
} //for i
System.out.println();
} // printMatrix
}

Помогло тебе это? Результат-то всегда НОЛЬ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Цитата(IUnknown @ 22.05.2011 10:16) *

Ну вот, ошибок не выдается, работает:


import java.io.IOException;
import java.util.Random;

public class Matrix01 {
public static void main(String[] args) throws Exception {
Matrix mx = new Matrix();
mx.printMatrix();
System.out.println("found " + mx.Action() + " of wanted elements");
}
}

class Matrix {
int [][] a;
int n;
int m;

public Matrix() throws IOException {

n = 30;
m = 20;
a = new int[n][m];

Random rnd = new Random ();

for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = rnd.nextInt(100);
} // for j
} // for i
} // constructor

int Action() {
int l = 0;
for(int i = 3; i <= n-2; i++)
for(int j = 3; j <= m - 2; j++) {
Boolean Ok = true;
int k = 1;
for(int p = Math.max(i-k, 1); p <= Math.min(i+k, n); p++)
for(int q = Math.max(j-k,1); q <= Math.min(j+k, m); q++)
if( (Math.abs(i-p)==k) || (Math.abs(j-q)==k) ) {
Ok = (Ok ? (a[i-1][j-1] > a[p-1][q-1]) : Ok);
}
k = 2;
for(int p = Math.max(i-k, 1); p <= Math.min(i+k, n); p++)
for(int q = Math.max(j-k, 1); q <= Math.min(j+k, m); q++)
if( (Math.abs(i-p)==k) || (Math.abs(j-q)==k) ) {
Ok = (Ok ? (a[i-1][j-1] > a[p-1][q-1]) : Ok);
}
if(Ok) l += 1;
}
return l;
}


void printMatrix() throws IOException {

for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(" " + a[i][j]);
} //for j
System.out.println();
} //for i
System.out.println();
} // printMatrix
}

Помогло тебе это? Результат-то всегда НОЛЬ.


Кочечно помогло! smile.gif Спасибо Вам Большое! give_rose.gif
Скажите Пожалуйста, а этот код считает окружения для крапйних элементов?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Merhaba @ 22.05.2011 20:34) *
Скажите Пожалуйста, а этот код считает окружения для крапйних элементов?
Кошмар.. сам даже проверить (хотя бы по результатам, что ли, если уж код никак не прочесть) не может..
Merhaba ты серьезно думаешь, что выедешь на нас, не пошевельнув пальцем?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Merhaba   [Java] Окружения элемента в массиве   20.05.2011 10:27
IUnknown   Код: import java.util.Random; public class Matrix…   20.05.2011 16:41
Lapp   Код: ... System.out.println("found 0 of want…   21.05.2011 13:32
Merhaba   :))) Помогите Пожалуйста адаптировать программу …   22.05.2011 13:10
IUnknown   Ну вот, ошибок не выдается, работает: import jav…   22.05.2011 13:16
Merhaba   Ну вот, ошибок не выдается, работает: import ja…   22.05.2011 23:34
Lapp   Скажите Пожалуйста, а этот код считает окружения д…   23.05.2011 14:08
Merhaba   Ну вот, ошибок не выдается, работает: [code=cpp]…   24.05.2011 1:40
Lapp   Я переделал код, Если ты переделал код - то показы…   26.05.2011 5:29
Krjuger   Молодой человек,вы уже должны были понять,что над …   22.05.2011 18:15
IUnknown   Я бы попросил не употреблять по отношению ко мне э…   22.05.2011 18:42
Krjuger   Просто не понятно,что топикстартер делает...Сначал…   22.05.2011 20:42
TarasBer   > А может Min ,Max это действительно массивы,но…   22.05.2011 23:08
IUnknown   :unsure: Там это... Похоже, Copy+Paste принес св…   26.05.2011 12:31


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 16.05.2024 11:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name