Вопрос № 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.
Ответ:
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