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

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Помогите Plz начинающему программеру с массивами
сообщение
Сообщение #1


Пионер
**

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

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


Такая проблема,мне необходимо выявить наименьший элемент массива,какой функцией это задаётся.Буду вам очень благодарен.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Vardes, как ты думаешь, FAQ для кого пишется? Для меня?
Читай вот тут: Массивы. Матрицы. Типичные задачи.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Только вот ответа на мой вопрос о наименьшем члене массива я так и не нашёл.
Прошу о помощи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Ну так воспользуйся поиском, задач на массивы и матрици на форуме решено несколько сотен наверное !


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






klem4, все есть в FAQ-е:
FAQ: Решения: МАТРИЦЫ, МАССИВЫ. (Задача №7)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


Ввот столько уже прочитал,а точного ответа я не получил.
Увидел действия только с помощью процедур,но извините я не могу их пока применять,так что вопрос остаётся для меня пока что насущной проблемой. :fire:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


ГДЕ тыт тут увидел процедуру, a ?

Код

uses crt;
const
Len = 10
var
mas: array[1 .. Len] of integer;
min, n, i:integer;
begin
{ заполняем массив }
randomize;
for i:=1 to Len do mas[i]:=random(100);

{ собственно сортировка }
min:=mas[1]; {начальный минимальный эл-т}
for i := 1 to Len do begin
  if min<mas[i] then begin
    min:=mas[i];
    n:=i;
  end;
end;

{ В n содержится номер минимального элемента }
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

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

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


НУ тоды изваняйте <_< .Видно я в торопях искал,чтож поделаешь я чайник,ПАСИБА за помощь smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

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

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


Вот тут ещё хотел спросить,задаю я к примеру матрицу произвольного размера,для этого мне необходимо поменять константы,определяющие количество строк и столбцов.Для этого я как раз и применяю диррективу ABSOLUTE,вот пример проги:

const
n=100;
m=100;
var
a:array [1..n,1..m] of integer;
b:word absolute n:50; {изменение констант}
d:word absolute m:50;
i,j:integer;
begin
readln(b,d);
for i:=1 to b do for j:=1 to d do
read (a[i,j]);
for i:=1 to b do begin for j:=1 to d do
write(a[i,j]);

writeln;
end;
end.


Проблема то в том,что построение идёт только квадратных матриц размера (m) или (d),а вот по переменной (n) или (B) построение не идёт.Короче всё время мторится матрица mxm,в чём проблема,понять пока не могу.

Сообщение отредактировано: Altair -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Vardes, во-первых, как начинающему программеру (ты сам об этом говорил в названии темы) я бы тебе посоветовал пока с Absolute НЕ работать, уж очень это... как бы сказать... нестандартно, что-ли... Это первое.

Второе: директива Absolute предназначена для совмещения адресов переменных... Понимаешь, именно переменных, а не констант, потому что константы НЕ ХРАНЯТСЯ в сегменте данных программы вместе с переменными. Если ты хочешь менять константы, то описывай их как переменные.

Не надо заниматься хаком, это может ОЧЕНЬ мешать, например, при переходе на другой компилятор или на другую платформу...

P.S. Твоя задача решается с использованием динамической памяти (ищи по форуму, я показывал). Только не надо говорить, что это для тебя сложно. Ты сам полез в дебри...

Еще одно: если ты действительно думаешь, что от того, что ты сделал значения m и n поменялись - попробуй сделать вот так:
const
n=100;
m=100;
var
a:array [1..n,1..m] of integer;
b:word absolute n:50;
d:word absolute m:50;
i,j:integer;
begin
readln(b,d);
writeln('n = ', n);
writeln('m = ', m);
{ далее - по тексту... }
:D

Все, чего ты добился - это "залез" в ячейку памяти с адресом 100:50, или $64:$32, и там у тебя хранятся и значение B и значение D :yes:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

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

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


Вообще, будь внимательнее, старайся разобраться сам, это все не от того, что хочется сделать с разными там absolute, а из-за спешки и невнимательности.
Я вообще не понял, зачем в той программе вводить искусственные переменные. Константам пользоваться нельзя?


--------------------
"Все что вы создаете, вы же и разрушаете.", В поисках разума.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


Так вот от неимения большого опыта думал,что для того,чтобы задать размер матрицы,непременно надо изменять переменные,вот и вычитал в инете про ABSOLUTE,только вот теперь понял,что константой мона,как переменной оперировать,только меньшего размера.
Вот тут ещё проблемка,мне необходимо поменять строки местами.Если знать,какого порядка у тебя матрица,то легко мона адать замену друг на друга элементов строк,а что делать,когда не знаешь порядок матрицы(т.е. он произволен) ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Пионер
**

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

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


ДА,вот ещё процедурами и функциями мне пользоваться пока нельзя. :no:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Цитата(Vardes @ 14.10.2005 19:50)
вычитал в инете про ABSOLUTE,только вот теперь понял,что константой мона,как переменной оперировать,только меньшего размера
Пример оперирования константами (в частности, изменение значения) в студию !!! smile.gif

Цитата
а что делать,когда не знаешь порядок матрицы(т.е. он произволен)
Ты в любом случае должен знать, какой у тебя размер матрицы, если я, например, скажу тебе, "поменяй местами первую строку с предпоследней", но не скажу, какая именно это предпоследняя, то даже ты (естественный интеллект) задачу не решишь, что ты хочешь от компьютера?

Ты бы ВНИМАТЕЛЬНО читал то, что тебе отвечают. Я уже говорил про динамические матрицы, это то, что тебе нужно. Могу еще раз повторить.
 К началу страницы 
+ Ответить 

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

 





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