Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите с лабораторной работой

Ответить
Настройки темы
C/C++ - Помогите с лабораторной работой

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами

1. Дана матрица размера M x N. Вывести ее элементы, расположенные в строках с четными номерами (2, 4, …). Вывод элементов производить по строкам, условный оператор не использовать
2. Дана квадратная матрица A порядка M. Найти среднее арифметическое элементов каждой ее диагонали, параллельной побочной (начиная с одноэлементной диагонали A1,1)
3. Дана матрица размера M x N. Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы (при этом поменяются местами строки с номерами 1 и M, 2 и M – 1 и т. д.)
Надеюсь на вашу помощь и поддержку

Отправлено: 02:59, 12-06-2011

 

Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


не будьте жмотом, заплатите 600 руб

Отправлено: 03:17, 12-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Midsummer, здесь не freelance.
Берите бумагу, рассуждайте вслух, как будут мысли, приходите, поможем перевести их в программный код.
Цитата Midsummer:
Вывести ее элементы, расположенные в строках с четными номерами »
Как получить четные строки? Как вообще записывается четное число? Формулу приведите, пожалуйста.
Цитата Midsummer:
Найти среднее арифметическое элементов каждой ее диагонали, параллельной побочной »
По какой формуле считается среднее арифметическое? (Вопрос на засыпку: в чем отличие от среднего геометрического?)
Какой формуле соответствуют положения элементов || побочной диагонали?
Что это вообще такое - побочная диагональ матрицы?
Цитата Midsummer:
Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы »
Интересно узнать про горизонтальную ось симметрии. В каких случаях она существует, как ее определять в случае четного/нечетного кол-ва строк матрицы?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 11:12, 12-06-2011 | #3


Аватара для Buchik

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


вот 1-ая задача , но с условным оператором ,написана в VS2010.Если кто знает, подскажите как написать условие то, что бы без условного оператора выводило нужные строки? корявый английский язык можно заменить на русский.
Код: Выделить весь код
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	wcout.imbue(locale("rus_rus.866"));
	int ** mas ;
	int k , i , j , n ;
	int c=0;
	do
	{
		wcout << L"Input quantity of backstitches(m) of the matrix(m x n) : ";
		cin >> k ;
		wcout << L"Input quantity of columns(m) of the matrix(m x n) :  ";
		cin >> n ;
		if ( n<=0 || k<=0 ) wcout << L"Incorrect dimension!!!\n" ;
	} while ( n <= 0 || k <= 0 ) ;
	mas=new int*[k] ; 
	for( i=0; i<k; i++ ) { mas[i]=new int[n]; }
	for ( i=0 ; i<k ; i++)
	{		
		for( j=0 ; j<n ; j++ )
		{
			wcout << L"Input element [" << i+1 << L"] [" << j+1 << L"] : " ;
			cin >> mas[i][j] ; 
		}
	}
	wcout << L"Departure matrix :\n" ;
	for ( i=0 ; i<k ; i++)
	{
		for( j=0 ; j<n ; j++ )
		{
			wcout << mas[i][j] << "\t" ;
		}
		wcout << L"\n" ;
	}
	wcout << L"Lines of matrix with even numbers of backstitches : " ;
	for ( i=0 ; i<k ; i++)
	{
		for( j=0 ; j<n ; j++ )
		{
			if ( (i+1)%2 == 0 )
			wcout << mas[i][j] << "\t" ;
		}
		wcout << L"\n" ;
	}
		for( i=0 ; i<k ; i++ )delete[] mas[i] ;  
		delete[] mas ; 
	
	return 0;
}

Отправлено: 01:15, 14-06-2011 | #4


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


ему уже все решили
http://www.cyberforum.ru/cpp-beginne...ead318091.html
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:03, 14-06-2011 | #5


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


А я бы те решения не засчитал ... Или засчитал, но с защитой.
Комментариев к коду нет, теоретических выкладок нет.
И вообще сомневаюсь, что они указатели проходили.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 08:34, 14-06-2011 | #6


Аватара для Buchik

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ну, коментарии- минутное дело . А что за теоритические выкладки?)

Отправлено: 12:17, 14-06-2011 | #7


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Цитата Buchik:
Ну, коментарии- минутное дело »
Комментарии - писать обязательно, тем более в лабах. Т.к. интересует именно небольшой код сути программы, а не программа + инструментарий. (генераторы матриц, распечатка матриц и т.п.)

Цитата Buchik:
А что за теоритические выкладки?) »
Соответствие математических формул программной реализации.
Не с потолка же алгоритмы берутся. Грубо говоря, это ответы на вопросы заданные мною в первом сообщении ^^.
Прежде чем что-то найти, надо знать что искать. В противном случае - это будет чисто случайное совпадение.
Как например генератор случайных величин "чисто случайно" генерирует ключи от программ в сотни $

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:52, 14-06-2011 | #8


Аватара для Buchik

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо,в следующих моих ответах буду учитывать.

Отправлено: 13:14, 14-06-2011 | #9


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Buchik,
Цитата Buchik:
for( j=0 ; j<n ; j++ )
{
if ( (i+1)%2 == 0 )
wcout << mas[i][j] << "\t" ;
}
wcout << L"\n" ; »
Наглядный тебе пример. Раз уж здесь разбор полетов начался.
У тебя стоит условие, т.е. уже потеря в две/три команды ассемблера, без учета суммирования в скобках (а это еще несколько команд, при "лобовой" реализации), и без учета деления. А деление "в лоб" без оптимизацией - еще ряд "бестолковых" тактов ЦП.
Меж тем, отвечая на вопрос:
Цитата lxa85:
Как вообще записывается четное число? »
Формула четного числа : 2N. Умножение само по себе - относительно дорогая операция. Однако здесь идет умножение на два, что в двоичной системе может быть приравнено к сдвигу влево на 1 разряд. Сдвиг - это "логика", логические операции выполняются быстрее всего.
Вот и получается, что вместо множеств проверок и лишней работы ЦП, можно сразу определить делением (по сути двоичным сдвигом вправо на 1 разряд) кол-во четных строк, и получать следующую четную строку сдвигом вправо переменной счетчика.
Другое оптимизационное решение - делать двойной инкремент переменной счетчика (оптимизированное i:=i+2 == inc i, 2), т.к. операция инкремент - это одна достаточно "легкая" инструкция ЦП.
Возможность использования практически прямых указаний для ЦП зависит от реализации компилятора/интерпретатора языка.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:48, 14-06-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите с лабораторной работой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Медиа - Проблема с работой Asio4all Fenriz Microsoft Windows 7 17 04-10-2010 18:41
Разное - Проблема с работой Vistы kalion-kill Microsoft Windows Vista 3 09-04-2009 21:51
Контроль за работой пользователей Infinity7 Защита компьютерных систем 8 07-10-2007 13:36
траблы с работой ПК Absolut Непонятные проблемы с Железом 13 11-10-2004 21:01




 
Переход