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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

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

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

Выпуск № 485
от 11.11.2007, 18:05

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


Вопрос № 108216: Помогите новичку решить задачу! Сколько можно купить на 100 рублей и быков и коров и телят, если бык стоит 10 руб., корова 5 руб, теленок 0.5 руб. Кол-во купленых животных должно быть в 100 голов....
Вопрос № 108235: Здраствуйте! У меня затруднения в решении задачи, будьте добры предложите свое решение: входные данные записываются в файл input.txt, а выходные в output.txt. По окончании работы над задачей создается exe-файл. дано натуральное число. выброси...
Вопрос № 108249: Pleassss!Помогите решить эту задачу!Ну вот времени нету, а заставляют! "С клавиатуры вводится целое число n.Выведите "0", если n равно нулю, и "1" в противном случае.Разрешается использовать только арифмитические операции...

Вопрос № 108.216
Помогите новичку решить задачу!
Сколько можно купить на 100 рублей и быков и коров и телят, если бык стоит 10 руб., корова 5 руб, теленок 0.5 руб. Кол-во купленых животных должно быть в 100 голов.
Отправлен: 06.11.2007, 08:49
Вопрос задал: Волков Михаил Анатольевич (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: lyalya
Здравствуйте, Волков Михаил Анатольевич!

program f;
var i,j,k:integer;
begin
for i:=0 to 10 do
begin
for j:=0 to 20 do
begin
for k:=0 to 200 do
if (10*i+5*j+0.5*k=100) and (i+j+k=100)
then writeln (' bukov=',i, ' korov=',j,' telenkov=',k);
end;
end;
readln;
end.
Ответ отправила: lyalya (статус: 1-ый класс)
Ответ отправлен: 06.11.2007, 09:04
Оценка за ответ: 4
Комментарий оценки:
Спасибо!

Отвечает: Delph
Здравствуйте, Волков Михаил Анатольевич!

Ваша задача решается при помощи вложенных циклов. В приложении пример программы. Для обобщения задачи программа сначала запрашивает исходные параметры, после чего выводит на экран все возможные решения при заданных параметрах. У меня при Ваших числах получилось одно решение :)))

Приложение:

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

Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 06.11.2007, 09:17
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо! Все ясно и понятно!

Отвечает: Артём1983
Здравствуйте, Волков Михаил Анатольевич!
Опишу своё решение.
1. Вычислим сколько на эту сумму можно купить быков.
2.Решая систему найдем зависимость между количеством быков и и коров. получаем : y=(95-9.5*x)/4.5 ; z= 100-x-y;
3. Составляю программу используя цикл for от 1 до 10 (максимальное количество быков которое можно купить на эти деньги)
4. В цикле задаю условия выхода y=0.
Смотрите код в приложении.

Приложение:

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

Ответ отправил: Артём1983 (статус: 6-ой класс)
Ответ отправлен: 06.11.2007, 21:42
Оценка за ответ: 5


