Выпуск № 905 от 10.06.2009, 08:35
Администратор рассылки: Калашников О.А., Руководитель
В рассылке: подписчиков - 339, экспертов - 148
В номере: вопросов - 3, ответов - 7
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 168934: Дан массив AS,содержащий 20 элементов целого типа. Посчитать кол-во нулевых элементов. Из ненулевых элементов сформировать массив А и найти произведение модулей его элементов. Индексацию элементов заданного массива начать с 20. для перебора элемен...
Вопрос № 168962: Уважаемые эксперты, помогите пожалуйста решить следующий ворос (нуждаюсь в срочном ответе): какие входные и выходные параметры необходимо прописать в отрывке программы, созданной в паскале (через var,real,integer и т.п.) program nm; uses...
Вопрос № 168971: Здравствуйте! Только начинаю работать в Паскале, и помаленьку разбираю различные задачки и программы. В сборнике "Златопольский - Сборник задач по программированию" увидела такое...
Вопрос № 168934:
Дан массив AS,содержащий 20 элементов целого типа. Посчитать кол-во нулевых элементов. Из ненулевых элементов сформировать массив А и найти произведение модулей его элементов. Индексацию элементов заданного массива начать с 20. для перебора элементов использовать оператор for.
Отправлен: 04.06.2009, 13:04
Вопрос задал: qwqwqw12
Всего ответов: 1 Страница вопроса >>
Отвечает Пупорев Юрий Борисович, Специалист :
Здравствуйте, qwqwqw12! Решение залачи, если правильно понял решение, в приложении.
#thank 250430
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 168962:
Уважаемые эксперты, помогите пожалуйста решить следующий ворос (нуждаюсь в срочном ответе):
какие входные и выходные параметры необходимо прописать в отрывке программы, созданной в паскале (через var,real,integer и т.п.) program nm; uses crt; type s=array[1..100,1..100] of integer; var n,m,i,j:integer; ma:s; a,b:real;
procedure vvod; (ЗДЕСЬ ОПИСАНИЕ ЭЛЕМЕНТОВ) begin for i:=1 to n do for j:=1 to m do begin write(i,j,' = '); readln(ma[i,j]); end; end;
procedure
vivod;(ЗДЕСЬ ОПИСАНИЕ ЭЛЕМЕНТОВ) begin for i:=1 to n do begin for j:=1 to m do write(ma[i,j]:3); writeln; end; end;
Отвечает _Ayl_, 5-й класс :
Здравствуйте, Саша Казаченко Ивановна.
1. Можно не прописывать никаких, тогда будут использованы уже описанные глобальные переменные. 2. Можно прописать локально только переменные цикла (i и j) 3. Можно передавать размерность матрицы как параметры (переменные n и m), а саму матрицу считать глобальной. 4. И, наконец, можно все переменные передавать как параметры.
Вариант 1 реализован в вашем отрывке. В Приложении описания для остальных вариантов реализации.
Приложение:
Ответ отправил: _Ayl_, 5-й класс
Ответ отправлен: 04.06.2009, 20:35
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250448
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Так, как записано у Вас, то параметры определять не нужно, компилятор сам определит эти имена переменных как глобальные, т.е. доступные с любого места программы. Но если Вам нужно все таки передавать эти переменные через параметры, то так, как в приложении(заметьте я поменял имена переменных, чтобы показать, что это совершенно разные переменные). Вызывать нужно так: procedure vvod(var ma:s;i,j,n,m:integer); и procedure vivod(ma:s;i,j,n,m:integer); Удачи!
#thank 250449
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 168971:
Здравствуйте! Только начинаю работать в Паскале, и помаленьку разбираю различные задачки и программы. В сборнике "Златопольский - Сборник задач по программированию" увидела такое задание: Вычислить сумму 1+ 1/3+ 1/(3*3)+1/(3*3*3)... Проблема в том, что есть условие- не использовать операцию возведение в степень. Помогите пожалуйста, как составить эту программу? Заранее благодарна.
Если внимательно посмотреть на члены данного ряда, можно заметить, что каждый следующий член можно представить как предыдущий, деленный на 3. Соответственно эту задачу можно решить таким образом:
Код:
... sum:=1; {Сумма ряда} pred:=1; {Предыдущий член
ряда} i:=1; {Счетчик} while i<10 do begin {Условие окончания - 10 членов ряда просумировано} sum:=sum+pred/3; {Увеличиваем сумму} pred:=pred/3; {Текущий член, становится предыдущим} inc(i); {Увеличиваем количество просуммированных членов на 1} end; ...
Данный код подсчитает сумму 10-ти членов ряда. К сожалению Вы не указали в вопросе условие окончания подсчета - обычно в задачах такого рода условием окончания служит задан
ная точность. Код для подсчета суммы с заданной точностью приведен ниже:
Код:
... sum:=1; {Сумма ряда} pred:=1; {Предыдущий член ряда} e:=0.001; {Точность} while pred>e do begin {Условие окончания - последний просуммированный член меньше, либо равен заданной точности}
sum:=sum+pred/3; {Увеличиваем сумму} pred:=pred/3; {Текущий член, становится предыдущим} end; ...
Ну вот вроде и все. Надеюсь понятно пояснил. Вопросы в мини-форум.
Ответ отправил: Тимошенко Дмитрий, Студент
Ответ отправлен: 05.06.2009, 10:57
Оценка ответа: 5 Комментарий к оценке: Спасибо за помощь! Этот код меня заинтересовал. Код на 10 членов ряда- Совершенно верно, Вы действительно правы, окончание подсчета должно быть 3 в 8 степени (этого я не указала), то есть 8 членов ряда. Код набрала, составила подсчет.
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250469
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
1/(3*3)=(1/3)/3 и т.д. Такие задачи можно решить двумя вариантами. 1) суммировать пока очередной элемент ряда превышает установленную точность; 2) суммировать первые N элементов ряда. Удачи!
{#/template js_tmpl_auth_reg_button}
{#template js_tmpl_auth_reg_descr}
{#if $P.login_register_tab == 1}
Для оформления подписки на выбранную рассылку, работы с интересующей вас группой или доступа в нужный вам раздел, просим авторизоваться на Subscribe.ru
{#/if}
{#if $P.login_register_tab == 2}
Для регистрации укажите ваш e-mail адрес. Адрес должен быть действующим, на него сразу после регистрации будет отправлено письмо с инструкциями и кодом подтверждения.
{#/if}
{#/template js_tmpl_auth_reg_descr}
{#template js_tmpl_soc_auth_reg_descr}
Или зарегистрируйтесь через социальную сеть.
{#/template js_tmpl_soc_auth_reg_descr}
{#template js_tmpl_auth_reg_soc}
Вам отправлено письмо для подтверждения вашего адреса {$P.register_confirm_mail}. Для подтверждения адреса перейдите по ссылке из этого письма.
{#/template js_tmpl_auth_reg_descr}
{#template js_tmpl_auth_reg_action}