• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Проверка условия в ряду

Хелен

Sparkling
Регистрация
28 Сен 2010
Сообщения
98
Реакции
2
Баллы
0
Проверка условия в ряду

Нужна помощь.

Код:
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. Получить сумму тех чисел данной последовательности, которые удовлетворяют условию
 

Вложения

  • а.webp
    а.webp
    814 байт · Просмотры: 119
Программка то школьного уровня:
Код:
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.
 
Спасибо.
Да, школьного, но в моё время в школе преподавали только павер поинт.
Так что Паскаль приходится самостоятельно "жевать".
 
а ещё... не могли бы вы объяснить листинг комментами... плохо чужой код читаю.
 
а ещё... не могли бы вы объяснить листинг комментами... плохо чужой код читаю.
Я за него. Надеюсь, 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. {Усё!}
 
это то я поняла... но вот, что меня смущает, может я ошибаюсь?

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

На мой взгляд в программе нужно:
вводить N - кол-во чисел выводимых в ряд На Экран Рандомом, напр; 0 1 -1 2 ..
проверять каждое из чисел по порядку - сравнивать с условием,
ну и далее стандарт, если да то то, если нет пошли дальше. ну и ответ.
 
Хотел бы я понять, Хелен - как же Вы пытаетесь работать со стеками (в другой теме) и прочей заумью, не освоив Паскаль даже на самом низшем из возможных уровней? Чудеса...
Ну ладно:
Код:
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.
 
Такие задания даёт преподаватель, "разбирайтесь как знаете".
Я думала, для того и есть такие форумы, чтобы когда появляется загвоздка, могли помочь, а не слушать от преподавателя или того же уважаемого Шрека, что "это в школе проходили". не ВСЕ проходили в школе Паскаль. думаю, каждый из вас знает, как ему было тяжело в начале, если вы конечно не были гением ))
 
Такие задания даёт преподаватель, "разбирайтесь как знаете".
Я думала, для того и есть такие форумы, чтобы когда появляется загвоздка, могли помочь, а не слушать от преподавателя или того же уважаемого Шрека, что "это в школе проходили". не ВСЕ проходили в школе Паскаль. думаю, каждый из вас знает, как ему было тяжело в начале, если вы конечно не были гением ))
Ой, Вы только не обижайтесь - я ничего такого не имел в виду, просто реально удивился подобному разбросу уровней задач. А Шрек - ну конечно, он скажет, что "в школе проходили", поскольку он сам школьник.
P.S. По поводу "тяжело в начале" - не знаю, поскольку я, по сути, самоучка, никто над душой с задачками не стоял, но пошлО как-то легко. Наверное, интересно было.
P.P.S. А насчет помочь - это мы всегда пожалуйста.
 
Назад
Сверху