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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2008, 17:26   #1
ЭД4-0014
Пользователь
 
Регистрация: 16.04.2008
Сообщений: 16
По умолчанию 2 задачи на delphi

Никак не могу решить эти 2 задачи... инета нет, пишу с телефона...
Задача1.
написать на delphi: дана строка, содержащая менее чем 200символов, определить, сколько раз в этой строке ПОСЛЕ ПОСЛЕДНЕЙ точки встречается комбинация букв "ая".

Задача2. на delphi БЕЗ использования массивов: багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл F, содержащий информацию о багаже нескольких пассажиров, информация о багаже каждого отдельного пассажира представляет собой соответствующую пару чисел. Выяснить, имеется ли пассажир, багаж которого превышает багаж каждого из остальных пассажиров и по числу вещей и по весу.
ЭД4-0014 вне форума Ответить с цитированием
Старый 16.04.2008, 17:37   #2
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

1. Ишешь последнею точку циклом
Код:
for i to 200 do
begin
if str[i]:='.' then
n:=length(str[i]);
end;
дальше всё просто считаешь сколько ая полсле n
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Старый 16.04.2008, 18:20   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Цитата:
Сообщение от gred Посмотреть сообщение
1. Ишешь последнею точку циклом
Код:
for i to 200 do
begin
if str[i]:='.' then
n:=length(str[i]);
end;
дальше всё просто считаешь сколько ая полсле n

Подправил ваш код, немного( 1)если вы ищите позицию точки; 2) если нужна её позиция ):
Зачем было писать length(str[i]), если его длина один символ, с учётом того что Str - это String.
Код:
for i:=1 to Length(Str) do
begin
if str[i]:='.' then
n:=i;
end;
Alter вне форума Ответить с цитированием
Старый 16.04.2008, 19:47   #4
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

ну да я так и думал)
продолжение
Код:
for i:=n to Length(Str) do
begin
if str[i]:='ая' then
k:=k+1;
else
writeln('osebka');
end;
writeln(k);
end.
А вторую точно без массивов надо делать?
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен

Последний раз редактировалось Stilet; 17.04.2008 в 08:08.
gred вне форума Ответить с цитированием
Старый 16.04.2008, 20:03   #5
ЭД4-0014
Пользователь
 
Регистрация: 16.04.2008
Сообщений: 16
По умолчанию

ага.. Censored препод сказал за массивы сразу 2 поставит(((

подскажите мне пожалуйста, почему я в первой задаче написал все как вы мне написали, а она мне выдает вот что
osebka
osebka
osebka
osebka
osebka
osebka
osebka
75

код программы:
procedure TForm1.Edit1Click(Sender: TObject);
var
st, stemp : string[200];
i, Count_AJ,n,k : integer;

begin
st:=edit1.text;
if Pos('.',st)=0 then begin
memo1.lines.append('Точки нет - значит и считать нечего! Ответ - НОЛЬ раз.')
end
else

for i:=1 to 200 do
begin
if st[i]='.' then
n:=length(st[i]);
end;
for i:=n to Length(St) do
begin
if st[i]='ая' then
k:=k+1
else
memo1.lines.append('osebka');
end;
memo1.lines.append(inttostr(k));
end;

end.

где тут может быть ошибка?

Последний раз редактировалось Stilet; 17.04.2008 в 08:10.
ЭД4-0014 вне форума Ответить с цитированием
Старый 16.04.2008, 20:26   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
for i:=1 to Length(Str) do
begin
if str[i]:='.' then
n:=i;
end;
Можно ведь короче:
Код:
for i:=Length(Str) downto 1 do   
begin   
if str[i]:='.' then   
break;   
end;
n:=i;
А дальше PosEx...
mihali4 вне форума Ответить с цитированием
Старый 16.04.2008, 20:29   #7
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Жесть...
Цитата:
Сообщение от gred Посмотреть сообщение
if str[i]:='ая' then
Код такой: находим то что нужно, лишнее отрезаем и т.д.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  n,i: integer;
begin
  s:=Edit1.Text; //берем строку
  for i:=length(s) downto 1 do
    if s[i] = '.' then break; //нашли последнюю точку
  delete(s,1,i); //делаем обрезание
  n:=0;
  i:=pos('ая',s);
  while i <> 0 do begin
    n:=n+1;
    delete(s,1,i+1);
    i:=pos('ая',s);
  end;
  Label1.Caption:=IntToStr(n); //выводим результат
end;
_Dmitry вне форума Ответить с цитированием
Старый 16.04.2008, 20:36   #8
ЭД4-0014
Пользователь
 
Регистрация: 16.04.2008
Сообщений: 16
По умолчанию

_Dmitry, спасибо тебе огромное
ЭД4-0014 вне форума Ответить с цитированием
Старый 16.04.2008, 21:16   #9
ЭД4-0014
Пользователь
 
Регистрация: 16.04.2008
Сообщений: 16
По умолчанию

люди, помогите со 2ой задачей!!!
ЭД4-0014 вне форума Ответить с цитированием
Старый 17.04.2008, 00:06   #10
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
Счастье

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
Жесть...

Код такой: находим то что нужно, лишнее отрезаем и т.д.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  n,i: integer;
begin
  s:=Edit1.Text; //берем строку
  for i:=length(s) downto 1 do
    if s[i] = '.' then break; //нашли последнюю точку
  delete(s,1,i); //делаем обрезание
  n:=0;
  i:=pos('ая',s);
  while i <> 0 do begin
    n:=n+1;
    delete(s,1,i+1);
    i:=pos('ая',s);
  end;
  Label1.Caption:=IntToStr(n); //выводим результат
end;
Для новичков это трудновато
я вот не понял вот это что? что он делет и зачем? обьяни...
Код:
TForm1.Button1Click(Sender: TObject);
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типовые задачи в Delphi Speaker_102rus Помощь студентам 1 06.06.2008 14:47
принцип задачи на Delphi... как?( mirage Помощь студентам 4 24.04.2008 21:44
Задачи по Delphi ! Dreamer/ess Помощь студентам 3 06.03.2008 17:46
2 задачи на Delphi Vishez Помощь студентам 5 04.05.2007 11:36