Магический квадрат
Написать программу, которая проверяет, является ли введенная с клавиатуры
квадратная матрица "магическим" квадратом. "Магическим" квадратом называется матрица, у которой сумма чисел в каждом горизонтальном ряду, в каждом вертикальном и по каждой из диагоналей одна и та же. Надеюсь, что люди умные тут сидят, сколько сам пытался написать ничего не выходит... |
Предлагаете за вас всё написать? Где ваш код?
|
LehaMechanic,
Код:
#include <stdio.h> |
Код:
//Суммируем с строках Та же самая фигня у вас и для столбцов. |
Цитата:
|
Цитата:
|
Tau_0, обязательно. Иначе и быть не должно.
|
Цитата:
Почему и предпочитал всегда закладывать проверки на допустимость всех данных, какие возможно: "лучше перебдеть чем недобдеть". Как, впрочем, и инициализацию массивов в случаях, когда их можно не декларировать заранее а создавать по ходу дела. |
Цитата:
Цитата:
Как правило за ВСЁ отвечает вызывающий модуль/программа, которая и генерирует данные. Хотя в зависимости от алгоритма порою и вниз задачу спустить можно В силу специфики задач (разреженные симметричные положительно определённые квадратные матрицы) для хранения матриц использовались ленточные и профильные схемы (одномерный масств + массивы указателей), а не двухмерные массивы. ЗЫ Зачем что-то долго в крутить в цикле на неверных данных..???... ЗЗЫ Про студенческие программки я не говорю --- приказали проверять (мусора наплодить), --- приказ следует выполнять... |
Цитата:
Ага. :) Но "если бы директором был я", то за такие отвлечённые комментарии в тексте курсовой одного балла студент точно не досчитался бы. В обоих случаях: и если вызывающий модуль выполняет эту проверку, в т.ч. если матрица даётся преподавателем гарантированно квадратная (что означает, что работа выполнена вообще бездумно), и если не выполняет (а тогда какого хрена не учёл, зная из этих слизанных комментариев, что возможен нештатный вылет программы). ;) |
Цитата:
И мне крайне странно слышать противное от человека, не понаслышке знакомого именно с фортраном: ведь именно в нём были заложены данные базовые основы. |
Цитата:
Я не видел ни одного человека, который бы додумался при отладке , что-то вводить и выводить с консоли… Эта задачка для кадетов, которых в воспитательных и образовательных целях учат зубной щёткой пол в казарме мыть… Лично я бы сделал акцент именно на численной стороне алгоритма --- его красивости… ЗЫ Пиписьками не меряясь, но вот в качестве флуда мои представления: 1. Бейсик --- язык для идиотов… 2. Ассемблер – он и есть ассемблер. Там почти ничего при получении адреса своей системной таблицы не проверишь. Дай Бог хоть с плохим RC назад вернуться, а не "прыгать с парашутом"… В самом начале с ассемблера начинал --- честно отпахал 3 года призыва. 3. На C, С++ кодировал немного --- не понравился. Телеграфный код, а не язык 4. Почти 4 года (ещё под DOS) кодировал на Modula 2. Этоn язык был покрасившее чем учебный Pascal. Из них три года делал дурные ускорители FoxPro 5. А вот Prolog на зуб не пробовал --- это круто…:kruto: А любимым остался Fortran и численные методы... А если ещё выше, то Физика и Математика, которые за этим делом стоят. Язык --- это не самоцель, но системное/логическое программирование это одно, а численные методы это совсем другое. |
Цитата:
Цитата:
|
Цитата:
Цитата:
А бессмертные слова Эстера Дейкстры гласят, ---“Объектно-ориентрованное программирование — это исключительно плохая идея, которую могли придумать только в Калифорнии.”...:gigi::gigi::gigi: |
Цитата:
Цитата:
Цитата:
|
Цитата:
Продолжим однако, оно того стОИт… Заодно и проверим фортранщика на зуб…:) Вот Вам код подпрограммы всего на двух страничках… LU_73 LU_74 Это не деЦЦкий код. Это из одного серьёзного пакета для FEM/МКЭ, написанного ещё на легендарном FORTRAN 66 для DEC/VAX. По крайней мере код профилирован, и поверьте мне на слово, более чем удовлетворяет требованиям структурного программирования… Как сверху вниз, так и снизу вверх, а также в любом направлении… Речь идёт в целом море “квадратов и квадратиков” и подпрограмм в пакете полно… Но ни в одной компоненте не найдёте юниорских, так милых Вашему сердцу проверок… Добавлено ======= Нашёл pdf оригинала -- его проще обозреть... ComputerSolution of Sparse Linear Systems |
Сумма всех элементов по столбцам (или строкам) квадратной матрицы в данном случае тоже может быть полезна. Ибо, если она не делится на некое целое число (так сказать, магическое), то опять же можно ответственно заявить, что задача поставлена неверно. Или пользователь навалял дурака с вводом.
|
XPEHOMETP, немногие квадратные матрицы являются магическими. Посмотрел в Вики и каких-то полезных теоретико групповых или иных свойств этих квадратов, кроме забавной магии..., не узрел...
А пример решения этой задачки приведен на кибере C++ - Проверить является ли квадратная матрица " магическим квадратом" |
Время: 15:10. |
Время: 15:10.
© OSzone.net 2001-