Имам нужда от помощ за една задача на Паскал
Модератор: Общи модератори
28 мнения
• Страница 2 от 2 • 1, 2
- Eliana
- УмНаТа КаКа с чЕрпАка :)
-
- Мнения: 1055
- Регистриран на: 25.08.2006
- Местоположение: Stara Zagora
- Пол: Жена
- Кара: '96 BMW318 cabrio
- SummonedToDIe
- старши ентусиаст
-
- Мнения: 2068
- Регистриран на: 1.11.2004
- Местоположение: София
- Пол: Мъж
Някой ще напише ли програмата като цяло, че не разбрах това дето го написа коелгата Тош от къде точно е



- logout
- старши ентусиаст
-
- Мнения: 1599
- Регистриран на: 29.10.2005
- Местоположение: фар-ийст ъв София
- Пол: Мъж
- Кара: KiA, Volvo, Ford
- Мечтае да кара: Болид от F1
- Детайли за колата: Picanto 2008, V70 2001, Puma 2021
Eliana написа:Ти не можеш ли да помогнеш? След като си програмист значи имаш представа как е решението
За съжаление Паскала го учих само за оценката


- Код: Избери целия код
int min(int row)
{
int i, min_val;
min_val = B[row][0];
for(i=1; i<N; i++)
if(min_val < B[row][i])
min_val = B[row][i];
return min_val;
}
Поне идеята трябва да е ясна...
It's not who You are, it's who You know...
- t0sh
- старши ентусиаст
-
- Мнения: 2184
- Регистриран на: 7.08.2006
- Местоположение: София / ghetto+
- Пол: Мъж
- Кара: m52 e36
- Мечтае да кара: е38 ;)
- Детайли за колата: е36
ей summoned, процедурата е zeroing, а ако идея си нямаш какво представлява значи и да минеш не си научил нищо.
та аз предлагам вземи разгледай какво ти е пускано и го сглоби сам, паскала се чете като новините, не е са сме ти пуснали пойнтери на С и да се чудиш на кой свят си
даже съм ти сложил елементарен ред с =1000 и коментари между редовете...
аз отказвам да ти го напиша цялото и да го копираш без да имаш идея кво правиш
p.s. ей ти пример пуснат без коментар от една моя програма, на който според мен и логаут колегата ще се поозори
та аз предлагам вземи разгледай какво ти е пускано и го сглоби сам, паскала се чете като новините, не е са сме ти пуснали пойнтери на С и да се чудиш на кой свят си

даже съм ти сложил елементарен ред с =1000 и коментари между редовете...
аз отказвам да ти го напиша цялото и да го копираш без да имаш идея кво правиш

p.s. ей ти пример пуснат без коментар от една моя програма, на който според мен и логаут колегата ще се поозори

- Код: Избери целия код
unsigned char ** decay_tab;
void init_decay_tab()
{
int i, j;
//dimension of simulationfield
decay_tab=(unsigned char**)new void* [nr_x_lmnts * nr_y_lmnts ];
assert(decay_tab != NULL);
for (i=0; i< nr_x_lmnts * nr_y_lmnts; i++)
{
decay_tab[i] = new unsigned char [nr_x_lmnts * nr_y_lmnts];
assert(decay_tab[i] != NULL);
for (j=0; j<nr_x_lmnts * nr_y_lmnts; j++)
{
decay_tab[i][j] = 0;
}
}
}
- SummonedToDIe
- старши ентусиаст
-
- Мнения: 2068
- Регистриран на: 1.11.2004
- Местоположение: София
- Пол: Мъж
t0sh написа:...
Разбирам те, баце, наготово всеки може

Идеята ми е, че трябва да предам дадената задача в сряда(независимо дали я разбирам или не), като дотогава трябва да науча и теорията за процедури, масиви и всичко от което имам нужда за да я реша

И тримата имате по едно черпене

Дано успея да я сглобя

- logout
- старши ентусиаст
-
- Мнения: 1599
- Регистриран на: 29.10.2005
- Местоположение: фар-ийст ъв София
- Пол: Мъж
- Кара: KiA, Volvo, Ford
- Мечтае да кара: Болид от F1
- Детайли за колата: Picanto 2008, V70 2001, Puma 2021
ОТ:
Е, при двумерен масив много ясно, че се ползва двоен пойнтер. Само за една оптимизацийка да те светна: това nr_x_lmnts * nr_y_lmnts може да се изчисли веднъж само в началото, а не да се смята на всяка итерация на цикъла по-долу... После защо 3GHz процесорите под виндовс работят бавно 


