Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с матрицей, помогите дописать функцию 
:(
    Опции темы
mego4el
  Дата 20.12.2010, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 19.9.2010

Репутация: нет
Всего: нет



Пожалуйста помогите дописать правильно функцию int iz_faila(). 
Эта функция у меня читает матрицу из фаила, и выводит ее на экран. В добавок к этому необходимо, что бы программа подсчитала новую из той, которая была в фаиле, (по форме, как в функции void s_klav().) и ее вывела на экран. И что бы после этого, полученную матрицу, можно было записать в фаил, как в функции int masv_file(). Это у меня не получается((

Код

#include <iostream>
#include <ctime> 
#include <cmath>
#include <stdio.h> 
#include <cstdlib>

const int NotUsed=system("color F0");
  
using namespace std;

int sr_geo(); //среднее геометрическое
void s_klav(); //ввод с клавиатуры
void mas_vyv(); //вывод на экран
int m_menu(); //меню программы
int iz_faila(); //чтение матрицы из фаила
int masv_file(); //вывод в фаил
int **arr;
int Rw=0;        //размерность матрицы

int sr_geo(int **arr, int n)
{
    int sr_geo=0;
    float pr=1;
    for(int i=0; i<n; i++)
        pr*=abs(arr[i][i]);
    
    sr_geo = (int)exp(log((float)pr)/n);
        return sr_geo;
}
 
int main()
{
    char fv;
    if(m_menu())
    {
    cout<<endl;
    mas_vyv();
    cout<<"Vyvesti v fail? y/n \n";
    do 
    {
        cin>>fv;
    }
    while(fv!='y' && fv!='n');
    if (fv=='y')
    masv_file();
    else printf("Exit \n");
    }
    return 0;
}

void s_klav()
{
    srand((unsigned)time(NULL));
    int n,i,j;
    int sr;
    cout<<"Vvedite razmer massiva: ";
    cin>>Rw;
    arr = new int*[Rw];
    cout<<"Massiv: "<<endl;
    for(i=0; i<Rw; i++)
    {
        arr[i] = new int[Rw];
        for(j=0; j < Rw; j++)
        {
            arr[i][j]=rand()%9+1;
            cout<<arr[i][j]<<"  ";
        }
            cout<<endl;
    }
}

void mas_vyv()
{
    int sr = sr_geo(arr,Rw); 
        cout<<endl;
        cout<<"Sformirovannaya matrica:"<<endl;
        for(int i=0; i < Rw; i++)
        {
            for(int j=0; j < Rw; j++)
            {
                    if((i+j)%2==0)
                    {
                            arr[i][j]=sr;
                    }
                    cout<<arr[i][j]<<"  ";
            }
            cout<<endl;
        }
}

int m_menu()
{
    int cho;
    
    cout<<"1 - vvesti s klaviaturi\n2 - iz faila\n0 - vyhod\n";
    cin>>cho;
    switch(cho)
    {
    case 0:
        exit('Exit');
        break;
    case 1:
        s_klav();
        return 1;
        break;
    case 2:
        return iz_faila();
        break;
        default: cout<<"vvedite pynkt menu \n";
    }
    return 1;
}

int iz_faila()
{
    FILE *f;
    char FileName [80];
    printf ("Vvedite adres faila: \n");
    scanf("%s",FileName);
    printf ("Adres faila: %s\n", FileName);
    f=fopen(FileName,"rt");
    int nElements=0, m=0;
    char ch;
    if(f!=NULL)
    {
        printf("Fail yspeshno otkrit! \n\n");
        while((ch=getc(f))!=EOF)
        {
            if((ch!='\n')&&(ch!=' '))nElements++;    
                printf(" %c ", ch);            
        }
        cout<<endl<<endl;
        printf("Number=%d",nElements);
        cout<<endl;
        fseek(f,0,SEEK_SET);
        fclose(f);
        return 1;
    }
    else 
    {
        cout<<"Oshibka otkritiya!\n";
        return iz_faila();
    }
}

int masv_file()
{
    char fname [80];
    cout<<"Vvedite polnoe nazvanie fayla: \n";
    cin>>fname;
    FILE *pFile = fopen(fname, "w+");
    if(pFile != NULL)
    {
        for (int i=0; i < Rw; i++)
        {
            for (int j=0; j < Rw; j++)
            {
                fprintf(pFile,"%d ", arr[i][j]);
            }
            fprintf(pFile,"\n");
            puts("");
        }
        fclose(pFile);
            return 1;
    }
    else 
    {
        cout<<"Oshibka otkritiya!\n";
        exit(1);
    }
    return 1;
}

PM MAIL   Вверх
boostcoder
Дата 20.12.2010, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mego4el @  20.12.2010,  00:07 Найти цитируемый пост)
7: const int NotUsed=system("color F0");

это работает? smile 
PM WWW   Вверх
mego4el
Дата 20.12.2010, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 19.9.2010

Репутация: нет
Всего: нет



Цитата

это работает?


да, это цвет консоли))), но не в этом суть темы.
PM MAIL   Вверх
mego4el
Дата 20.12.2010, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 19.9.2010

Репутация: нет
Всего: нет



ап, помогите пожалуйста, очень срочно! 
PM MAIL   Вверх
mego4el
Дата 21.12.2010, 17:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 19.9.2010

Репутация: нет
Всего: нет



up, пожалуйста помогите, очень срочно!  smile  smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.