Помогите плз, а то некогда заниматься программированием, надо матан перездавать=((
Задача.
40.В матрице А(nxn) определить количество строк, элементы которой образуют арифметическую прогрессию. Использовать подпрограмму проверки строки.
[Ответ]
[nuso2f] 20:56 08.12.2007
Выполню очень быстро за небольшое вознаграждение. Как я понимаю задача уровня 11 класса . :Р
[Ответ]
Тем более! Второй курс со своими мегазнаниями об ООП должен такие задачки щелкать как орешки и помогать их же решать первому курсу. Правда, ООП здесь прикручивать даже смысла нет, но все же... Вобщем, афтар, посоветовал бы тебе сделать задачу самому, ибо делегирование таких простых задач другим людям несет под собой отказ от попытки хотя бы даже узнать о том, что такое программирование.
[Ответ]
Flash 08:22 10.12.2007
Сообщение от lollipop:
ибо делегирование таких простых задач другим людям несет под собой отказ от попытки хотя бы даже узнать о том, что такое программирование
такая задача пишется за 20 минут. плюс 20 минут на проверку и отладку. алгоритмы элементарные. если человек не хочет делать такие вещи сам, то незачем ему вообще учиться в ВУЗе.
[Ответ]
Snusmumrik 10:17 10.12.2007
Сообщение от kurdt:
плюс 20 минут на проверку и отладку.
нифигасебе... вообще говоря, 5 похожих задач дается на урок (45 минут, можно на перемене дописать) в школе.
[Ответ]
kurdt 12:38 10.12.2007
Сообщение от Snusmumrik:
нифигасебе... вообще говоря, 5 похожих задач дается на урок (45 минут, можно на перемене дописать) в школе.
при учете того, что это какая-то аттестационная задача, в ней не должно быть ляпов, лишнего кода, программа должна быть оптимизирована для дальнейшего использования/изменения плюс защита "от дурака".
Понятно, что сам алгоритм здесь на 3 строчки.
[Ответ]
Сообщение от kurdt:
при учете того, что это какая-то аттестационная задача, в ней не должно быть ляпов, лишнего кода, программа должна быть оптимизирована для дальнейшего использования/изменения плюс защита "от дурака".
ляпы, лишний код, защита от дурака.... я думал, это делается автоматически программистом, а не в случае, что это "аттестационная задача"... чтож тогда в обычной творится??)))
Function Proverka:boolean;
Procedure Work;
Begin
__Work
End.
где тут можно лишний код написать? А устранить ляпы-хм...
[Ответ]
kurdt 08:12 12.12.2007
филосовствовать можно долго и у каждого есть свой стиль. по поводу лишнего кода - не поверишь и в такой простой алгоритм можно очень сильно нагрузить и сделать его "нечитаемым". Также, я считаю, такая задача должна считывать данные из файла, проверять является ли считываемая матрица таковой (длина всех строк одинакова), проверять на наличие "посторонних символов". На уроке в 45 минут этого никто делать не будет, да и не сильно это надо, а когда решаешь задачу в течении семестра это делать необходимо. также нужно вынести отдельный метод проверки одномерного массива на арифм. прогрессию, тогда работать с программой в дальнейшем будет намного проще. за 10 мин. все это "с нуля" не напишешь.
[Ответ]
Snusmumrik 11:53 12.12.2007
Сообщение от Snusmumrik:
Function Proverka:boolean;
Сообщение от kurdt:
также нужно вынести отдельный метод проверки одномерного массива на арифм. прогрессию, тогда работать с программой в дальнейшем будет намного проще.
Var
A:array [1..n,1..n] of integer;
j,k:integer;
function check(j:integer):boolean;
var
i,c:integer;
t:boolean
Begin
t:true
i:=3;
c:=A[2,j] div A[1,j];
while t or (i<n) do
begin
if A[i,j]<>c*A[i-1,j] then t:=false
inc(i);
end;
check:=t;
end;
BEGIN
k:=0;
For j:=1 to n do
if check(j) then inc(k);
writeln(k);
end;
Делов-то...
Матрица состоит из целых чисел. просто с вещественными могут быть накладки. Как в дельфе не знаю, но в паскале уже встречалась с тем что 7/35<>0.2
[Ответ]
Snusmumrik 00:28 15.12.2007
Сообщение от Lisеnоk:
Как в дельфе не знаю, но в паскале уже встречалась с тем что 7/35<>0.2
Компьютерная, понимаешь, точность.... она, к сожалению, очень низка...
А к чему это?)))
[Ответ]
Lisеnоk 00:50 15.12.2007
Ды просто башкой ап стену убилась когда столкнулась в первый раз с этим. С тех пор нелюбовь к типу Real и ко всем его подопечным
или йа поздно на помощь пришла?
[Ответ]
Part!zan 12:16 15.12.2007
Lisеnоk, когда отсутствует понятие того, как комп работает с вещественными числами, можно не только башкой биться - ниче не поможет. Такие числа нельзя сравнивать на равно-не равно. Нужно их разность сравнивать с допустимой ошибкой. Например, abs(a-b)<eps, где eps - минимальная приемлемая ошибка вычислений.
[Ответ]
Lisеnоk 12:19 15.12.2007
Сообщение от Part!zan: LisеnоkТакие числа нельзя сравнивать на равно-не равно. Нужно их разность сравнивать с допустимой ошибкой.