![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
fly |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите разобраься с задачкой.Условие такое:
Вводиться массив чисел MxM.Определить,сколько в нём пар одинаковых соседних элементов. Пример: Вводим массив размером 4x4 1 2 3 4 1 3 4 5 5 2 2 3 9 2 6 5 Ответ:3 Вот коешто написал: Код var A:array[1..100,1..100] of integer; n,b,i,j:integer; begin writeln('vv razmer massiva'); readln(n); for i:=1 to n do writeln('vvodite',n,'chisel'); for i:=0 to n-1 do begin for j:=0 to n-1 do begin Write('...'); Readln(a[i,j]); end; b:=0; for i:=1 to n-1 do begin if a[i,1]=a[i,2] then b:=b+1; if a[i,1]=a[i+1,2] then b:=b+1; if a[i,1]=a[i+1,1] then b:=b+1; for j:=2 to n-1 do begin if a[i,j]=a[i,j+1] then b:=b+1; if a[i,j]=a[i+1,j] then b:=b+1; if a[i,j]=a[i+1,j+1] then b:=b+1; if a[i,j]=a[i+1,j-1] then b:=b+1; end; if a[i,n]=a[i+1,n] then b:=b+1; if a[i,n]=a[i+1,n-1] then b:=b+1; end; for i:=1 to n-1 do if a[n,i]=a[n,i+1] then b:=b+1 end; writeln(b); readln; end. Но почемуто когда вводишь такой массив: 1 2 3 4 1 3 4 5 5 2 2 3 9 2 6 5 Ответ получается 42,а должно быть 3. Что неправильно в моём тексте? |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
count := 0; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
мисс_граффити |
![]()
Сообщение
#3
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
ну, во-первых, ты считаешь и диагональные пары.
во-вторых, пары считаются по 2 раза. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
fly |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Когда вводишь такой массив:
1 2 3 4 1 3 4 5 5 2 2 3 9 2 6 5 Ответ получается 24,я должно быть 3.Никак не пойму где ошибка.Вот мой текст Код var A:array[1..100,1..100] of integer; n,i,j:integer; count:integer; begin writeln('vv razmer massiva'); readln(n); for i:=1 to n do writeln('vvodite',n,'chisel'); for i:=0 to n-1 do begin for j:=0 to n-1 do begin Write('...'); Readln(a[i,j]); end; count := 0; for i := 1 to n do for j := 1 to n do begin if (succ(j) <= n) and (a[i, j] = a[i, succ(j)]) then inc(count); if (succ(i) <= n) and (a[i, j] = a[succ(i), j]) then inc(count); end; writeln(count); readln; end; end. Где у меня ошибка? Сообщение отредактировано: fly - 4.05.2007 21:57 |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата Никак не пойму где ошибка При вводе данных... Почему ты записываешь информацию с 0-го индекса, хотя выше написано, что матрица индексируется с 1? Вот эти нули (в последнем столбце и последней строке) и делают тебе проблему... |
fly |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo Если записывать информацию с 1 индекса то получается вот что:
Указываем размер массива 4x4 Начинаем ввод значений массива: 1 2 3 4 1 3 4 5 5 2 2 3 Но после ввода третьей строки прога пишёт ответ 19.Тоесть до ввода последней строки дело не доходит. Кто нибуть знает в чём может быть проблема? Сообщение отредактировано: fly - 5.05.2007 16:48 |
мисс_граффити |
![]()
Сообщение
#7
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
for i:=1 to n do begin а не до n-1 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Ха... Так у тебя структура программы нарушена... Смотри внимательно, что я поменял...
var(У тебя были неправильно вложенные циклы. Турбо-Паскаль на это внимания не обращает, но это есть ошибка...) |
fly |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo Всёравно прога работает неправильно.
Если указываешь размер массива 4x4 то после ввода четвёртой строки ввод не прекращается,приходится вводить ещё 12 строк .Если указать размер массива 2x2,то приходится вводить не 2 строки а 4. Сообщение отредактировано: fly - 5.05.2007 18:09 |
klem4 |
![]()
Сообщение
#10
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
ввод не по строкам а по элементам, сделай подсказку в цикле и все будет тебе понятно
or i:=1 to n do -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
fly, я перед тем как запостить - проверил на твоем примере... Так что в следующий раз - уточняй, что "прога у меня работает неправильно."
А вводишь 16 строк - потому что ReadLN ... И потом... Ты изначально спрашивал что? Почему выдается неправильный ответ? Тебе не кажется, что проблема организации ВВОДА данных - это уже другая проблема? Сообщение отредактировано: volvo - 5.05.2007 18:15 |
fly |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну дык я вначале и спросил про неправыльный ответ,а потом про ввод данных.
С здачкой разобрался))) Спасибо за помощь))) |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:27 |