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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2013, 00:15   #1
llZveRll
Новичок
Джуниор
 
Регистрация: 05.01.2012
Сообщений: 2
Восклицание Сведения о занятых ячейках камеры хранения...

Помогите, не могу разобратся с задачей. Вроде делаю правильно, а выводит вообще какие-то "левые" значения.

Вот условия и код моей программы:

Задача: Сведения о занятых ячейках камеры хранения хранятся в файле: <номер ячейки> <дата сдачи багажа>
Номер ячейки - это целое число, дата - 5 символов: день(орвно две цифры от 01 до 31), затем через точку - месяц(ровно две цифры от 01 до 12). Сведения отсортированы по номерам ячеек. Программа запрашивает и вводит текущую дату в формате: день(орвно две цифры от 01 до 31), затем через точку - месяц(ровно две цифры от 01 до 12), все даты относятся к одному календарному году. Считать что в феврале 28 дней.
Нужно вывести номера тех ячеек, в которых багаж хранится более 3 дней в хронологическом порядке.

Код:
type bagaj=record
n:integer;
data:string[5];
end;

function per(s1,s2:string):integer;
var a,b,k,p:integer;
begin
p:=0;
val(s1,a,k); val(s2,b,k);
p:=(p+a)*10+b;
per:=p;
end;

var
f:file of bagaj;
i:integer;
s:bagaj;
td:string;
ch,tch,tme,me:byte;
begin
assign(f,'in.txt');
reset(f);

readln(td);
tch:=per(td[1],td[2]);
tme:=per(td[4],td[5]);

while not eof(f) do
begin
read(f,s);
ch:=per(s.data[1],s.data[2]);
me:=per(s.data[4],s.data[5]);
if tme>me then
writeln(s.n)
else
if tch+3>ch then
writeln(s.n);
end;
close(f);
end.


сортировку в хронологическом порядке я еще не расматривал. "левые" значения начинают появлятся после считывания с файла

вот файл который я использую для проверки программы:
1 07.12
2 10.12
3 11.12
4 15.12
5 12.12
6 09.12
llZveRll вне форума Ответить с цитированием
Старый 08.01.2013, 16:54   #2
llZveRll
Новичок
Джуниор
 
Регистрация: 05.01.2012
Сообщений: 2
По умолчанию

Помогите кто нибудь, очень надо((
llZveRll вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование занятых файлов assch Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 17.02.2011 21:23
Исследование особенностей людей, занятых IT Caotica Свободное общение 38 11.05.2010 11:29
Работа с файловой системой, получение номеров кластеров занятых файлом (assembler) Goenich Помощь студентам 3 03.06.2009 16:40
Как определить количество занятых секторов на диске в делфи? buka_14 Помощь студентам 0 16.04.2009 16:42