Страница 1 из 3123»
Модератор форума: Екатерина_Пашкова 
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » помогите пожалуйста кому не трудно, кому не лень))) (на Паскале))))
помогите пожалуйста кому не трудно, кому не лень)))
АрсикДата: Воскресенье, 25.12.2011, 23:18 | Сообщение # 1

Арслан Батыршин
Ранг: Дошколенок (?)
Группа: Пользователи
Российская Федерация
Уфа

Сообщений:
19
Награды: 0
Статус: Offline
дан текст, содержащий слова на латинице, разделенные пробелами.Определить какие буквы в словах совпадают чаще:первые, последние или вторые и предпоследние.....
Спасибо
YuiSeДата: Понедельник, 26.12.2011, 12:36 | Сообщение # 2

Bvz Afvbkbz
Ранг: Школьник (?)
Группа: Пользователи
Гондурас
Nueva Armenia

Сообщений:
80
Награды: 2
Статус: Offline
Чтобы решить любую задачу, ее надо сначала представить в виде алгоритма. Для этого полезно тщательно пронаблюдать за собой: какие действия вы совершаете при решении поставленного условия без применения компьютера.
Я наверно решал бы задачу так:
1. Понять условие. Без этого ну совсем никуда.
Сейчас я подозреваю, что нужно собрать статистику совпадения симметричных (относительно середины слова) букв в одном слове по всем словам текста, и вывести максимальную величину совпадений и их положение.
То есть сейчас я понял задачу так: результатом входного текста "book was read by Bill" должно стать однократное совпадение второй с предпоследней, а не совпадение первых.
2. Найти первое слово. Т.е. глазами увидеть, где встречается первый пробел.
3. выписать на бумажку список: под номером 1 совпадает ли первая с последним (если да, то поставить 1, если нет, то ничего или 0), под номером 2 совпадает ли вторая с предпоследней и т.д. до середины слова. Причем, если D=d, то сравнивать буквы надо переводя их в верхний регистр.
4. Перейти к другому слову. Прибавляя к соответствующим элементам списка 1 там, где есть повторения.
5. И так далее. Если слово было последним остановиться.

Теперь нужно сформулировать и решить логические подзадачи: как определить, где середина слова; как определить первое и последнее слово, ведь на их границах не будет пробелов; как избежать проверки слов из одной буквы...
Потом нужно сформулировать вопросы к средству программирования и, естественно, выбрать на них ответы: как искать пробелы, как хранить и расширять список.

После всего этого задача о нахождении максимального элемента списка становится тривиальной.

Дальнейшая реализация в коде уже не представляет большого труда.

P.S.: правда, это все поможет, только если автору темы самому не лень smile


Сообщение отредактировал YuiSe - Понедельник, 26.12.2011, 12:40
Спасибо
АрсикДата: Понедельник, 26.12.2011, 15:17 | Сообщение # 3

Арслан Батыршин
Ранг: Дошколенок (?)
Группа: Пользователи
Российская Федерация
Уфа

Сообщений:
19
Награды: 0
Статус: Offline
пожалуйста, переведите на язык Паскаль все, что вы выше сформулировали)))
Спасибо
Александр_ИгрицкийДата: Понедельник, 26.12.2011, 16:36 | Сообщение # 4

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
Арсик, дорогой!
Зачем Вам все это?
Неужели других радостей в мире нет?
Вам все разжевали, даже ферментов добавили для лучшего усвоения пищи! Глотайте и ... ждите на выходе!
Но это уже самостоятельно!
Спасибо
alex_eduДата: Понедельник, 26.12.2011, 16:51 | Сообщение # 5

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
Quote (Арсик)
пожалуйста, переведите на язык Паскаль все, что вы выше сформулировали)))

Помощь, в плане учебы, это когда помогают сдвинуться с мертвой точки если, что то не получается. И в конечном итоге тот кому помогают делает практически сам.
Если вам нужна помощь, поясните что у вас вызывает трудности. Например вы можете составить программу которая считает количество слов?

Если вам готовое решение, то вам стоит поискать в google по ключевому слову фриланс, freelance (правда и на подобных ресурсах не всегда дружелюбно относятся к такого рода задачам) и вам решат вашу задачу/задачи за определенное вознаграждение. Беда в том, что с этой задачей разобраться не сложно... Мало того, что можете сейчас сэкономить денег, но и даст шанс избежать лишних трат на подобную "помощь" в будущем.
Спасибо
alex_eduДата: Понедельник, 26.12.2011, 16:53 | Сообщение # 6

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
ЗЫ Чудно. Вам это так не к спеху. На первую вашу задачу я дал ответ только потому, что решил, что вам оно уже не нужно.
Спасибо
АрсикДата: Понедельник, 26.12.2011, 17:07 | Сообщение # 7

Арслан Батыршин
Ранг: Дошколенок (?)
Группа: Пользователи
Российская Федерация
Уфа

Сообщений:
19
Награды: 0
Статус: Offline
как из текста выделить отдельно одно слово???сравнивать чисто отдельные слова умею)))а вот как из текста извлечь и рассмотреть как отдельное слово???
Спасибо
Александр_ИгрицкийДата: Понедельник, 26.12.2011, 17:09 | Сообщение # 8

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
Пробел
Спасибо
alex_eduДата: Понедельник, 26.12.2011, 17:45 | Сообщение # 9

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
Quote (Арсик)
как из текста выделить отдельно одно слово???сравнивать чисто отдельные слова умею)))а вот как из текста извлечь и рассмотреть как отдельное слово???

