![]() |
Помогите с лабораторной работой
Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами
1. Дана матрица размера M x N. Вывести ее элементы, расположенные в строках с четными номерами (2, 4, …). Вывод элементов производить по строкам, условный оператор не использовать 2. Дана квадратная матрица A порядка M. Найти среднее арифметическое элементов каждой ее диагонали, параллельной побочной (начиная с одноэлементной диагонали A1,1) 3. Дана матрица размера M x N. Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы (при этом поменяются местами строки с номерами 1 и M, 2 и M – 1 и т. д.) Надеюсь на вашу помощь и поддержку :) |
не будьте жмотом, заплатите 600 руб
|
Midsummer, здесь не freelance.
Берите бумагу, рассуждайте вслух, как будут мысли, приходите, поможем перевести их в программный код. Цитата:
Цитата:
Какой формуле соответствуют положения элементов || побочной диагонали? Что это вообще такое - побочная диагональ матрицы? Цитата:
|
вот 1-ая задача , но с условным оператором ,написана в VS2010.Если кто знает, подскажите как написать условие то, что бы без условного оператора выводило нужные строки? корявый английский язык можно заменить на русский.
Код:
#include "stdafx.h" |
ему уже все решили
http://www.cyberforum.ru/cpp-beginne...ead318091.html |
А я бы те решения не засчитал ... Или засчитал, но с защитой.
Комментариев к коду нет, теоретических выкладок нет. И вообще сомневаюсь, что они указатели проходили. |
Ну, коментарии- минутное дело . А что за теоритические выкладки?)
|
Цитата:
Цитата:
Не с потолка же алгоритмы берутся. Грубо говоря, это ответы на вопросы заданные мною в первом сообщении ^^. Прежде чем что-то найти, надо знать что искать. В противном случае - это будет чисто случайное совпадение. Как например генератор случайных величин "чисто случайно" генерирует ключи от программ в сотни $ :) |
Спасибо,в следующих моих ответах буду учитывать.
|
Buchik,
Цитата:
У тебя стоит условие, т.е. уже потеря в две/три команды ассемблера, без учета суммирования в скобках (а это еще несколько команд, при "лобовой" реализации), и без учета деления. А деление "в лоб" без оптимизацией - еще ряд "бестолковых" тактов ЦП. Меж тем, отвечая на вопрос: Цитата:
Вот и получается, что вместо множеств проверок и лишней работы ЦП, можно сразу определить делением (по сути двоичным сдвигом вправо на 1 разряд) кол-во четных строк, и получать следующую четную строку сдвигом вправо переменной счетчика. Другое оптимизационное решение - делать двойной инкремент переменной счетчика (оптимизированное i:=i+2 == inc i, 2), т.к. операция инкремент - это одна достаточно "легкая" инструкция ЦП. Возможность использования практически прямых указаний для ЦП зависит от реализации компилятора/интерпретатора языка. |
тоесть мне надо было написать что-то на подобии такого?
Код:
for ( i=1 ; i<k ; i=i+2 ) |
Цитата:
Единственное что могу сказать - код не верен, четные строки матрицы он не печатает. |
Вложений: 1
плохо ты видиш мой код. вот тебе дебуг, всё прекрасно работает
|
ммм, вот оно что. У тебя используется матрица [m+1, n+1]. Т.е. есть ряд не присвоенных значений, что однако позволяет избежать ряда ошибок при работе с малыми матрицами.
А ну ка если ... так и есть. 65535 - вылет. |
lxa85, Тоесть, когда вводиш число превышающее значение int то вылетают ошибки??А как тогда это исправить?
|
Цитата:
Верней знаю, но не скажу. Если у тебя идет объявление переменной через int, а максимальный int задать нельзя, в документации пояснений данной ситуации нет, то это баг, а вовсе не фича. :) Значит неверен алгоритм, использующий заведомо бОльшие ресурсы, чем требуется. |
Цитата:
|
Buchik, а это скучно, банально и не интересно. :)
Я тебе показал ошибку, если ли я же ее и исправлю, эффекта будет ноль. А вот если ты са-а-ам, то это совсем другое дело. Тогда ты сразу "Молодец", подумал, нашел решение, исправил ошибку, и все САМ! :) Ну разве не красота? Т.ч. давай, думай и решай. P.S. Хауса смотрел? Последняя серия 7ого сезона. Афсун: Вы на самом деле хотите закончить сейчас? :) |
Цитата:
|
Время: 07:53. |
Время: 07:53.
© OSzone.net 2001-