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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2014, 17:53   #1
VladKB1
Форумчанин
 
Регистрация: 21.05.2014
Сообщений: 121
Радость 2 задачи,сортировки (TurboPascal)

Всем привет! Начал решать задачу решил её, но она не проходит на тесте 0 подскажите где ошибка?

Условие 1 задачи :

Сначала вводится число N (1 < = N < = 100), а затем N моментов времени. Каждый момент времени задается 3 целыми числами - часы (от 0 до 23), минуты (от 0 до 60) и секунды (от 0 до 60).

Выведите моменты времени, упорядоченные в порядке неубывания (момент времени также выводится в виде трех чисел, ведущие нули выводить не обязательно)
Пример входного файла:
4
10 20 30
7 30 00
23 59 59
13 30 30

Пример выходного файла:
7 30 0
10 20 30
13 30 30
23 59 59

Моё решение:

Код:
var
 hours: array [0..23] of longint;
 minutes,seconds: array [0..60] of longint;
 i,j,n,z: longint;
begin
 read(n);
 for i:=1 to n do read(hours[i],minutes[i],seconds[i]);

 for i:=1 to n-1 do
 begin
  for j:=i+1 to n do
  if (hours[i] > hours[j])
  or ((hours[i] = hours[j]) and
  (minutes[i] < minutes[j]))
  or ((hours[i] = hours[j]) and
  (minutes[i] = minutes[j]) and
  (seconds[i] < seconds[j])) then
  begin
   z:= hours[i];
   hours[i]:= hours[j];
   hours[j]:= z;
   z:= minutes[i];
   minutes[i]:= minutes[j];
   minutes[j]:=z;
   z:= seconds[i];
   seconds[i]:= seconds[j];
   seconds[j]:=z;
  end;
 end;
 for i:=1 to n do writeln(hours[i],' ',minutes[i],' ',seconds[i]);
end.
P.S. Что бы проверить или задача проходит все тесты нужно отослать её на этом сайте:
http://contester.tsure.ru/index.php?...php&EditID=202 (нужно зарегистрироваться, но можете и не проверять я сам проверю)

И вот 2 задача:

Вовочка решил ограбить машину инкасации. Он разработал идеальный план ограбления.
Из разных источников Вовочка получил информацию о расположениях машины в разные
моменты времени. Он хочет узнать путь следования машины.
Формат ввода:
n количество источников (1≤n≤100)
k1 h1 m1 ki - номер пункта, hi mi – время: часы и минуты;
k2 h2 m2 (0≤ki≤255, 0≤hi≤23, 0≤mi≤59)

kn hn mn

Формат вывода: выведите порядок следования машины в формате "hh:mm - k". hh:mm -
время(часы и минуты соответственно), k - номер пункта в данное время.

time.in
5
233 10 30
173 09 01
44 11 10
252 12 00
139 08 30

time.out
08:30 - 139
09:01 - 173
10:30 - 233
11:10 - 44
12:00 - 252

Вот моё решение:

Код:
var
 k: array [0..255] of longint;
 hours: array [0..23] of longint;
 minutes: array [0..59] of longint;
 i,j,min,minJ,n,z: longint;
begin
 assign(input,'time.in');
 reset(input);
 assign(output,'time.out');
 rewrite(output);
 read(n);
 for i:=1 to n do read(k[i],hours[i],minutes[i]);

 for i:=1 to n-1 do
 begin
  for j:=i+1 to n do
  if (hours[i] > hours[j])
  or ((hours[i] = hours[j]) and
  (minutes[i] < minutes[j]))
  or ((hours[i] = hours[j]) and
  (minutes[i] = minutes[j]) and
  (k[i] < k[j])) then
  begin
   z:= k[i];
   k[i]:= k[j];
   k[j]:= z;
   z:= hours[i];
   hours[i]:= hours[j];
   hours[j]:=z;
   z:= minutes[i];
   minutes[i]:= minutes[j];
   minutes[j]:=z;
  end;
 end;
 for i:=1 to n do writeln(hours[i],':',minutes[i],' - ',k[i]);
end.
В примере вывода нужно выводить все 0 , а моя программа выводит только 1:

Пример ввода и вывода:

time.in
5
233 10 30
173 09 01
44 11 10
252 12 00
139 08 30

time.out
08:30 - 139
09:01 - 173
10:30 - 233
11:10 - 44
12:00 - 252

Ввод и вывод моей программы:

time.in
5
233 10 30
173 09 01
44 11 10
252 12 00
139 08 30

time.out
8:30 - 139
9:1 - 173
10:30 - 233
11:10 - 44
12:0 - 252


Зарание всем спасибо кто хоть как-нибудь поможет

Огромное спасибо BDA за помощь в решении задачи! И не в первый раз!

Последний раз редактировалось VladKB1; 10.06.2014 в 21:59.
VladKB1 вне форума Ответить с цитированием
Старый 10.06.2014, 18:12   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

