сложная задача на подпрограмму, используется символьный массив |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
сложная задача на подпрограмму, используется символьный массив |
HelpMe |
8.12.2007 11:27
Сообщение
#1
|
Гость |
Требуется ваша помощь в решении этой задачи:
Дан символьный массив. Определить , используя подпрограмму , какие символы встречаются 2 раза , 3 раза , к раз. Повторяющиеся символы и количество их повторений вывести на экран. Немогу составить процедуру , возникает проблема с символами которые повторяются больше 2 - ух раз , незнаю как реализовать ... требуется ваша помощь , спасибо тому кто поможет в решении |
Ozzя |
8.12.2007 12:43
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
|
volvo |
8.12.2007 15:18
Сообщение
#3
|
Гость |
Цитата Немогу составить процедуру , возникает проблема с символами которые повторяются больше 2 - ух раз , незнаю как реализовать Просто:var Если ты покажешь, что за символьный массив, откуда он берется, и почему нельзя пользоваться строками, для этого специально предназначенными - то я расскажу, как заполнить массив counts, чтоб его можно было использовать... Сообщение отредактировано: volvo - 8.12.2007 15:19 |
Гость |
8.12.2007 19:12
Сообщение
#4
|
Гость |
Массив из символов , запоняться должен с клавиатуры ... допустим массив "a a gh pg g p p p g b" из 10 элеметнов , после выполнения программы должно выводиться на экран "a - 2 раза" , "p - 3 раза" ну и соответсвенное если бы был символ повторяющийся 4 раза, то воводился бы и он.
|
Ozzя |
10.12.2007 8:13
Сообщение
#5
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
Массив из символов , запоняться должен с клавиатуры ... допустим массив "a a gh pg g p p p g b" из 10 элеметнов , после выполнения программы должно выводиться на экран "a - 2 раза" , "p - 3 раза" ну и соответсвенное если бы был символ повторяющийся 4 раза, то воводился бы и он. Нет, тебя не об этом спросили. Попросили привести фрагмент программы заполнения символьного массива, написанного тобой. |
HelpME |
13.12.2007 0:23
Сообщение
#6
|
Гость |
извиняюсь , не понял вопроса сразу
|
HelpMe |
14.12.2007 20:21
Сообщение
#7
|
Гость |
Volvo , объесни пожалуйста как нужно заполнять массив для нахождения в нём символов
|
volvo |
14.12.2007 20:25
Сообщение
#8
|
Гость |
Ты сам-то понял, что у тебя написано: В задании сказано, что есть символьный массив, ты показываешь код с массивом строк... И как это понимать?
|
HelpMe |
14.12.2007 20:29
Сообщение
#9
|
Гость |
извиняюсь , ошибочка вышла ... писал ночью , попутал чтото ... массив должен быть и в правду Char
Расскажи как нужно его заполнить и в чём суть вот этой строки в процедуре Код for i := #0 to #255 do if counts[i] = k then write(i); |
volvo |
15.12.2007 2:16
Сообщение
#10
|
Гость |
Мне надоело бороться с тобой. Поскольку я так и не увидел, как именно ты хотел заполнять массив - напишу свой вариант:
varСуть в том, что массив counts индексируется не числом, а символом, то есть, count['a'] после заполнения будет содержать количество символов 'a' в массиве, и т.д. В процедуре - пробегаем по всем символам таблицы ASCII, начиная от #0 (символа с кодом 0), заканчивая #255 (соответственно, символом с кодом 255), и проверяем, равен ли счетчик повторений очередного символа переданному в процедуру значению. Если равен - то печатаем символ... Поскольку символы (в стандартной кодировке 866) расположены по алфавиту в порядке возрастания кодов, и пробегаем мы по всем символам тоже в порядке возрастания их кодов, то и выведенные символы будут упорядочены по алфавиту... |
HelpMe |
15.12.2007 20:56
Сообщение
#11
|
Гость |
Volvo , спасибо за помощь , но твоя программа ищет в массиве только повторения символа "k" , а в условие нужно найти повторение любых символов введённых с клавиатуры , т.е. вводим 10 любых символов (какие символы в условие не оговоренно) и программы выдаёт какие символы повторяются 2 и т.д. раз например
вводим с клавиатуры массив "a b a d a b d i d d" на экране выдаётся "2: b" "3: a" "4: d" , вот в этом и проблема ... как реализовать это я даже не представляю , учусь только первый семестр ... |
Client |
15.12.2007 21:45
Сообщение
#12
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
посмотри здесь, мож поможет Помогите решить, я что-то туплю
|
volvo |
16.12.2007 13:12
Сообщение
#13
|
Гость |
Цитата программа ищет в массиве только повторения символа "k" , а в условие нужно найти повторение любых символов введённых с клавиатуры Да ты что? "А мужики-то не знают" (С) Моя программа ищет в массиве (который ты, кстати, заполняешь неправильно! У тебя 10 символов - максимально, ты же вводишь 19!!! Теперь ты понимаешь, ПОЧЕМУ я все время добивался от тебя информации, КАК ты наконец заполняешь массив? Чтоб ты потом не сказал, что моя же программа неправильно работает!) все символы, которые встречаются К раз, а не все символы "К". Это во-первых. А во-вторых, никто не мешает вызвать процедуру в цикле:for i := 2 to 10 do begin { Ну, можно и не до 10, а до скольки нужно... } |
Текстовая версия | 28.03.2024 16:31 |