Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2012, 20:22   #1
Virusyaga
 
Регистрация: 29.11.2012
Сообщений: 9
По умолчанию Задачи. Турбо паскаль.

1.Найти сумму элементов массива вещественных чисел, имеющих нечетные номера. Размерность массива 20. Заполнение массива осуществить случайными числами от -π до π.


2. Получить действительный массив A[1..7, 1..7], первая строка которой задается формулой a1j=2j+3, вторая строка задается формулой a2j=j+3/(2+j), а каждая следующая строка есть сумма двух предыдущих.


Прошу помощи разобрать.
Virusyaga вне форума Ответить с цитированием
Старый 03.12.2012, 22:11   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну так Вы начните решать, что не получается, тут, на форуме подскажут/помогут...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.12.2012, 17:15   #3
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

1.
Код:
const
     n=20;
var
   A:array [1..n] of real;
   i:integer;
   sum:real;
BEGIN
sum:=0;
for i:=1 to n do
    begin
    a[i]:=random(1000)/(random(1000)-random(1000));
    write(a[i]:0:3,' ');
    if i mod 2<>0 then sum:=sum+a[i];
    end;
writeln(#13,'Summa = ',sum);
readln;
END.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Старый 04.12.2012, 20:20   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Домовой, позволите внести 5 копеек?
1) Нет Randomize, что не есть хорошо
2)
Цитата:
if i mod 2<>0 then
Тут наверное лучше использовать not (Odd(2)), т.к. это намного эффективней, и Серж в своё время нам это доказал..
Хоть опять же, на спичках не экономят
3)
Цитата:
#13
Что-то подсказывает мне, что у Вас Дельфи, и данным куском кода Вы хотели перейти на новую строку..
Т.к. в паскале нужно будет написать #10#13, то наверное для работе на всех компиляторах (было какое-то шибко красивое слово, но я позабыл), лучше написать WriteLn(), или вообще без скобочек..
Хотя согласен, одна лишняя строка не есть хорошо..
Poma][a вне форума Ответить с цитированием
Старый 04.12.2012, 20:38   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

А я 4 копейки добавлю
Код:
a[i]:=random(1000)/(random(1000)-random(1000));
Тут деление на ноль может быть
eoln вне форума Ответить с цитированием
Старый 05.12.2012, 17:03   #6
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Код:
a[i]:=random(1000)/(random(1000)-random(1000));
Тут деление на ноль может быть
тогда
Код:
a[i]:=random(1000)/((random(1000)-random(1000)+1));
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Старый 05.12.2012, 17:59   #7
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от domovou Посмотреть сообщение
тогда
Код:
a[i]:=random(1000)/((random(1000)-random(1000)+1));
Неа А вдруг в знаменателе первый рандом даст 100, а второй 101 ?
Тогда уж
Код:
a[i]:=random(1000)/((random(1000)+1));
Но в условии ещё и границы заданы, то есть надо просто
Код:
a[i] := 2*P*(random-0.5);
, где P - задаёт участок [-P; +P) Ну или если границы обе нужны, то что-то вроде
Код:
a[i] := (random(2*P+1)-P)/1000
, где P - задаёт интервал [-P/1000; P/1000]
eoln вне форума Ответить с цитированием
Старый 05.12.2012, 18:25   #8
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Неа А вдруг в знаменателе первый рандом даст 100, а второй 101 ?
Тогда уж
Код:
a[i]:=random(1000)/((random(1000)+1));
Но в условии ещё и границы заданы, то есть надо просто
Код:
a[i] := 2*P*(random-0.5);
, где P - задаёт участок [-P; +P) Ну или если границы обе нужны, то что-то вроде
Код:
a[i] := (random(2*P+1)-P)/1000
, где P - задаёт интервал [-P/1000; P/1000]
Понял я)))
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Старый 05.12.2012, 21:34   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Походу, в этой теме Домовой больше знаний получил, чем топикстартер
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.12.2012, 22:25   #10
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Sciv

Походу, в этой теме Домовой больше знаний получил, чем топикстартер

Прокачивается на слониках - тоже полезно.
Точно также поступают игроки в Диабло - там это называется "фармить мобов" o_O
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи (Турбо-Паскаль) Rast[bI]4* Помощь студентам 0 22.02.2012 23:16
задачи на файлы в турбо паскаль rewq_q Помощь студентам 1 14.11.2010 16:29
первые задачи по турбо паскаль pavel42 Помощь студентам 16 06.04.2009 17:03