Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 13.02.2011, 10:08   #1 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию Проверка условия в ряду

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

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

Старый 13.02.2011, 10:08
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Может быть такое, что участники форума уже решили эту проблему

Проверка правописания в IE
Проверка на вирусы
Помогите пожалуйста решить задачу по ряду Тейлора

Старый 13.02.2011, 10:33   #2 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Программка то школьного уровня:
Код:
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=) вне форума   Ответить с цитированием
Старый 13.02.2011, 23:19   #3 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию

Спасибо.
Да, школьного, но в моё время в школе преподавали только павер поинт.
Так что Паскаль приходится самостоятельно "жевать".
Хелен вне форума   Ответить с цитированием
Старый 13.02.2011, 23:22   #4 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию

а ещё... не могли бы вы объяснить листинг комментами... плохо чужой код читаю.
Хелен вне форума   Ответить с цитированием
Старый 14.02.2011, 09:58   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Хелен Посмотреть сообщение
а ещё... не могли бы вы объяснить листинг комментами... плохо чужой код читаю.
Я за него. Надеюсь, 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. {Усё!}
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.02.2011, 00:36   #6 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию

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

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

На мой взгляд в программе нужно:
вводить N - кол-во чисел выводимых в ряд На Экран Рандомом, напр; 0 1 -1 2 ..
проверять каждое из чисел по порядку - сравнивать с условием,
ну и далее стандарт, если да то то, если нет пошли дальше. ну и ответ.
Хелен вне форума   Ответить с цитированием
Старый 15.02.2011, 09:44   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Хотел бы я понять, Хелен - как же Вы пытаетесь работать со стеками (в другой теме) и прочей заумью, не освоив Паскаль даже на самом низшем из возможных уровней? Чудеса...
Ну ладно:
Код:
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.02.2011, 13:40   #8 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию

Такие задания даёт преподаватель, "разбирайтесь как знаете".
Я думала, для того и есть такие форумы, чтобы когда появляется загвоздка, могли помочь, а не слушать от преподавателя или того же уважаемого Шрека, что "это в школе проходили". не ВСЕ проходили в школе Паскаль. думаю, каждый из вас знает, как ему было тяжело в начале, если вы конечно не были гением ))
Хелен вне форума   Ответить с цитированием
Старый 15.02.2011, 14:05   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Хелен Посмотреть сообщение
Такие задания даёт преподаватель, "разбирайтесь как знаете".
Я думала, для того и есть такие форумы, чтобы когда появляется загвоздка, могли помочь, а не слушать от преподавателя или того же уважаемого Шрека, что "это в школе проходили". не ВСЕ проходили в школе Паскаль. думаю, каждый из вас знает, как ему было тяжело в начале, если вы конечно не были гением ))
Ой, Вы только не обижайтесь - я ничего такого не имел в виду, просто реально удивился подобному разбросу уровней задач. А Шрек - ну конечно, он скажет, что "в школе проходили", поскольку он сам школьник.
P.S. По поводу "тяжело в начале" - не знаю, поскольку я, по сути, самоучка, никто над душой с задачками не стоял, но пошлО как-то легко. Наверное, интересно было.
P.P.S. А насчет помочь - это мы всегда пожалуйста.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.