В первой задаче:
Код:
var
 hours: array [0..23] of longint;
 minutes,seconds: array [0..60] of longint;
А n может быть от 1 до 100. Во второй задаче тоже самое. Вы путаете размер массива (диапазон индексов) и возможные значения.
Можно так:
Код:
hours: array [1..100] of 0..23;
По второму вопросу:
Код:
writeln(hours[i]:2,':',minutes[i]:2,' - ',k[i]);
Не нужно цитировать всё сообщение, на которое отвечаете.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.06.2014 в 18:20.
BDA вне форума Ответить с цитированием
Старый 10.06.2014, 18:39   #3
VladKB1
Форумчанин
 
Регистрация: 21.05.2014
Сообщений: 121
По умолчанию

Цитата:
В первой задаче:
Код:

var
hours: array [0..23] of longint;
minutes,seconds: array [0..60] of longint;

А n может быть от 1 до 100. Во второй задаче тоже самое. Вы путаете размер массива (диапазон индексов) и возможные значения.
Можно так:
Код:

hours: array [1..100] of 0..23;
Исправил всё равно не проходит на тесте 0;

Цитата:
По второму вопросу:
Код:

writeln(hours[i]:2,':',minutes[i]:2,' - ',k[i]);
Я исправил теперь оно выводит без одного 0 но с правым:

Пример ввода, вывода:

time.in
5
233 10 30
173 09 01
44 11 10
252 12 00
139 08 30

time.out
08:30 - 139
09:01 - 173
10:30 - 233
11:10 - 44
12:00 - 252

Что выводит у меня:

time.in
5
233 10 30
173 09 01
44 11 10
252 12 00
139 08 30

time.out
8:30 - 139
9:{тут нет нуля}1 - 173
10:30 - 233
11:10 - 44
12:{тут тоже нет нуля}0 - 252

Последний раз редактировалось VladKB1; 10.06.2014 в 18:42.
VladKB1 вне форума Ответить с цитированием
Старый 10.06.2014, 18:50   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

1 задача - размер у всех массивов поправили?
2 задача - действительно я не прав. Такая запись только добавит пробелы.
Можно так, если используется freepascal:
Код:
uses sysutils;
...
writeln(Format('%.2d:%.2d - %d',[hours[i],minutes[i],k[i]]));
Или придется писать что-то такое:
Код:
if hours[i] < 10 then write(0);
write(hours[i],':');
if minutes[i] < 10 then write(0);
writeln(minutes[i],' - ',k[i]);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.06.2014, 19:04   #5
VladKB1
Форумчанин
 
Регистрация: 21.05.2014
Сообщений: 121
По умолчанию

Цитата:
1 задача - размер у всех массивов поправили?
Да у всех всё равно не проходит 0 тест;

Цитата:
2 задача - действительно я не прав. Такая запись только добавит пробелы.
Можно так, если используется freepascal:
Код:

uses sysutils;
...
writeln(Format('%.2d:%.2d - %d',[hours[i],minutes[i],k[i]]));

Или придется писать что-то такое:
Код:

if hours[i] < 10 then write(0);
write(hours[i],':');
if minutes[i] < 10 then write(0);
writeln(minutes[i],' - ',k[i]);
А вот это работает ОГРОМНОЕ спасибо!
VladKB1 вне форума Ответить с цитированием
Старый 10.06.2014, 19:20   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Пожалуйста.

1 задача:
Код:
if (hours[i] > hours[j]) or
((hours[i] = hours[j]) and (minutes[i] > minutes[j])) or
((hours[i] = hours[j]) and (minutes[i] = minutes[j]) and (seconds[i] > seconds[j])) then
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.06.2014, 19:26   #7
VladKB1
Форумчанин
 
Регистрация: 21.05.2014
Сообщений: 121
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Пожалуйста.

1 задача:
Код:
if (hours[i] > hours[j]) or
((hours[i] = hours[j]) and (minutes[i] > minutes[j])) or
((hours[i] = hours[j]) and (minutes[i] = minutes[j]) and (seconds[i] > seconds[j])) then
ОГРОМНОЕ СПАСИБО X2! Вы очень добрый и отзывчивый человек!
Всё работает!


P.S. если не заняты помогите с этим http://programmersforum.ru/showthread.php?t=262477
VladKB1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировки (TurboPascal) VladKB1 Помощь студентам 11 09.06.2014 17:34
2 задачи. (TurboPascal) VladKB1 Помощь студентам 12 25.05.2014 13:19
Задачи Turbopascal happy_cocktail Помощь студентам 2 03.12.2012 18:05
Задачи в TurboPascal Travi the Hedgehog Помощь студентам 18 07.01.2012 21:53
Задачи сортировки StudentYoujef Помощь студентам 0 29.12.2011 20:29