ты просто все переменые описал как integer, тоесть как числа и хочешь чтобы Имя директора(или кого там) сохранило как число.error 106 invalid numeric format
которую он выдаёт... может кто подскажет что это?
П.С программа чуть выше!
var direct,my_name,cel,date,zav,spec,opit,dolg,oplata:integer;
var direct,my_name,cel,date,zav,spec,opit,dolg,oplata:string;
Спасибо я заменил integer на string всё работаетВ числовую переменную строку не "всунеш".
Повторяю еще раз.
Большинство переменных должно иметь тип string либо же везде вводи только цифры.
До этого не разу не использовал тип стринг... все время с реал или интегерты просто все переменые описал как 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;
насколько я понял это код на С. Помогите переделать на ПАскале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 );
}
Правила простые:насколько я понял это код на С. Помогите переделать на ПАскале
з.ы. это шейкер-сортировка ("эффективный метод "пузырька"")
меняем
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
Ну все таки не стоит забывать, что в массиве размером до 100 элементов толку от quicksort не будет.Эффективный пузырек? Не смешите. Пузырек всегда неэффективен. Даже шутка такая была после турниров и олимпиады - "А потом я реализовал классический пузырек...".
P.S. Зачем писать сортировку на С++, если есть встроенные сортировки (даже quicksort)?
сортировка пузырьком имеет оценочную сложность O(n*n), а quicksort в лучшем случае O(n*ln(n)), хотя в худшем тоже O(n*n) где n - количество элементовНу все таки не стоит забывать, что в массиве размером до 100 элементов толку от quicksort не будет.
А время уходящее на вызовы функции, если говорить о классических компилируемых языках программирования? Все же процессорное время уходящее на вызов функции как-никак гораздо больше чем даже традиционнно считающаяся ресурсоемкой операция деления. Плюс я не говорю о самом обычном тупом пузырьке - не обязательно проходить каждый раз весь массив, например, так-что сложность будет немного меньше O(n*n) даже в худшем случае. Хотя все равно эффективным назвать этот способ сортировки ну никак нельзя.сортировка пузырьком имеет оценочную сложность O(n*n), а quicksort в лучшем случае O(n*ln(n)), хотя в худшем тоже O(n*n) где n - количество элементов
и даже при 8 элементах в сложность пузырька будет 64, а с квиксортом 16..64 тоесть практически в 4 раза быстрее
и кодится рекурсивный квиксорт не так долго и сложно