![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
compiler |
![]() ![]()
Сообщение
#1
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Добрый день!
Необходимо написать программу которая б демонстрировало разность в скоростях при использовании логарифмов и умножении помогите разобраться с ошибками... заранее благодарен.. uses crt, Dos, math;
Function GetTime: LongInt;
Var h, m, s, ms: Word;
begin
Dos.GetTime(h, m, s, ms);
GetTime := ms + 100 * (s + 60 * (m + 60 * h));
end;
var
r,
re,
start:LongInt;
i, size:integer;
_array: array [0..size] of integer;
const
e=2.71828;
begin
randomize;
size:=random(1000);
r:=1;
start := GetTime;
for i:=0 to size do
begin
_array[i]:=random(32000);
end;
WriteLn('Время выполнения заполнение массива = ', GetTime - start);
start := GetTime;
for i:=0 to size do
begin
r:=_array[i]*r;
end;
WriteLn('Время выполнения умножения = ', GetTime - start);
r:=0;
start := GetTime;
for i:=0 to size do
begin
r:=ln ( _array[i] )+r;
end;
for i:=0 to r do
begin
re:=re*e;
end;
WriteLn('Время выполнения заполнение массива = ', GetTime - start);
end.
Сообщение отредактировано: compiler - 15.04.2007 17:18 -------------------- Спасибо!
Удачи! |
![]() ![]() |
compiler |
![]()
Сообщение
#2
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Помогите!!!
еще, компилятор -- FP. Сообщение отредактировано: compiler - 15.04.2007 17:12 -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата помогите разобраться с ошибками... А чего с ними разбираться?при описании массива нельзя пользоваться переменной в качестве индекса, можно - только константой... Для того, чтобы сделать то, что ты хочешь - надо: var
_array: array of integer;
begin
randomize;
size:=random(1000);
r:=1;
setlength(_array, size);
for i:=0 to size-1 do begin
_array[i]:=random(32000) + 1; // Чтобы сразу отсечь попытку Ln(0) чуть ниже
end;
...
for i:=0 to size-1 do begin
r:=_array[i]*r; // <-- Нужен ОЧЕНЬ емкий целый тип, или Double
end;
...
Вместо GetTime из модуля DOS я бы воспользовался GetTickCount из модуля Windows... А вот дальше я не понял, что ты хотел сделать... for i:=0 to r do
begin
re:=re*e; // Что такое e, например?
end;
Сообщение отредактировано: volvo - 15.04.2007 17:32 |
compiler |
![]()
Сообщение
#4
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
следующая версия...
uses crt, Dos, math, Windows;
var
r,
re:Int64;
start:Int64;
i, size:Int64;
_array: array of Int64;
const
e=2.71828;
begin
randomize;
size:=random(1000);
r:=1;
re:=1;
setlength(_array, size);
start := GetTickCount();
for i:=0 to size-1 do
begin
_array[i]:=random(32000)+1;
end;
WriteLn('Время выполнения заполнение массива = ', GetTickCount() - start);
start := GetTickCount();
for i:=0 to size-1 do
begin
r:=_array[i]*r;
end;
WriteLn('Время выполнения умножения = ', GetTickCount() - start);
r:=0;
start := GetTickCount();
for i:=0 to size-1 do
begin
r:=ln ( _array[i] )+r;
end;
for i:=0 to r do
begin
re:=re*e;
end;
WriteLn('Время выполнения заполнение массива = ', GetTickCount() - start);
end.
е -- основа натуральных(неперовых[как называют некоторые]) логарифмов а хотел я переменную r(логарифм) превратить в число переменная rе Сообщение отредактировано: compiler - 15.04.2007 18:27 -------------------- Спасибо!
Удачи! |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 23:24 |