Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2012, 16:59   #1
Олежик95
Новичок
Джуниор
 
Регистрация: 27.04.2012
Сообщений: 2
Восклицание Заданный файл записів : прізвище, адреса, телефон ...

Заданный файл записів : прізвище, адреса, телефон. Вилучити з файлу відомості про людей без телефона і переписати прізвища у алфавітному порядку.

помогите плиз если не сложно
Олежик95 вне форума Ответить с цитированием
Старый 27.04.2012, 17:33   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

И в чем проблема? Считываешь из файла в массив, попутно выводишь, если запись без телефона. Потом сортируешь массив по полю с именем, потом пишешь в файл отсортированый массив.

Цитата:
Сообщение от Олежик95 Посмотреть сообщение
Заданный файл записів
Файл в студию. Ну и формат записи, естественно.

Впрочем если напишешь хотя бы формат записи, то помогу с кодом.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 27.04.2012, 18:46   #3
Олежик95
Новичок
Джуниор
 
Регистрация: 27.04.2012
Сообщений: 2
По умолчанию

program lab10_1;
uses crt;
type people=record
last_name:string;
adress:string;
telephone:integer;
end;
mas=array[1..5] of people;
var a:mas;
f:file of mas;
i,j,k,l:integer;
p: people;
s:char;
procedure vvod;
begin
assign(f,'lab10_1.txt');
rewrite(f);
writeln('input records:');
i:=0;
repeat
i:=i+1;
with a[i] do
begin
write('last_name of people'); readln(last_name);
write('adress'); readln(adress);
write('telephone'); readln(telephone);
writeln('p,a');
end;
writeln('continue?y/n');
s:=readkey;
until s='n';
close(f);
end;
procedure vyvod;
begin
clrscr;
reset(f);
writeln('Array of records:');
writeln('-----last_name------adress-----telephone-------');
for j:=1 to i do
begin
with a[j] do
begin
gotoxy(5,5+j); write(last_name);
gotoxy(20,5+j); write(adress);
gotoxy(35,5+j); write(telephone);
end;
writeln;
end;
end;

begin
clrscr;
writeln('lab.ork 10.1');
writeln('variantN24,student Cherchuk');
vvod;
vyvod; readln;
sort; readln;
close(f);
end.

вот

Последний раз редактировалось Олежик95; 27.04.2012 в 18:49.
Олежик95 вне форума Ответить с цитированием
Старый 27.04.2012, 19:13   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Я х**ю, дорогая редакция...
Ладно, раз уж обещал:
Код:
 type
 people=record
   last_name:string[255];
   adress:string[255];
   telephone:integer;
 end;

 mas=array[1..5] of people;

 var
   a:mas;
   f:text;//file of mas;
   i,j,k,l:integer;
   p: people;
   s:char;
 procedure vvod;
   begin
     assign(f,'lab10_1.txt');
     rewrite(f);
     writeln('input records:');
     i:=0;  // КАК? Как на i можно повесить количество записей?
     repeat
       i:=i+1;
       with a[i] do
       begin
         write('last_name of people'); readln(last_name);
         write('adress'); readln(adress);
         write('telephone'); readln(telephone);
         writeln('p,a'); //WTF?
       end;
       writeln('continue?y/n');
//       s:=readkey;
       readln(S);
     until s='n';
     close(f);
   end;
 procedure vyvod;
   begin
//     clrscr;
     reset(f);
     writeln('Array of records:');
     writeln('-----last_name------adress-----telephone-------');
     for j:=1 to i do
       begin
         with a[j] do
           begin
             write(last_name,' ');
             write(adress,' ');
             writeln(telephone,' ');
           end;
       end;
   end;

 procedure sort;
  var
    tmp:string;
    t:file of people;
  begin
  for k:=1 to i-1 do
    for j:=k+1 to i do //был бы преподом - убил бы за такое. 
      if a[j].last_name<a[k].last_name then
        begin
          tmp:=a[j].last_name;
          a[j].last_name:=a[k].last_name;
          a[k].last_name:=tmp;
        end;
  assign(T,'C:\output.ppl');
  rewrite(T);
  for j:=1 to i do
    write(t,a[j]);
  close(T);
  end;



 begin
// clrscr;
 writeln('lab.ork 10.1');
 writeln('variantN24,student Cherchuk');
 vvod;
 vyvod;
 readln;
 sort;
 readln;
 close(f);
 end.
Прога работает процентов на несколько.
f:file of mas; - бред
assign(f,'lab10_1.txt'); - учитывая вышесказаное, тоже бред. Даже если верхнее написать правильно - все равно бред.

Как уже написал в коментах, я бы такую работу даже проверять не стал.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер, извлечение полного адреса и запись его в файл frm user Помощь студентам 0 20.02.2012 20:28
Известны фамилии,адреса и телефоны 25-ти человек,Найти фамилии и адреса людей,чей телефон начинается с цифры 3. Расмотреть два слу salomon93 Паскаль, Turbo Pascal, PascalABC.NET 11 01.12.2011 23:36
переход на заданный сайт или как вставить в заданное место заданный текст Biker89 Общие вопросы Delphi 23 29.05.2011 01:59
Как узнать из адреса файл это или папка? Anfall Общие вопросы Delphi 12 25.02.2009 23:40
открыть с помощью Firefox заданный url и исполнить bat файл stayer Общие вопросы Delphi 2 26.10.2008 10:48