Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.05.2008, 14:04
MaxMaster MaxMaster вне форума
Прохожий
 
Регистрация: 15.04.2008
Адрес: Красноярск
Сообщения: 8
Репутация: 10
По умолчанию Помогите плиз с Pascal.

Привет всем.

Помогите плиз решать задачу...

В файле исходных данных задается отдельный символ и две строки слов. Написать Паскаль-программу, включающуюю 2 процедуры, выполняющие следующие действия:
* печать слов, встречающихся в обеих заданных строках
* выявление строки, в которой заданный символ встречается чаще!

Заранее благодарен!
__________________
Я изменил бы этот мир, но Господь не даёт исходников!
Ответить с цитированием
  #2  
Старый 26.05.2008, 14:43
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Массивы, массивы, массивы.

Тебе именно на паскале или можно на Дельфях? Просто чистый паскаль лично я уже забыл (в смысле, бедный он на функции, так что написать-то можно, но будет ли такое работать - не уверен).

Первая задача - читаешь файл. Строки разбиваешь на слова и складываешь их в массив. Далее проверяешь для каждого слова из одной строки(любой) наличие такого же во второй (вхождение некоторого элемента в массив). Тут есть вопрос: с учетем регистра или нет?

Вторая зхадача еще проще.
Т.к. тип String есть тоже массив, то просто бежишь по строке, как по массиву и просто считаешь сколько этих буковок в одной строке, а сколько - в другой. Дальше равнил значения и вывел результат в нужном виде.
Ответить с цитированием
  #3  
Старый 26.05.2008, 14:55
MaxMaster MaxMaster вне форума
Прохожий
 
Регистрация: 15.04.2008
Адрес: Красноярск
Сообщения: 8
Репутация: 10
По умолчанию

Помоги если вспомнишь на паскале. Очень надо, экзамен завтра!
__________________
Я изменил бы этот мир, но Господь не даёт исходников!
Ответить с цитированием
  #4  
Старый 26.05.2008, 14:58
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

На каком паскале? Паскалей тоже дофига.
Ответить с цитированием
  #5  
Старый 26.05.2008, 15:09
MaxMaster MaxMaster вне форума
Прохожий
 
Регистрация: 15.04.2008
Адрес: Красноярск
Сообщения: 8
Репутация: 10
По умолчанию

turbo Pascal
__________________
Я изменил бы этот мир, но Господь не даёт исходников!
Ответить с цитированием
  #6  
Старый 26.05.2008, 15:59
Phedor Phedor вне форума
Начинающий
 
Регистрация: 28.02.2008
Сообщения: 118
Репутация: 21
По умолчанию

Цитата:
Сообщение от MaxMaster
Привет всем.

Помогите плиз решать задачу...

В файле исходных данных задается отдельный символ и две строки слов. Написать Паскаль-программу, включающуюю 2 процедуры, выполняющие следующие действия:
* печать слов, встречающихся в обеих заданных строках
* выявление строки, в которой заданный символ встречается чаще!

Заранее благодарен!

Код:
var
  f: Text;
  Symb, Str1, Str2: string;

procedure PrintWord;
var
  s, Word: string;
begin
  s := Str1;
  while pos(' ', s)<>0 do
  begin
    Word := copy(s, 1, pos(' ', s)-1);
    if pos(Word, Str2)<>0 then writeln(Word);
    s := Delete(s, 1, pos(' ', s));
  end;
  // Проверяем остаток строки
  if pos(s, Str2)<>0 then writeln(Word);
end;

procedure CheckCount;
var
  i: Integer;
  Cnt1, Cnt2: Integer;
begin
  Cnt1 := 0;
  Cnt2 := 0;
  for i:=1 to length(Str1) do
    if Str1[i]=Symb then inc(Cnt1);
  for i:=1 to length(Str2) do
    if Str1[i]=Symb then inc(Cnt2);

  if (Cnt1=0) and (Cnt2=0) then
    writeln('Символ не встречается')
  else 
    if Cnt1=Cnt2 then writeln('Встречает одинаковое количество раз');
  if Cnt1<Cnt2 then writeln('В 1-ой страке чаще');
  if Cnt1>Cnt2 then writeln('Во 2-ой страке чаще');
end;

BEGIN
  Assign(f, 'ИмяФайла.txt');
  Reset(f);
  readln(f, Symb);
  readln(f, Str1);
  readln(f, Str2);
  Close(f);
  PrintWord;
  CheckCount;
END.
Ответить с цитированием
  #7  
Старый 26.05.2008, 16:15
MaxMaster MaxMaster вне форума
Прохожий
 
Регистрация: 15.04.2008
Адрес: Красноярск
Сообщения: 8
Репутация: 10
По умолчанию

почему то в этой строке ошибку выдает

s := Delete(s, 1, pos(' ', s));
__________________
Я изменил бы этот мир, но Господь не даёт исходников!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025