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

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


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

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

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

Выпуск № 619
от 01.04.2008, 03:05

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 129094: Помогите пожалуйста решить очень простую задачку: http://img213.imageshack.us/img213/2528/formlnom8ch3.jpg (ссылка на картинку с формулой, описание там-же, т.к. там всего несколько слов). Точнее даже не решить, а исправить то, что я напис...
Вопрос № 129104: Пусть задан текст,за которым следует точка.Поменяйте все строчные латинские буквы,которые встречается в тексте,на прописные....
Вопрос № 129145: Дано число N в десяточной системе исчесления. Нужно подсчитать сколько одиниц есть в запесе етого числа в двоичной системе исчесления. Ограничение: 0 <= N < 10^251. Буду благодарен!!!...
Вопрос № 129164: Здравствуйте, уважаемые эксперты! Вот тут задача: n человек выстраиваются в круг, начинают счёт по часовой стрелке и при этом каждого k-го человека удаляют из круга ;), становятся обратно в круги, и так дальше. По задающимся числам n и k определите н...
Вопрос № 129173: Помогите мне решыть такие задачи! ПОЖАЛУЙСТА!!!!!!!!!!!!!!!!... Задача 1 Ваша задача - определить или делится данное число на 11. Входные данные В единой строке записанное единое число N (1 <= n). Число имеет не больше тысяче...
Вопрос № 129198: Помогите пожалуйста решить задачку : Составить программу, печатающую слова из файла SLOVA.TXT в перевернутом виде. Результаты работы программы записать в файл OWRAT.TXT. ..
Вопрос № 129208: Уважаемые эксперты!Помогите решить задачу: После поступления в ВУЗ о студентах собрана информация: фамилия, нуждается ли в общежитии, стаж, работал ли учителем, что окончил, какой язык изучал. Составить программу, определяющую сколько человек нуж...
Вопрос № 129212: Здравствуйте. В общем нужна помощь, есть массив записи с датами (три типа записи, день (1..31), месяц(1..12) и год (integer)), вводится сегодняшняя дата, нужно определить какие даты из массива уже прошли, а какие ещё нет. Вывести те которые уже ...
Вопрос № 129214: Пожалуйста найдите ошибку. Не производится сортировка массива.Нужно только исправить. Сама задача. Дан список учеников класса и отметки каждого из учеников за выполнение двух контрольных работ. Требуется: подсчитать число учеников, в...

Вопрос № 129.094
Помогите пожалуйста решить очень простую задачку:
http://img213.imageshack.us/img213/2528/formlnom8ch3.jpg
(ссылка на картинку с формулой, описание там-же, т.к. там всего несколько слов).
Точнее даже не решить, а исправить то, что я написал, см. приложение.
Оно должно быть написано именно так, без массивов и прочих усложенений, только простые переменные и цикл с параметром.
Мне кажется что написал эту программу неправильно. И нужнен ли в данном случае ввод данных пользователя, например начало последовательности или что-то подобное.
Напишите пожалуйста правильную программу. (я бы и сам разобрался, но это срочно нужно, времени нет)

Приложение:

Отправлен: 26.03.2008, 03:46
Вопрос задал: Upgrader (статус: 6-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Upgrader!
Программа в приложении.
Я так понял, что формулу можно интерпретировать таким образом:
an-1 = an/(n+1) => an = an-1*(n+1)

Удачи!

Приложение:

Ответ отправил: Николай Владимирович / Н.В. (статус: Профессор)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 26.03.2008, 09:10
Оценка за ответ: 5
Комментарий оценки:
Да, это то что и нужно. Спасибо :)

Отвечает: Пупорев Юрий Борисович
Здравствуйте, Upgrader!
Ваш код я,честно говоря, не понял.
Если я все правильно понял в формуле и задании, то пришел к следующим выводам.
Перепишем последовательность в виде А(n)=A(n-1)*(n+1);
И код будет выглядеть так:
Uses crt;
var n:integer;a,sum:longint;
begin
clrscr;
a:=1;sum:=1;
for n:=2 to 11 do
begin
a:=a*(n+1);
sum:=sum+a;
end;
writeln('sum=',sum);
readln
end.
При n>11 значение суммы выходит за пределы типа Longint и следует либо ограничиться n=11, либо при for n:=2 to 15 do нужно использовать вещественный тип Double и вывод writeln('sum=',sum:15:0);
[ можно было бы привести пример. Все-таки в условии задачи сказано, что необходимо найти сумму первых 15... ]


