Diskuze: dosazení matic ze souboru txt.
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.


// soucet matic.cpp
// 10.12.2013
// soucet matic rozmeru m x n
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
        cout << "*** Soucet matic ***\n\n";
        cout << "Zadejte rozmery matic\n";
        int m,n;        // pocet radku a sloupcu matic
        int const chyba =1;
        const int radek = 100;  // max. pocet radku matic
        const int sloupec = 100;        // max. pocet sloupcu matic
        double a[radek] [sloupec];      // matice A
        double b[radek] [sloupec];      // matice B
        double c[radek] [sloupec];      // matice vysledku C = A+B
        cout << "pocet radku m: ";
        ifstream fin ("matice.txt");
        if (!fin)                                       // nastala chyba pri otevirani souboru?
        {       // ano, vypis chybove hlaseni
                cout << "Soubor  nelze otevrit pro cteni.\n";
                system ("pause");
                return chyba;   // ukonci funkci a vrat chybovy kod
        }
        // chyba nenastala, cteni znaku ze souboru
        string line;                            // buffer pro radek souboru
        int poloha = 0;                         // poloha oddelovace v retezci
        int delka = 0;                          // zjisteni delky retezce
        int polohazac = 0;
        string ret1 = " ";                      // retezce pro jednotlive polozky radku
                                        // odradkuj
        while (getline(fin, line))      // dokud nenarazis na konec souboru, tak precti radek
        {
                // zpracovani radku po blocich pomoci metody assign
        cout << line << endl;   // vypis radku na obrazovku
        polohazac = 0;                          // poloha zacatku retezce
        delka = line.length();          // zjisteni delky retezce
        poloha = line.find(" ");                // najdi pozici carky
        ret1.assign(radek,polohazac,poloha-polohazac);  // zkopiruj retezec po carku
        // metode assign se zadava
        // nazev retezce, ze ktereho se kopiruje
        // pozice ve retezci, od ktere se kopiruje
        // pocet kopirovanych znaku
        polohazac = poloha+1;           // poloha zacatku dalsiho retezce je az za carkou
        poloha = line.find_first_of(" ",polohazac);
        }
        cout << "pocet sloupcu n: ";
        cin >> n;
        cout << "\nZadejte matici A\n";
        for (int i=0;i<m;i++)
        {
                for (int j=0; j<n; j++)
                {
                        cout << "a(" << i<< "," << j << "): ";
                        cin >> a[i] [j];
                }
        }
        cout << "\nZadejte matici B\n";
        for (int i=0;i<m;i++)
        {
                for (int j=0; j<n; j++)
                {
                        cout << "b(" << i<< "," << j << "): ";
                        cin >> b[i] [j];
                }
        }
        // cyklus pro soucet matic C = A + B
        for (int i=0;i<m;i++)
        {
                for (int j=0; j<n; j++)
                {
                        c[i] [j]= a[i] [j] + b[i] [j];
                }
        }
        // vypis matic A a B po radcich
        for (int i=0;i<m;i++)
        {
                for (int j=0; j<n; j++)
                {
                        //cout << "c(" << i<< "," << j << ")=";
                        cout << a[i] [j] << " ";
                }
                cout << endl;
        }
        cout << endl;
        for (int i=0;i<m;i++)
        {
                for (int j=0; j<n; j++)
                {
                        //cout << "c(" << i<< "," << j << ")=";
                        cout << b[i] [j] << " ";
                }
                cout << endl;
        }
        cout << endl;
        // vypis matice C po radcich
        for (int i=0;i<m;i++)
        {
                for (int j=0; j<n; j++)
                {
                        //cout << "c(" << i<< "," << j << ")=";
                        cout << c[i] [j] << " ";
                }
                cout << endl;
        }
        cout << endl;
        system("pause");
        return 0;
}Zobrazeno 2 zpráv z 2.
