Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 474
от 23.10.2007, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 245, Экспертов: 39
В номере:Вопросов: 3, Ответов: 6


Вопрос № 105848: Здравстуйте! Необходимо составить программу для вычисления остатка от деления целого числа a на челое число b. В алгоритме из арифметических операций разрешается использовать ТОЛЬКО операцию вычитания. Я пытался составить цикл через repeat......
Вопрос № 105873: Уважаемые эксперты!!! Помогите, пожалуйста, составить програму, которая бы выводила на экран соджержимое всех ненулевых векторов прерываний. После вызова пограма должна оставаться резидентной. А вектор прерываний, которым инициализир...
Вопрос № 105895: Здраствуйте! Помогите, пожалуйста, ламеру с задачками. Вроде я их делаю, но препод все равно находит ошибку. Как я понял делаются они через "if". Задачи почти идентичны. Немогу сообразить:(...

Вопрос № 105.848
Здравстуйте!
Необходимо составить программу для вычисления остатка от деления целого числа a на челое число b. В алгоритме из арифметических операций разрешается использовать ТОЛЬКО операцию вычитания.
Я пытался составить цикл через repeat...until, но программа зацикливалась. Вариант a mod b не предлагать.
Суть идеи в том, что если требуется разложить 28 апельсинов по пяти тарелкам, а остаток убрать, то надо взять 5 апельсинов и положить их по одному в тарелку. Останется 22. Из них взять ещё 5 и т.д., пока не останется 3 штуки.
Отправлен: 17.10.2007, 22:23
Вопрос задал: Work_stranger (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Gh0stik
Здравствуйте, Work_stranger!

Вам достаточно построить цикл while с условием a > b, и уменьшать значение переменной a на величину b пока выполняется это условие, в конце данных манипуляция в переменной a будет храниться искомый остаток.

Вот полный код:
var a,b:integer;
begin
write('Input a=');read(a);
write('b=');read(b);
while a>b do
begin
a:=a-b;
end;
writeln('ostatok=',a);
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 17.10.2007, 22:36
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое, что так быстро!

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Work_stranger!

Cмотри приложение.
Удачи!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 17.10.2007, 22:43
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Артём1983
Здравствуйте, Work_stranger!
Скорее всего мои вариант решения не сильно отличается от Вашего. Но так как Вы его не привели остаётся только догадываться. Как и Вы я использовал цикл repeat unlil. Условия выхода: первое количество апельсинов меньше чем тарелок и второе в тарелках находится по ровну яблок.
В приложении код программы.

Приложение:

---------
Программирование - дело Путное!

Ответ отправил: Артём1983 (статус: 5-ый класс)
Ответ отправлен: 18.10.2007, 21:02


Вопрос № 105.873
Уважаемые эксперты!!!
Помогите, пожалуйста, составить програму, которая бы выводила
на экран соджержимое всех ненулевых векторов прерываний. После
вызова пограма должна оставаться резидентной.
А вектор прерываний, которым инициализируется програма,
можно подобрать автоматически.
И если можно в коде програмы дайте небольшие объяснения насчёт
каких-либо функций или по ходу её решения.
Заранее благодарен!
Отправлен: 18.10.2007, 02:14
Вопрос задал: Seryj (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 13)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Seryj!

Программа должна запускатся из командной строки.
Структуры MS-DOS использованые в программе:
-Таблица прерываний MS-DOS, занимает адреса от 0000:0000 до 0000:03FF,
на каждое прерывание отводится 4-е байта 1:2-смещение,3:4-сегмент прерывания.
Если это 9-е прерывание, ячейка памяти где находится адрес самого обработчика прерывания равна 0:36=4*9.
-0040:001А и 0040:001С -в этих ячейках записаны адреса начала и конца буфера клавиатуры, если значения записанные по этим адресам совпадают - клавиша не нажата.
-0040:0017 слово№ 1- состояния клавиатуры позволяют определить нажата ли спец-клавиша(CTRL, ALT или SHIFT), мы ищем CTRL.
-В строках: c:=e^;
h:=ptr($40,c);
d:=h^;

извлекается скан-код нажатой клавиши, для буквы "А" =1(после обработки ТР).
-программа будет сбоить под отладчиками, т.к. используется отдадочное преривание INT3(код:CCh)

Перед самым первым оператором программы выполняется загрузка подключаемых модулей. И первое, что делает модуль SYSTEM(загружаемый автоматически), это ставит свои обработчики прерываний, информацию о изменяемых прерываниях Вы найдете в помощи паскаля:SaveIntXX. Только по этой причине после нажатия CTRL+A и вывода информации появляется "^C".

Удачи!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 22.10.2007, 21:13


Вопрос № 105.895
Здраствуйте! Помогите, пожалуйста, ламеру с задачками. Вроде я их делаю, но препод все равно находит ошибку. Как я понял делаются они через "if". Задачи почти идентичны. Немогу сообразить:(

Приложение:

Отправлен: 18.10.2007, 09:28
Вопрос задал: Аксенов Антон (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delph
Здравствуйте, Аксенов Антон!

Привожу решение для первой из Ваших задач (смотрите приложение).

Приложение:

---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.

Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 18.10.2007, 09:50
Оценка за ответ: 5
Комментарий оценки:
В этих "ифах" я и запутался. Спасибо.

Отвечает: Gh0stik
Здравствуйте, Аксенов Антон!

Для задачи №2, Вам необходимо рассмотреть случаи при которых размеры отверстия больше либо равны каким либо двум размерам кирпича.

Вот код решенной задачи:
var a,b,c,x,y:real;
begin
write('Input a='); readln(a);
write('b='); readln(b);
write('c='); readln(c);
write('x='); readln(x);
write('y='); readln(y);
if ((x >= a) and ((y >= b) or (y >= c))) or
((x >= b) and ((y >= a) or (y >= c))) or
((x >= c) and ((y >= a) or (y >= b)))
then writeln('proydet')
else writeln('ne proydet');
readln;
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 18.10.2007, 11:47
Оценка за ответ: 5
Комментарий оценки:
Эта ситуация посложнее первой была... Спасибо) "ифы", брррр...


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное