![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
maksimla |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: ![]() ![]() ![]() |
я сечас прохожу все что связано с двоичным массивом.
7 задачка две дороги и стоят 4 светофора по два на каждой дороги. для пешеходов загорается зеленый свет в то самое время как на кнопку нажал и горит 30 секунд. Данные записываются в центре когда именно нажал пешеход на кнопку. напишите а) идею решения б) программу сколько секунд за сутки горит зеленый свет на всех светофорах. Первичные данные записаны в файле duom.txt. На первой строчке записано натуральное число n (1 ≤ n ≤ 1000) . В последующих n строчках записано такие данные D или K D - правая K - левая сторона пути, потом записаны 3 неотрицательные числа val - часы, min - минуту и sek - секунды, показывающие когда нажал пешеход на кнопку, (0 ≤ val ≤ 23, 0 ≤ min ≤ 59, 0 ≤ sek ≤ 59). Результат записывается в секундах в файл rez.txt. пример первичные данные 8 K 21 1 59 D 7 8 0 K 13 55 13 D 13 54 59 D 21 2 29 K 7 8 0 D 7 7 50 K 13 55 30 результат 44 обьяснение 7 8 0 загорелся свет в обоих частях и горел 30 секунд D 13 54 59 в правой загорелся K 13 55 13 в левой загорелся и горел в месте 14 секунд. Общее горения 44 секунды. непонял почему они еще непощетали это K 7 8 0 D 7 7 50 и так получается тут горел 20 секунд да и плюс те 44 выходит результат 64. вот сделал програмку очень понятную и сразу понятно где ошибка есть вот она program sviesoforas; вот еще другую сделал тожесамая ошибка program sviesoforas; посоветуйте как лутше сделать или исправьте эти программки. 8 задача Дан список владельцев автомобилей и их номера автомобилей. Надо по номеру автомобиля найти этого человека которому автомобиль принадлежит. в файле duom.txt. написано на первой строке номер автомобиля которого найти нада на второй строке написан сколько в списке фамилий. фамилия может содержать до 20 символов номер 3 буквы латинские и 3 цифры от 1 до 999. вот предоставили данные const SK = 1000; и все номера автомобилей будут по порядку идти AAA001 AAA002 AAA005 AAA006 ... AAA999 AAB002 ... и еще списак можетбыть от 1 до 1000 людей данные записать в файл rez.txt. пример KVL578 6 Petraitis ABC321 Petkeviciene BJU500 Jonaitis DKG512 Antanaitis KVL578 Zemaityte KVL644 Bartkus VVV255 результат фамилия владельца автомобиля Antanaitis вот я зделал простую программу эту все правильно выводит вот program automobilis; потом я эту программу перепишу в двоичный поиск сделаю. непонятно мне следущее Вместе с 7 и 8 заданиями вместе должно быть выложена программа генерирующая случайное условия соответствующую первичным набором данных (случайный тест) в котором должен быть хоть один искомый обьект. вот все ого как это так может обесните. и еще эти задания должны быть записаны в файлы lapsi107.pas и lapsi108.pas генерирующие программы должны быть записаны в файлы apsi107gen.pas и lapsi108gen.pas . во как даже может мне обьясните что за генераторы и как их сделать . Добавлено через 2 мин. ого сколько много написал я. если что нибуть непонятно то спросите уж извините за перевод с литовского на русский Сообщение отредактировано: Lapp - 18.12.2008 8:27 Эскизы прикрепленных изображений ![]() -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата только зачем написали два var? А какая разница? Хоть пять разделов Var сделай, от этого ничего не изменится... Я по привычке, чтоб далеко наверх не проматывать страницу, сделал еще один раздел, и там все определил... Хочешь - объедини.Цитата и почему меньше ресурсов требует Ну, смотри: у тебя 3 массива по 1001 элементу (каждый Integer занимает по 2 байта), и еще 1001 Char (по одному байту). Всего примерно 7000 байт выделено. Я, вместо того, чтобы хранить и постоянно сравнивать 3 числа на каждое событие, записываю в один LongInt смещение от начала суток в секундах (у тебя в условии написано, что данные в файле хранятся только за сутки). Итого 1001 * 4 + 1001 * 1 = 5000 байт примерно. Вот тебе и экономия почти 2К.Цитата а тут уже нечего непонел зачем сперва полследнее время смотрите а потом первое Хм.. Смотри:// сначала сортируем смещения (а вместе с ними и соответствующие им буквы) Вот, собственно, и вся идея. А 86400 - это количество секунд в сутках (60 сек * 60 мин * 24 часа), я делал mod 86400 для того, чтобы никакие смещения и разницы не превышали этого числа, это может помочь правильно дать ответ даже тогда, когда время в файле записано чуть больше, чем за сутки. Если сильно раздражает - можешь попробовать убрать это получение остатка. В подавляющем большинстве случаев результаты и так будут меньше 86400. Цитата и еще в компеляторе написали left_until неиспользуется можете обеснить поподробнее? Не было такого никогда. Там написано, что "компилятору кажется, что переменная может быть использована до ее инициализации." Но этого произойти не может, переменная глобальная, в любом случае инициализируется нулем. Для того, чтобы убрать это предупреждение - добавь строчку, присваивающую обоим переменным значение 0 после сортировки, я показал в коде, куда именно. |
![]() ![]() |
![]() |
Текстовая версия | 4.07.2025 19:34 |