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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2009, 20:22   #1
svt
 
Регистрация: 06.11.2009
Сообщений: 6
По умолчанию Операции над записями и типизированными файлами

Описать структуру с именем AEROFLOT содержащию след поля:
--название пункта назначения рейса
--номер рейса
--тип самолета
Написать программу выполняющею следующие действия с помощью процедур или функций:
--ввод с клавиатуры данных в файл состоящий из элементов типа AeroflotЭ записи должны быть упорябочены по возростанию номера рейса.
--чтение данных из этого файла
--вывод на экран номеров рейсов и типов самолетов вылетающих в пукнт назначения, название которого совпало с названием введенным с клавиатуры.
--если таких рейсов нет выдать соответсвующее сообщение

Код:
Program Aeroflot;
uses crt;
Type AEROFLOT=record
		Punkt:string[20];
		N:integer;
		Tip:string;
End;

Var 	f:file of AEROFLOT;
		Elem1,Elem2:AEROFLOT;
                number:integer;


Procedure Create_file;
Begin

Reset(f);
Writeln('Vvedite svedeniya reisah');
Writeln('EXIT zmy *');
While True Do
		Begin
			Write('Vvedite Punkt');
			Readln(Elem1.Punkt);
			If Elem1.Punkt='* ' Then Exit;
			Write('Vvedite Nя');
			Readln(Elem1.N);
			Writeln('Vvedite TIp');
			Readln(Elem1.Tip);
			Write(f,Elem1)
		End
End;


Procedure Sort_file;
Var i,j:integer;
Begin
Reset(f);
		Seek(f,0);
		For i:=filesize(f)-1 downto 1 do
			For j:=0 to i-1 do
			Begin
				Seek(f,j);
				Read(f,Elem1,Elem2);
				If Elem1.N>Elem2.N then
				Begin
					Seek(f,j);
					Write(f,Elem2,Elem1);
				End
			End
End;

Procedure Print_file;
Begin
Reset(f);
		Seek(f,0);
		Writeln('Punkt', 'Nomer', 'Tip');
		While not eof(f) do
			Begin
				Read(f,Elem1);
				Writeln(Elem1.Punkt, Elem1.N, Elem1.Tip);
			End
	End;


Begin
Assign(f,'c:\1.dat');

While True Do
Begin
clrscr; 
Writeln('1-Vvedite dannue');
Writeln('2-Sortirovka fila');
Writeln('3-Vyvod faila');
Writeln('4-EXIT');
Writeln('-------------------------------');
Writeln('Vvedite nomer punkta menu');
Readln(Number);
Case Number Of 
1:Create_file;
2:Sort_file;
3:Print_file;
4:Exit 
End;
End;
end.
Почему то не работает чтение из файла
И не знаю как реализовать вывод на экран номеров рейсов и типов самолетов вылетающих в пукнт назначения, название которого совпало с названием введенным с клавиатуры.(здесь как я понял нужно только вывести номер рейса и тип самолета. Незнаю как сделать пропуск пункта назначения)
svt вне форума Ответить с цитированием
Старый 09.11.2009, 00:19   #2
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Код:
program laba_2;
uses crt;
const N=7;
type
    AEROFLOT=record
        NAZN:string;
        NUMB:integer;
        TIP:string;
    end;
    
var
 AIPORT:array[1..N]of AEROFLOT;

procedure input;
 var
  i:integer;
begin
    for i:=1 to N do
    begin
        writeln('Введите название рейса');
        read(AIPORT[i].NAZN);
        writeln('Введите номер рейса');
        read(AIPORT[i].NUMB);
        writeln('Введите тип самолёта');
        read(AIPORT[i].TIP);
    end;
end;

procedure sort;
 var
  i,j,tmp:integer;
begin
for i:=n-1 downto 1 do
    for j:=1 to i do
        if AIPORT[j].NUMB>AIPORT[j+1].NUMB then
        begin
            tmp:=AIPORT[j].NUMB;
            AIPORT[j].NUMB:=AIPORT[j+1].NUMB;
            AIPORT[j+1].NUMB:=tmp;
        end;
end;

procedure output;
var
s:string;
i,k:integer;
begin
    writeln('Введите название рейса по которому хотите получить информацию');
    read(s);k:=0;
    for i:=1 to N do
        if (s=AIPORT[i].NAZN) or (s=AIPORT[i].NAZN)then
        begin
             writeln('Искомый маршрут:');
             writeln('    Пункт назначения: ', AIPORT[i].NAZN);
             writeln('    Тип самолёта: ', AIPORT[i].TIP);
             writeln('    Номер рейса: ', AIPORT[i].NUMB);
             k:=1;
        end;
    if k=0 then writeln('Таких рейсов нет.');
end;

begin
    clrscr;
    input;
    sort;
    output;
    readkey;
end.
вот программа, только без работы с файлами... но это написать не сложно....
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с типизированными файлами Siluet Общие вопросы Delphi 1 04.10.2009 14:08
Работа с типизированными файлами. Darangel Помощь студентам 1 17.05.2009 19:19
помогите с задачей на Delphi(с типизированными файлами) lyonya0111 Помощь студентам 2 20.06.2008 15:18