It's not who You are, it's who You know...
- t0sh
- старши ентусиаст
-
- Мнения: 2184
- Регистриран на: 7.08.2006
- Местоположение: София / ghetto+
- Пол: Мъж
- Кара: m52 e36
- Мечтае да кара: е38 ;)
- Детайли за колата: е36
че тя ти е готова написана, а ако не разбираш - що не пробваш гугъл за
'pascal tutorial'
и не че не искам защото ще те гърча да се мъчиш, а защото изпуснеш ли основите, цялото ти обучение което се основава на тях ще го караш с мъки. елементарно е, много силно те съветвам го разрови и разбери
успех
п.с. логоут: има обаче на кантар едно нещо 'прегледност', и когато тежи срещу едно умножение на цели числа, мисля че единственото нещо което бих ускорил е може би първата елка на света
п.с.2. функцийката както я виждаш, съм я чистил и оптимизирал сигурно 4 часа - заради реда с new - може да се напише и с 20 реда
ако ти е елементарно - евалата 
'pascal tutorial'
и не че не искам защото ще те гърча да се мъчиш, а защото изпуснеш ли основите, цялото ти обучение което се основава на тях ще го караш с мъки. елементарно е, много силно те съветвам го разрови и разбери

успех

п.с. логоут: има обаче на кантар едно нещо 'прегледност', и когато тежи срещу едно умножение на цели числа, мисля че единственото нещо което бих ускорил е може би първата елка на света

п.с.2. функцийката както я виждаш, съм я чистил и оптимизирал сигурно 4 часа - заради реда с new - може да се напише и с 20 реда


- Един
-
Вече кара БМВ
-
- Мнения: 1188
- Регистриран на: 18.10.2002
- Местоположение: Козлодуй
- Кара: Миксер. BMW i4 M50
Най-обичам някой татко (или майка) да ми донеси подобно на това условие щото студента/студентката/ученика/ученичката не може да се справи. Взимам листчето, чета го задълбочено и им казвам:
"Да може да се направи, но ще ви струва 250лв."
Обикновено тук разговора приключва. Но съм имал и случай да продължи:
"Амии, добре кога ще е готово? Другата седмица ли?"
"НЕ! Елате с парите след половин час."
Отсреща :
и
и след пауза "ама като е толкова просто защо искате толкова пари?"
"ами ако сина/дъщеря ви няма да има полза от тази задача, поне аз да имам някаква."
Един двумерен масив от байтове се пълни с нули. Мразя Ц, та може и да не съм прав.
И накрая да оптимизираме малко мехурчето на Eliana :
For i := 2 to N
For J := 1 to N-i
"Да може да се направи, но ще ви струва 250лв."
Обикновено тук разговора приключва. Но съм имал и случай да продължи:
"Амии, добре кога ще е готово? Другата седмица ли?"
"НЕ! Елате с парите след половин час."
Отсреща :


"ами ако сина/дъщеря ви няма да има полза от тази задача, поне аз да имам някаква."
t0sh написа:
- Код: Избери целия код
unsigned char ** decay_tab;
void init_decay_tab()
{
int i, j;
//dimension of simulationfield
decay_tab=(unsigned char**)new void* [nr_x_lmnts * nr_y_lmnts ];
assert(decay_tab != NULL);
for (i=0; i< nr_x_lmnts * nr_y_lmnts; i++)
{
decay_tab[i] = new unsigned char [nr_x_lmnts * nr_y_lmnts];
assert(decay_tab[i] != NULL);
for (j=0; j<nr_x_lmnts * nr_y_lmnts; j++)
{
decay_tab[i][j] = 0;
}
}
}
Един двумерен масив от байтове се пълни с нули. Мразя Ц, та може и да не съм прав.
И накрая да оптимизираме малко мехурчето на Eliana :
For i := 2 to N
For J := 1 to N-i
Последна промяна Един на 09 Мар 2007, 13:49, променена общо 1 път
Преди да монтирате нещо "спортно" на автомобила си, поинтересувайте се поне за какъв спорт е.
- t0sh
- старши ентусиаст
-
- Мнения: 2184
- Регистриран на: 7.08.2006
- Местоположение: София / ghetto+
- Пол: Мъж
- Кара: m52 e36
- Мечтае да кара: е38 ;)
- Детайли за колата: е36
айде последен оффтопик:
ясно е какво рпави, въпроса е че е днамичен 2д масив, и този ред беше закачка за логаут колегата и пример за съммонед какво е неясен за начинаещи (и не само) код
за моите критерии си е велик реда
и един поздрав за съммонд
PROGRAMMERS' DRINKING SONG
100 little bugs in the code,
100 bugs in the code,
fix one bug, compile it again,
101 little bugs in the code.
101 little bugs in the code.....
(Repeat until BUGS = 0)
p.s. 2 - че нещо рядко има програмиране
ако говориме за оптимизиране, може да ползва и quick-sort който е със скоротст O(n log n) докато бабъла е n^2
за сметка на сложността
и на паскал by google
http://sandbox.mc.edu/~bennet/cs404/doc/qsort_pas.html
ясно е какво рпави, въпроса е че е днамичен 2д масив, и този ред беше закачка за логаут колегата и пример за съммонед какво е неясен за начинаещи (и не само) код

