![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 14.10.2014
Сообщений: 4
|
![]()
Задано количество строк и столбцов прямоугольной матрицы символов и значения ее элементов. Найти количество неповторяющихся слогов в виде последовательности согласной и гласной букв, расположенных слева направо и сверху вниз и вывести их на экран
Код:
|
![]() |
![]() |
![]() |
#2 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Ты серьёзно надеешься, что такую колбасу реально кто-то читать будет?
Мне даже компилятор жалко. Препод-маньяк запретил использовать функции? Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 14.10.2014
Сообщений: 4
|
![]()
их еще не проходили , программирование только началось
|
![]() |
![]() |
![]() |
#4 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
![]() Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 14.10.2014
Сообщений: 4
|
![]()
посмотрел я функции , написал с с помощью функций , но проблема то у меня не в этом, а в том что не со всем получается с условием , я не прошу написать его, только намекнуть , подкинуть идею
|
![]() |
![]() |
![]() |
#6 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#7 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
даже две. первая - заводите отдельный одномерный массив для хранения найденных слогов (его размер можно взять с избытком, слогов явно будет меньше произведения строк на столбцов, поэтому размер массива можно взять (10*10) slogi[100] вначале индекс слогов равен -1 (т.е. количество равно индекс + 1 == нулю). потом правильно (вы перебираете неправильно, см. ниже ремарку) перебирать сочетания символов, если нашли слог (т.е. слева или сверху isSoglasnay(a[i,j]) и справа isGlasnay(a[i,j+1]) или снизу isGlasnay(a[i+1,j]) ) - то нашли слог. Каждый найденный слог проверять на наличие в этом массиве (можно прямо перебором), если его там нет - добавлять в массив, увеличив индекс найденных слогов. При поиске слогов проверяем индексы строки, столбца, чтобы НЕ выскочить за пределы массива! после окончания основного цикла перебора массива A можно вывести содержимое массива slogi - это будут найденные слоги. второй вариант немного сложнее алгоритмически и чуть менее эффективен, зато не потребует дополнительной памяти в массиве. Он заключается в написании отдельной функции, которая проверяет, встречается ли найденное сочетание символов РАНЕЕ. "Ранее" - это значит либо строка i<iChecked, либо, если i==iChecked, столбец j<jChecked. тогда поступаем так. Тот же цикл поиска слогов (см. вариант 1). Если нашли слог, то вызываем функцию проверки (передаём в неё текущие индексы проверяемого слога). Эта функция возвращает true - если символы ранее не встречались и false - в противном случае. увеличиваем счётчик найденных слогов. В этом варианте найденный уникальный слог надо сразу выдавать на экран. Потому что сами слоги мы нигде не храним. Получится, что сначала будут выведены на экран все уникальные слоги, а потом, после окончания перебора массива, можно будет выдать и их количество. если надо - набросаю пример алгоритма на псевдокоде... ремарка. да и цикл перебора у Вас написан с ошибкой, подумайте, что будет в этой строке: Цитата:
Последний раз редактировалось Serge_Bliznykov; 15.10.2014 в 10:44. |
||
![]() |
![]() |
![]() |
#8 |
Регистрация: 14.10.2014
Сообщений: 4
|
![]()
Спасибо, понял
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В прямоугольной матрице определить столбец, в котором все элементы расположены в порядке возрастания их значений (Unit и Program) | 6565 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 08.06.2014 21:06 |
Oпределить количество слов, состоящих из одного, двух, трех и более слогов. | TIGRA3 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 03.02.2014 21:16 |
Минимакс в прямоугольной матрице | L3zh1Y | Общие вопросы Delphi | 4 | 19.01.2012 18:31 |
в целочисленной прямоугольной матрице вывести элементы последней строки в обратном порядке | fanofinter | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 07.11.2011 11:14 |