Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Циклы

Автор: Светлана 13.11.2006 3:54

wacko.gif Здравствуйте! Помогите пож-та разобраться с двумя задачками:
1. Составить программу для суммирования n СЛУЧАЙНЫХ Чисел с использованием всех трех видов операторов цикла. Вот мой вариант решения, но я сама ввожу N, а надо, чтобы n были случайными числами... И еще у меня много ненужных begin. Вот... Помогите подкорректировать программку! Заранее спасибо!


var i,n,S:integer;
begin
begin
write('vvedite N=');
read(n);
S:=0;
for i:=1 to n do
S:=S+i;
write('S=',S);
end;
begin
write('vvedite N=');
read(n);
S:=0;
for i:=1 downto n do
S:=S+i;
write('S=',S);
end;
begin
write('vvedite N=');
read(n);
S:=0;i:=1;
while i<=n do
S:=S+i;i:=i+1;
end;
write('S=',S);
end;
begin
write('vvedite N=');
read(n);
S:=0;i:=1;
repeat
S:=S+i;i:=i+1;
until i>n;
write('S=',S);
end;
end.

Вот такая у меня прграмма...

2. Дано натуральное число N. Вычислить: S=1-1/2+1/4-1/8+...+(-1)^1/2^ (^ - это буква n, т.е. будет читаться -1 в степени n).

Вот мой вариант. Программа все считает, но надо сделать так, чтобы показать, что предыдущие число увеличивается умножением на 1/2!

var i,n:integer;
S:real;
begin
writeln('vvedite n');
readln(n);
S:=0;
for i:=1 to n do
begin
if (n mod 2)=0 then S:=1/(exp(n*ln(2)))
else S:=-1/(exp(n*ln(2)));
S:=S+S;
end;
writeln(S:7:1);
end.



3. И помогите пож-та еще решить одну задачку...
Дано натуральное число х. Вычислить: (х-1)(х-3)(х-7)...(х-63)/(х-2)(х-4)(х-8)...(х-64)

вот и все мои задачки!
Помогите, если получится! smile.gif

Автор: klem4 17.11.2006 4:05

1)

uses crt;

var
n, s, i, X: Integer;

begin
clrscr;

randomize;

write('n = '); readln(n);

writeln;

s := 0;

writeln('[ For ] ');

write('Sequence: ');

for i := 1 to n do begin
X := random(20);
write(X:2, ' ');
s := s + X;
end;

writeln;
writeln('s = ', s);
writeln;

writeln('[ While ] ');

writeln('Sequence: ');

i := 1;
s := 0;

while (i <= n) do begin
X := random(20);
write(X:2, ' ');
s := s + X;
inc(i);
end;

writeln;
writeln('s = ', s);
writeln;

writeln('[ Repeat ] ');

write('Sequence: ');

i := 0;
s := 0;

repeat
inc(i);
X := random(20);
write(X:2, ' ');
s := s + X;
until i = n;

writeln;
writeln('s = ', s);
writeln;

readln;
end.



2)

uses crt;

var
n, P, i: Integer;
s: Single;

begin
clrscr;

write('n = '); readln(n);

s := 0;
p := 1;

for i := 1 to n do begin
s := s + 1 / p;
p := p * -2;
end;

writeln('s = ', s:5:5);

readln;
end.


Автор: Светлана 17.11.2006 4:15

good.gif спасибо огромное, что откликнулись на мою просьбу и написали!!!!

Автор: klem4 17.11.2006 11:58

3-я решается не сложнее, по такому же принципу, как и 2 - я. Попробуй сделать сама.

Автор: Светлана 18.11.2006 3:12

smile.gif Спасибо большое за совет!!! Конечно попробую!