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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2009, 13:08   #1
dinozavr
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию что-то у меня не получается

Посмотрите в чем ошибка

type stroka = packed array [1..80] of char;
var s:stroka;
Известно, что в начале строки s находится не более 40 латинских букв, за которыми следуют пробелы. Напечатать эту строку, предварительно заменив все вхождения abc на def.

Вот:
const
abc='abc';
def='def';
type stroka = packed array [1..80] of char;
var
s:stroka;
begin
writeln('stroka s');
end.
dinozavr вне форума Ответить с цитированием
Старый 22.04.2009, 15:05   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Посмотрите в чем ошибка
Ошибка в отсутствии программы.
Где она?
Все, что вы делаете, это выводите "stroka s".
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.04.2009, 20:34   #3
dinozavr
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

Ну я не разбираюсь в этом((.С книжкой вот это напечатала кое-как((
dinozavr вне форума Ответить с цитированием
Старый 22.04.2009, 20:41   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, для данной задачи лучше использовать обычный string.
Поиск подстроки - pos, удаление - delete, вставка - insert. Более подробно об этих функциях расскажет учебник или поисковик.

То, что вы в чем-то не разбираетесь, не значит, что кто-то что-то за вас должен делать.

Чтож, давайте по порядку. Напишите алгоритм. Можете словами. В какой последовательности и что вы будете делать.

И еще, для ясности:
Цитата:
Известно, что в начале строки s находится не более 40 латинских букв, за которыми следуют пробелы.
приведите пример строки. Что-то мне условие как-то не очень понятно.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.04.2009, 20:45   #5
dinozavr
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

вот собстна строка:
type stroka = packed array [1..80] of char;
var s:stroka;
dinozavr вне форума Ответить с цитированием
Старый 22.04.2009, 20:47   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
вот собстна строка:
type stroka = packed array [1..80] of char;
var s:stroka;
Это не строка, а объявление типа и строковой переменной.
Я просил привести пример строки. Что вы собираетесь выводить?

ps Вы проигнорировали остальную часть поста?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.04.2009, 21:03   #7
dinozavr
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

Я не понимаю Вашего вопроса,какой пример строки,в задании больше ничего не сказано)).
Я кажется поняла, у меня только один вопросик,как обозначить,что в начале строки находится не более 40 латинских букв,за которыми следуют пробелы?))
dinozavr вне форума Ответить с цитированием
Старый 22.04.2009, 21:09   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Я не понимаю Вашего вопроса,какой пример строки,в задании больше ничего не сказано)).
Задам его по-другому. В задании нужно работать со строкой. То есть с реальной строкой, например, "Здравствуй, мир!" и прочее. Вот я и прошу привести строку, которую вы будете вводить.

Цитата:
как обозначить,что в начале строки находится не более 40 латинских букв,за которыми следуют пробелы?))
А вот именно из-за этого я и задал первый вопрос. Мне тоже это сложно представить )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.04.2009, 21:12   #9
dinozavr
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

[QUOTE=Sazary;246703]Задам его по-другому. В задании нужно работать со строкой. То есть с реальной строкой, например, "Здравствуй, мир!" и прочее. Вот я и прошу привести строку, которую вы будете вводить.

Дело в том,что задание представлено в таком виде,в котором я написала,ничего там больше не сказано((
dinozavr вне форума Ответить с цитированием
Старый 22.04.2009, 21:28   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

dinozavr, ну тогда давайте придумывать задание.

Итак. Строка будет задана в таком виде:
Код:
a g r h f n j h t y y f g d
то есть одна буква, один пробел.
Нужно получить такую строку:
Код:
agrhfnjhtyyfgd
и в ней заменить все 'abc' на 'def'.

--------------------
Приступаем.
Объявляем строку:
Код:
str : string[80];
далее читаем эту строку.
Теперь нужно удалить пробелы. Делается это так:
Код:
repeat
k := pos(' ',s);
if k<>0 then delete(s,k,1);
until k=0;
После этого нужно заменить все 'abc' на 'def':
Код:
repeat
k := pos('abc',s);
if k<>0 then
 begin
 delete(s,k,3);
 insert('def',s,k);
 end;
until k=0;
Остается объявить переменные и вывести конечную строку.
А это уже сделайте сами.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы в Борланд Си... (Что у меня не правильно в программе?) Алекс...))) Помощь студентам 2 09.02.2009 21:47
У меня вопрос: что такое dcu dexterborn Компоненты Delphi 1 30.01.2009 04:44
посмотрите, пожалуста, что у меня не работает Grief Помощь студентам 2 26.01.2009 21:01
у меня никак не получается скомпелировать фаил finero Общие вопросы C/C++ 4 10.07.2008 19:29