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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2008, 11:51   #1
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию Делфи или Паскаль

помогите сделать проги 2 штучки

1. Дана строка символов до точки. Группы символов в ней между группами пробелов считаются словами. Определить, сколько слов содержат ровно 3 буквы "е".

2. Даны 2 текста. Найти одно из общих слов, встречающихся в текстах.
LLIypLLIyH вне форума Ответить с цитированием
Старый 28.05.2008, 13:28   #2
Gladiator
Пользователь
 
Аватар для Gladiator
 
Регистрация: 18.04.2008
Сообщений: 70
По умолчанию

задача№1 на Delphi
В Richedit вводится текст и проверяется

Код:
procedure TForm1.Button1Click(Sender: TObject);

var f,f2:string;
    e,kolslov,i,d:integer;
begin
f:=RichEdit1.Text;
d:=length(RichEdit1.Text);
for i:=1 to d do begin
if RichEdit1.Text[i]=' ' then begin
f2:='';
if e=3 then
kolslov:=kolslov+1;
e:=0;
end
else begin
f2:=f2+RichEdit1.Text[i];
if RichEdit1.Text[i]='å' then
e:=e+1;
end;
end;
if not (RichEdit1.Text[d]=' ') then
if e=3 then
kolslov:=kolslov+1;
edit1.Text:=inttostr(kolslov);
end;
Я правильно понял задание?

задание №2..
это так понял...
в 2 richedita вводится текст.а общее слово выводится в edit

Код:
procedure TForm1.Button3Click(Sender: TObject);
var r1,r2,f1,f2,es:string;
    j,i,d1,d2:integer;
begin
r1:=RichEdit1.Text;
r2:=RichEdit1.Text;
d1:=length(RichEdit1.Text);
d2:=length(RichEdit2.Text);

for i:=1 to d1 do begin
if not (es='') then
edit1.Text:=es
else begin
if RichEdit1.Text[i]=' ' then begin
for j:=1 to d2 do begin
if RichEdit2.Text[j]=' ' then begin
if f1=f2 then
es:=f1;
f2:='';
end
else
f2:=f2+RichEdit2.Text[j];
end;
f1:='';
end
else
f1:=f1+RichEdit1.Text[i];
end;
end;
if es='' then
if f1=f2 then
edit1.Text:=f1;
end;
end.

Последний раз редактировалось Stilet; 28.05.2008 в 15:13.
Gladiator вне форума Ответить с цитированием
Старый 28.05.2008, 13:56   #3
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Спасибо)! а можно это же в паскале сделать? через массив

Цитата:
Сообщение от Gladiator Посмотреть сообщение
задача№1 на Delphi
В Richedit вводится текст и проверяется

Код:
procedure TForm1.Button1Click(Sender: TObject);

var f,f2:string;
    e,kolslov,i,d:integer;
begin
f:=RichEdit1.Text;
d:=length(RichEdit1.Text);
for i:=1 to d do begin
if RichEdit1.Text[i]=' ' then begin
f2:='';
if e=3 then
kolslov:=kolslov+1;
e:=0;
end
else begin
f2:=f2+RichEdit1.Text[i];
if RichEdit1.Text[i]='å' then
e:=e+1;
end;
end;
if not (RichEdit1.Text[d]=' ') then
if e=3 then
kolslov:=kolslov+1;
edit1.Text:=inttostr(kolslov);
end;
Я правильно понял задание?
Мне нужно в кансоле

Последний раз редактировалось Stilet; 28.05.2008 в 15:13.
LLIypLLIyH вне форума Ответить с цитированием
Старый 28.05.2008, 14:30   #4
Gladiator
Пользователь
 
Аватар для Gladiator
 
Регистрация: 18.04.2008
Сообщений: 70
По умолчанию

Ну на паскале же тоже самое только вместо richedit будет какая-нибуть переменная:string; например str.
и после Begin напишешь

Writeln(' Введите строку');
Readln(str);

ну и в конце естественно
Writeln(kolslov);
Вроде должно работать..
Gladiator вне форума Ответить с цитированием
Старый 28.05.2008, 14:40   #5
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Мы без ричедитов, там она говорит когда ищешь слво одинаковое, тиа создаёшь одномерный масив и чё то делаешь, она объясняет плохо
LLIypLLIyH вне форума Ответить с цитированием
Старый 28.05.2008, 14:52   #6
Gladiator
Пользователь
 
Аватар для Gladiator
 
Регистрация: 18.04.2008
Сообщений: 70
По умолчанию

ну да в одномерный массив записываешь символы строки..
а че так без одномерного массива есле вместо Richedita переменную писать не работает?
И вообще тебе на Делфи или на паскале надо.. а то ты написал или на том или на том..
Gladiator вне форума Ответить с цитированием
Старый 28.05.2008, 15:09   #7
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Gladiator Посмотреть сообщение
ну да в одномерный массив записываешь символы строки..
а че так без одномерного массива есле вместо Richedita переменную писать не работает?
И вообще тебе на Делфи или на паскале надо.. а то ты написал или на том или на том..
То что ты написал на делфи мы такое ещё не проходили) на паскале надо, или в делфи, в консоле
LLIypLLIyH вне форума Ответить с цитированием
Старый 28.05.2008, 15:13   #8
Gladiator
Пользователь
 
Аватар для Gladiator
 
Регистрация: 18.04.2008
Сообщений: 70
По умолчанию

Ну ты пробовал вместо Richedita переменную писать или нет?работает?
Gladiator вне форума Ответить с цитированием
Старый 28.05.2008, 16:41   #9
master_root
Пользователь
 
Регистрация: 18.05.2008
Сообщений: 30
По умолчанию

Код:
function num_3ewords(str: String): integer;
var
	i: integer;//переменная для цикла - номер текущего символа в строке
	num_e: integer;//число букв е в слове
	num_ewords: integer;//число слов в строке, которые содержат ровно 3 символа е
begin
	{инициализация переменных}
	i:=0;
	num_e:=0;
	num_ewords:=0;
	{анализ строки в цикле}
	for i:=1 to Length(str) do
	begin
		{если текущий символ является буквой е}
		if str[i]='е' then num_e:=num_e+1//увеличиваем счётчик букв е в слове
		else if (str[i]=' ') or (str[i]='.') then//если текущий символ - это пробел
		begin
			if num_e=3 then {если число букв е в слове равно трём}
			begin
				num_ewords:=num_ewords+1;//увеличиваем счётчик слов, содержащих 3 буквы е на 1
				num_e:=0;//обнуление счётчика букв е
			end;
                        if str[i]='.' then break;//символ . указывает на конец строки выходим из цикла  
		end;
	end;
	{вывод результата}
	num_3ewords:=num_ewords;
end;
вот рабочий вариант. вроде довольно шустрый код,хотя может кто-нить попробует придумать что-нить попроще? str - аргумент этой функции типа String. а тип String в свою очередь массив элементов типа char.
Код 100% рабочий. Если что, спрашивай

Последний раз редактировалось master_root; 28.05.2008 в 16:52.
master_root вне форума Ответить с цитированием
Старый 28.05.2008, 18:22   #10
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Спасибо! а можно вторую сделатЬ?)
LLIypLLIyH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из с++ в Делфи Andre1723 Общие вопросы Delphi 4 02.06.2008 17:50
USB и Делфи StartMis Общие вопросы Delphi 2 01.06.2008 14:22
CGI на Делфи AntonK8 PHP 3 12.04.2008 10:44
Делфи ozhjog Свободное общение 4 20.05.2007 21:06