Program z macierzami w C.

0

Witam.
Jestem początkującym programistą i to mój pierwszy post na tym forum. Mam problem z programem którego zadaniem jest wczytanie do tablicy elementów macierzy A o wymiarach n na k (n,k<20) oraz obliczenie i wyświetlenie sumy elementów w wierszu. To moja praca domowa z informatyki. Nie umiem napisać tego programu dlatego skopiowałem kod z neta. Jednak facet aby zapobiec takim występkom pyta nas zawsze co oznaczają poszczególne elementy kodu. I to jest mój problem.

int main(int argc, char* argv[])
{
int macierz[20][20];
int n,m;//rozmiary macierzy
printf("Podaj ilosc wierszy\n");
scanf("%i",&n);
printf("Podaj ilosc kolumn\n");
scanf("%i",&m);

//wczytywanie
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("Podaj liczbe na pozycje %i %i\n",i,j);
scanf("%i",&macierz[i][j]);
}
}
//wypisywanie
for(int a=0;a<n;a++)
{
for(int b=0;b<m;b++)
{
printf("%i ",macierz[a][b]);
}
printf("\n");
}
//suma
for(int x=0;x<n;x++)
{
int suma=0;
for (int y=0;y<m;y++)
{
suma+=macierz[x][y];
}
printf("Suma w wierszu %i wynosi: %i\n",x,suma);
}

getch();
return 0;
}

Oto program który znalazłem na necie. "for(int i=0;i<n;i++)" w tym miejscu i kilku innych użyta została funkcja o ile się nie mylę, a my tego jeszcze nie mieliśmy. Dlatego przerobiłem troche ten program. Oto moja wersja.

int main(int argc, char **argv)
{
int macierz [20][20];
int n,k;
int i,j;
int a,b;
int x,y;
printf ("Podaj ilosc wierszy ");
scanf ("%d", &n);
printf ("Podaj ilośc kolumn ");
scanf ("%d", &k);

for (i=0; i<n; i++) {
	for (j=0; j<k; j++) {
		printf ("Podaj liczbe na pozycje %d %d\n");
		scanf ("%d", &macierz [i][j]);

	}
}
for (a=0; a<n; a++) {
	for (b=0; b<k; b++) {
		printf ("&d ", macierz[a][b]);
	}
	printf ("\n");
}
for(x=0; x<n; x++) {
	int suma=0;
	for (y=0; y<k; y++) {
		suma+=macierz[x][y];
	}
	printf("Suma w wierszu %d wynosi: %d\n",x,suma);
}

return 0;

}

I problem w tym że nie wiem po co autor użył zmiennych a,b,i,j,x i y. Może mi ktoś to wytłumaczyć bo jak mnie facet z tego zapyta to będzie grubo.

0

no to bedziesz mial grubo :D idz linijka po linijce albo uzyj debuggera i zobacz co program robi i sobie pokomentuj. najlepiej sam napisz. poswiec swoj czas i sie naucz albo zrezygnuj z informatyki

0

Ja nie studiuje informatyki tylko elektronikę ale niestety mam taki głupi przedmiot jak programowanie i musze go jakoś zaliczyć. Uczę się tego i probuje coś pisac sam ale z tym nie dalem rady. Wszystko wiem co i jak w tym kodzie ale właśnie nie wiem po co te zmienne.

0

I bardzo dobrze, że się pyta, przynajmniej tacy lenie, będą zmuszeni do nauczenia się czego kolwiek.

0
ujemny napisał(a):

I bardzo dobrze, że się pyta, przynajmniej tacy lenie, będą zmuszeni do nauczenia się czego kolwiek.

lepiej zamiast pisać że jestem leniem mógłbyś mi pomóc. Wiem, że jestem leniwy ale ten przedmiot jest tak beznadziejny że muszę się zmuszać by coś w ogóle zrobić w domu. O wiele bardziej wolę się uczyć matematyki, a to chcę po prostu zaliczyć.

0

Obecnie elektronik bez podstawowej znajomości programowania, to upośledzony elektronik, dlatego uważam, że dla twojego własnego dobra nie powinniśmy ci pomóc, bo prosisz o rzeczy zupełnie podstawowe i naprawdę łatwe.

0

Moze dla was, ludzi ktorzy w tym siedza od dawna to jest latwe ale dla mnie, kogos kto pierwszt raz ma z tym do czynienia nie. Zwyczajnie prosze o ludzka pomoc w zrozumieniu czegos nowego a spotykam sie z czyms takim. Dzieki, na prawde dzieki. Na ludzi zawsze mozna liczyc.