decay_tab=(unsigned char**)new void* [nr_x_lmnts * nr_y_lmnts ];
за моите критерии си е велик реда

и един поздрав за съммонд

PROGRAMMERS' DRINKING SONG
100 little bugs in the code,
100 bugs in the code,
fix one bug, compile it again,
101 little bugs in the code.
101 little bugs in the code.....
(Repeat until BUGS = 0)
p.s. 2 - че нещо рядко има програмиране

ако говориме за оптимизиране, може да ползва и quick-sort който е със скоротст O(n log n) докато бабъла е n^2
за сметка на сложността

- Код: Избери целия код
void quickSort(int numbers[], int array_size)
{
q_sort(numbers, 0, array_size - 1);
}
void q_sort(int numbers[], int left, int right)
{
int pivot, l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot = numbers[left];
while (left < right)
{
while ((numbers[right] >= pivot) && (left < right))
right--;
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= pivot) && (left < right))
left++;
if (left != right)
{
numbers[right] = numbers[left];
right--;
}
}
numbers[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if (left < pivot)
q_sort(numbers, left, pivot-1);
if (right > pivot)
q_sort(numbers, pivot+1, right);
}
и на паскал by google

http://sandbox.mc.edu/~bennet/cs404/doc/qsort_pas.html
- logout
- старши ентусиаст
-
- Мнения: 1599
- Регистриран на: 29.10.2005
- Местоположение: фар-ийст ъв София
- Пол: Мъж
- Кара: KiA, Volvo, Ford
- Мечтае да кара: Болид от F1
- Детайли за колата: Picanto 2008, V70 2001, Puma 2021
Пак OT: Tosh, да те питам, защо не използваш malloc, която директно нулира заделената памет... Аз тоя new не го харесвам...
It's not who You are, it's who You know...
- Един
-
Вече кара БМВ
-
- Мнения: 1188
- Регистриран на: 18.10.2002
- Местоположение: Козлодуй
- Кара: Миксер. BMW i4 M50
t0sh написа:въпроса е че е днамичен 2д масив
Като е динамичен можеш ли да го resize-ваш динамично? интересно ми е как изглежда това на Ц.
P.S Не случайно написах "да оптимизираме мехурчето".
P.P.S трябва да накараме Админите да ни направят отделен форум за програмиране

Преди да монтирате нещо "спортно" на автомобила си, поинтересувайте се поне за какъв спорт е.
- logout
- старши ентусиаст
-
- Мнения: 1599
- Регистриран на: 29.10.2005
- Местоположение: фар-ийст ъв София
- Пол: Мъж
- Кара: KiA, Volvo, Ford
- Мечтае да кара: Болид от F1
- Детайли за колата: Picanto 2008, V70 2001, Puma 2021
Един написа:Като е динамичен можеш ли да го resize-ваш динамично? интересно ми е как изглежда това на Ц.
Сложно

Един написа:P.P.S трябва да накараме Админите да ни направят отделен форум за програмиране


It's not who You are, it's who You know...
- t0sh
- старши ентусиаст
-
- Мнения: 2184
- Регистриран на: 7.08.2006
- Местоположение: София / ghetto+
- Пол: Мъж
- Кара: m52 e36
- Мечтае да кара: е38 ;)
- Детайли за колата: е36
ми логаут, айде напищи ми го с malloc, двумерен, динамичен т.е. задава се от файл примерно, x/y координати размер x*y и двете посоки, занулен и готов.
а за run-time динамичен оп всяко време (не ми трябваше това) - общо взето или си адски смел с почти асемблерски код и брутално непрегледно (незнам дали бачка, от сорта да смениш на 2 integera стойностите без да ползваш 3-ти времене
), или просто правиш нов по-голям и копираш от стария.
или ползваш 'linked lists', и всеки сочи към колкото други искаш и както искаш и си ги шириш.
друг начин ненам
п.с. по темата - ако има закъсване тип 'изчетох пробвам но не разбирам' ще се помага
а за run-time динамичен оп всяко време (не ми трябваше това) - общо взето или си адски смел с почти асемблерски код и брутално непрегледно (незнам дали бачка, от сорта да смениш на 2 integera стойностите без да ползваш 3-ти времене

или ползваш 'linked lists', и всеки сочи към колкото други искаш и както искаш и си ги шириш.
друг начин ненам

п.с. по темата - ако има закъсване тип 'изчетох пробвам но не разбирам' ще се помага

28 мнения
• Страница 2 от 2 • 1, 2
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани