IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Сортировка и файлы
tory
сообщение 24.04.2007 16:21
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Задача такая:
Создать файл с записями.
Выполнить сортировку по стоимости устройств.
Создать файл с отсортированными записями.
Что-то наваял, но доделать не могу.
Помогите...
Program Modul;
uses crt;
const
n = 3;
type
TRec = record {базовый тип, хранит информацию об устройстве}
Name : string[10]; {наименование устройства}
Ves : real;
Vus : real;
Dli : real;
Shi : real;
Stoim : real;
end;
TBase = array [1..n] of TRec; {база данных: информация об устройствах}
TFile = file of Tbase;{файл для хранения базы данных}
procedure Input (var b : Tbase; var f : TFile); {ввод данных}
var
i : byte;
begin
for i := 1 to n do begin
writeln('Запись N ',i);
write('Naimenovanie ustroistva : '); readln(b[i].name);
write('Ves : '); readln(b[i].Ves);
write('Vusota : '); readln(b[i].Vus);
write('Dlina : '); readln(b[i].Dli);
write('Shirina : '); readln(b[i].Shi);
write('Stoimost : '); readln(b[i].Stoim);
readln;
end;
write(f,b); {записываем базу данных в файл}
end;
procedure Print(var b : Tbase; var f : TFile); {вывод данных}
var
i : byte;
begin
{чтение базы из файла}
for i := 1 to n do
begin
write(' ':6,i);
write(' ':1,b[i].name:5);
write(' ':11,b[i].Ves:5);
write(' ':2,b[i].Vus:5);
write(' ':1,b[i].Dli:5);
write(' ':3,b[i].Shi:5);
write(' ':2,b[i].Stoim:5);
writeln;
end;
end;
procedure Sort(var b : TBase); {сортировка записи}
var
i : byte;
temp : TRec;
flag : boolean;
begin
repeat
flag := true;
for i := 1 to n - 1 do
if not (b[i].Stoim >= b[i+1].Stoim) then begin
temp := b[i];
b[i] := b[i + 1];
b[i + 1] := temp;
flag := false;
end;
until flag;
end;
var
base : TBase;
baseFile : Tfile;
begin
clrscr;
assign(baseFile, 'c:\ustrojstva.db');
rewrite(baseFile); {открываем файл для записи}
writeln ('Vvod dannux : ');
Input(base, baseFile);
Print (base, baseFile);
Sort(base);
writeln;
writeln(' ':5,'|---|--------------|--------|-----------------------------|----------|');
writeln(' ':5,'| |Naimenovanie | Ves | Gabaritu, cm | Stoim |');
writeln(' ':5,' | ustroistva | kG | Vusota | Dlina |Shirina | grn |');
writeln(' ':5,'|---|--------------|--------|---------|---------|---------|----------|');
Print(base, baseFile);
Input(base, baseFile);{производим запись в файл}
readln;
close(baseFile); {закрываем файл}
readln;
end.


 ! 
Пользуйся тегами !
klem4



Прикрепленные файлы
Прикрепленный файл  LABR.PAS ( 2.49 килобайт ) Кол-во скачиваний: 151
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
tory
сообщение 25.04.2007 12:16
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


а как это сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"