![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как записать массив в память [D7, WinXP]
Griffon © (2005-06-01 12:52:00)Добрый день! Подскажите как записать массив целых чисел, введенный в Мемо, в память под именем mas и обработать его функциями Max и Min.
Griffon (2005-06-10 13:10:00) [1]Defunct БОЛЬШОЕ СПАСИБО!
Подкажи хорошую книгу по Delphi для начинающих.
Defunct (2005-06-10 01:43:00) [2]Griffon (09.06.05 10:11) [35]
С самого начала "карьеры" с Delphi не путайте типы с переменными и все будет хорошо. Типы объявляйте начиная с ключевой буквы T, а переменные без T.
У вас получается каша, в одном примере mas это тип, а в другом это уже переменная. Если вы тип массива объявите как TMas , а переменную с которой будут работать все отстальные процедуры/функции как mas , то проблемы сразу отпадут.
Наглядный пример:
Implementation
...
Type
TMas = array of integer; // <--- Объявляем тип
var
Mas : TMas; // Объявляем глобальную переменную
// За пределами всех функций
function max(var b: TMas ) : integer;
const
MinInt = Low(Integer);
var
i: Integer;
begin
result:=MinInt;
for i := Low(b) to High(b) do
if b[i] > result then
result := b[i];
end;
// И где-то в коде передаем нашей функции массив:
...
<Какая-то переменная> := Max( Mas );
...
Надеюсь, я правильно понял Вашу проблему.
ЮЮ (2005-06-09 10:35:00) [3]объяви его в private секции описания классы формы и выкини из локальных переменных
Virgo_Style (2005-06-09 10:25:00) [4]Griffon (09.06.05 10:11) [35]
Учебник есть, говоришь? Вот и читай... Иначе бесполезно все это...
Griffon (2005-06-09 10:11:00) [5]Юра как я объявлю массив за пределами всех процедур, если я его ввел в Мемо, а затем записал в память в ходе продецуры следующим образом:
for i := 0 to Memo.Lines.Count - 1 do
mas[i] := IntToStr(Memo.Lines[i]);
Юрий Зотов (2005-06-09 07:56:00) [6]> Griffon (09.06.05 05:16) [32]
Надо объявить массив ЗА пределами всех процедур. Например, после слова implementation. А вообще - см. [33]. Учиться программировать без книг - это примерно как пытаться запрыгнуть на Луну без разбега. Сколько ни прыгай - толку не будет.
Просто Джо (2005-06-09 05:19:00) [7]Рекоммендую все-таки почитать об области видомости переменных в обычном учебнике по Паскалю. Это от силы1-2 странички.
Griffon (2005-06-09 05:16:00) [8]Подкажите пожалуйста. Как обратиться из другой процедуры к массиву записанному в память [4] в первой процедуре и вызвать функцию Мах для его обработки, если конструкция записана в разделе Implementation, а то у меня что-то ничего не получается.
Юрий Зотов (2005-06-07 06:01:00) [9]> Griffon (07.06.05 05:16) [30]
Тогда в чем же проблема? Так держать - и все получится.
Griffon (2005-06-07 05:16:00) [10]Спасибо Юра, но эту функция я еще вчера сделал. Благодаря ответу Defunct [19].
Юрий Зотов (2005-06-06 13:58:00) [11]> Griffon (06.06.05 13:30) [28]
> С чего я должен научиться, если нет примеров с использованием
> таких конструкций.
С головы, дружище. Исключительно с головы. Собственной.
Понимаете, изучение программирования (и не только его) требует не только читать, но еще и думать. Самостоятельно.
Иначе никакое чтение не поможет.
Берем пример [19] и переделываем его под функцию min.
function min(var b: mas): integer;
const MaxInt = High(Integer);
var i: Integer;
begin
result := MaxInt;
for i := Low(b) to High(b) do
if b[i] < result then
result := b[i];
end;
Теперь сравните эту функцию с [19], найдите отличия и скажите - неужели, имея перед глазами [19], так сложно было написать ее самому?
Griffon (2005-06-06 13:30:00) [12]С чего я должен научиться, если нет примеров с использованием таких конструкций.
dmitry501 (2005-06-06 10:33:00) [13]Griffon (06.06.05 10:15) [26]
Ну вообще-то одна из задач обучения и состоит в том, что бы Вы могли научиться самостоятельноделать подобные задачи.
Griffon (2005-06-06 10:15:00) [14]Это не курсовая работа. Я выписал курс Програмирование в Delphi в МИФИ. В учебные материалы входит этот учебник и самоучитель на CD и 6 контрольных. Ни в учебнике, ни в самоучителе ничего не говориться об этих функциях, а контрольных они есть. До этого я вообще не занимался программированием так откуда я могу знать, как писать обработчики для функций в таких конструкциях.
Anatoly Podgoretsky (2005-06-06 08:56:00) [15]Учебник для того чтобы учиться, решений курсовых задач там нет.
Griffon (2005-06-06 08:52:00) [16]Если бы было в учебнике, я бы тогда не писал сюда. У немя учебник Delphi 6. Програмирование на Odject Pascal. Автор Н.Культин.
dmitry501 (2005-06-06 07:24:00) [17]Griffon (06.06.05 6:25) [22]
В учебнике.
Griffon (2005-06-06 06:25:00) [18]Defunct, если я бы знал как, то не задавал бы вопросы. Подскажи где можно посмотреть обработчики функций для таких конструкций.
Defunct (2005-06-05 18:16:00) [19]> Griffon
> Min, Summa
Это вы сделаете самостоятельно
Griffon (2005-06-05 08:10:00) [20]Спасибо Defunct. Подскажи аналогичный обработчик для функции Min.
И обработчик для следующей конструкции: Function Summa (var c:mas; m:integer):integer; для обработки массива введенного в TstringGrid