07.01.2010, 21:03 | #11 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
|
07.01.2010, 21:03 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую почитать содержимое этих топиков Задачка с функциями файловой системы ввода-вывода Работа с текстовым файлом, Pascal |
07.01.2010, 21:05 | #12 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
y:=S(z); r:=S(t)+S(q)-S(5); и т.п. |
|
07.01.2010, 21:14 | #14 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Естественно, только у меня описаны переменные типа real и integer , так как переменная x может принимать действительные значения
__________________
Убить всех человеков! |
07.01.2010, 21:20 | #15 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
ну я особо не обращал внимания, просто общий пример привел. каждая функция пишется с учетом выполняемых функций и особенностей программы
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
08.01.2010, 06:22 | #16 (permalink) | |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Цитата:
Я правильно все понял? Все разобрался окончательно, Спасибо всем!!! Последний раз редактировалось Dram; 08.01.2010 в 06:30 |
|
08.01.2010, 09:59 | #17 (permalink) |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Помогите... кто может? всетаки неиразобрался я до конца в этих функциях
Найти наибольший элемент каждой стороки матрицы 5х5(нахождение наибольшего элемента строк оформить в виде функции) |
08.01.2010, 10:42 | #18 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
CONST M=5; {Number of lines} N=5; {Number of columns} TYPE AR=ARRAY[1..N] of BYTE; VAR LNS:ARRAY[1..M] of AR; MAX:ARRAY[1..M] of BYTE; i,j:INTEGER; Function Find_Max(Lfm:AR):BYTE; var M:BYTE; i:INTEGER; begin M:=Lfm[1]; For i:=1 TO N DO If Lfm[i]>M then M:=Lfm[i]; Find_Max:=M; end; BEGIN Randomize; For i:=1 to M do begin For j:=1 to N do begin LNS[i,j]:=Random(256); Write(LNS[i,j]:4); end; Writeln; end; WriteLn; For i:=1 to M do begin MAX[i]:=Find_Max(LNS[i]); WriteLn('Maximum element of line ',i,' is equal to ',MAX[i]); end; ReadLn; END. function FUN(A:ARRAY[1..10] of Integer):Real некорректна. Поэтому приходится вводить промежуточный новый тип данных: TYPE ARR=ARRAY[1..10] of Integer; И уже теперь можно оформить функцию правильно: function FUN(A:ARR):Real Нечто вроде этого применено и в данной программе. Это же обстоятельство вынудило не совсем обычно задать двумерный массив. Вместо LNS:ARRAY[1..M,1..N] of BYTE здесь задано LNS:ARRAY[1..M] of AR; где тип AR определен, как одномерный массив. Такое описание делает более наглядным передачу массива-строки в функцию Find_Max. |
|
10.01.2010, 18:13 | #19 (permalink) |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Vladimir_S а почему недопустима? FUN(A:ARRAY[1..10] of Integer):Real
Мне учитель сказал так именно и задавать... И тогда программу можно реализовать с 2 мерным массивом только вызывать тогда функцию придется для каждой строки массива. или я не прав??? И еще вопрос? я не очень понял превращение 2 мерного массива в одномерный. LNS:ARRAY[1..M] of AR это что правило паскаля какое то? Последний раз редактировалось Dram; 10.01.2010 в 18:16 |
10.01.2010, 19:45 | #20 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
В принципе это не "превращение двумерного массива в одномерный", а просто чуть иное описание двумерного массива. Вот представьте себе, например, матрицу (двумерный массив), имеющую 3 строки и 4 столбца. Ее можно описать, как A:ARRAY[1..3,1..4] of REAL; Но если в той же матрице каждую строку рассматривать как одномерный массив, то можно записать и так: A:ARRAY[1..3] of ARRAY[1..4] of REAL; И, наконец, если в начале программы массив-строка был объявлен типом, т.е. TYPE AR=ARRAY[1..4] of REAL; то массив может быть задан, как A:ARRAY[1..4] of AR; А теперь - внимание! ВСЕ ТРИ ЗАПИСИ МАССИВА А АБСОЛЮТНО ЭКВИВАЛЕНТНЫ! Просто, поскольку аргументом функции в программе выступали строки, то мне показалось, что так нагляднее. Если запутал, извините. Между прочим, при обращении к элементу двумерного массива выражения A[2,3] и A[2][3] тоже абсолютно эквивалентны. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|