Вопрос № 108.235
Здраствуйте! У меня затруднения в решении задачи, будьте добры предложите свое решение:
входные данные записываются в файл input.txt, а выходные в output.txt. По окончании работы над задачей создается exe-файл.
дано натуральное число. выбросить из записи числа все заданные цифры, оставив прежним порядок остальных цифр.
Спасибо! Надеюсь на вашу быстроту ответа и признательна вам за помощь! пока!
Отправлен: 06.11.2007, 12:26
Вопрос задала: Strelcova Ksenia Vladimirovna (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Стома С.С.
Здравствуйте, Strelcova Ksenia Vladimirovna!

Не совсем понял задание, но предлагаю свое решение.
Файлы известны, путь к ним если надо пропишите, как должно вводиться число непонятно, но для удобства его лучше представлять строкой
Длину можно вычислить функцией Length()
процедура перебирает все строки файла и каждый раз в цикле ищет только первое вхождение, если его нет (равно 0), то данного числа в строке нет и записываем результат.
Процедура подойдет для удаления произвольных символов из файла
Удачи

Приложение:

Ответ отправил: Стома С.С. (статус: 1-ый класс)
Ответ отправлен: 06.11.2007, 14:55
Оценка за ответ: 5
Комментарий оценки:
Не надо считать это предвзятостью! вы мне очень помогли! Спасибо!
Надеюсь на помощь в будущем!
Я на работе, нет времени больше сказать вам.
Напапишу в следующий раз!
Спасибо!


Вопрос № 108.249
Pleassss!Помогите решить эту задачу!Ну вот времени нету, а заставляют!
"С клавиатуры вводится целое число n.Выведите "0", если n равно нулю, и "1" в противном случае.Разрешается использовать только арифмитические операции."
Отправлен: 06.11.2007, 13:37
Вопрос задал: Чабаненко Владислав Дмитриевич (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Витек
!!!
Здравствуйте, Чабаненко Владислав Дмитриевич!
не очень понял, что имеется в виду под "использовать только арифметические операции"
ну а так, возможно, решение будет следующее:
var
chislo:integer;
begin
Write('Vvedite chislo: ');
ReadLn(chislo);
if chislo+chislo=chislo then WriteLn('0') else WriteLn('1');
readLn
end.

Решение неверное, поскольку не соответствует условию.
-----
∙ Отредактировал: Gh0stik (Профессор)
∙ Дата редактирования: 06.11.2007, 23:32

---------
ohne fleis, keine preis
Ответ отправил: Витек (статус: 3-ий класс)
Ответ отправлен: 06.11.2007, 14:59

Отвечает: Verena
Здравствуйте, Чабаненко Владислав Дмитриевич!
Видимо, использовать операцию сравнения нельзя. Тогда можно поступить так: чтобы в случае n<>0 получать единицу надо число поделить на само себя. Но, чтобы избежать деления на 0 в случае n=0, добавляем в делитель операцию n or 1 - она вернёт n при n<>0 и 1 при n=0. В вывод дбавим форматирование, чтобы не появлялось дробное число (результат деления).

var n: integer;
begin
readln (n);
writeln ('Otv: ', (n/(n or 1)):1:0);
end.

Удачи!
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 06.11.2007, 17:16

Отвечает: Дмитрий Т.
!!!
Здравствуйте, Чабаненко Владислав Дмитриевич!
Если также можно включить операцию округления, то можно использовать формулу:
int(2*n/(2*n+1)).
Касательно же ответа эксперта Verena, я думаю, что or - это логическая операция. вдобавок к тому, что она искажает число n, если оно будет четное, то оно увеличиться на единицу. :(

Ответ неверный! Поскольку функция int(x) - возвращает целую часть от параметра x.
А в ответе используется формула |2*n/(2*n+1)| легко увидеть что результат такого вычисления будет находится в интервале [0, 1) соответственно и результат int(2*n/(2*n+1)) будет равен ТОЛЬКО НУЛЮ, что протеворечит условию задачи!

-----
∙ Отредактировал: Gh0stik (Профессор)
∙ Дата р едактирования: 06.11.2007, 23:23
Ответ отправил: Дмитрий Т. (статус: 2-ой класс)
Ответ отправлен: 06.11.2007, 18:31

Отвечает: Артём1983
!!!
Здравствуйте, Чабаненко Владислав Дмитриевич!
Решил Вашу задачу используя кострукцию if then;
Смотрите код в приложении.

Решение неверное, поскольку не соответствует условию.
-----
∙ Отредактировал: Gh0stik (Профессор)
∙ Дата редактирования: 06.11.2007, 23:32

Приложение:

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

Ответ отправил: Артём1983 (статус: 6-ой класс)
Ответ отправлен: 06.11.2007, 21:44

Отвечает: Gh0stik
Здравствуйте, Чабаненко Владислав Дмитриевич!

Чтож уважаемые эксперты, вот я все-таки нашел достаточно простой способ решения с использованием ТОЛЬКО арифметических операций и функции нахождения модуля числа.

var n:integer;
begin
   write('Input n='); read(n);
   n:=abs(n);
   writeln((2*n+1) div (n+1) mod (n+1));
end.


Легко удостоверится, что данная программа выдает результат 0 только при n=0, и 1 когда n<>0.

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


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

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

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

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

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


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


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

В избранное