Системное администрирование

Pascal задание по информатике через WHILE

9 задание надо имеено через while именно через while не for а while !!!
9.
s:=0; k:=0; while (k < n) do begin
k:=k+1; s:=s+sin(k*x) end;
10.
s:=0; k:=0; y:=x; while (k < n) do begin
k:=k+1; y:=cos(y); s:=s+y end;
Вот так это делается.
ВД
Вячеслав Дугин
29 440
Лучший ответ
Олег Белоусов немогли бы вы попородобней код расписать до writeln, readln пожалуйста!
В цикле for фишка в том, что за изменение счетчика отвечает само устройство цикла:

for q := 1 to n do
begin
...
end;

Операторы между begin и end выполнятся сначала для q = 1, потом для q = 2, q = 3, …, q = n. После этого цикл завершится.

В цикле while нет встроенного контроля за значением счетчика, поэтому счетчик придется контролировать явно.

Пусть у нас есть переменные x и y дробных типов — real, single или double. А также целое количество слагаемых n и переменная-счетчик q.

x и n нам ввели с клавиатуры — например, с помощью readln(x); readln(n);

Нам нужно сложить все слагаемые sin qx для q = 1, q = 2, …, q = n.
Тогда и получим sin x + sin 2x + … + sin nx.

Сначала обнулим переменную для суммы:
y := 0;

Затем укажем начальное значение счетчика:
q := 1;

Теперь запустим цикл, внутри которого будем прибавлять к сумме y одно слагаемое, а также увеличивать счетчик q. И повторять это до тех пор, пока счетчик q не превысит количество слагаемых n:

while q <= n do
begin
y := y + sin(q * x);
q := q + 1;
end;

Вот и всё.
Кирилл =)
Кирилл =)
97 052
Показывайте что у вас есть, в чем проблема, поправим, подскажем...
Олег Белоусов Var
n:integer;
S,x:real;
Begin

Write('x = ');
ReadLn(x);
Write('n = ');
ReadLn(n);
S:=0;

while n>n do
begin
S:=S+sin(n*x);
writeln('S =',S);
end;
end.

я не знаю что после while писать, он просто зацикливается, но надо чтобы он допустим 5 раз вычислил и всё (5 число случайное, пользователь модет ввести любое другое)
Олег Белоусов хрень написал после while, он просто не будет работать, вот 2 код Var
n:integer;
S,x:real;
Begin

Write('x = ');
ReadLn(x);
Write('n = ');
ReadLn(n);
S:=0;

while n>n-1 do
begin
S:=S+sin(n*x);
writeln('S =',S);
end;
end.
Сергей Багаутдинов Перед циклом назначте N
потом проверка, например N>4 (если от 0 будет как раз 5 проходов)
Внутри цикла наращивайте N с требуемым шагом, например N:=N+1 (удобнее и понятнее писать inc(N))
Все.

П. С. и, я так понимаю вам нужно вычислить только сумму, значит вывод уберите за цикл.
For и while отличается только тем, где указывается условие. Если знаешь как сделать с for, то и с while - без проблем.
Jalgas Muttahiev
Jalgas Muttahiev
4 595
Олег Белоусов сделай пожалуйста, я не могу понять