|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.07.2016, 12:40 | #1 |
Регистрация: 27.07.2016
Сообщений: 9
|
Не могу понять алгоритм решения задачи.
Задача.
Дан массив чисел. Найти, сколько в нем пар одинаковых соседних элементов. Решение из учебника. Код:
Пожалуйста, оформляйте Ваш код согласно правилам. У меня несколько вопросов 1. Что это за К := 0 ? Если это отсчет количества элементов, то почему именно отсчет с нуля ведется? Или я неправильно понял? 2. Какую функцию выполняет цикл в строке FOR I := 1 ТО N DO и FOR I := 1 ТО N-1 DO. Что это за N-1? 3. В книге написано "если очередной MAS[ I ] равен следующему MAS[I +1], то увеличиваем зна- чение К на единицу;" А зачем его увеличивать, когда нам надо найти одинаковую пару чисел? Это ж не поиск максимального элемента. Последний раз редактировалось Вадим Мошев; 31.07.2016 в 13:02. |
31.07.2016, 12:46 | #2 | |||||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Цитата:
Код:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Вот уж прямая иллюстрациия фразы "смотрю в книгу - вижу фигу"... Последний раз редактировалось p51x; 31.07.2016 в 12:54. |
|||||||
31.07.2016, 13:05 | #3 |
Регистрация: 27.07.2016
Сообщений: 9
|
Почему у вас на аватарке написано "Профессионал"? Если вы и толком объяснить новичку не можете алгоритм непонятной ему задачи. Или решили умника из себя построить и прикольнуться над начинающим изучать программирование? Слабо нормально объяснить? Мне нужно понять алгоритм задачи. Пока нормального ответа нету. Очень надеюсь, что найдется настоящий профессионал и объяснит по-людски этот фарш из непонятных для меня строк.
|
31.07.2016, 13:46 | #4 | |||||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||||
31.07.2016, 14:05 | #5 | |||||
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,949
|
Цитата:
Во время подсчета мы считаем количество соседних элементов; если мы нашли, то увеличиваем счетчик на единицу, и тогда переменная K станет 1 (0 + 1). Если еще нашли соседние элементы, K станет 2. И т.д. В конечном итоге переменная K покажет сколько соседних элементов. Допустим, если во всем массиве нет соседних элементов, то переменная К так и осталось равным 0, т.е. счетчик остался обнуленным. Это и означает К := 0. Цитата:
1-й цикл означает ввести элементы массива с 1 до 5 (т.е. 5 элементов массива). 2-й цикл означает сравнить соседние элементы. Цикл прогоняется с 1 до N-1 (до 4), "N-1" нужен для того, чтобы в последнем проходе цикла должны сравниваться последний и предпоследний элементы: MAS[I] = MAS[I+1] MAS[4] = MAS[4+1] MAS[4] = MAS[5] - если I подставить Если сделать цикл FOR I := 1 ТО N DO, то увидим следующую ошибку: MAS[I] = MAS[I+1] MAS[5] = MAS[5+1] MAS[5] = MAS[6] - а шестого элемента нет!!! Поэтому цикл лучше прогонять до N-1. Цитата:
Цитата:
Что нужно найти: - одинаковую пару чисел? или - сколько пар одинаковых соседних элементов? Я могу ответить и на 4-й вопрос, который нигде не задавался: если вдруг спросят Цитата:
Последний раз редактировалось newerow1989; 31.07.2016 в 14:13. |
|||||
31.07.2016, 17:59 | #6 |
Регистрация: 27.07.2016
Сообщений: 9
|
Это я уже понял.
Просто нигде нет внятных объяснений. Если б был такой учебник по Паскалю, чтоб каждую строчку кода автор детально объяснял. Тогда не пришлось бы мучиться в догадках, что означает каждая строка или переменная. В задаче же написано сколько пар одинаковых соседних элементов? Последний раз редактировалось Антон18; 31.07.2016 в 18:05. |
31.07.2016, 18:02 | #7 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,949
|
А в чем мое объяснение не понятно?
Сейчас же лето! Последний раз редактировалось newerow1989; 31.07.2016 в 18:09. |
31.07.2016, 18:43 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
вот счётчик (подсчёт количества) и храниться в переменной K вначале там ноль (K:=0 - т.к. вначале обнуляем счётчик. потом увеличиваем его на единичку каждый раз, когда встречается пара одинаковых элементов. например, если Вы введёте 6 чисел 1 2 2 2 2 2 то ответ будет 4. (четыре одинаковых пары соседних элементов). Понятно, почему? |
|
02.08.2016, 14:56 | #9 |
Регистрация: 27.07.2016
Сообщений: 9
|
Проверьте, пожалуйста, мое понимание этой программы.
Код:
|
02.08.2016, 15:01 | #10 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм решения задачи | Amet13 | Помощь студентам | 1 | 21.04.2012 13:16 |
ребят я не могу понять как решать эти задачи!может кто помочь в решении представленной задачи? | Andrusha07 | Помощь студентам | 0 | 09.03.2012 23:08 |
Алгоритм решения задачи | snpccvs | Помощь студентам | 8 | 13.02.2012 22:50 |
Не могу понять алгоритм. | anabenne | БД в Delphi | 15 | 20.06.2011 05:05 |
как понять алгоритм и среду решения для скачивания файлов | genhoo | Помощь студентам | 4 | 05.05.2011 15:19 |