IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массивы
starmaster
сообщение 5.11.2004 17:07
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Почему не работает этот пример?
Код

program Project2;

{$APPTYPE CONSOLE}

uses
 SysUtils;

var A,C,i:integer;
var Mas:array of integer;
begin
 i:=0;
 repeat
      ReadLn(A);
      Mas[i]:=A;
      inc(i);
 until A=0;
 SetLength(Mas,i);
 C:=Length(Mas);
 WriteLn(C);
 ReadLn;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 5.11.2004 17:38
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Потому что программист его писал хреновый! :p8:
setlength(Mas,<len>);

Перед тем как писать вопрос в форуме нужно хотяб посмотреть описание ошибки в справке, а если уж там не понятно написано, хотяб написать какая возникла ошибка! <_<


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
xds
сообщение 5.11.2004 18:39
Сообщение #3


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Там "Access Violation": программа пытается записывать данные в динамический массив, не выделив предварительно память под них (не определив размер массива, достаточный для добавления очередного элемента). Работоспособный код, полученный из данного путем наименьшего сопротивления, будет выглядеть так:
Код
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var A,C,i:integer;
var Mas:array of integer;
begin
i:=0;
repeat
  ReadLn(A);
  SetLength(Mas,i + 1);
  Mas[i]:=A;
  inc(i);
until A=0;
C:=Length(Mas);
WriteLn(C);
ReadLn;
end.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 5.11.2004 18:51
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


xds, все, конечно, правильно.. но зачем писать проги тем кто даже хелп по ctrl+f1 читать не хочет?

Сообщение отредактировано: Digitalator - 5.11.2004 18:52


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
xds
сообщение 5.11.2004 18:58
Сообщение #5


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Иногда люблю поиграть в снисходительного... rolleyes.gif


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 5.11.2004 19:39
Сообщение #6


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


Цитата
Потому что программист его писал хреновый!

Digitalator, попрошу не выражаться !!! angry.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 5.11.2004 21:11
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


А что такого? Не нравятся подобные выражения, исправьте правила форума - никого из участников я тут не оскорблял.... ответ вполне даже конкретный на поставленный вопрос lol.gif

ЗЫ: не знаю как у вас, сколько видел форумов, ни на одном подобные выражения не считались нарушениями


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 5.11.2004 21:16
Сообщение #8


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


я не сказал, что это нарушение, просто существует такое понятие, как культура речи ;)


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 5.11.2004 21:22
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Ну знаешь ли..........

Когда модеры/админы пишут подобные:
Цитата
попрошу не выражаться

посты, считается что были нарушены правила. Если правила не были нарушены, модеры/админы молчат.

Или это пример того, как флудят модеры? smile.gif реши уж наконец, ты занимаешься серьезным делом или пытаешься везде где только можно свое слово вставить (не в обиду)

и как посоветовал тебе олег: не переуссердствуй. :no:


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 5.11.2004 21:29
Сообщение #10


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


Цитата
Когда модеры/админы пишут подобные:

а если это была просьба не как модера, а как человека ?
мне лично не приятно видеть такие посты...

Цитата
Или это пример того, как флудят модеры?

и вот, чтобы флуд не продолжать остановим сей флейм, OK ? :p4:


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 5.11.2004 21:40
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Цитата
мне лично не приятно видеть такие посты...

Да нуууууууууууууууу rolleyes.gif

Цитата
и вот, чтобы флуд не продолжать остановим сей флейм, OK ?

ОК!


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 6.11.2004 6:47
Сообщение #12


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
а если это была просьба не как модера, а как человека ?
мне лично не приятно видеть такие посты...

В таком случае пиши ему на PM.
А то вышло, что почти всетема зафлуженна. smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
starmaster
сообщение 6.11.2004 14:59
Сообщение #13





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Ладно, ладно ребята, хватит тут вам обсуждать культуру речи и тому подобное. Просто с массивами я недавно начал работать и перед тем как задавать вопрос сюда читал книжку и искал в инете, но там нигде не было написано что в динамических массивах SetLength устанавливается до присваивания какого-либо значения в массив. Вот подумайте логически: почему бы массиву самому не определять свой размер? Я также думал...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 6.11.2004 16:55
Сообщение #14


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
: почему бы массиву самому не определять свой размер

Потому что у него нечем думать smile.gif
а если серьезно, то память-то ограниченна...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 13:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"