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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2006, 20:27   #1
El_Bint0
 
Регистрация: 10.12.2006
Сообщений: 9
По умолчанию Работа с файлами

Дорогие форумчане и модераторы пожалуйста решите эти две задачи....я вас очень прошу....!!!!!Буду очень благодарен!!
Задачи на паскале:

1) Заполнить файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Из файла f получить файл g, исключив повторные вхождения чисел. Вывести файл g на печать(на экран).

2) Дан файл, содержащий текст. Составить в алфавитном порядке список всех слов, встречающихся в этом тексте.


ЗАРАНИЕ ВСЕМ СПАСИБО!!!
Кто чем может....спасите меня..., а то это последняя лабораторная по которой у меня нет лекции...а сдавать уже надо завра!!Пожалуйста решите мне ИХ!!!!! =)
El_Bint0 вне форума Ответить с цитированием
Старый 20.12.2006, 02:07   #2
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Программа №2.
Код:
const m=100;    // Максимальное кол-во слов. 

var F:Text;
    a:array[1..m] of string;
    i:integer;
    FileName:string;

Procedure Load(FileName:String);
begin
Assign(F,FileName);
Reset(F);
end;

Procedure Sort1;
var s:string;
begin
i:=1;
repeat
ReadLn(F,s);
 repeat
 a[i]:=Copy(s,1,pos(' ',s)-1);
 delete(s,1,pos(' ',s));
 inc(i);
 until pos(' ',s)=0;
 a[i]:=s;
until EoF(F);
end;

Procedure Sort2;
var n:integer;
    s,s2:string;
    z:boolean;
begin
repeat
z:=false;
for n:=1 to i-2 do
 begin
 s:=a[n];
 s2:=a[n+1];
 if ord(s[1]) > ord(s2[1]) then
  begin
  a[n]:=s2;
  a[n+1]:=s;
  z:=true;
  end else
  if (ord(s[2]) > ord(s2[2])) and (s[1]=s2[1])  then
   begin
   a[n]:=s2;
   a[n+1]:=s;
   z:=true;
   end else
   if (ord(s[3]) > ord(s2[3])) and (s[1]=s2[1]) and (s[2]=s2[2]) then
    begin
    a[n]:=s2;
    a[n+1]:=s;
    z:=true;
    end;
 end;
until z = false;
end;

Procedure Vivod;
var n:integer;
begin
for n:=1 to i-1 do
writeln(a[n]);
end;

begin
WriteLn('File:');
Readln(FileName);
Load(FileName);
Sort1;
Sort2;
Vivod;
readln;
end.
Осталось сделать 2 замечания. Первое - после последнего слова для корректной работы должен быть пробел. И пторое - проверка "алфавитности" идет по 3 первым символам. По необходимости исправишь.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Yar Помощь студентам 2 02.06.2008 08:03
Работа с файлами Stiker Общие вопросы C/C++ 1 10.04.2008 22:47
Работа с файлами Zenit10 Помощь студентам 2 19.01.2008 09:59
Работа с файлами ShVad Общие вопросы Delphi 4 03.02.2007 10:43