Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Символьный массив

Автор: Сергей Меркурьев 3.06.2009 12:33

В общем я столкнулся с такой проблемой что у меня массив символов не заполняется полностью!
Вот что я делаю:

  var N,M,i,j,k:longint;
a:array [1..101,1..101] of char;
begin
Readln (N,M);
For i:=1 to N do
For j:=1 to M do
Read (a[i,j]);
...
end.


В чём здесь ошибка?

Автор: Ozzя 3.06.2009 12:50

n,m какие вводятся? Если меньше 101, то понятно... ;)

Автор: Сергей Меркурьев 3.06.2009 12:51

Ну к примеру поле для морского боя 10*10. А в чём дело то?

Автор: Ozzя 3.06.2009 12:55

Исправь на

a:array [1..10,1..10] of char;

Ты же массив 101 на 101 задаешь, а вводишь 100 значений. Они у тебя все в 1-й строке и помещаются.


Автор: Сергей Меркурьев 3.06.2009 12:56

СТранно, ну а если мне к примеру требуется любое поле в данном интервале?

Автор: Lapp 3.06.2009 12:57

Цитата(Сергей Меркурьев @ 3.06.2009 9:33) *
В чём здесь ошибка?
Как ты вводишь данные? Через пробел или энтер жмешь после каждого? Тут нужен ReadLn, а не Read. И вводить через энтер.

Автор: Ozzя 3.06.2009 12:57

Не понял вопроса. Поясни

Автор: Сергей Меркурьев 3.06.2009 13:00

Сначала я ввожу размер поля к примеру 4*4 (Enter) и хочу я туда закинуть данное поле:
****
**..
*...
*...

Автор: Lapp 3.06.2009 13:10

Цитата(Сергей Меркурьев @ 3.06.2009 10:00) *
Сначала я ввожу размер поля к примеру 4*4 (Enter) и хочу я туда закинуть данное поле:
****
**..
*...
*...

Ага, ясно.
Извиняюсь по поводу первого мессаджа, не совсем то сказал.

Ты должен вводить так:
4 4
******..*...*...

Автор: Сергей Меркурьев 3.06.2009 13:12

А если мне нужно вводить именно таким образом который показан в мом примере?

Автор: Lapp 3.06.2009 13:13

Либо делай ReadLn во внешнем цикле (это правильнее, конечно)

  For i:=1 to N do begin
For j:=1 to M do
Read (a[i,j]);
ReadLn
end;

Автор: Сергей Меркурьев 3.06.2009 13:16

Спасибо Вам большое за помощь!!!
Вот теперь задача чуть-чуть недорошевивается lol.gif lol.gif lol.gif

Автор: Lapp 3.06.2009 13:16

Происходило следующее. Твои энтеры читались и аккуратно записывались в массив. Поэтому процесс записи заканчивался реально раньше. Последние символы вообще не читались.

Добавлено через 1 мин.

Цитата(Сергей Меркурьев @ 3.06.2009 10:16) *
недорошевивается
Перведи, плз

Автор: Сергей Меркурьев 3.06.2009 15:17

Ой))) Чуть-чуть не то написал - "Недорешивается" lol.gif
В общем эту проблему я уже решил))
Я делал программу типа морского боя.