molka 919 Опубликовано 29 июня, 2012 Жалоба Поделиться Опубликовано 29 июня, 2012 Здравствуйте, ситуация моя очень грустна, висит зачет по практике( Нужно с рочно решить одну задачу иначе беда случится. Помогите плиз.. ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИНЗадание должно быть выполнено в средах программирования:• PASCAL;Для вводимой строки длиной до N символов (N ? 255), состоящей из слов разделенных одним или несколькими пробелами, реализовать ее обработку, как указано в варианте. ЗАДАНИЕ: Подсчитать количество слов в предложении, повторяющихся более одного раза. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Зря 135 Опубликовано 30 июня, 2012 Жалоба Поделиться Опубликовано 30 июня, 2012 где наплывы желающих помочь?) 0 Цитата Ссылка на сообщение Поделиться на другие сайты
Di138... 696 Опубликовано 30 июня, 2012 Жалоба Поделиться Опубликовано 30 июня, 2012 Здравствуйте, ситуация моя очень грустна, висит зачет по практике( Нужно с рочно решить одну задачу иначе беда случится. Помогите плиз.. ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИНЗадание должно быть выполнено в средах программирования:• PASCAL;Для вводимой строки длиной до N символов (N ? 255), состоящей из слов разделенных одним или несколькими пробелами, реализовать ее обработку, как указано в варианте. ЗАДАНИЕ: Подсчитать количество слов в предложении, повторяющихся более одного раза.Раз никто не ответил, отвечу я (пришлось вспомнить то, что делал лет 15-20 назад и скачать паскаль){PASCAL;Для вводимой строки длиной до N символов (N ? 255), состоящей из словразделенных одним или несколькими пробелами, реализовать ее обработку,как указано в варианте.ЗАДАНИЕ: Подсчитать количество слов в предложении, повторяющихсяболее одного раза.}var mass : array[1..250] of string; { объявляем переменную с массивом строк, для сохранения отдельных слов } s,s_count : string[250]; { Переменная для ввода строки } i,j : integer; { Переменные для циклов } pos1 : integer; { Переменная для определения позиции пробела } count,count_all : integer; { Переменные для счетчиков } begin writeln('Введите строку:'); { Просим пользователя ввести строку} readln(s); { Запрашиваем строку } s:=s+' '; { Добавляем пробел в конец строки } { чтобы иметь возможность определить последнее слово } for i:=1 to 255 do { Цикл } begin pos1:=pos(' ', s); { Находим пробел } mass[i]:=copy(s, 1, pos1-1); { Записываем найденное слово } Delete(s,1,pos1); { Удаляем внесенное слово из введенной строки } end; count_all:=0; { Обнуляем переменную, куда будем вносить количество одинаковых слов } for i:=1 to 255 do { Цикл, выбирает каждое слово и будет проверять на наличие одинакового слова } begin count:=1; { Обнуляем переменную, равняется 1, т.к. любое выбранное слово уже 1 шт. } if mass[i]<>'' then { Если mass[i] не пустое значение, пытаемся найти похожее слово } for j:=1 to 255 do { Цикл, который находит дубликаты } begin if i<>j then { Исключаем ту же ячейку, которую мы взяли в первом цикле } if mass[i]=mass[j] then { Если есть совпадение, увеличиваем переменную count на +1 } { и удаляем дублирующее слово} begin count:=count+1; mass[j]:=''; { Чтобы первый цикл опять его не анализировал } end; end; Str(count,s_count); { Преобразуем числовое значение количество в текст для вывода [можно удалить]} if count<>1 then { Если количество изменилось, значит есть дубликат } begin writeln('Слово: '+mass[i]+' встречается '+s_count+' раз'); { Выводим информацию } { по каждому слову, где есть дубль [можно удалить это]} count_all:=count_all+1; { Добавляем в общий счетчик +1, т.к. есть слово с дублем, которое мы вывели} end; end; s_count:=''; Str(count_all,s_count); writeln('Всего слов в предложении, повторяющихся более одного раза: '+s_count+' шт.'); { Выводим общее число слов, } { которые встречаются более 1 раза } end.Сам код программы и exe файл прикрепить не могу из-за настроек безопасности на форуме. Могу выслать на емейл.Возможно будут некоторые проблемы совместимости в разных версиях Паскаля - пиши, будем думать.Постарался описать каждое действие. 2 Цитата Ссылка на сообщение Поделиться на другие сайты
Зря 135 Опубликовано 30 июня, 2012 Жалоба Поделиться Опубликовано 30 июня, 2012 ты только что убил в ирке программиста( 0 Цитата Ссылка на сообщение Поделиться на другие сайты
Di138... 696 Опубликовано 30 июня, 2012 Жалоба Поделиться Опубликовано 30 июня, 2012 ты только что убил в ирке программиста(Программистам часто приходится копаться в чужом коде так что у нее все еще впереди. 0 Цитата Ссылка на сообщение Поделиться на другие сайты
molka 919 Опубликовано 30 июня, 2012 Автор Жалоба Поделиться Опубликовано 30 июня, 2012 Программистам часто приходится копаться в чужом коде так что у нее все еще впереди.Спасибо тебе огромное, мыло сейчас в личку пришлю.Какой во мне программист, я мамематик)Программист во мне навязанный второй специальностью,а так я просто продвинутый юзер) 0 Цитата Ссылка на сообщение Поделиться на другие сайты
aaasss 97 Опубликовано 2 июля, 2012 Жалоба Поделиться Опубликовано 2 июля, 2012 Раз никто не ответил, отвечу я (пришлось вспомнить то, что делал лет 15-20 назад и скачать паскаль){PASCAL;Для вводимой строки длиной до N символов (N ? 255), состоящей из словразделенных одним или несколькими пробелами, реализовать ее обработку,как указано в варианте.ЗАДАНИЕ: Подсчитать количество слов в предложении, повторяющихсяболее одного раза.}var mass : array[1..250] of string; { объявляем переменную с массивом строк, для сохранения отдельных слов } s,s_count : string[250]; { Переменная для ввода строки } i,j : integer; { Переменные для циклов } pos1 : integer; { Переменная для определения позиции пробела } count,count_all : integer; { Переменные для счетчиков } begin writeln('Введите строку:'); { Просим пользователя ввести строку} readln(s); { Запрашиваем строку } s:=s+' '; { Добавляем пробел в конец строки } { чтобы иметь возможность определить последнее слово } for i:=1 to 255 do { Цикл } begin pos1:=pos(' ', s); { Находим пробел } mass[i]:=copy(s, 1, pos1-1); { Записываем найденное слово } Delete(s,1,pos1); { Удаляем внесенное слово из введенной строки } end; count_all:=0; { Обнуляем переменную, куда будем вносить количество одинаковых слов } for i:=1 to 255 do { Цикл, выбирает каждое слово и будет проверять на наличие одинакового слова } begin count:=1; { Обнуляем переменную, равняется 1, т.к. любое выбранное слово уже 1 шт. } if mass[i]<>'' then { Если mass[i] не пустое значение, пытаемся найти похожее слово } for j:=1 to 255 do { Цикл, который находит дубликаты } begin if i<>j then { Исключаем ту же ячейку, которую мы взяли в первом цикле } if mass[i]=mass[j] then { Если есть совпадение, увеличиваем переменную count на +1 } { и удаляем дублирующее слово} begin count:=count+1; mass[j]:=''; { Чтобы первый цикл опять его не анализировал } end; end; Str(count,s_count); { Преобразуем числовое значение количество в текст для вывода [можно удалить]} if count<>1 then { Если количество изменилось, значит есть дубликат } begin writeln('Слово: '+mass[i]+' встречается '+s_count+' раз'); { Выводим информацию } { по каждому слову, где есть дубль [можно удалить это]} count_all:=count_all+1; { Добавляем в общий счетчик +1, т.к. есть слово с дублем, которое мы вывели} end; end; s_count:=''; Str(count_all,s_count); writeln('Всего слов в предложении, повторяющихся более одного раза: '+s_count+' шт.'); { Выводим общее число слов, } { которые встречаются более 1 раза } end.Сам код программы и exe файл прикрепить не могу из-за настроек безопасности на форуме. Могу выслать на емейл.Возможно будут некоторые проблемы совместимости в разных версиях Паскаля - пиши, будем думать.Постарался описать каждое действие. ну может... это заслуживает уважения 0 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.