Например, лично бы я, в данном конкретном случае. Завел два счетчика: кол-во совпдений первый/последний и второй/предпоследний. Так же хранил индекс первой буквы слова.

Далее цикл по всей длинне строки.
На первом символе если он не пробел и если после него не пробел значит это начинается слово. Заносим индекс в переменную.
Далее бежим по циклу и анализируем каждый элемент. Если очередной элемент (символ) является пробелом или концом строки значит мы достигли конца слова.

Следовательно нам необходимо начать анализ этого слова. Из исходных данных у нас есть индекс первой буквы, индекс последней. Остается проанализировать не одинаковые ли искомые буквы, и на всякий случай, а не короткое ли у нас слово. Проанализировали. Если нашлись совпадения увеличили соответствующий счетчик/счетчики. Побежали искать следующее слово.
Спасибо
alex_eduДата: Понедельник, 26.12.2011, 18:05 | Сообщение # 10

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
Итак. Арсик прислал код. Предлагаю его здесь и рассматривать - вдруг комуто еще на ползу будет.
Код я выложил на ресурсе где есть компилятор и подсветка синтакиса. А так же расставил отступы для удобочитаемости (Арсик, не экономте на форматировнии кода -вам же это облегчит жизнь), заменил ввод строки с клавиатуры (компилятор онлайновый этого не позволяет)

http://ideone.com/7wt5B

1 Для начала вы не сделали как я говорил индекса первой буквы. Т.е. создаете переменную firsSign типа integer. Для начала ей присваиваете -1.
2 Потом в главном цикле проверяете если firstSign=-1 тогда firstSign=1 (когда второе слово будете обрабатывать подумайте сам как это правильно установить)
3. Цикл в 14 строке совершенно не нужный т.к. на данном этапе вам необходимо сравнить
s[firstSign] и s[i-1]
s[firstSign+1] и s[i-2]

Та ресурсе вы можете нажать clone и отредактировать код прямо там. Потом нажмете отправить. И покажите ссылку с результатом здесь
Спасибо
АрсикДата: Понедельник, 26.12.2011, 18:12 | Сообщение # 11

Арслан Батыршин
Ранг: Дошколенок (?)
Группа: Пользователи
Российская Федерация
Уфа

Сообщений:
19
Награды: 0
Статус: Offline
там ошибка на втором цикле, где вопросики стоят.......

program Arsik;
uses crt;
var s:string;
i,x,y:integer;

begin
clrscr;
writeln('VVedite stroku');
s:='book was read by Bill';
x:=0;
y:=0;
for i:=1 to length(s) do
if s[i]=' ' then begin
for i:=1 to ??? do
if s[1]=s[i-1] then x:=x+1;
if s[2]=s[i-2] then y:=y+1;
writeln('Perv i posled' , x);
writeln('Vtor i preposl' ,y);
readln;
end;
end.
Спасибо
alex_eduДата: Понедельник, 26.12.2011, 18:13 | Сообщение # 12

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
Этот цикл (где вопросы стоят) совершено не нужен.
Спасибо
alex_eduДата: Понедельник, 26.12.2011, 18:23 | Сообщение # 13

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
Как вариант для облегчения. Попробуй решить этап номер "раз": выведи на экран индексы первых букв каждого слова.
Спасибо
АрсикДата: Понедельник, 26.12.2011, 18:37 | Сообщение # 14

Арслан Батыршин
Ранг: Дошколенок (?)
Группа: Пользователи
Российская Федерация
Уфа

Сообщений:
19
Награды: 0
Статус: Offline
да, вник, понял что не нужен, прога ошибается когда вводишь тока одно слово,ну например:informatika, а вот правильно работает например когда пишешь:play computer games

Добавлено (26.12.2011, 18:37)
---------------------------------------------
http://ideone.com/clone/7wt5B

разбирает только первые слово, как перейти к другим??(((

Спасибо
alex_eduДата: Понедельник, 26.12.2011, 18:43 | Сообщение # 15

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
Ну я тут не много сам оплошал. Не правильно расставил отступы. В следствии чего тебе не видна совершенно очевидная ошибка. У тебя один из end не туда уехал. Мой соовет удали вообще все циклы и начни заново. И сделай только этап 1. О котором я сказал. Некоторые подсказки как его сделать есть выше.

В дополнение тебе пригодится понимаение. Что после поледнего слова нет пробела. И последнее слово просто так по условию на пробел не обработается. По этому есть несколько выходов. Я бы перед обработкой после приема с клавиатуры (ну ддля тестов на сервисе после присваивания) добавил бы к строке пробел в конец.
Спасибо
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » помогите пожалуйста кому не трудно, кому не лень))) (на Паскале))))
Страница 1 из 3123»
Поиск:



Спорная ситуация с родителями или администрацией? Ищете выход из проблемы на уроке или с учеником?
Не знаете, как что-то сделать на компьютере?


Вы можете задать анонимный вопрос
х
Подробно изложите суть вашего вопроса.
Обратите внимание, что вопросы публикуются в открытом доступе не сайте, поэтому не указывайте персональные данные ваши или иных лиц. Однако стоит указать свой РЕГИОН, т.к. законодательство в разных регионах разное.
Отправить