0

wiesz co mi sie nie chce samemu ani nie umiem wiec posprzataj mi mieszkanie i ugotuj obiad oczywiscie za darmo i przynies takze swoje produkty bo ja przeciez placic nie bede za to. zapewne dla ciebie to jest proste

0
toomek93 napisał(a):

l O wiele bardziej wolę się uczyć matematyki, a to chcę po prostu zaliczyć.

  1. Trzeba było iść na matematykę.
  2. Studia chyba nie są obowiązkowe ?
0

Ja podsumuje to tak: teraz studia zaczyna demograficzny niż, a liczba miejsc na studiach dziennych jest większa niż, gdy ja się wybierałem na studia. Efekt będzie taki, że tytuł magistra jeszcze bardziej się zdegraduje.

0

Dobra darujcie już sobie. Zapomniał wół jak cielęciem był. Teraz to fajnie jest się śmiać z początkującego. Gdybyście wiedzieli chociaż 1% tego co ja przeżywam na zajęciach u tego gościa to byście tak nie gadali. On nie uczy kompletnie nic. Od pierwszych zajęć kazał nam pisać programy w C mimo że nie wiedzieliśmy o co chodzi. cały czas po nas jeździ i zamiast zając się tłumaczeniem to pieprzy że nie wypuści upośledzonych inżynierów. Wszystkiego co umiem czyli niewiele nauczyłem się sam w domu. Dzisiaj mieliśmy funkcje i znowu było to samo. Napisał na tablicy jakis kod który nie działał i potem miał pretensje że nic nie umiemy. W tej chwili rozważam przeniesienie się do innej grupy bo u niego tego przedmiotu nie zaliczę.

Mam jeszcze jedno pytanie. Wątpię że ktoś normalnie, życzliwie i po ludzku odpowie ale zaryzykuję. Pisze programy w kompilatorze Code Lite. Mam tam taki problem że jak założę sobie Workspace to tylko pierwszy project jest kompilowany. Jego ikonka tam na bocznym pasku jest zielona. Jak zakładam kolejne to są one pomarańczowe i jak je kompiluję to i tak odpala mi się ten program z pierwszego, zielonego projektu.

0

No to wiesz co?

Otwórz książkę do C i popatrz na przykłady jak ładuje się dane do dwuwymiarowej tablicy.

załóżmy, że mamy tablice 2 x 4;

Wczytywanie będzie wyglądało tak:

for(i = 0; i < 2; i++)
{
for(j = 0; j < 4; j++)
{
tab[i][j] = wartosc;
}
}

Może i jesteś na elektronice, ale co to kogo obchodzi - sprzęt programuje się i w asm, C - wygodniejsze mechanizmy są, nawet graficzne, tylko bez znajomości asm/C nie ma co do tego podchodzić.

0
toomek93 napisał(a):

mam taki głupi przedmiot jak programowanie

toomek93 napisał(a):

ten przedmiot jest tak beznadziejny
Tu sami pasjonaci programowania a ty masz czelność takie herezje głosić? Na stos!

toomek93 napisał(a):

Pisze programy w kompilatorze Code Lite.
CodeLite to nie kompilator tylko IDE. Kompilator jaki używasz to prawdopodobnie GCC.

toomek93 napisał(a):

Mam tam taki problem że jak założę sobie Workspace to tylko pierwszy project jest kompilowany. Jego ikonka tam na bocznym pasku jest zielona. Jak zakładam kolejne to są one pomarańczowe i jak je kompiluję to i tak odpala mi się ten program z pierwszego, zielonego projektu.

Build -> Build Workspace skompiluje wszystkie projekty.
Build -> Build Project skompiluje tylko projekt aktywny.
Build -> Run skompiluje i uruchomi w trybie debuggingu projekt aktywny.
Projekt uaktywniasz klikając na niego PPM i wybierając Set As Active

0

Dzieki ze jako jedyni podeszliscie do mojego problemu po ludzku. Sciagnalem sobie juz ksiazke do C w pdf-ie. Kumpel polecal mi tez symfonie c++. Mowil ze tam jest wszystko tak przystepnie wyjasnione tylko ze instrukcje sie roznia. Musze to ogarnac bo za 2 tygodnie kolos. Facet powiedzial ze dostosuje go do naszego poziomu ale i tak mysli ze dla 75% bedzie za trudny. Moze jakims cudem zalicze jak sie poucze solidnie.

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