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

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


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

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

Выпуск № 412
от 27.06.2007, 16:35

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


Вопрос № 92442: Привет всем ещё раз! Недавно я задавал вопрос вопрос № 92194. Теперь вопрос из той же серии: дана последовательность чисел, 0 - признак завершения. Найти сумму и произведение чисел последовательности. Привожу часть программы где производятся вычислен...
Вопрос № 92502: помогите пожалуйста с программой Задане натуральне число n. 3'ясувати, скільки додатних елементів містить матриця А, якщо кожний елемент її визначається за формулою: аij=sin(i+j/2), i,j=1..n. причом сделать её требуют с исползован...

Вопрос № 92.442
Привет всем ещё раз! Недавно я задавал вопрос вопрос № 92194. Теперь вопрос из той же серии: дана последовательность чисел, 0 - признак завершения. Найти сумму и произведение чисел последовательности. Привожу часть программы где производятся вычисления. На деле у меня цикл while не выполняется ни разу, не могу понять почему. Подскажите, пожалуйста, где ошибка. И ещё, можно ли эту часть реализовать с помощью цикла repeat?
Спасибо!

Приложение:

Отправлен: 22.06.2007, 09:03
Вопрос задал: Gene (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Azgord
Здравствуйте, Gene!
Проверь чем массив залил, и в вместо <> поставь =.
Ответ отправил: Azgord (статус: 1-ый класс)
Ответ отправлен: 22.06.2007, 09:25

Отвечает: BlackRaider
Здравствуйте, Gene!

Во первых увеличение i в цикле делайте после всех операций с массивом.
вот код который у меня работает без проблем

Приложение:

Ответ отправил: BlackRaider (статус: 1-ый класс)
Ответ отправлен: 22.06.2007, 09:29
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Чичерин Вадим Викторович
Здравствуйте, Gene!
А массив заполнен? Проверь заполнение...
Начинаешь заполнять элемент i, а в суммировании и произведении используешь i+1 (поставь i=i+1 перед END, а не сразу после BEGIN)
C repeat примерно так:
repeat
***
***
i := i+1;
until m[i] = 0;


---------
Чем больше я смотрюсь в зеркало, тем больше верю Дарвину...
Ответ отправил: Чичерин Вадим Викторович (статус: 3-ий класс)
Ответ отправлен: 22.06.2007, 09:36
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Louken
Здравствуйте, Gene!

В твоей программе сразу бросается в глаза, что ты начинаешь работать сразу со второй ячейкой последовательности, до цикла i:=1 и сразу при входе i:=i+1; И вводишь последовательность, наверное, длиннной в один элемент.
А так решение в приложении.
Предлагаю два варианта решения задачи, с циклом While и Repeat, причем при использовании цикла Repeat, код получается компактнее.

Приложение:

Ответ отправил: Louken (статус: 8-ой класс)
Ответ отправлен: 22.06.2007, 09:48
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное!

Отвечает: Устинов С.Е.
Здравствуйте, Gene!

Возник вот такой странный вопрос - а зачем Вам вообще нужен здесь массив? Предлагаю такой вариант решения задачи:

var t,s,p:longint;
begin
s:=0; p:=1;
writeln('vvedite posledovatelnost, v konce - 0');
readln(t);
while not(t=0) do
begin
s:=s+t;
p:=p*t;
readln(t);
end;
end.

Тоже самое можно сделать с помощью цикла repeat:

var t,s,p:longint;
begin
s:=0; p:=1;
writeln('vvedite posledovatelnost, v konce - 0');
repeat
readln(t);
s:=s+t;
if not(t=0) then p:=p*t;
until t=0;
end.

Удачи!
---------
Ждешь квалифицированного ответа? Задай правильно вопрос!
Ответ отправил: Устинов С.Е. (статус: Профессионал)
Украина, Славянск
Организация: SlavComp
WWW: Физико-математический факультет СГПУ
ICQ: 6755675
----
Ответ отправлен: 23.06.2007, 00:38

Отвечает: Manager6
Здравствуйте, Gene!

Ответ:
uses crt;
var a,s,p:real;
begin clrscr;
writeln('Vvedite posledovatelnost chisel'); s:=0;p:=1;
repeat
readln(a);
s:=s+a;
if a<>0 then p:=p*a
until a=0;
writeln('Summa', s:5:2,' Proizved',p:5:2);
readkey;
end.
Ответ отправил: Manager6 (статус: 1-ый класс)
Ответ отправлен: 24.06.2007, 23:32


Вопрос № 92.502
помогите пожалуйста с программой

Задане натуральне число n. 3'ясувати, скільки додатних елементів містить матриця А, якщо кожний елемент її визначається за формулою: аij=sin(i+j/2), i,j=1..n.

причом сделать её требуют с исползованием Багатовимірних масивыв
зарание благодарен

========
Задано натуральное число n. Выяснить, сколько положительных элементов содержит матрица А, если каждый элемент ее определяется формулой:
aij = sin(i+j/2), i,j=1..n.

Причем, сделать ее нужно с использованием могомерных массивов.
Зарание благодарен.

Отредактировано: переведено на русский язык.
---------
= Gh0stik = (Профессор)
Отправлен: 22.06.2007, 15:46
Вопрос задал: Dragonhalf (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 13)

Отвечает: Градов Юрий Михайлович
Здравствуйте, Dragonhalf!

const n=10;

var A: array[1..n,1..n] of Real;
i,j,count: integer;

begin
count:=0;
for i:=1 to n do for j:=1 to n do
begin
A[i,j]:=sin(i+j/2);
if A[i,j]>0 then count:=count+1;
end;
Writeln('Всего элементов матрицы = ',n*n);
Writeln('Всего элементов матрицы > 0 = ',count);
Readln;
end.


Отредактировано: ответ перенесен из мини-форума.
---------
= Gh0stik = (Профессор)

---------
Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Практикант)
Ответ отправлен: 22.06.2007, 16:03

Отвечает: Louken
Здравствуйте, Dragonhalf!

В приложении два варианта решения задачи, они почти идентичны.
В первом случае, n задается как константа, во втором, ее значение вводится с клавиатуры.
Удачи.

Приложение:

Ответ отправил: Louken (статус: 8-ой класс)
Ответ отправлен: 22.06.2007, 17:03


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

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

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

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

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


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


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

В избранное