![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Привет всем.
Помогите плиз решать задачу... В файле исходных данных задается отдельный символ и две строки слов. Написать Паскаль-программу, включающуюю 2 процедуры, выполняющие следующие действия: * печать слов, встречающихся в обеих заданных строках * выявление строки, в которой заданный символ встречается чаще! Заранее благодарен! Я изменил бы этот мир, но Господь не даёт исходников! |
#2
|
|||
|
|||
![]() Массивы, массивы, массивы.
Тебе именно на паскале или можно на Дельфях? Просто чистый паскаль лично я уже забыл (в смысле, бедный он на функции, так что написать-то можно, но будет ли такое работать - не уверен). Первая задача - читаешь файл. Строки разбиваешь на слова и складываешь их в массив. Далее проверяешь для каждого слова из одной строки(любой) наличие такого же во второй (вхождение некоторого элемента в массив). Тут есть вопрос: с учетем регистра или нет? Вторая зхадача еще проще. Т.к. тип String есть тоже массив, то просто бежишь по строке, как по массиву и просто считаешь сколько этих буковок в одной строке, а сколько - в другой. Дальше равнил значения и вывел результат в нужном виде. |
#3
|
|||
|
|||
![]() Помоги если вспомнишь на паскале. Очень надо, экзамен завтра!
Я изменил бы этот мир, но Господь не даёт исходников! |
#4
|
|||
|
|||
![]() На каком паскале? Паскалей тоже дофига.
|
#5
|
|||
|
|||
![]() turbo Pascal
Я изменил бы этот мир, но Господь не даёт исходников! |
#6
|
|||
|
|||
![]() Цитата:
Код:
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
|
|||
|
|||
![]() почему то в этой строке ошибку выдает
s := Delete(s, 1, pos(' ', s)); Я изменил бы этот мир, но Господь не даёт исходников! |