Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задачка с ф-цией Countstrd

Автор: aleksvander 29.05.2006 21:14

Помогите с заданиями плисс smile.gif

Задание:

Напишите функцию CountStrD(f), которая находит количество строк в файле, заканчивающихся буквой "d".

и

Написать функцию function Test(word:string): boolean принимающую значение True, если В строку входят литеры, содержащиеся в глобальной переменной W типа string.

Автор: Clon 29.05.2006 22:03

aleksvander Ну вот, вообщем, что за пять минут накатал

program func(input,output);
var
w:boolean;
s:string;
f:file of string;
c:char;
n:integer;
procedure enterfile;
begin
w:=false;
writeln('enter text:');
rewrite(f);
while w<>true do
begin
writeln('enter string:');
readln(s);
write(f,s);
writeln('next string?y/n');
readln©;
if c='n' then w:=true;
end;
close(f);
end;
function CountStrD:integer;
begin
reset(f);
while not eof(f) do
begin
read(f,s);
if s[length(s)]='d' then inc(n);
end;
close(f);
write('kol-vo takih strok:');
write(n);
end;
begin
assign(f,'textfile');
enterfile;
countStrD;
end.

Автор: volvo 29.05.2006 22:06

aleksvander, второе задание уточни: ВСЕ символы из строки W должны содержаться в переданной функции строке, или КАКИЕ-НИБУДЬ?

Поясняю:
W = 'asdf';
Вызов функции:
1) Test('asdeef');
2) Test('aan')
Что будет результатом функции в 1-ом и 2-ом случаях?

Clon, а зачем ты описал функцию? Где результат возвращаешь?

Тогда, это скорее процедура... Да и задание неплохо бы ВНИМАТЕЛЬНО читать... Функция должна принимать параметр...

Автор: Clon 29.05.2006 22:08

volvo Прога к первой части вопроса, а не ко второй

Автор: Bokul 30.05.2006 3:14

Цитата
Напишите функцию CountStrD(f), которая находит количество строк в файле, заканчивающихся буквой "d".


В каком файле? Текстовом или типизированом?

Цитата
Написать функцию function Test(word:string): boolean принимающую значение True, если В строку входят литеры, содержащиеся в глобальной переменной W типа string.

Если
Цитата
ВСЕ символы из строки W должны содержаться в переданной функции строке

то вот решения
var w:string;
function test(word:string):boolean;
var i:byte;
begin
for i:=1 to length(w) do
if pos(w[i],word)=0 then
begin
test:=false;
exit;
end;
test:=true;
end;

Автор: Lady_Dark 23.01.2007 23:57

А последнюю задачу как оформить в программу? а то у меня такая на экзамен...
и ничего не получается... не умею я! wacko.gif

Автор: Code(R) 24.01.2007 15:26

Цитата(Bokul @ 30.05.2006 2:14) *

В каком файле? Текстовом или типизированом?

Строки бывают только в текстовых файлах smile.gif. Каждая строка заканчивается #10#13.
В типизированных - просто последовательность записей.

Автор: klem4 24.01.2007 15:32

Bokul, можно короче:

var w:string;
function test(word:string):boolean;
var i:byte;
begin
i := 1;
while (i <= Length(w)) and (Pos(w[i], word) > 0) do inc(i);
test := (i > Length(w));
end;


Цитата(Code®)
Строки бывают только в текстовых файлах smile.gif. Каждая строка заканчивается #10#13.
В типизированных - просто последовательность записей.


Тоесть строки хранащиеся в типизированном файле это не строки ? Читать-то из файла зиписи ты будешь в строку или как ? dry.gif

Автор: Code(R) 24.01.2007 15:39

Цитата(klem4 @ 24.01.2007 14:32) *

Bokul, можно короче:

var w:string;
function test(word:string):boolean;
var i:byte;
begin
i := 1;
while (i <= Length(w)) and (Pos(w[i], word) > 0) do inc(i);
test := (i > Length(w));
end;

Тоесть строки хранащиеся в типизированном файле это не строки ? Читать-то из файла зиписи ты будешь в строку или как ? dry.gif


Типизированный файл - это последовательность записей, которые могут состоять из переменных любого типа, в том числе и из строк.

Да, с точки зрения формальной логики - это строки. Но тогда условие задачи становится каким-то корявым smile.gif. По умолчанию предполагается, что это текстовый файл smile.gif.

Автор: volvo 24.01.2007 15:42

Цитата
По умолчанию предполагается, что это текстовый файл
А ты не предполагай ничего и никогда... Уточнять надо... Мало ли, что условие корявое...

И вообще, что за некрофилия? Теме больше полугода - опять подняли...

 ! 
Флейм удален, Code® получает премод на неделю. Я предупреждал...
volvo