lementarne działania na macierzach for oraz tab

0

Witam

Tak jak w skrócie w temacie. Mam mały problem ponieważ za bardzo mi nie wychodzi wczytywanie liczb z klawiatury do macierzy 3x3.

Program ogólnie ma służyć jako kalkulator macierzowy +,-,*,/

Chcę tylko aby liczby był pobierane oczywiście żeby to ładnie przejrzyście wyglądało z co drugiego miejsca względem osi x.

Na obecną chwile mam problem z przejściem linijkę niżej oraz pobieranie nast wartości.

Podejrzewam, że chodzi o odpowiednią konfigurację głównej pętli for, która będzie 3 razy powtarzała cały proces. Nie wiem czy to jest najprostszy sposób, ale postawiłem na minimalną ilość w końcu po to są pętli i tablice wielo...

Pomoc potrzebna dość szybko mam jeszcze kilka dni na dokończenie tego programu w zasadzie na zaliczenie.

Z góry dzięki za jaką kol wiek podpowiedź.

// Program zaliczeniowy z Podstaw programowana w języku C++ Temat: Kalkulator macierzowy

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>

using namespace std;

void gotoxy(int x, int y) //Funckcja ta zapewnia nam przesunięcie tekstu o wektor x,y
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}

void macierzlinie() // funkcja rysujące macierz
{
gotoxy(10,14);
cout << char(218);
gotoxy(18,14); cout << char(191);
}

void readvalues() // fukcja wczytująca wartości w konkretnych miejscach
{
int tab [6][6];
int i,j;
for (i=0;i<6;i++)
{
for (i=0;i<6;i++);
{
gotoxy(i++,8);
for (j=0;j<6;j++)
{
gotoxy(i++,8);
cin >> tab[i++][j++];
cout << endl;
}}
}

int main()
{
int i;
gotoxy(15,2);
cout << " Program realizuje podstawowe dzialania na macierzy wymiaru 3x3 " << endl << endl << endl;
gotoxy(10,5);
cout << " 1. Dodawanie 2. Odejmowanie 3. Mnozenie 4.Dzielenie " << endl<<endl<<endl;
gotoxy(8,8);
int wybor;
cout << " Wybierz jakich dzialan chcesz dokonywac na podanych macierzach: "; cin >> wybor;
//Wybór opcji działana na macierzy
switch(wybor)
{
case 1:
gotoxy(9,10);cout << " Wypelij macierz liczbami " <<endl;
gotoxy(10,14);
macierzlinie();
gotoxy(12,15);
readvalues(); // wywołujemy juz wcześniej napisaną funkcję
break;
}

getch();
return 0;

}}

0

Wywal całe conio.h.
Wywal wszystkie gotoxy.

Do formatowania wyświetlania korzystaj z "\n" oraz "\t" ( tablulator ) .

Elementy macierzy wypisuj za pomocą
for
for
cout << a[i][j]
cout << SPACJA
endfor
cout << ENTER
endfor

Będzie dużo łatwiej i wyjdzie dokładnie na to samo.

0
void readvalues() 
  {
   double tab [SIZE][SIZE];
   for(int y=0;y<SIZE;++y)
     {
      for (int x=0;x<SIZE;++x)
        {
         gotoxy(x*8+2,y+8);
         cin>>tab[y][x];
        }
     }
  }

Pewnie miałeś na myśli coś takiego, z tym że to nie będzie działać. Wysypie się przy dowolnym niepoprawnym wprowadzeniu. Radzę zrobić coś w rodzaju:

void readvalues(const char nazwa[])
  {
   double tab [SIZE][SIZE];
   for(int y=0;y<SIZE;++y)
     {
      for (int x=0;x<SIZE;++x)
        {
         while(true)
           {
            cin.sync();
            cout<<nazwa<<"[ "<<(y+1)<<" , "<<(x+1)<<" ] = ";
            if(cin>>tab[y][x]) break;
            cout<<"Blad"<<endl<<endl;
            cin.clear();
           }
        }
     }
   cin.sync();
  }

Owszem nie wygląda to wizualnie ładnie, ale jest idiotoodporne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1