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

> Прочтите прежде чем задавать вопрос!

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

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


Новичок
*

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

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


Вот код:

Код

const
arr: array[ 1 .. 100 ] of integer =

& #40;1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2
9,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,
56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82
,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100);


function minIndex: integer;
var
  i: integer;
  min: integer;
begin
  min := maxInt;
  for i := 1 to 100 do
    if min > arr[i] then
      begin
        min := arr[i]; minIndex := i
      end;
end;

function maxIndex: integer;
var
  i: integer;
  max: integer;
begin
  max := - maxInt;
  for i := 1 to 100 do
if max < arr[i] then
begin
max := arr[i]; maxIndex := i
end;
end;


как описать массив arr[i] в самой подпрограмме?

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


Гость






В приведенном коде 2 подпрограммы... В какой именно описать? И почему именно в подпрограмме, а не там, где это описано сейчас?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Автооответчик
*****

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

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


а зачем ?? blink.gif


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


Новичок
*

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

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


Цитата(volvo @ 2.11.04 20:53)
В приведенном коде 2 подпрограммы... В какой именно описать? И почему именно в подпрограмме, а не там, где это описано сейчас?

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


Гость






Глупость совершеннейшая ... blink.gif

Код

function minIndex: integer;
const
arr: array[ 1 .. 100 ] of integer =
(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100);
var
 i: integer;
 min: integer;
begin
 min := maxInt;
 for i := 1 to 100 do
   if min > arr[i] then
     begin
       min := arr[i]; minIndex := i
     end;
end;

function maxIndex: integer;
const
arr: array[ 1 .. 100 ] of integer =
(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100);
var
 i: integer;
 max: integer;
begin
 max := - maxInt;
 for i := 1 to 100 do
if max < arr[i] then
begin
max := arr[i]; maxIndex := i
end;
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


Цитата
Глупость совершеннейшая ...
Зато красиво то как ! :D :p2:
Цитата
В обоих. Почему не знаю, у нас такие правила, в таком виде не принимают.

irena Интересно где вас такому обучают?


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


А можно сделать что бы массив с числовой последовательностью использовался в коде только один раз или же нет? числа в последовательности могут идти не попорядку, так что циклом его задать не получиться. Можно ли уйти от констант?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






irena
Все дело в том, что это не совсем константы (а вернее - совсем не константы)... Это переменные с начальным значением. Ну, а от переменных уйти вряд ли удастся...

Так что вариант, который был в самом начале - наиболее оптимальный :yes:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

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

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


Может ты имеешь ввиду сделать так?! blink.gif
В самой программе массив можно задать так
Код
const
n=100;
type
 atype = array[1..n] of integer;
const
 arr: atype =
 (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
 41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,
 61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
 81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100);
Функции можно переписать таким образом ........
Код
function minIndex(arr :atype): integer;

Код
function maxIndex(arr : atype): integer;

Когда будешь их вызывать, просто посылай в ф-цию свой массив arr
"minIndex(arr)"


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


Amro похоже что так
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






irena
Небольшое уточнение... Это называется "Передать в подпрограмму как параметр"
:D
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


Цитата
Передать в подпрограмму как параметр

По научному это звучит именно так :D


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

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

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


Цитата
Все дело в том, что это не совсем константы (а вернее - совсем не константы)... Это переменные с начальным значением


После слова const??
эээ... ну если это переменные, попробуйте изменить их значения. удачи! rolleyes.gif

ЗЫ: если измените, не забудьте показать код (тока без асма плиз)


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Я не имею в виду Дельфи...

Код

const
arr: array[ 1 .. 100 ] of integer = ( {данные} );


В Турбо-Паскале 7.0 значение меняется на ура ... Можете проверить. Удачи.

Пример: ( только для ТР )
Код

const
 a: integer = 9;

begin
 writeln( 'a = ', a ); { a = 9 }
 a := 4;
 writeln( 'a = ', a ); { OOPS! }
end.


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

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

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


хммunsure.gif .. действительно, правда только для типизированных -
Цитата
Typed constant declarations are used to declare initialized variables.
Unlike an untyped constant, the declaration of a typed constant specifies
both the type and the value of the constant. Typed constants can be modified
just like variables.


для нетипизированных ничего не выйдет....

PS: имхо не стоит засорять стэк - надо передавать указатель


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Ищущий истину
******

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

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


Цитата
если измените, не забудьте показать код (тока без асма плиз)

можно без асма, если указать какую-нибудь переменную по адресу константы:

Код

const
n:byte=10;
var
b:byte absolute n;
begin
b:=2;
writeln(n); {2}
end.
Таким образом можно любый константы менять в процессе исполнения программы!
Цитата
удачи!

И тебе! :D


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Я скучаю по Бейсику, в котором пользователь сам мог вводить размерность массива в процессе выполнения программы...

Вот бы на пасе работал такой код без ошибок:
Код
const
n:byte=10;
var
b:byte absolute n;
 m : array [1..n] of Byte;
begin
b:=20;
writeln(n); {2}
 m[19]:=0;
end.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Ищущий истину
******

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

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


Абалдеть! rolleyes.gif
Это надо получше изучить ....
супер... я не знал что так можно и массив обмануть ...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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