Turbo Pascal

Hamster

Well-Known Member
В числовую переменную строку не "всунеш".
Повторяю еще раз.
Большинство переменных должно иметь тип string либо же везде вводи только цифры.
 

Пух

كنت بلهاء
Модератор
Ответ: Turbo Pascal

error 106 invalid numeric format

которую он выдаёт... может кто подскажет что это?

П.С программа чуть выше!
ты просто все переменые описал как integer, тоесть как числа и хочешь чтобы Имя директора(или кого там) сохранило как число.
Вывод:
вместо
Код:
var direct,my_name,cel,date,zav,spec,opit,dolg,oplata:integer;
написать
Код:
var direct,my_name,cel,date,zav,spec,opit,dolg,oplata:string;
 

Русечкин

♥♠♣•♀?♪ §╘
Ответ: Turbo Pascal

ты просто все переменые описал как integer, тоесть как числа и хочешь чтобы Имя директора(или кого там) сохранило как число.
Вывод:
вместо
Код:
var direct,my_name,cel,date,zav,spec,opit,dolg,oplata:integer;
написать
Код:
var direct,my_name,cel,date,zav,spec,opit,dolg,oplata:string;
До этого не разу не использовал тип стринг... все время с реал или интегер
 

Пух

كنت بلهاء
Модератор
Ответ: Turbo Pascal

template<class T>
void shakerSort(T a[], long size) {
long j, k = size-1;
long lb=1, ub = size-1; // границы неотсортированной части массива
T x;


do {
// проход снизу вверх
for( j=ub; j>0; j-- ) {
if ( a[j-1] > a[j] ) {
x=a[j-1]; a[j-1]=a[j]; a[j]=x;
k=j;
}
}


lb = k+1;


// проход сверху вниз
for (j=1; j<=ub; j++) {
if ( a[j-1] > a[j] ) {
x=a[j-1]; a[j-1]=a[j]; a[j]=x;
k=j;
}
}


ub = k-1;
} while ( lb < ub );
}
насколько я понял это код на С. Помогите переделать на ПАскале
з.ы. это шейкер-сортировка ("эффективный метод "пузырька"")
 

dreamer

Member
Ответ: Turbo Pascal

насколько я понял это код на С. Помогите переделать на ПАскале
з.ы. это шейкер-сортировка ("эффективный метод "пузырька"")
Правила простые:
Код:
меняем
template<class T> на type T=integer;
void -> procedure
T a[] -> var a:array of T
long -> word
do -> repeat
while -> until not
for( j=ub; j>0; j-- ) -> for j:=ub downto 1 do
{ -> begin
} -> end
И не забываем массив нумеровать с 0 :)
 

Vladimir B.

милый добрый кот
Модератор
Ответ: Turbo Pascal

Эффективный пузырек? Не смешите. Пузырек всегда неэффективен. Даже шутка такая была после турниров и олимпиады - "А потом я реализовал классический пузырек...". :)

P.S. Зачем писать сортировку на С++, если есть встроенные сортировки (даже quicksort)? ;)
 

GrAndSE

Тёмный
Модератор
Ответ: Turbo Pascal

Эффективный пузырек? Не смешите. Пузырек всегда неэффективен. Даже шутка такая была после турниров и олимпиады - "А потом я реализовал классический пузырек...". :)

P.S. Зачем писать сортировку на С++, если есть встроенные сортировки (даже quicksort)? ;)
Ну все таки не стоит забывать, что в массиве размером до 100 элементов толку от quicksort не будет.
 

quant

yeah
Відповідь: Turbo Pascal

Ну все таки не стоит забывать, что в массиве размером до 100 элементов толку от quicksort не будет.
сортировка пузырьком имеет оценочную сложность O(n*n), а quicksort в лучшем случае O(n*ln(n)), хотя в худшем тоже O(n*n) где n - количество элементов
и даже при 8 элементах в сложность пузырька будет 64, а с квиксортом 16..64 тоесть практически в 4 раза быстрее
и кодится рекурсивный квиксорт не так долго и сложно
 

GrAndSE

Тёмный
Модератор
Ответ: Відповідь: Turbo Pascal

сортировка пузырьком имеет оценочную сложность O(n*n), а quicksort в лучшем случае O(n*ln(n)), хотя в худшем тоже O(n*n) где n - количество элементов
и даже при 8 элементах в сложность пузырька будет 64, а с квиксортом 16..64 тоесть практически в 4 раза быстрее
и кодится рекурсивный квиксорт не так долго и сложно
А время уходящее на вызовы функции, если говорить о классических компилируемых языках программирования? Все же процессорное время уходящее на вызов функции как-никак гораздо больше чем даже традиционнно считающаяся ресурсоемкой операция деления. Плюс я не говорю о самом обычном тупом пузырьке - не обязательно проходить каждый раз весь массив, например, так-что сложность будет немного меньше O(n*n) даже в худшем случае. Хотя все равно эффективным назвать этот способ сортировки ну никак нельзя.
 
Зверху