-----
∙ Отр едактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 26.03.2008, 11:52
Ответ отправил: Пупорев Юрий Борисович (статус: Студент)
Ответ отправлен: 26.03.2008, 11:08
Оценка за ответ: 5
Комментарий оценки:
То что нужно! Спасибо :)


Вопрос № 129.104
Пусть задан текст,за которым следует точка.Поменяйте все строчные латинские буквы,которые встречается в тексте,на прописные.
Отправлен: 26.03.2008, 07:19
Вопрос задала: Лиманская Юлия Вадимовна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Пупорев Юрий Борисович
Здравствуйте, Лиманская Юлия Вадимовна!
Для перевода строчных латинских букв в прописные в Паскале есть функция UpCase(ch).
С помощью этой функции все символы из диапазона ['a'..'z'] превращаются в ['A'..'Z'], причем все остальные символы не изменяются.
Код в приложении.Текст я задал для наглядности в в программе, переделайте как вам удобно.

Приложение:

Ответ отправил: Пупорев Юрий Борисович (статус: Студент)
Ответ отправлен: 26.03.2008, 09:08


Вопрос № 129.145
Дано число N в десяточной системе исчесления. Нужно подсчитать сколько одиниц есть в запесе етого числа в двоичной системе исчесления.
Ограничение:
0 <= N < 10^251.

Буду благодарен!!!
Отправлен: 26.03.2008, 12:46
Вопрос задал: ПАВЛО (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

В приложении программа, которая считает количество битов содержащих единицу.
Всего для преддставления максимального N нужно 834 бита.
Вопросы по программе задавайте в мини-форум.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 27.03.2008, 14:27
Оценка за ответ: 5


Вопрос № 129.164
Здравствуйте, уважаемые эксперты! Вот тут задача: n человек выстраиваются в круг, начинают счёт по часовой стрелке и при этом каждого k-го человека удаляют из круга ;), становятся обратно в круги, и так дальше. По задающимся числам n и k определите номер человека (1, 2, 3, 4, ...), который остаётся последним.
10 3
4
Подскажите мне пожалуйста мою ошибку в задача. Код в приложении.

Условие задачи приведено в более человеколюбивый вид.
-----
∙ Отредактировал: sir henry (Академик)
∙ Дата редактирования: 26.03.2008, 14:51

Приложение:

Отправлен: 26.03.2008, 14:27
Вопрос задал: Хощенко Артём Владимирович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Пупорев Юрий Борисович
Здравствуйте, Хощенко Артём Владимирович!
Из всех известных способов решения так называемой задачи Джозефуса Вы выбрали самый сложный, с помощью линейных массивов. Предлагаю Вам способ решения этой задачи с использованием для хранения информации об элементах и их количестве строки. В строке легко удалять элементы, следить за их количеством, т.е. за длиной строки.
Код в приложении.

Приложение:

Ответ отправил: Пупорев Юрий Борисович (статус: Студент)
Ответ отправлен: 26.03.2008, 16:24
Оценка за ответ: 5
Комментарий оценки:
а по-другому?

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Хощенко Артём Владимирович!
Вариант с ипользованием линейных массивов.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 26.03.2008, 17:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое!


Вопрос № 129.173
Помогите мне решыть такие задачи! ПОЖАЛУЙСТА!!!!!!!!!!!!!!!!...

Задача 1
Ваша задача - определить или делится данное число на 11.
Входные данные
В единой строке записанное единое число N (1 <= n). Число имеет не больше тысяче знаков.
Исходные данные
Вам нужно вывести “Yes” - если число делится на 11, и “No” - в противном случае.

Задача 2
Последовательность чисел a1, a2, ... an называется супер последовательностью, если выполняются следующие условия:
*0 < a1 < a2 < ... < an
*ни одно из чисел не является суммой двух или больше других чисел
Входные данные
В единой строке записанное число N (1 <= n <= 50), дальше задано N чисел, каждое из которых не меньше 1 и не больше 1000.
Исходные данные
Вам необходимо вывести “Yes” - если дано супер последовательность, “No” - в противном случае.

