![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Так объявлять нельзя. надо так: var d: array [0..20,0..30] of integer; -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
МММ
Я только не понял что значит: memo2.lines.add(inttostr(c[i])) Три недели за Паскалем только работаю, до этого пару раз пересекался, но так программировать и не научился. Вот, с помощью всеминого разума осваиваю пока только азы, самое основное. А токой строчки я не встречал. Можно разьяснить поконкретней, что она делает? |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Это вот как раз уже к Delphi относится. Не обращай внимания, пока.
Так четные места, или сами значения массива? Я так понял, что значения. А если места, то нет смысла проверять. Просто начинаем цикл с 0 и увеличиваем на 2 каждый шаг. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Да neutrino ты погорячился с константами, ни в Pascal ни в Delphi так объявлять массивы нельзя! Мы же уже обсуждали в этом топике эту тему, прочитай 2-3 страницу. -------------------- |
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
Pegas
Можно пояснить мои представления.Когда задается массив например целых чилел a(20,30) то это значит, что массив сожержит 20 строк и 30 столбцов (мысленно представляю таблицу Экселя). Т е объявляя массив d: array [0..20,0..30] of integer; Я даю понять PC, что имеется некие ячейки данных в пределе этого объявленного массива. А как тогда PC заполняет эти ячейки? Т е изначально, я так понимаю, они пусты, нужно задать, какими числами массив заполнен. Вот в прирмерах выше массив заволняет Byte (да?), или я все не так понимаю. Т е хотелось бы вывести этот массив на экран, что бы видеть значения, корорые потом обрабатываются, как в третей задаче. Можно про это пояснить? |
|||
|
||||
| Black_Joker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 9.11.2002 Где: Таганрог Репутация: нет Всего: нет |
Когда только объявляешь массив, т.е.
var d: array [] of begin Далеко не всегда он заполнен нулями, я сталкивался с тем, что там был всякий мусор, вписанный наусмотрение системы. И еще, Sum, как переменную использовать не желательно, т.к. это функция из одного юнита (к сожаленю забыл из какого, но кажется что-то про массивы) |
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
Итак. Вот три программы, ошибок при проверки нет, но меня волнует
не это. Хочу спросить, какой результат должен быть выведен на экран, после завершения расчетов программы? Например в третей программе он вывел 0. Так и должно быть, или чего-то получается? Первая програма, по-моему работает корректно. Напомню, нужно было заполнить линейный массив целых чисел а(n) по правилу а[i]=b * i! Program massiv1; const n: Integer = 25; type TMyArray = array[0..25] of Byte; var Idx, b: Integer; а: TMyArray; begin Writeln ('inter 1 element b='); Readln (b); for Idx := 0 to 25 do a[idx]:=b*idx; Writeln ('Reshenie=',a[idx]); Readln; end. На счет второй программы я сомневаюсь, похоже, я тут что-то напутал, т е не вижу результатов своих (и наших элементов в массиве. В линейном массиве целых чисел d(25) заменить все элементы, меньшие нуля на квадрат этих элементов. Как можно сделать, сначала чтобы увидеть этот массив, а потом увидеть результат замены? Program massiv2; const n: Integer = 25; type TMyArray = array[0..25] of Byte; var Idx, B: Integer; d: TMyArray; begin for Idx := 0 to 24 do if d[Idx]<0 then d[idx]:=d[idx]*d[Idx]; //может лютче Sqr(d[idx]) ? Writeln ('Reshenie=',d[idx]); Redln; end. Ну и третья program massiv3; const n = 20; m = 30; type TMyArray = array[0..n,0..m] of Byte; var Sum,i,j : integer; a: TMyArray; Begin Sum:=0; for i:=0 to n do for j:=0 to m do if a[i,j] mod 2 =0 then sum:= sum+a[i,j]; Writeln ('Reshenie =' sum); Readln; end. Так чего тут нуль всегда в ответе |
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
Black_Joker
"И еще, Sum, как переменную использовать не желательно" А что можно использовать в альтернативу? Неужели вручную 600 значений суммировать |
|||
|
||||
| Spawn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 278 Регистрация: 3.6.2002 Репутация: нет Всего: нет |
Ты перед тем как проверять заполнял массив Randomize; for Idx := 0 to 24 do d[Idx]:=Random(-100-100); То же самое можно сказать про третий массив. |
|||
|
||||
| Spawn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 278 Регистрация: 3.6.2002 Репутация: нет Всего: нет |
[quote=Spawn,05.1.2003,23:30][quote=Pusillanimous,05.1.2003,23
"И еще, Sum, как переменную использовать не желательно" А что можно использовать в альтернативу? Неужели вручную 600 значений суммировать Все что придет в голову, хоть abrakadabra )) Но лучше переменным давать осмысленные значения, иначе потом можно запутаться в них( особенно ели программа большая) P.S. Только там есть пара исключений с которых не может начинаться переменная, например с цифры нельзя начинать ее обозначение, с таких знаков как !,",№,;,%,:,?,*(Такие занки и внутри переменной запрещены) и т.д. |
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
"Ты перед тем как проверять заполнял массив Ну наконец, я дополз до этого! Конечно не заполнял. И откуда я знал, что они не заполнены? Я уже спрашивал, но мой вопрос оставлен был без внимания: "Можно пояснить мои представления.Когда задается массив например целых чилел a(20,30) то это значит, что массив сожержит 20 строк и 30 столбцов (мысленно представляю таблицу Экселя). Т е объявляя массив d: array [0..20,0..30] of integer; Я даю понять PC, что имеется некие ячейки данных в пределе этого объявленного массива. А как тогда PC заполняет эти ячейки? Т е изначально, я так понимаю, они пусты, нужно задать, какими числами массив заполнен. Вот в прирмерах выше массив заволняет Byte (да?), или я все не так понимаю. Т е хотелось бы вывести этот массив на экран, что бы видеть значения, корорые потом обрабатываются, как в третей задаче. Можно про это пояснить? " Читал про массивы я , конечно немного, страниц 5, но там не нашел, как их заполнять. Я подумал, объявление массива само собой подразумевает его заполнение, а byte значит, что он заполнен целыми числами. Теперь конечно я так не думаю. А можно про заполнение массива какую-нить ссылочку? "Если ты этого я не делал, то я думаю ни чего работать и не будет)) Ты сначала должен заполнить массив числами, например случаяными:" А как заполнить массив не случайными, а целыми |
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
|
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
И откуда я знал, что они не заполнены?
|
|||
|
||||
| Pusillanimous |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.1.2003 Репутация: нет Всего: нет |
Риторический вопрос, просьба не обращать внимания
|
|||
|
||||
| Spawn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 278 Регистрация: 3.6.2002 Репутация: нет Всего: нет |
Я уже приводил пример))): Randomize; for Idx := 0 to 24 do d[Idx]:=Random(-100-100); //заполнение числами от -100 до 100 Поставь ето перед проверкой значений элементов массива. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |