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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2013, 20:13   #1
Hrustik
 
Регистрация: 31.05.2013
Сообщений: 6
По умолчанию Програмка по стрингам

Нужно сделать програмку по стрингам, чтобы програмка искала слова которые начинаються на 'a' и заканчиваются на 'z' которые мы ввели с клавиатуры.+ еще чтобы ети слова выводило в перевернутом виде.

Делал многими способами вот 1 из них который не работает...
я знаю что надо сделать 1 или более дополнительных стрингов но не знаб как ето сделать правильно...


program z4;
uses crt;
var
i:integer;
s:string;
begin
clrscr;
write('vvedite slova');
read(s);
if (s[i]='a') and (s[length(s)]='z')
then write('slova-',s)
else write('nemtu takuh slov');
readkey;
end.
Hrustik вне форума Ответить с цитированием
Старый 31.05.2013, 21:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
искала слова которые начинаються на 'a' и заканчиваются на 'z'
Подсказываю:
q:=pos(' a',s);
w:=pos('z ',s);
if q<w then найдено первое слово, начинающееся с номера q и заканчивающееся номером w+1.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.05.2013, 21:08   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Подсказываю:
q:=pos(' a',s);
w:=pos('z ',s);
if q<w then найдено первое слово, начинающееся с номера q и заканчивающееся номером w+1.
слово, начинающееся с номера q+1 и заканчивающееся номером w.

PS. Виталий, что-то Вы сегодня не в духе. Одно $F=16 в закрытой теме чего стоит...
s-andriano вне форума Ответить с цитированием
Старый 31.05.2013, 21:25   #4
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Может не в тему сказано, но название темы улыбнуло))
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 31.05.2013, 21:38   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
слово, начинающееся с номера q+1 и заканчивающееся номером w.
Ни разу не соглашусь! В честь чего?
q - первая буква слова.
w - последняя буква слова.

UPD 21 : 47
Цитата:
Poma][a, все же q + 1, так как Stilet ищет строку ' a' (на q-ой позиции пробел).
Да.. Прошу простить.. Пробел-то я и не заметил..

UPD 21 : 49
Как вариант :
Код:
var
	s, wrd : string;
	i : Integer;
	
begin
	ReadLn (s);
	s := s + ' ';
	
	wrd := '';
	for i := 1 to Length(s) do
		if s[i] <> ' ' then
			wrd := s[i] + wrd
		else begin
			if (wrd[Length(wrd)] = 'a') and (wrd[1] = 'z') then
				WriteLn (wrd);
			wrd := ''
		end
end.

Последний раз редактировалось Poma][a; 31.05.2013 в 21:49.
Poma][a вне форума Ответить с цитированием
Старый 31.05.2013, 21:41   #6
Hrustik
 
Регистрация: 31.05.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Подсказываю:
q:=pos(' a',s);
w:=pos('z ',s);
if q<w then найдено первое слово, начинающееся с номера q и заканчивающееся номером w+1.
вот я отредактировал
program z4;
uses crt;
var
i,q,w:integer;
s:string;
begin
clrscr;
writeLn('vvedite slova');
read(s);
q:=pos('a',s);
w:=pos('z ',s);
if q<w then
write('slova-',s)
else writeLn('nema takuh sliv');
readkey;
end.

но почемуто оно выводит все слова и мне кажеться что ето еще не вся программа (может еще надо добавить процедуру удаления пробелов или чтото в етом роде?)
Hrustik вне форума Ответить с цитированием
Старый 31.05.2013, 21:43   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Poma][a, все же q + 1, так как Stilet ищет строку ' a' (на q-ой позиции пробел).
Цитата:
но почемуто оно выводит все слова
Собственно, как написали, то и выводит
Код:
if q+1<w then
  writeln(copy(s,q+1,w-q))
Выведет 1 слово.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 31.05.2013, 21:55   #8
Hrustik
 
Регистрация: 31.05.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Poma][a, все же q + 1, так как Stilet ищет строку ' a' (на q-ой позиции пробел).

Собственно, как написали, то и выводит
Код:
if q+1<w then
  writeln(copy(s,q+1,w-q))
Выведет 1 слово.
заменил код:
program z4;
uses crt;
var
i,q,w:integer;
s:string;
begin
clrscr;
writeLn('vvedite slova');
read(s);
q:=pos('a',s);
w:=pos('z ',s);
if q+1<w then
writeln(copy(s,q+1,w-q))
else
writeLn('nema takuh sliv');
readkey;
end.

но чето оно неправильно выводит
вот я ввожу:
asfdgz agfgd sdgfdfasda adgdz вывело вообще : sfdgz
+ еще если вводиш только 1 слово (то что должно вывести тоисть нач на a и кончалося на z)
то выводит что слов нету..
Hrustik вне форума Ответить с цитированием
Старый 31.05.2013, 21:58   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Лечится так :
Код:
s := ' ' + s;
Кстати, возможно, стоит добавить развилочку на сщет случая, когда q = 0
Poma][a вне форума Ответить с цитированием
Старый 31.05.2013, 21:59   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Цитата:
но чето оно неправильно выводит
Так Вы выбросили пробел из pos(' a',s), а это очень важно.
Обратите внимание на вариант решения, приведенный Poma][ой в 5 посте.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Програмка lol111 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 15.09.2012 14:08
програмка..( Нешарю Помощь студентам 0 23.11.2011 13:34
Си програмка Nebojitel Общие вопросы C/C++ 8 15.07.2011 20:54
Нужна програмка kir525 Фриланс 4 04.07.2011 19:14
Програмка Spiderik Паскаль, Turbo Pascal, PascalABC.NET 1 17.04.2010 09:12