Форум: "Основная";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
ВнизКак записать массив в память Найти похожие ветки
← →
Griffon (2005-06-01 12:52) [0]Добрый день! Подскажите как записать массив целых чисел, введенный в Мемо, в память под именем mas и обработать его функциями Max и Min.
← →
raidan © (2005-06-01 12:57) [1]Я всегда думал, что массив целых чисел, введенный в мемо, и так в памяти :)
← →
liver (2005-06-01 12:57) [2]напиши функцию обхода строк Meme ну а там уже в строках выделяй элементы, они и будут столбцами массива...
← →
raidan © (2005-06-01 12:59) [3]>liver (01.06.05 12:57) [2]
[радостно хрюкаю]
>Griffon (01.06.05 12:52)
Автор, убей себя с разбегу о стену.
Потому что вопросы так не задаются.
← →
Digitman © (2005-06-01 12:59) [4]
> как записать массив целых чисел, введенный в Мемо, в память
подразумевается, что массив одномерный, и каждый будущий эл-т - это отдельная строка в Мемо ?
пустячное дело ..
for i := 0 to Memo.Lines.Count - 1 do
mas[i] := IntToStr(Memo.Lines[i]);
> обработать его функциями Max и Min
это как ?
Max и Min не работают с массивами
← →
Юрий Зотов © (2005-06-01 13:00) [5]А зачем ЧИСЛА вводить в Memo?
Не лучше ли прямо в массив чисел их и ввести?
← →
Alex Konshin © (2005-06-01 13:02) [6]Опять лабораторные пошли...
← →
ANB © (2005-06-01 13:02) [7]
> Юрий Зотов © (01.06.05 13:00) [5]
- это, похоже, автору проблематично. Дал юзеру мемку - и пусть забивает туда числа. Гы. А ник опять такой серьезный.
← →
liver (2005-06-01 13:05) [8]raidan © а чё хрюкаешь-то
← →
Alex Konshin © (2005-06-01 13:09) [9]Орехи почуял
← →
Digitman © (2005-06-01 13:16) [10]
> Alex Konshin © (01.06.05 13:09) [9]
))
← →
raidan © (2005-06-01 13:23) [11]>Alex Konshin © (01.06.05 13:09) [9]
Тогда уж желуди %)
← →
Digitman © (2005-06-01 13:27) [12]вношу на повестку длня предложение - торжественно и скоропостижно переименовать "Орешник" в "Желудёвник" и назначить raidan"а почетным завсегдатаем
в "Апельсинник" как-то рука не поворачивается написать)
← →
Griffon (2005-06-02 06:34) [13]Digitman спасибо за посказку.
Как тогда можно обработать числа введенные в Мемо используя следующую конструкцию: function max(var b; mas):integer;
← →
dmitry501 © (2005-06-02 06:45) [14]Наверно так?
function max(var b: Integer; mas:Array of Integer) : integer;
const MinInt = Low(Integer);
var i: Integer;
begin
result:=MinInt;
for i := 0 to b do
if mas[i] > result then
result := mas[i];
end;
← →
Defunct © (2005-06-02 07:01) [15]> dmitry501
Видимо уважаемый Griffon, будучи отвлеченным какими-то более важными проблемами, был не в состоянии точно переписать задание лабораторки. Чем ввел вас в заблуждение, и заставил написать неверный пример. imho в оригинале задания было не так:
> function max(var b; mas):integer;
а так:
function max(var b: mas):integer
← →
dmitry501 © (2005-06-02 08:19) [16]Defunct © (02.06.05 7:01) [15]
тогда, переменную b надо считать через High(mas)
← →
Griffon (2005-06-03 07:54) [17]Defunct прав. Конструкция действительно выглядит так: function Max(var b: mas):integer
Как тогда считать через High(mas)
← →
dmitry501 © (2005-06-03 12:20) [18]function max(var b:mas) : integer;
const MinInt = Low(Integer);
var i: Integer;
begin
result:=MinInt;
for i := Low(mas) to High(mas) do
if mas[i] > result then
result := mas[i];
end;
← →
Defunct © (2005-06-04 02:59) [19]> dmitry501
Разрешите поправить, ведь mas это некий тип, а не переменная:
type mas : array of integer; //
function max(var b:mas) : 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;
← →
Griffon (2005-06-05 08:10) [20]Спасибо Defunct. Подскажи аналогичный обработчик для функции Min.
И обработчик для следующей конструкции: Function Summa (var c:mas; m:integer):integer; для обработки массива введенного в TstringGrid
← →
Defunct © (2005-06-05 18:16) [21]> Griffon
> Min, Summa
Это вы сделаете самостоятельно
← →
Griffon (2005-06-06 06:25) [22]Defunct, если я бы знал как, то не задавал бы вопросы. Подскажи где можно посмотреть обработчики функций для таких конструкций.
← →
dmitry501 © (2005-06-06 07:24) [23]Griffon (06.06.05 6:25) [22]
В учебнике.
← →
Griffon (2005-06-06 08:52) [24]Если бы было в учебнике, я бы тогда не писал сюда. У немя учебник Delphi 6. Програмирование на Odject Pascal. Автор Н.Культин.
← →
Anatoly Podgoretsky © (2005-06-06 08:56) [25]Учебник для того чтобы учиться, решений курсовых задач там нет.
← →
Griffon (2005-06-06 10:15) [26]Это не курсовая работа. Я выписал курс Програмирование в Delphi в МИФИ. В учебные материалы входит этот учебник и самоучитель на CD и 6 контрольных. Ни в учебнике, ни в самоучителе ничего не говориться об этих функциях, а контрольных они есть. До этого я вообще не занимался программированием так откуда я могу знать, как писать обработчики для функций в таких конструкциях.
← →
dmitry501 © (2005-06-06 10:33) [27]Griffon (06.06.05 10:15) [26]
Ну вообще-то одна из задач обучения и состоит в том, что бы Вы могли научиться самостоятельно делать подобные задачи.
← →
Griffon (2005-06-06 13:30) [28]С чего я должен научиться, если нет примеров с использованием таких конструкций.
← →
Юрий Зотов © (2005-06-06 13:58) [29]> 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-07 05:16) [30]Спасибо Юра, но эту функция я еще вчера сделал. Благодаря ответу Defunct [19].
← →
Юрий Зотов © (2005-06-07 06:01) [31]> Griffon (07.06.05 05:16) [30]
Тогда в чем же проблема? Так держать - и все получится.
← →
Griffon (2005-06-09 05:16) [32]Подкажите пожалуйста. Как обратиться из другой процедуры к массиву записанному в память [4] в первой процедуре и вызвать функцию Мах для его обработки, если конструкция записана в разделе Implementation, а то у меня что-то ничего не получается.
← →
Просто Джо © (2005-06-09 05:19) [33]Рекоммендую все-таки почитать об области видомости переменных в обычном учебнике по Паскалю. Это от силы 1-2 странички.
← →
Юрий Зотов © (2005-06-09 07:56) [34]> Griffon (09.06.05 05:16) [32]
Надо объявить массив ЗА пределами всех процедур. Например, после слова implementation. А вообще - см. [33]. Учиться программировать без книг - это примерно как пытаться запрыгнуть на Луну без разбега. Сколько ни прыгай - толку не будет.
← →
Griffon (2005-06-09 10:11) [35]Юра как я объявлю массив за пределами всех процедур, если я его ввел в Мемо, а затем записал в память в ходе продецуры следующим образом:
for i := 0 to Memo.Lines.Count - 1 do
mas[i] := IntToStr(Memo.Lines[i]);
← →
Virgo_Style © (2005-06-09 10:25) [36]Griffon (09.06.05 10:11) [35]
Учебник есть, говоришь? Вот и читай... Иначе бесполезно все это...
← →
ЮЮ © (2005-06-09 10:35) [37]объяви его в private секции описания классы формы и выкини из локальных переменных
← →
Defunct © (2005-06-10 01:43) [38]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 );
...
Надеюсь, я правильно понял Вашу проблему.
← →
Griffon (2005-06-10 13:10) [39]Defunct БОЛЬШОЕ СПАСИБО!
Подкажи хорошую книгу по Delphi для начинающих.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.048 c