Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Проверка условия в ряду (http://www.tehnari.ru/f43/t47397/)

Хелен 13.02.2011 10:08

Проверка условия в ряду
 
Вложений: 1
Нужна помощь.

Код:

program v18z1;
var i,n,m,sum:integer;
begin
writeln (n);
read(n);
m:=9;
randomize;
for i:=1 to n do writeln(-m div 2 +random(m):8);
 {далее проверка условия}
if abs({чего-то})<{чего-то в квадрате}
then sum:=sum+sum;
{вывод конесной суммы}
 writeln('suma=',sum);
 end.


Даны натуральное число n, целые числа a1, … , an. Получить сумму тех чисел данной последовательности, которые удовлетворяют условию

shrek=) 13.02.2011 10:33

Программка то школьного уровня:
Код:

var
a:array[1..10000] of integer;
i,s,n:integer;
begin
s:=0;
write ('n=');
readln(n);
randomize;
for i:=1 to n do begin
a[i]:=random(100);
if abs(a[i])<sqr(i) then s:=s+a[i];
end;
writeln ('summa=',s);
readln
end.


Хелен 13.02.2011 23:19

Спасибо.
Да, школьного, но в моё время в школе преподавали только павер поинт.
Так что Паскаль приходится самостоятельно "жевать".

Хелен 13.02.2011 23:22

а ещё... не могли бы вы объяснить листинг комментами... плохо чужой код читаю.

Vladimir_S 14.02.2011 09:58

Цитата:

Сообщение от Хелен (Сообщение 466236)
а ещё... не могли бы вы объяснить листинг комментами... плохо чужой код читаю.

Я за него. Надеюсь, Shrek не обидится.
Код:

var
a:array[1..10000] of integer;
i,s,n:integer;
begin
s:=0; {Обнуление переменной, в которой будут суммироваться "нужные" члены последовательности}
write ('n=');
readln(n); {ввод количества членов последовательности}
randomize; {запуск генератора случайных чисел}
for i:=1 to n do begin
a[i]:=random(100); {заполнение массива (последовательности) случайными значениями в интервале 0..99}
if abs(a[i])<sqr(i) then s:=s+a[i]; {сравнение значений члена последовательности с квадратом его номера; если первое меньше второго, то к величине s прибавляется значение данного члена последовательности }
end;
writeln ('summa=',s); {вывод полученной суммы}
readln {останов для разглядывания выведенного на экран результата}
end. {Усё!}


Хелен 15.02.2011 00:36

это то я поняла... но вот, что меня смущает, может я ошибаюсь?

Не кажется ли вам, что ряд чисел "рандом" и должен им быть, а не 1,2,3..100 по порядку. Ряд на экран вами не выводится, и как же тогда проверить, что вообще считает программа)))

На мой взгляд в программе нужно:
вводить N - кол-во чисел выводимых в ряд На Экран Рандомом, напр; 0 1 -1 2 ..
проверять каждое из чисел по порядку - сравнивать с условием,
ну и далее стандарт, если да то то, если нет пошли дальше. ну и ответ.

Vladimir_S 15.02.2011 09:44

Хотел бы я понять, Хелен - как же Вы пытаетесь работать со стеками (в другой теме) и прочей заумью, не освоив Паскаль даже на самом низшем из возможных уровней? Чудеса...
Ну ладно:
Код:

var
 a:array[1..10000] of integer;
 i,s,n:integer;
begin
 s:=0;
 write ('n= ');
 readln(n);
 randomize;
 for i:=1 to n do
  begin
  a[i]:=70-random(100);
  write(a[i]:4);
  if abs(a[i])<sqr(i) then
    s:=s+a[i];
  end;
 writeln;
 writeln ('summa= ',s);
 readln
end.


Хелен 15.02.2011 13:40

Такие задания даёт преподаватель, "разбирайтесь как знаете".
Я думала, для того и есть такие форумы, чтобы когда появляется загвоздка, могли помочь, а не слушать от преподавателя или того же уважаемого Шрека, что "это в школе проходили". не ВСЕ проходили в школе Паскаль. думаю, каждый из вас знает, как ему было тяжело в начале, если вы конечно не были гением ))

Vladimir_S 15.02.2011 14:05

Цитата:

Сообщение от Хелен (Сообщение 467075)
Такие задания даёт преподаватель, "разбирайтесь как знаете".
Я думала, для того и есть такие форумы, чтобы когда появляется загвоздка, могли помочь, а не слушать от преподавателя или того же уважаемого Шрека, что "это в школе проходили". не ВСЕ проходили в школе Паскаль. думаю, каждый из вас знает, как ему было тяжело в начале, если вы конечно не были гением ))

Ой, Вы только не обижайтесь - я ничего такого не имел в виду, просто реально удивился подобному разбросу уровней задач. А Шрек - ну конечно, он скажет, что "в школе проходили", поскольку он сам школьник.
P.S. По поводу "тяжело в начале" - не знаю, поскольку я, по сути, самоучка, никто над душой с задачками не стоял, но пошлО как-то легко. Наверное, интересно было.
P.P.S. А насчет помочь - это мы всегда пожалуйста.


Часовой пояс GMT +4, время: 13:57.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.