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

> Внимание!

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

> [Java] Окружения элемента в массиве
Merhaba
сообщение 20.05.2011 6:27
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 22.05.2011 9:16
Сообщение #2


a.k.a. volvo877
*****

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

Репутация: -  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 
 К началу страницы 
+ Ответить 
Merhaba
сообщение 22.05.2011 19:34
Сообщение #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 
 К началу страницы 
+ Ответить 
Lapp
сообщение 23.05.2011 10:08
Сообщение #4


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

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

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


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


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

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


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

 



- Текстовая версия 19.07.2025 19:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"