![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
irena |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Вот код:
Код 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 - 2.11.2004 20:50 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
В приведенном коде 2 подпрограммы... В какой именно описать? И почему именно в подпрограмме, а не там, где это описано сейчас?
|
GoodWind |
![]()
Сообщение
#3
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
а зачем ??
![]() -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
irena |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 2.11.04 20:53) В приведенном коде 2 подпрограммы... В какой именно описать? И почему именно в подпрограмме, а не там, где это описано сейчас? В обоих. Почему не знаю, у нас такие правила, в таком виде не принимают. |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Глупость совершеннейшая ...
![]() Код 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; |
Amro |
![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Глупость совершеннейшая ... Зато красиво то как ! :D Цитата В обоих. Почему не знаю, у нас такие правила, в таком виде не принимают. irena Интересно где вас такому обучают? -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
irena |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
А можно сделать что бы массив с числовой последовательностью использовался в коде только один раз или же нет? числа в последовательности могут идти не попорядку, так что циклом его задать не получиться. Можно ли уйти от констант?
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
irena
Все дело в том, что это не совсем константы (а вернее - совсем не константы)... Это переменные с начальным значением. Ну, а от переменных уйти вряд ли удастся... Так что вариант, который был в самом начале - наиболее оптимальный :yes: |
Amro |
![]()
Сообщение
#9
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
Может ты имеешь ввиду сделать так?!
![]() В самой программе массив можно задать так Код 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)" -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
irena |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Amro похоже что так
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
irena
Небольшое уточнение... Это называется "Передать в подпрограмму как параметр" :D |
Amro |
![]()
Сообщение
#12
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Передать в подпрограмму как параметр По научному это звучит именно так :D -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
Digitalator |
![]()
Сообщение
#13
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Все дело в том, что это не совсем константы (а вернее - совсем не константы)... Это переменные с начальным значением После слова const?? эээ... ну если это переменные, попробуйте изменить их значения. удачи! ![]() ЗЫ: если измените, не забудьте показать код (тока без асма плиз) -------------------- |
volvo |
![]()
Сообщение
#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 - 3.11.2004 19:09 |
Digitalator |
![]()
Сообщение
#15
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
хмм
![]() Цитата 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: имхо не стоит засорять стэк - надо передавать указатель -------------------- |
Altair |
![]()
Сообщение
#16
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата если измените, не забудьте показать код (тока без асма плиз) можно без асма, если указать какую-нибудь переменную по адресу константы: Код const n:byte=10; var b:byte absolute n; begin b:=2; writeln(n); {2} end. Цитата удачи! И тебе! :D -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
APAL |
![]()
Сообщение
#17
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Я скучаю по Бейсику, в котором пользователь сам мог вводить размерность массива в процессе выполнения программы...
Вот бы на пасе работал такой код без ошибок: Код 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. -------------------- |
Altair |
![]()
Сообщение
#18
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Абалдеть!
![]() Это надо получше изучить .... супер... я не знал что так можно и массив обмануть ... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 20:19 |