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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2009, 01:11   #1
NEMO1991
Пользователь
 
Аватар для NEMO1991
 
Регистрация: 20.12.2008
Сообщений: 64
Радость Файлы в Паскале

вот пару задач по файлам.чето на форуме ни одной не нашел.у кого будет время подскажите или проверьте правильная ли 2 прога.

1 Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим именем и вывести TRUE. Если файл с именем S создать нельзя, то вывести FALSE.

2 Дан файл целых чисел. Удалить из него все отрицательные числа.
Код:
uses crt;
var f,g:file of integer;
a,i:integer;
c:char;
begin
clrscr;
assign(f,'filef.doc');
rewrite(f);
assign(g,'fileg.doc');
rewrite(g);
for i:=1 to 10 do
begin
write('a=');
readln(a);
write(f,a);
end;
Assign(f,'filef.doc');
Reset(f);
Assign(g,'fileg.doc');
Rewrite(g);
while Not Eof(f) do begin
   Read(f,a);
   if a>=0 then Write(g,a);
end;
reset(g);
writeln;
while not eof(g) do
begin
read(g,a);
write(a,' ');
end;
Close(f);
Close(g);
end.
3 Даны два текстовых файла. Добавить в начало первого файла содержимое второго файла.

4 Дан текстовый файл. Вывести последнее слово текста наименьшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки.
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
::читать тут:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
NEMO1991 вне форума Ответить с цитированием
Старый 06.06.2009, 01:21   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

По второй:
вы не закрываете файлы (а надо).
Код:
uses crt;
var f,g:file of integer;
a,i:integer;
begin
clrscr;
assign(f,'filef.doc');
rewrite(f);
assign(g,'fileg.doc');

for i:=1 to 10 do
begin
write('a=');
readln(a);
write(f,a);
end;
close(f);

Reset(f);
rewrite(g);
while Not Eof(f) do begin
   Read(f,a);
   if a>=0 then Write(g,a);
end;
close(g);

reset(g);
writeln;
while not eof(g) do
begin
read(g,a);
write(a,' ');
end;
Close(f);
Close(g);
readln;
end.
----------------
1. А что будет являться допустимым именем?
Собственно, тут ведь, вроде, все понятно.

3. Делается через временный файл. Содержимое 1 переносим в 3, потом открываем 1 на запись и копируем туда содержимое 2. Потом добавляем содержимое 3 и удаляем 3.

4. Читаете в буфер, пока не встретим разделитель (пробел или '\n'). Считаем длину буфера. Если она меньше или равна запомненному ранее минимуму (или если еще ничего не запомнили), то запоминаем его. И там до конца файла.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.06.2009, 13:33   #3
NEMO1991
Пользователь
 
Аватар для NEMO1991
 
Регистрация: 20.12.2008
Сообщений: 64
По умолчанию

не заметил..
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
::читать тут:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
NEMO1991 вне форума Ответить с цитированием
Старый 06.06.2009, 19:41   #4
NEMO1991
Пользователь
 
Аватар для NEMO1991
 
Регистрация: 20.12.2008
Сообщений: 64
По умолчанию

помогите плз с первой а с остальными уж как нить справлюсь
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
::читать тут:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
NEMO1991 вне форума Ответить с цитированием
Старый 06.06.2009, 20:07   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от NEMO1991
помогите плз с первой а с остальными уж как нить справлюсь
Просто проверяйте, чтобы в имени файла не было спецсимволов. То есть только буквы, цифры и некоторые знаки (.,!? и еще какие-то) Я уже не помню все ограничения.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.06.2009, 20:14   #6
NEMO1991
Пользователь
 
Аватар для NEMO1991
 
Регистрация: 20.12.2008
Сообщений: 64
По умолчанию

а вот как записать эти ограничения...и есть ли где нить что то похожее на форуме?
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
::читать тут:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
NEMO1991 вне форума Ответить с цитированием
Старый 06.06.2009, 20:23   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
1 Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим именем и вывести TRUE. Если файл с именем S создать нельзя, то вывести FALSE.
насколько я понимаю, речь идёт о MS DOS файлах.
Значит это короткие имена формата 8.3 (требования такие:
Цитата:
В ПОЛНОМ имени файла разрешается использовать только следующие
символы : A-Z 0-9 $ & # `~ ( ) - % ! _ ^ В ПОЛНОМ имени файла запрещается
использовать все остальные символы !!!
ЗАПРЕЩАЕТСЯ В ПОЛНОМ имени файла использовать ПРОБЕЛ !!!
Предлагаю такой алгоритм:
Тогда ищите в строке точку - если есть - разбираете строку на две подстроки - до точки и после точки.
проверяете на длину (длина первой подстроки должна быть больше или равна единице и меньше или равна 8)
у второй подстроки - длина >= 0 и <= 3
если длина не подходит - возращаем FALSE
для каждой подстроки проверяем, нет ли недопустимых символом (набор допустимых можно либо в строчке сохранить, либо множесто организовать). Если встретили недопустимый символ возращаем FALSE, иначе - TRUE
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.06.2009, 20:23   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а вот как записать эти ограничения
Поместите все возможные символы в множество. Как-нибудь так
Код:
var mn : set of char;

begin
mn := ['0'..'9','a'..'z','A'..'Z','!','?','.',','];
И проверяйте каждый символ строки на принадлежность этому множеству. Ну там еще добавите нужные символы.

Ну вот уже Serge_Bliznykov более полно описал )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 06.06.2009 в 20:27.
Sazary вне форума Ответить с цитированием
Старый 06.06.2009, 20:32   #9
NEMO1991
Пользователь
 
Аватар для NEMO1991
 
Регистрация: 20.12.2008
Сообщений: 64
По умолчанию

спс))ща че нить попробую)
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
::читать тут:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
NEMO1991 вне форума Ответить с цитированием
Старый 07.06.2009, 11:56   #10
NEMO1991
Пользователь
 
Аватар для NEMO1991
 
Регистрация: 20.12.2008
Сообщений: 64
По умолчанию

можно ли сделать так чтобы когда вводишь строку и если в ней нету определенного символа то происходит конец програмы?
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
::читать тут:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
NEMO1991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы в Паскале COLD Помощь студентам 1 05.06.2009 17:55
2 задачи на файлы в Паскале COLD Помощь студентам 0 02.06.2009 18:54
файлы в паскале Dmitrij Помощь студентам 2 28.03.2009 20:00
Файлы на ПАСКАЛЕ!!! Нана Помощь студентам 4 26.04.2008 12:24
Файлы в паскале kitty Помощь студентам 4 22.04.2008 20:42