Автор | Сообщение |
|
Отправлено: 27.04.21 17:31. Заголовок: Задание 24 №3786
Написал программу: var f: text; a, abc, max_letter_string: string; k, i, number, kmax, kmax1, max_letter, max_mas, max_mas1: integer; count: array [1..26] of integer; begin assign(f, '1.txt'); reset(f); abc := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; kmax := -1; kmax1 := -1; max_mas := -1; max_mas1 := -1; K:=1; while not eof(f) do begin readln(f, a); for i := 1 to length(a) - 1 do begin number := pos(a[ i], abc); inc(count[number]); if a[ i] = a[i + 1] then inc(k) else if kmax < k then begin kmax := k; k := 1; end; end; number := pos(a[length(a)], abc); inc(count[number]); if kmax < k then begin kmax := k; k := 1; end; if kmax1 < kmax then begin kmax1 := kmax; for i := 1 to 26 do if count[ i] > max_mas1 then max_mas1 := count[ i]; for i := 1 to 26 do if count[ i] = max_mas1 then begin max_mas := i; break; end; max_letter := count[max_mas]; max_letter_string := abc[max_mas]; end; kmax := -1; k := 1; for i := 1 to 26 do count[ i] := -1; max_mas := -1; max_mas1 := -1; end; writeln(max_letter); writeln(max_letter_string); end. Результат работы программы не совпадает с ответом. Программа выводит Т, когда в ответе К. При этот сделал второй вывод, который выводит количество данных букв в строке для проверки, посчитал также вручную в этой строке, букв Т там больше, чем букв К. Заранее буду благодарен, если кто мне ответит, что здесь не так.
|
|
|
Ответов - 10
[только новые]
|
|
|
| Администратор
|
Сообщение: 2756
|
|
Отправлено: 27.04.21 17:36. Заголовок: Давайте убедимся, чт..
Давайте убедимся, что мы одинаково понимаем условие задачи. 1) программа должна найти строку, где находится самая длинная цепочка идущих подряд одинаковых букв; вы должны найти цепочку из 10 букв М 2) в этой строке нужно определить букву, которая встречается чаще всего (это К, она встречается 49 раз). 3) определяем, сколько всего букв К в файле.
|
|
|
|
Отправлено: 27.04.21 18:16. Заголовок: Да, условие такое. К..
Да, условие такое. Как я написал выше, второй вывод я сделал для проверки, чтобы убедиться, что программа правильно работает, но уже при первом выводе выходит неправильное значение, выводится другая буква. Поэтому я и не могу найти ошибку здесь
|
|
|
|
| Администратор
|
Сообщение: 2757
|
|
Отправлено: 27.04.21 18:21. Заголовок: Арсений Р пишет: при..
Арсений Р пишет: цитата: | при первом выводе выходит неправильное значение, выводится другая буква. |
|
Вы уже локализовали ошибку. Теперь нужно отлаживать. Отладьте небольшую программу, которая определяет, какая буква встречается в символьной строке чаще всего.
|
|
|
|
Отправлено: 27.04.21 18:28. Заголовок: Да, я обнаружил эту ..
Да, я обнаружил эту ошибку, но исправить её не получается. На примере, приведённом в задании, программа работает корректно, на других примерах, сделанных мною для проверки, проблем тоже не возникало. Но вот при запуске самой программы с данным файлом ответ не совпадает. Поэтому у меня и возникли сомнения, что есть вероятность ошибки в ответах.
|
|
|
|
| Администратор
|
Сообщение: 2759
|
|
Отправлено: 27.04.21 18:35. Заголовок: На сайте есть авторс..
На сайте есть авторское решение, вы можете сравнить со своим. Отлаживайте сначала не на файле., а на одной строке, где есть несколько цепочек одинаковых символов. Или можете найти строку в файле, где 10 букв М, и отлаживать на ней. За вас это никто не сделает.
|
|
|
|
Отправлено: 27.04.21 18:38. Заголовок: А нельзя ли, пожалуй..
А нельзя ли, пожалуйста, указать, где оно находится? Не могу найти
|
|
|
|
| Администратор
|
Сообщение: 2760
|
|
Отправлено: 27.04.21 18:44. Заголовок: Это задача 24.165 из..
Это задача 24.165 из основного сборника. Решение есть здесь.
|
|
|
|
Отправлено: 27.04.21 18:49. Заголовок: Простите, но здесь п..
Простите, но здесь представлены только 26-ые задачи, вы точно отправили тот сборник?
|
|
|
|
| Администратор
|
Сообщение: 2762
|
|
Отправлено: 27.04.21 18:58. Заголовок: Да, виноват. Я попра..
Да, виноват. Я поправил ссылку.
|
|
|
|
Отправлено: 27.04.21 19:03. Заголовок: Спасибо, теперь разо..
Спасибо, теперь разобрался с решением. Ещё раз спасибо большое за ответ.
|
|
|
|