![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Art87 |
![]()
Сообщение
#1
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Задали задачку... Так сказать "финальный аккорд"
![]() Составить программу, помогающую сообщать сведения о местах на авиарейсы из Москвы в Иркутск на календарный месяц (30 дней). В файле прямого доступа хранится информация о местах на рейс на заданное число в виде матрицы, в которой номер строки – ряд номер столбца – номер места в ряду (всего 25 рядов по 6 мест в ряду). Элемент матрицы может иметь следующие значения: 0 – место свободно, 1 – место продано, 2 – место забронировано. Считать, что в день имеется один рейс. Файлы имеют имена следующего типа: «DAYNN», где NN – число на которое хранится информация. Например: «DAY15» - в этом файле хранятся сведения о местах на рейс отправляющийся 15-го числа. По требованию сообщать следующую информацию: - о количестве свободных мест - о проданных местах на заданное число - о проданных местах на весь месяц - о брони на весь месяц - о брони на заданное число Смоделировать покупку, бронирование и сдачу авиабилета. Я в шоке ... Такого еще не было. Блин, даже не знаю с чего начать ... -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
![]() ![]() |
Дож |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(Art87) даже не знаю с чего начать ... Начни с этого: http://forum.pascalnet.ru/index.php?showtopic=2694(Матрицы/Массивы) http://forum.pascalnet.ru/index.php?showtopic=3584(Файлы) http://forum.pascalnet.ru/index.php?showtopic=6011&hl=(Базы данных) Сообщение отредактировано: Дож - 26.11.2005 18:28 -------------------- Доброго времени суток.
:nnn: |
Altair |
![]()
Сообщение
#3
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Формализуем задачу.
В типизированном файле записанна матрица 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.
реализованные функции протестировал. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Art87 |
![]()
Сообщение
#4
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Altair
Спасибо огромное!!! -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
Romtek |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Цитата о количестве свободных мест Подсчитать кол-во нулей в матрице.Цитата о проданных местах на заданное число Считать матрицу из файла за данный день и подсчитать кол-во единиц.Цитата о проданных местах на весь месяц Тоже самое, но считав за весь месяц.Цитата - о брони на весь месяц в том же духе.- о брони на заданное число Ну очень сложное задание! ![]() Главная проблема - это как считать матрицу из файла или как посчитать кол-во нулей в матрице?? -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
![]() ![]() |
![]() |
Текстовая версия | 31.07.2025 5:51 |