Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [С++] Матрицы,функции


Автор: deadlegolas 20.1.2009, 22:30
Добрый вечер. Прошу помочь,так как Си только начал учить и пока в упор не понимаю как это сделать. Заранее благодарю.

Дана квадратная матрица порядка М. 
Зеркально отобразить её елементы относительно горизонтальной оси симметрии матрицы. Желательно использовать функцию.

Автор: Shooroop 21.1.2009, 08:20
для начала внимательно прочитай книгу из которой этот пример там все есть!

выпиши на бумагу в столбик цифры от 0 до допустим 5 и посмотри что будет, на против них цифры но уже в "зеркальном"  порядке должно быть примерно так:
1-5
2-4
3-3
4-2
5-1
отсюда мы уже видим что наш "зеркальный" столбик отличается только тем что он расположен в обратном порядке в отличие от оригинала. С массивом делаем так-же т.е. выводим его задом на перед.

код на с++
Код

#include <iostream>
#include <iomanip>
using namespace std;
void zerkalo(int **mas,int n)
{
    cout<<"zerckalo"<<endl;
    for(int i=n-1;i>=0;i--)          // начинаем с последнего элемента и продолжаем пока i >=0 
    {
        for(int j=0;j<n;j++)
            cout<<setw(3)<<mas[i][j]<<" ";  // setw(3) манипулятор потока, отводит для вывода числа 3и знакоместа на дисплее 
        cout<<endl;
    }
}
void main()
{
    int **mas,n=5;
    mas=new int*[n];
    for(int i=0;i<n;i++)
    {
        mas[i]=new int[n];
        for(int j=0;j<n;j++)
            mas[i][j]=i*n+j;
    }
    
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
            cout<<setw(3)<<mas[i][j]<<" ";
        cout<<endl;
    }
    zerkalo(mas,n);
    cout<<"press ENTER"<<endl;
    cin.get();
}

Автор: deadlegolas 21.1.2009, 16:27
Цитата

для начала внимательно прочитай гнигу из которой этот пример там все есть!

извините,а не могли бы вы подсказать что за книга,какой автор и как называется? просто мне этот пример задали. буду благодарен)
за решение спасибо! сейчас буду разбираться)

Автор: Shooroop 22.1.2009, 04:54
Я думал что вы взяли этот пример из книги по которой начали изучать С\С++ и не до конца разобравшись сразу запостили тему "сделайте за меня".

В качестве учебной литературы могу предложить книги по которым учился я:
  • "Объектно ориентированное программирование в С++" 4-изд, Р. Лафоре 2003.
        Книга написана как учебный материал, в конце каждой главы есть достаточно интересные учебные задачки для самоподготовки. Рекомендую в качестве первой книги.
  • "Язык программирования С++" 3-изд, Бьерн Страуструп 2000.
         Книга написана программистом для программистов. Без знаний теории программирования ее читать достаточно сложно. Рекомендую для углубленного изучения.

И пометьте тему решенной. 

Автор: deadlegolas 24.1.2009, 16:23
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)