Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2008, 20:08   #1
Алексей Д.
Пользователь
 
Регистрация: 02.04.2008
Сообщений: 32
По умолчанию Помогите с прогой. Тема: символьные массивы

Дана последовательность из 10 слов, в нескольких из которых помимо букв есть еще и знаки (запятая точка и т.д.) И эти слова нужно вывести на печать.

Подскажите что нужно делать!
Алексей Д. вне форума Ответить с цитированием
Старый 02.04.2008, 20:23   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Подскажите что нужно делать!
Писать программу.

Найди для начала нужные слова.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 02.04.2008, 21:03   #3
Алексей Д.
Пользователь
 
Регистрация: 02.04.2008
Сообщений: 32
По умолчанию

Ну слова то я сам ввожу, из головы. А потом нужно вывести какой то общий для всех таких случаев алгоритм, который выводил бы только слова, в которых помимо букв есть еще и знаки.

например последовательность 'fshhse ijsfii isefi sdf'sd sdf,sf efs.qa'

в ней 6 слов и нужно вывести на печать только те в которых есть знаки. как видно это последние три слова. Подскажите плиз что для этого нужно сделать??
Алексей Д. вне форума Ответить с цитированием
Старый 02.04.2008, 21:24   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Достаточно простой алгоритм:
1. Начинаем двигаться по строке от начала до конца в циеле for

2. При появлении пробела и символа за ним (а это означает что начинается слово) мы начинаем записывать последующии символы в переменную. Если во время считывания слова, мы натыкаемся на символ отличный от буквы, то выставляем флаг что это слово нам неподходит.
Если это нужное нам слово, то флаг оставляется не тронутым.

3. Если во время считывания слова мы натыкаемся на пробел (как нистранно это сигнализирует что слово закончилось) мы проверяем/сбрасываем флаги и выводим слово. Переменную где хранили слово обнуляем.

А на какую печать надо выводить? Принтер?

АДД: Вот например из моего "архива" такая вот программа. Она обрабатывает предложение и каждое слово выписывает на новой строке.
Алгоритм поиска слов как раз который я описал..

Код:
var i, k : integer;
      S : String;

begin
k := 0;
Readln (S);
if S[1] <> ' ' Then k := k + 1;
For i := 1 To Length(S) Do
  Begin
    if i = Length(S) Then Break;
    if (S[i] = ' ') And (S[i + 1] <> ' ') Then k := k + 1;
  End;
Writeln (k);
Readln;
end.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Последний раз редактировалось Карась; 02.04.2008 в 21:27.
Карась вне форума Ответить с цитированием
Старый 02.04.2008, 21:41   #5
Алексей Д.
Пользователь
 
Регистрация: 02.04.2008
Сообщений: 32
По умолчанию

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

Цитата:
А на какую печать надо выводить? Принтер?
Ну думаю да, но в принципе наверно можно и без этого обойтись. просто чтоб когда идет writeln от строки выводились лишь слова в котрых есть знаки, а остальные отсеивались. я через delete сделал, но препод сказал, что неправильно и надо чтобы для любой строки алгоритм работал, так сказать общее решение для данного случая.

А как выставлять флаг?? И что значит начинаем записывать последующие символы в переменную??
Алексей Д. вне форума Ответить с цитированием
Старый 02.04.2008, 21:47   #6
Алексей Д.
Пользователь
 
Регистрация: 02.04.2008
Сообщений: 32
По умолчанию

Могу для наглядности написать официальное так сказать условие программы:

дана последовательность до 30 слов, в каждом из кот от 1 до 5 символов, между словами пробел или запятая, в конце последовательности - точка. напечатать все слова, в кот присутствуют знаки, не являющиеся буквами.
Алексей Д. вне форума Ответить с цитированием
Старый 02.04.2008, 22:10   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Я опубликовал в этой теме программу.
Которая кстати занимается подсчётом слов в строке
хотя пару минут назад занималась совсем другим....

Для начала переделай её так чтоб она выводила каждое слово на новой строке.
Затем уже немного доработав её ты сделаешь нужный "фильтр".

Цитата:
А как выставлять флаг?? И что значит начинаем записывать последующие символы в переменную??
Это переменная типа Boolean.

Добавление символа к строке: Stroka := Stroka + S[i];
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с прогой (С++) Meddy Помощь студентам 3 13.07.2008 21:38
Помогите с прогой! NecRomant Общие вопросы Delphi 4 25.02.2008 20:19
Массивы символов (строки) символьные файлы. anarchist Помощь студентам 2 24.12.2007 09:16
Паскаль. задача на символьные массивы и строки zaraza21 Помощь студентам 1 03.11.2007 19:33
Помогите с прогой DarthNemo Помощь студентам 2 06.05.2007 18:11