Задача 3
Над строчкой 01 выполним следующие операции:
*Скопируем в конец строчки самого себя (получим 0101)
*Во второй половине строки все 0 изменим на 1, а все 1 на 0 (получим 0110)
Над строчкой 0110 выполним те самые операции. Получим 01101001. И т.д.Таким образом получим бесконечную строчку нулей и единиц.Ваша задача - найти n-тий символ такой строчки.
Входные данные
В единой строке записанное единое число N (1 <= N <= 2000000000).
Исходные данные
Единый символ, который будет на N-И позиции.

БУДУ ОЧЕНЬ БЛАГОДАРЕН.
Отправлен: 26.03.2008, 15:03
Вопрос задал: ПАВЛО (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Marked One
Здравствуйте, ПАВЛО!
Ответ на первую задачу в приложении.

Приложение:

Ответ отправил: Marked One (статус: 9-ый класс)
Ответ отправлен: 26.03.2008, 16:38

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

Все задачи в приложении.
Первая задача: ограничевается количеством вводимых знаков, и не независима от длины строки.
Вторая задача: перебирает все возможные варианты сумм, поэтому работает очень долго.
Третья задача: при проверке выяснилось, что количество операций отрицания соответсвует количеству бит в двоичной форме представления числа "N-1". Вот и вся закономерность, также можно считать, что запись "01" равна записи "0"+ NOT ("0").

Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 28.03.2008, 20:21
Оценка за ответ: 4
Комментарий оценки:
первая прога почемута не работает, а у второй : лимит часу 1с.
Надеюсь что Ви скинете рабочие варианты.


Вопрос № 129.198
Помогите пожалуйста решить задачку :
Составить программу, печатающую слова из файла SLOVA.TXT в перевернутом виде. Результаты работы программы записать в файл OWRAT.TXT.
Отправлен: 26.03.2008, 18:12
Вопрос задал: MUSIC (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, MUSIC!
Программа в приложении.

Удачи!

Приложение:

Ответ отправил: Николай Владимирович / Н.В. (статус: Профессор)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 26.03.2008, 18:28
Оценка за ответ: 5


Вопрос № 129.208
Уважаемые эксперты!Помогите решить задачу:
После поступления в ВУЗ о студентах собрана информация: фамилия, нуждается ли в общежитии, стаж, работал ли учителем, что окончил, какой язык изучал. Составить программу, определяющую сколько человек нужда-ются в общежитии.
Описать, используя структуру данных запись, почтовую сортировку (город, улица, дом, квартира, кому, ценность). Составить программу, опреде-ляющую сколько посылок отправлено в г.Самару.
Спасибо.
Отправлен: 26.03.2008, 19:32
Вопрос задала: Юлия правда (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Пупорев Юрий Борисович
Здравствуйте, Юлия правда!
Во первых задач оказалось две, но они однотипные. По сложности они очень простые, только писанины много. Я писал наспех, не особенно подбирая слова, английский вперемежку с рязанским. Поэтому вы прчешите текстовую нагрузку, а сам код нормальный, работает, я проверял при небольших размерах списков. Код в приложении.Еще тип записываемых данных должен соответствовать типу поля. Если тип String, то текст(в том числе и цифры), если тип byte или integer, то только числа.

Приложение:

Ответ отправил: Пупорев Юрий Борисович (статус: Студент)
Ответ отправлен: 26.03.2008, 22:52
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое,вы мне очень помогли. :)


Вопрос № 129.212
Здравствуйте.
В общем нужна помощь, есть массив записи с датами (три типа записи, день (1..31), месяц(1..12) и год (integer)), вводится сегодняшняя дата, нужно определить какие даты из массива уже прошли, а какие ещё нет. Вывести те которые уже прошли...

Буду благодарен за алгоритм или текст программы...
Отправлен: 26.03.2008, 20:06
Вопрос задал: Зыков Николай Павлович (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Шемет Станислав Васильевич
Здравствуйте, Зыков Николай Павлович!
Программа в приложении
Удачи !!!

Приложение:

---------
Любовь это прекрасно!!!

Ответ отправил: Шемет Станислав Васильевич (статус: 5-ый класс)
Ответ отправлен: 26.03.2008, 20:55

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Зыков Николай Павлович!
Полностью писать программу не буду - она, вроде, несложная.
Расскажу как решать:
Для хранения будем использовать такую структуру:
type TDate = record { тип Дата }
        day : byte; { день }
        month : byte; { месяц }
        year : integer; { год }
     end;

В полях day, month я использую тип byte, т.к. их значения не превышают 255.

Массив будет объявляться так:
const N = 100; { максимальное кол-во элементов массива }
var mas : array[1..N] of TDate;


Вначале программы необходимо считать количество вводимых дат и сохранить его в какую-нибудь переменную. Именно столько дат в массиве надо будет проверять. Далее считываете это количество дат (цикл for).
И считываете еще одну дату (сегодняшний день).

Теперь циклом for проверяете все элементы массива с текущей датой.
Пусть текущая дата у Вас сохранена в переменной currdate, тогда условие проверки будет такое

if currdate.year < mas[i].year then
  { этот день еще не прошел }
else
begin
  if surrdate.year = mas[i].year then
  begin
    if currdate.month < mas[i].month then
      { этот день еще не прошел }
    else
    begin
 &nbs p;    if currday.month = mas[i].month then
      begin
        if currdate.day < mas[i].day then
          {этот день еще не прошел}
        else
          if currdate.day = mas[i].day then
            {этот день - сегодня}
          else
            { этот день прошел (год, месяц одинаковые, но день больше)}
      end
      else
       { этот день прошел (текущий год равен, но месяц больше) }
    end;
  end
  else
  { этот день прошел (текущий год больше) }
end;


Удобно будет это записать в функцию и таким образом проверять.

Если будут проблемы с реализацией, пишите.

Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессор)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 26.03.2008, 21:03

Отвечает: Пупорев Юрий Борисович
Здравствуйте, Зыков Николай Павлович!
Полный код программы в прложении. Комментарии минимальные, т.к. вроде все ясно.

Приложение:

Ответ отправил: Пупорев Юрий Борисович (статус: Студент)
Ответ отправлен: 26.03.2008, 23:42


Вопрос № 129.214
Пожалуйста найдите ошибку. Не производится сортировка массива.Нужно только исправить.
Сама задача.
Дан список учеников класса и
отметки каждого из учеников за выполнение двух контрольных работ.
Требуется: подсчитать число учеников, выполнивших первую работу на 5;
подсчитать число учеников, выполнивших обе работы на 5.
Упорядочить список учеников по среднему баллу за обе контрольные работы.

код программы и модуля перенесён в приложение.
-----
∙ Отредактировал: Зенченко Константин Николаевич (Профессионал)
∙ Дата редактирования: 26.03.2008, 20:35

Приложение:

Отправлен: 26.03.2008, 20:29
Вопрос задал: Муратов Дмитрий Анатольевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Пупорев Юрий Борисович
Здравствуйте, Муратов Дмитрий Анатольевич!
При ответе на вопрос №128005 я посоветовал вам применить иассив записей, в котором очень удлбно объединять различные типы, и кроме оценок можно вводить фамилии учеников, их класс, школу и т.д. В этом отношении двумерные массивы позволяют вводить данные только одного типа. Но раз уж массивы, значит массивы. Уважаю за упорство, сам такой.
Я переделал вашу процедуру сортировки и подремонтировал сам модуль, а также программу. В программе создание процедур, которые используются только один раз я считаю нецелесообразно, иначе их тоже надо вынести в модуль. Но это все на ваше усмотрение.Принцип сортировки: определяем среднее от суммы оценок в строке 2 и строке 3 и сортируем массив по возрастанию методом обмена(или пузырька). Результат деления вроде бы Real, но т.к. мы его не определяем, а только сравниваем, на типе это никак не сказывается.
Массив я сделал размерностью [1..3,1..n]. В первую строчку я ввел номера учеников, чтобы результаты сортировки были нагляднее. Во второй и третьей строчках-оценки. Взял от 3 до 5, двоешникам у нас не место, они только количество пятерок уменьшают и результат при небольших n может некрасиво выглядеть(с нолями).
В приложении привожу модуль(как его оформлять вы видимо знаете, если что, то я описал его в ответе на вопрос 128005), саму программу, а также программу без модуля на всякий случай, вдруг что-то не заработает, так можно ошибку найти.
Если что-то не пойдет, не ругайте меня на форуме, у меня временно нет туда доступа, лучше напишите личное сообшение, все проблемы решим. Пожалуй все. Удачи!

Приложение:

Ответ отправил: Пупорев Юрий Борисович (статус: Студент)
Ответ отправлен: 27.03.2008, 10:00
Оценка за ответ: 5
Комментарий оценки:
Спасибо!!!!!!!! Теперь я получил что хотел. Со строками я просто не разбираюсь в массивах мне понятнее


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.6 beta от 22.03.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное