Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как записать массив в память [D7, WinXP]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо