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

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

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

 
 Ответить  Открыть новую тему 
> Типизированные файлы, я в шоке ...
сообщение
Сообщение #1


snoWolf
**

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

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


Задали задачку... Так сказать "финальный аккорд" mega_chok.gif

Составить программу, помогающую сообщать сведения о местах на авиарейсы из Москвы в Иркутск на календарный месяц (30 дней). В файле прямого доступа хранится информация о местах на рейс на заданное число в виде матрицы, в которой
номер строки – ряд
номер столбца – номер места в ряду (всего 25 рядов по 6 мест в ряду).
Элемент матрицы может иметь следующие значения:
0 – место свободно,
1 – место продано,
2 – место забронировано.
Считать, что в день имеется один рейс. Файлы имеют имена следующего типа: «DAYNN», где NN – число на которое хранится информация.
Например: «DAY15» - в этом файле хранятся сведения о местах на рейс отправляющийся 15-го числа. По требованию сообщать следующую информацию:

- о количестве свободных мест
- о проданных местах на заданное число
- о проданных местах на весь месяц
- о брони на весь месяц
- о брони на заданное число
Смоделировать покупку, бронирование и сдачу авиабилета.

Я в шоке ... Такого еще не было.
Блин, даже не знаю с чего начать ...


--------------------
Нас десять братьев на тропе, идем мы быстро, на легке ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

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

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


Цитата(Art87)
даже не знаю с чего начать ...


Начни с этого:
http://forum.pascal.net.ru/index.php?showtopic=2694(Матрицы/Массивы)
http://forum.pascal.net.ru/index.php?showtopic=3584(Файлы)
http://forum.pascal.net.ru/index.php?showtopic=6011&hl=(Базы данных)

Сообщение отредактировано: Дож -


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


Формализуем задачу.

В типизированном файле записанна матрица 25x6

Требуется посчитать в матрице кол-во элементов равных t.
(и некоторые другие действия для других подзадач)

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

uses crt;
Type
ATable = array[1..25,1..6]of byte;
Var {global}
f:file of ATable;


Procedure ReadMatr(var A:Atable);
var
i,j:word;
begin
For i:=1 to 25 do begin
for j:=1 to 6 do begin
write('A[',i,j,']= ');
readln(A[i,j])
end;
clrscr;
end
end;

Procedure PrintMatr(A:Atable);
Var
i,j:word;
begin
For i:=1 to 25 do begin
For j:=1 to 6 do write(A[i,j],' ');
writeln;
end
end;

procedure writetable(filename:string; tabl:Atable);
begin
Assign(f,filename);
rewrite(f);
write(f,tabl);
close(f);
end;

procedure ReadTable(filename:string; var tabl:ATable);
begin
Assign(f,filename);
reset(f);
read(f,tabl);
close(f);
end;

Procedure GetCount(nn:byte);
var
mn,selcase,i,j,s:byte;
fn:string;
A:ATable;
begin
repeat
clrscr;
write('enter day: '); readln(mn);
if (mn<1) or (mn>31) then writeln('error!') else begin
str(mn,fn);
fn:='DAY'+fn;
end
until (mn>=1) and (mn<=31);
readtable(fn,A); s:=0;
for i:= 1 to 25 do begin
for j:=1 to 6 do begin
if a[i,j]=nn then inc(s);
end;
end; writeln(s);
writeln('OK! press any key...'); readkey
end;

var
mn,selcase,i,j,s:byte;
fn:string;
A:ATable;
begin

repeat
clrscr;
writeln('1. Enter table');
writeln('2. free seats');
writeln('3. sold seats (day)');
writeln('4. sold seats (month)');
writeln('5. reserved seats (month)');
writeln('6. reserved seats (day)');
writeln('--------------------------------');
writeln('7. purchase of ticket');
writeln('8. reserve ticket');
writeln('9. return ticket');
writeln('exit -> ');
selcase:=ord(readkey);
if (selcase >=48) and (selcase<=60) then dec(selcase,48);
case selcase of
1: begin
repeat
clrscr;
write('enter day: '); readln(mn);
if (mn<1) or (mn>31) then writeln('error!') else begin
str(mn,fn);
fn:='DAY'+fn;
end
until (mn>=1) and (mn<=31);
readmatr(A);
writetable(fn,A);
writeln('file ',fn,' created! press any key...'); readkey
end;
2: begin
GetCount(0);
end;

3: begin
GetCount(1);
end;
4: begin

end;
5: begin
end;
6: begin
GetCount(2);
end;
7: begin end;
8: begin end;
9: begin end;
end;
until selcase=27;
end.



реализованные функции протестировал.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


snoWolf
**

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

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


Altair
Спасибо огромное!!!


--------------------
Нас десять братьев на тропе, идем мы быстро, на легке ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

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

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


Цитата
о количестве свободных мест
Подсчитать кол-во нулей в матрице.
Цитата
о проданных местах на заданное число
Считать матрицу из файла за данный день и подсчитать кол-во единиц.
Цитата
о проданных местах на весь месяц
Тоже самое, но считав за весь месяц.
Цитата
- о брони на весь месяц
- о брони на заданное число
в том же духе.
Ну очень сложное задание! blink.gif
Главная проблема - это как считать матрицу из файла или как посчитать кол-во нулей в матрице??


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 27.04.2024 1:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name