IPB

Здравствуйте, гость ( Вход | Регистрация )

> глюк
savedata
сообщение 2.2.2011, 7:06
Сообщение #1


Студент
**

Группа: Продвинутые
Сообщений: 64
Регистрация: 8.1.2011
Из: Красноярск
Город: Krasnoyarsk
Учебное заведение: СибГТУ
Вы: студент



почему паскаль выдает мне непонятные значения, если в теле одновременно присутствуют вычисления сумм, типа вот этого


o:=0;
s:=0;

gettime(h1,m1,s1,hund1);
while s<100
begin
inc(s);
inc(o);
end;
gettime(h2,m2,s2,hund2);

writeln('время: ',h2-h1,':',m2-m1,':',s2-s1,':'hund2-hund1);
writein('s=',s,'o=',o);

он то время выдает вот такое: 0:0:65133:7 или 0:0:0:63488
то s=-23549
то o=-12044

это не только на моем компе, и в универе...кстати такую же фигню часто выдает при заполнении массива random типа как значения от -100 до 100:

A[i]:=random(200)-100;

выдает невероятные цифры
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
savedata
сообщение 2.2.2011, 10:14
Сообщение #2


Студент
**

Группа: Продвинутые
Сообщений: 64
Регистрация: 8.1.2011
Из: Красноярск
Город: Krasnoyarsk
Учебное заведение: СибГТУ
Вы: студент



Program sortirovka;
Uses dos,crt;
Var A:array[1..1000] of real;
min,k:real;
s,o,j,i,t,n:integer;
h1,m1,s1,hund1,h2,m2,s2,hund2:word;
begin

clrscr;

writeln('
программа сортировки массива поиском минимального элемента');
repeat

write('
введите отличное от 0 количество элементов массива - ');
readln(n);
until n>0;
readln;

o:=0;
// Устанавливаем количество произведенных сравнений элементов между собой.
s:=0; // Устанавливаем количество произведенных обменов элементов.

writeln('исходный массив сформированный случайным образом из ',n:0,' элементов');
writeln;

randomize;
for i:=1 to n do
begin
A[i]:=random(1000);
// Задается с помощью функции Random массив.
write(A[i]:4:0);
end;

writeln;
readln;

gettime(h1,m1,s1,hund1);
// С помощью функции gettime() получаем время начала выполнения сортировки.

for j:=1 to n-1 do // Осуществляем проход по массиву
begin
min:=A[j];
for i:=j to n do
// Минимальный элемент найденный в результате прохода по массиву в следующем проходе учитываться не будет.
begin
if min>=A[i] then
// Поиск минимального элемента массива.
begin
min:=A[i];
t:=i;
end;
inc(s);
// Считаем количество сравнений элементов.
end;
if A[t]<>A[j] then
// Если в результате прохода по массиву, оказалось что минимальный элемент стоит в начале массива, то обмена производиться не будет.
begin
k:=A[j];
A[j]:=A[t];
A[t]:=k;
inc(o);
// Считаем количество обменов элементов.
end;
end;

gettime(h2,m2,s2,hund2);
// С помощью функции gettime() получаем время окончания сортировки.

writeln;
writeln('
отсортированный массив');
writeln;
for i:=1 to n do write(A[i]:4:0);
// Вывод отсортированного массива на экран.
writeln;
writeln;
writeln('
Время сортировки массива: ',h2-h1,':',m2-m1,':',s2-s1,':',hund2-hund1); // ОТ конечного времени сортировки отнимаем время ее начала, результат выводим на экран.
writeln('Количество обменов - ',o:0); // Вывод на экран количества обменов элементов.
writeln('Количество сравнений - ',s:0); // Вывод на экран количества сравнений элементов.

readln;
end.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 29.5.2025, 20:03

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru